diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 6b9bad2ad79..aded466eb4f 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -92,7 +92,9 @@ jobs: cp ./ethexe/contracts/out/POAMiddleware.sol/POAMiddleware.json ./ethexe/ethereum/abi cp ./ethexe/contracts/out/Middleware.sol/Middleware.json ./ethexe/ethereum/abi cp ./ethexe/contracts/out/Mirror.sol/Mirror.json ./ethexe/ethereum/abi + cp ./ethexe/contracts/out/MirrorWithInstrumentation.sol/MirrorWithInstrumentation.json ./ethexe/ethereum/abi cp ./ethexe/contracts/out/Router.sol/Router.json ./ethexe/ethereum/abi + cp ./ethexe/contracts/out/RouterWithInstrumentation.sol/RouterWithInstrumentation.json ./ethexe/ethereum/abi cp ./ethexe/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json ./ethexe/ethereum/abi cp ./ethexe/contracts/out/WrappedVara.sol/WrappedVara.json ./ethexe/ethereum/abi cp ./ethexe/contracts/out/BatchMulticall.sol/BatchMulticall.json ./ethexe/ethereum/abi diff --git a/Cargo.lock b/Cargo.lock index defccd6e057..f3afa68e0a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -116,7 +116,7 @@ dependencies = [ "alloy-consensus", "alloy-contract", "alloy-core", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-genesis", "alloy-network", "alloy-node-bindings", @@ -124,7 +124,7 @@ dependencies = [ "alloy-pubsub", "alloy-rpc-client", "alloy-rpc-types", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-signer", "alloy-signer-local", "alloy-transport", @@ -150,10 +150,10 @@ name = "alloy-consensus" version = "1.7.3" source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler#eb448cabe2138d016cf7dd5542293ec5b8c317cf" dependencies = [ - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-trie", "alloy-tx-macros", "auto_impl", @@ -177,10 +177,10 @@ version = "1.7.3" source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler#eb448cabe2138d016cf7dd5542293ec5b8c317cf" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "serde", ] @@ -269,6 +269,7 @@ dependencies = [ "alloy-primitives", "alloy-rlp", "borsh", + "k256", "serde", "thiserror 2.0.17", ] @@ -285,6 +286,30 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-eips" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f7ef09f21bd1e9cb8a686f168cb4a206646804567f0889eadb8dcc4c9288c8" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives", + "alloy-rlp", + "alloy-serde 1.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "auto_impl", + "borsh", + "c-kzg", + "derive_more 2.1.1", + "either", + "serde", + "serde_with", + "sha2 0.10.9", + "thiserror 2.0.17", +] + [[package]] name = "alloy-eips" version = "1.7.3" @@ -296,7 +321,7 @@ dependencies = [ "alloy-eip7928", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "auto_impl", "borsh", "c-kzg", @@ -313,9 +338,9 @@ name = "alloy-genesis" version = "1.7.3" source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler#eb448cabe2138d016cf7dd5542293ec5b8c317cf" dependencies = [ - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-primitives", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-trie", "borsh", "serde", @@ -368,13 +393,13 @@ source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler# dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-json-rpc", "alloy-network-primitives", "alloy-primitives", "alloy-rpc-types-any", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-signer", "alloy-sol-types", "async-trait", @@ -392,9 +417,9 @@ version = "1.7.3" source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler#eb448cabe2138d016cf7dd5542293ec5b8c317cf" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-primitives", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "serde", ] @@ -453,7 +478,7 @@ source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler# dependencies = [ "alloy-chains", "alloy-consensus", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-json-rpc", "alloy-network", "alloy-network-primitives", @@ -565,7 +590,7 @@ dependencies = [ "alloy-rpc-types-beacon", "alloy-rpc-types-engine", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "serde", ] @@ -576,7 +601,7 @@ source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler# dependencies = [ "alloy-primitives", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "serde", ] @@ -587,7 +612,7 @@ source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler# dependencies = [ "alloy-consensus-any", "alloy-rpc-types-eth", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", ] [[package]] @@ -595,7 +620,7 @@ name = "alloy-rpc-types-beacon" version = "1.7.3" source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler#eb448cabe2138d016cf7dd5542293ec5b8c317cf" dependencies = [ - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-primitives", "alloy-rpc-types-engine", "derive_more 2.1.1", @@ -611,10 +636,10 @@ version = "1.7.3" source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler#eb448cabe2138d016cf7dd5542293ec5b8c317cf" dependencies = [ "alloy-consensus", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "derive_more 2.1.1", "rand 0.8.5", "serde", @@ -628,11 +653,11 @@ source = "git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler# dependencies = [ "alloy-consensus", "alloy-consensus-any", - "alloy-eips", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-network-primitives", "alloy-primitives", "alloy-rlp", - "alloy-serde", + "alloy-serde 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-sol-types", "itertools 0.14.0", "serde", @@ -641,6 +666,17 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "alloy-serde" +version = "1.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2ce1e0dbf7720eee747700e300c99aac01b1a95bb93f493a01e78ee28bb1a37" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + [[package]] name = "alloy-serde" version = "1.7.3" @@ -958,7 +994,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb00293ba84f51ce3bd026bd0de55899c4e68f0a39a5728cebae3a73ffdc0a4f" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-std 0.4.0", ] @@ -970,7 +1006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20c7021f180a0cbea0380eba97c2af3c57074cdaffe0eef7e840e1c9f2841e55" dependencies = [ "ark-bls12-377", - "ark-ec", + "ark-ec 0.4.2", "ark-models-ext", "ark-std 0.4.0", ] @@ -981,26 +1017,50 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", ] +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", +] + [[package]] name = "ark-bls12-381-ext" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1dc4b3d08f19e8ec06e949712f95b8361e43f1391d94f65e4234df03480631c" dependencies = [ - "ark-bls12-381", - "ark-ec", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-models-ext", "ark-serialize 0.4.2", "ark-std 0.4.0", ] +[[package]] +name = "ark-bn254" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69eab57e8d2663efa5c63135b2af4f396d66424f88954c21104125ab6b3e6bc" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-r1cs-std", + "ark-std 0.5.0", +] + [[package]] name = "ark-bw6-761" version = "0.4.0" @@ -1008,7 +1068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2e0605daf0cc5aa2034b78d008aaf159f56901d92a52ee4f6ecdfdac4f426700" dependencies = [ "ark-bls12-377", - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-std 0.4.0", ] @@ -1020,7 +1080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccee5fba47266f460067588ee1bf070a9c760bf2050c1c509982c5719aadb4f2" dependencies = [ "ark-bw6-761", - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-models-ext", "ark-std 0.4.0", @@ -1033,7 +1093,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" dependencies = [ "ark-ff 0.4.2", - "ark-poly", + "ark-poly 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", "derivative", @@ -1044,6 +1104,27 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ed-on-bls12-377" version = "0.4.0" @@ -1051,7 +1132,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b10d901b9ac4b38f9c32beacedfadcdd64e46f8d7f8e88c1ae1060022cf6f6c6" dependencies = [ "ark-bls12-377", - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-std 0.4.0", ] @@ -1062,7 +1143,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524a4fb7540df2e1a8c2e67a83ba1d1e6c3947f4f9342cc2359fc2e789ad731d" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ed-on-bls12-377", "ark-ff 0.4.2", "ark-models-ext", @@ -1075,8 +1156,8 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9cde0f2aa063a2a5c28d39b47761aa102bda7c13c84fc118a61b87c7b2f785c" dependencies = [ - "ark-bls12-381", - "ark-ec", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-std 0.4.0", ] @@ -1087,7 +1168,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d15185f1acb49a07ff8cbe5f11a1adc5a93b19e211e325d826ae98e98e124346" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ed-on-bls12-381-bandersnatch", "ark-ff 0.4.2", "ark-models-ext", @@ -1226,7 +1307,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e9eab5d4b5ff2f228b763d38442adc9b084b0a465409b059fac5c2308835ec2" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", @@ -1246,13 +1327,57 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-r1cs-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "941551ef1df4c7a401de7068758db6503598e6f01850bdb2cfdb614a1f9dbea1" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-relations", + "ark-std 0.5.0", + "educe", + "num-bigint", + "num-integer", + "num-traits", + "tracing", +] + +[[package]] +name = "ark-relations" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec46ddc93e7af44bcab5230937635b06fb5744464dd6a7e7b083e80ebd274384" +dependencies = [ + "ark-ff 0.5.0", + "ark-std 0.5.0", + "tracing", + "tracing-subscriber 0.2.25", +] + [[package]] name = "ark-scale" version = "0.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f69c00b3b529be29528a6f2fd5fa7b1790f8bed81b9cdca17e326538545a179" dependencies = [ - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", "ark-std 0.4.0", @@ -1276,7 +1401,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "ark-serialize-derive", + "ark-serialize-derive 0.4.2", "ark-std 0.4.0", "digest 0.10.7", "num-bigint", @@ -1288,6 +1413,7 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ + "ark-serialize-derive 0.5.0", "ark-std 0.5.0", "arrayvec 0.7.6", "digest 0.10.7", @@ -1305,6 +1431,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.114", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -1788,6 +1925,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "aurora-engine-modexp" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" +dependencies = [ + "hex", + "num", +] + [[package]] name = "auto_impl" version = "1.3.0" @@ -2010,6 +2157,9 @@ name = "bitflags" version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +dependencies = [ + "serde_core", +] [[package]] name = "bitvec" @@ -2019,6 +2169,7 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", + "serde", "tap", "wyz", ] @@ -2409,7 +2560,7 @@ dependencies = [ "gear-wasm-instrument", "gear-workspace-hack", "log", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wasmer", "wasmer-types", "wat", @@ -2441,7 +2592,7 @@ dependencies = [ "serde", "serde_json", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -2458,7 +2609,7 @@ dependencies = [ "structopt", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "warp", ] @@ -5059,7 +5210,7 @@ dependencies = [ "thiserror 2.0.17", "tokio", "toml 0.8.23", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -5205,6 +5356,7 @@ dependencies = [ "log", "nonempty 0.12.0", "rand 0.8.5", + "revm", "roast-secp256k1-evm", "serde", "tokio", @@ -5242,7 +5394,7 @@ dependencies = [ "rand 0.8.5", "thiserror 2.0.17", "tokio", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -5268,7 +5420,7 @@ dependencies = [ "rand 0.8.5", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -5329,7 +5481,7 @@ dependencies = [ "sp-wasm-interface", "thiserror 2.0.17", "tokio", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wasmtime", "wat", ] @@ -5378,7 +5530,7 @@ dependencies = [ "tower 0.4.13", "tower-http 0.5.2", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -5481,7 +5633,7 @@ dependencies = [ "tempfile", "tokio", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wat", ] @@ -6443,8 +6595,8 @@ dependencies = [ name = "gbuiltin-bls381" version = "1.10.0" dependencies = [ - "ark-bls12-381", - "ark-ec", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-scale", "ark-serialize 0.4.2", @@ -6507,7 +6659,7 @@ dependencies = [ "snapbox", "tokio", "toml 0.8.23", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "url", ] @@ -6567,7 +6719,7 @@ dependencies = [ "sp-state-machine", "sp-timestamp", "substrate-prometheus-endpoint", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "vara-runtime", ] @@ -6704,7 +6856,7 @@ dependencies = [ "scale-encode", "scale-info", "serde", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wasmparser 0.230.0 (registry+https://github.com/rust-lang/crates.io-index)", "wat", ] @@ -6727,7 +6879,7 @@ dependencies = [ "gsys", "log", "parity-scale-codec", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -6803,7 +6955,7 @@ dependencies = [ "proptest", "region", "sp-wasm-interface-common", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wasmer-vm", "winapi", ] @@ -6864,7 +7016,7 @@ dependencies = [ "tokio", "tracing", "tracing-appender", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -7147,7 +7299,7 @@ dependencies = [ "path-clean", "serde", "serde_json", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -7165,7 +7317,7 @@ dependencies = [ "subxt", "thiserror 2.0.17", "tokio", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -7298,7 +7450,8 @@ dependencies = [ "alloy-chains", "alloy-consensus", "alloy-contract", - "alloy-eips", + "alloy-eip7702", + "alloy-eips 1.7.3 (git+https://github.com/gear-tech/alloy.git?branch=fix-blob-gas-filler)", "alloy-json-abi", "alloy-primitives", "alloy-provider", @@ -7311,9 +7464,9 @@ dependencies = [ "alloy-sol-type-parser", "alloy-sol-types", "anyhow", - "ark-bls12-381", + "ark-bls12-381 0.4.0", "ark-bls12-381-ext", - "ark-ec", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-models-ext", "ark-scale", @@ -7327,6 +7480,7 @@ dependencies = [ "blake2 0.10.6", "blake2b_simd", "blake3", + "blst", "bounded-collections", "bp-header-chain", "bp-runtime", @@ -7335,6 +7489,7 @@ dependencies = [ "bytemuck", "byteorder", "bytes", + "c-kzg", "cc", "cipher 0.4.4", "clap 4.5.54", @@ -7353,6 +7508,7 @@ dependencies = [ "darling_core 0.21.3", "data-encoding", "der", + "derive-where", "derive_more 0.99.20", "derive_more 2.1.1", "derive_more-impl 2.1.1", @@ -7441,6 +7597,8 @@ dependencies = [ "num-integer", "num-rational", "num-traits", + "num_enum 0.7.5", + "num_enum_derive 0.7.5", "object 0.30.4", "object 0.32.2", "once_cell", @@ -7609,7 +7767,7 @@ dependencies = [ "tracing", "tracing-core", "tracing-log", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "trie-db", "trie-root", "trybuild", @@ -7889,8 +8047,8 @@ dependencies = [ name = "gsdk" version = "1.10.0" dependencies = [ - "ark-bls12-381", - "ark-ec", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", "ark-scale", "ark-serialize 0.4.2", "ark-std 0.4.0", @@ -7975,7 +8133,7 @@ dependencies = [ "tempfile", "thiserror 2.0.17", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -8055,7 +8213,7 @@ dependencies = [ "sha2 0.10.9", "sp-core", "thiserror 2.0.17", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -10699,7 +10857,7 @@ dependencies = [ "generator", "scoped-tls", "tracing", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -11606,6 +11764,20 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + [[package]] name = "num-bigint" version = "0.4.6" @@ -11650,6 +11822,17 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + [[package]] name = "num-rational" version = "0.4.2" @@ -11717,6 +11900,7 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" dependencies = [ + "proc-macro-crate 3.4.0", "proc-macro2", "quote", "syn 2.0.114", @@ -11925,6 +12109,18 @@ version = "6.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.9", +] + [[package]] name = "page_size" version = "0.6.0" @@ -12202,7 +12398,7 @@ dependencies = [ "sp-runtime", "sp-std", "test-syscalls", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wasmparser 0.230.0 (registry+https://github.com/rust-lang/crates.io-index)", "wat", ] @@ -12275,7 +12471,7 @@ dependencies = [ "sp-runtime", "sp-staking", "sp-std", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12339,7 +12535,7 @@ dependencies = [ "sp-runtime", "sp-session", "sp-std", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12395,7 +12591,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12417,7 +12613,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12544,7 +12740,7 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -12577,7 +12773,7 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-std", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -13321,6 +13517,49 @@ dependencies = [ "rustc_version 0.4.1", ] +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros", + "phf_shared", + "serde", +] + +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.114", +] + +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher 1.0.1", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -13626,6 +13865,15 @@ dependencies = [ "syn 2.0.114", ] +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + [[package]] name = "primitive-types" version = "0.12.2" @@ -14612,6 +14860,197 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" +[[package]] +name = "revm" +version = "34.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2aabdebaa535b3575231a88d72b642897ae8106cf6b0d12eafc6bfdf50abfc7" +dependencies = [ + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database", + "revm-database-interface", + "revm-handler", + "revm-inspector", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-state", +] + +[[package]] +name = "revm-bytecode" +version = "8.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d1e5c1eaa44d39d537f668bc5c3409dc01e5c8be954da6c83370bbdf006457" +dependencies = [ + "bitvec", + "phf", + "revm-primitives", + "serde", +] + +[[package]] +name = "revm-context" +version = "13.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "892ff3e6a566cf8d72ffb627fdced3becebbd9ba64089c25975b9b028af326a5" +dependencies = [ + "bitvec", + "cfg-if", + "derive-where", + "revm-bytecode", + "revm-context-interface", + "revm-database-interface", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-context-interface" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57f61cc6d23678c4840af895b19f8acfbbd546142ec8028b6526c53cc1c16c98" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702", + "auto_impl", + "either", + "revm-database-interface", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-database" +version = "10.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529528d0b05fe646be86223032c3e77aa8b05caa2a35447d538c55965956a511" +dependencies = [ + "alloy-eips 1.7.3 (registry+https://github.com/rust-lang/crates.io-index)", + "revm-bytecode", + "revm-database-interface", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-database-interface" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7bf93ac5b91347c057610c0d96e923db8c62807e03f036762d03e981feddc1d" +dependencies = [ + "auto_impl", + "either", + "revm-primitives", + "revm-state", + "serde", + "thiserror 2.0.17", +] + +[[package]] +name = "revm-handler" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cd0e43e815a85eded249df886c4badec869195e70cdd808a13cfca2794622d2" +dependencies = [ + "auto_impl", + "derive-where", + "revm-bytecode", + "revm-context", + "revm-context-interface", + "revm-database-interface", + "revm-interpreter", + "revm-precompile", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-inspector" +version = "15.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f3ccad59db91ef93696536a0dbaf2f6f17cfe20d4d8843ae118edb7e97947ef" +dependencies = [ + "auto_impl", + "either", + "revm-context", + "revm-database-interface", + "revm-handler", + "revm-interpreter", + "revm-primitives", + "revm-state", + "serde", + "serde_json", +] + +[[package]] +name = "revm-interpreter" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11406408597bc249392d39295831c4b641b3a6f5c471a7c41104a7a1e3564c07" +dependencies = [ + "revm-bytecode", + "revm-context-interface", + "revm-primitives", + "revm-state", + "serde", +] + +[[package]] +name = "revm-precompile" +version = "32.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50c1285c848d240678bf69cb0f6179ff5a4aee6fc8e921d89708087197a0aff3" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-bn254", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "arrayref", + "aurora-engine-modexp", + "blst", + "c-kzg", + "cfg-if", + "k256", + "p256", + "revm-primitives", + "ripemd", + "secp256k1 0.31.1", + "sha2 0.10.9", +] + +[[package]] +name = "revm-primitives" +version = "22.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba580c56a8ec824a64f8a1683577876c2e1dbe5247044199e9b881421ad5dcf9" +dependencies = [ + "alloy-primitives", + "num_enum 0.7.5", + "once_cell", + "serde", +] + +[[package]] +name = "revm-state" +version = "9.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "311720d4f0f239b041375e7ddafdbd20032a33b7bae718562ea188e188ed9fd3" +dependencies = [ + "alloy-eip7928", + "bitflags 2.10.0", + "revm-bytecode", + "revm-primitives", + "serde", +] + [[package]] name = "rfc6979" version = "0.4.0" @@ -16132,7 +16571,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "tracing-log", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -16504,6 +16943,17 @@ dependencies = [ "serde", ] +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes 0.14.1", + "rand 0.9.2", + "secp256k1-sys 0.11.0", +] + [[package]] name = "secp256k1-sys" version = "0.9.2" @@ -16522,6 +16972,15 @@ dependencies = [ "cc", ] +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" +dependencies = [ + "cc", +] + [[package]] name = "secrecy" version = "0.8.0" @@ -16716,6 +17175,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ + "indexmap 2.13.0", "itoa", "memchr", "serde", @@ -17426,11 +17886,11 @@ source = "git+https://github.com/gear-tech/polkadot-sdk.git?branch=gear-polkadot dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", - "ark-bls12-381", + "ark-bls12-381 0.4.0", "ark-bls12-381-ext", "ark-bw6-761", "ark-bw6-761-ext", - "ark-ec", + "ark-ec 0.4.2", "ark-ed-on-bls12-377", "ark-ed-on-bls12-377-ext", "ark-ed-on-bls12-381-bandersnatch", @@ -17816,7 +18276,7 @@ dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -19164,7 +19624,7 @@ dependencies = [ "crossbeam-channel", "thiserror 2.0.17", "time", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] @@ -19219,6 +19679,15 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.22" @@ -19725,7 +20194,7 @@ dependencies = [ "sp-version", "substrate-build-script-utils", "substrate-wasm-builder", - "tracing-subscriber", + "tracing-subscriber 0.3.22", "wat", ] @@ -19771,11 +20240,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6bfb937b3d12077654a9e43e32a4e9c20177dd9fea0f3aba673e7840bb54f32" dependencies = [ "ark-bls12-377", - "ark-bls12-381", - "ark-ec", + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", "ark-ff 0.4.2", "ark-serialize 0.4.2", - "ark-serialize-derive", + "ark-serialize-derive 0.4.2", "arrayref", "digest 0.10.7", "rand 0.8.5", @@ -20006,7 +20475,7 @@ dependencies = [ "gear-wasm-instrument", "gear-workspace-hack", "log", - "tracing-subscriber", + "tracing-subscriber 0.3.22", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index adfd3f7228f..189983e1821 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -574,6 +574,7 @@ wasm-encoder = { version = "0.230", default-features = false, features = [ ] } # utils/wasm-instrument async-broadcast = "0.7.2" # ethexe/service ip_network = "0.4.1" # ethexe/network +revm = "34.0" # ethexe/ethereum [workspace.lints.rust] unexpected_cfgs = { level = "warn", check-cfg = [ diff --git a/Makefile b/Makefile index aebdb8c2b41..e45003ac448 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,8 @@ ethexe-pre-commit-no-contracts: fmt clippy # Building ethexe contracts .PHONY: ethexe-contracts-pre-commit ethexe-contracts-pre-commit: + @ echo " > Adding instrumentation to Router" && cp ./ethexe/contracts/src/Router.sol ./ethexe/contracts/src/instrumented/RouterWithInstrumentation.sol && sed -i 's/contract Router is/contract RouterWithInstrumentation is/' ./ethexe/contracts/src/instrumented/RouterWithInstrumentation.sol && sed -i 's/\/\/ emit DebugEvent(/emit DebugEvent(/g' ./ethexe/contracts/src/instrumented/RouterWithInstrumentation.sol + @ echo " > Adding instrumentation to Mirror" && cp ./ethexe/contracts/src/Mirror.sol ./ethexe/contracts/src/instrumented/MirrorWithInstrumentation.sol && sed -i 's/contract Mirror is/contract MirrorWithInstrumentation is/' ./ethexe/contracts/src/instrumented/MirrorWithInstrumentation.sol && sed -i 's/\/\/ emit DebugEvent(/emit DebugEvent(/g' ./ethexe/contracts/src/instrumented/MirrorWithInstrumentation.sol @ echo " > Cleaning contracts" && forge clean --root ethexe/contracts @ echo " > Formatting contracts" && forge fmt --root ethexe/contracts @ echo " > Building contracts" && forge build --root ethexe/contracts @@ -16,7 +18,9 @@ ethexe-contracts-pre-commit: @ echo " > Copying Middleware artifact" && cp ./ethexe/contracts/out/Middleware.sol/Middleware.json ./ethexe/ethereum/abi @ echo " > Copying POAMiddleware artifact" && cp ./ethexe/contracts/out/POAMiddleware.sol/POAMiddleware.json ./ethexe/ethereum/abi @ echo " > Copying Mirror artifact" && cp ./ethexe/contracts/out/Mirror.sol/Mirror.json ./ethexe/ethereum/abi + @ echo " > Copying MirrorWithInstrumentation artifact" && cp ./ethexe/contracts/out/MirrorWithInstrumentation.sol/MirrorWithInstrumentation.json ./ethexe/ethereum/abi @ echo " > Copying Router artifact" && cp ./ethexe/contracts/out/Router.sol/Router.json ./ethexe/ethereum/abi + @ echo " > Copying RouterWithInstrumentation artifact" && cp ./ethexe/contracts/out/RouterWithInstrumentation.sol/RouterWithInstrumentation.json ./ethexe/ethereum/abi @ echo " > Copying ERC1967Proxy artifact" && cp ./ethexe/contracts/out/ERC1967Proxy.sol/ERC1967Proxy.json ./ethexe/ethereum/abi @ echo " > Copying WrappedVara artifact" && cp ./ethexe/contracts/out/WrappedVara.sol/WrappedVara.json ./ethexe/ethereum/abi @ echo " > Copying BatchMulticall" && cp ./ethexe/contracts/out/BatchMulticall.sol/BatchMulticall.json ./ethexe/ethereum/abi diff --git a/ethexe/common/src/db.rs b/ethexe/common/src/db.rs index 1557b54f404..ab6337cf25e 100644 --- a/ethexe/common/src/db.rs +++ b/ethexe/common/src/db.rs @@ -260,7 +260,7 @@ mod tests { #[test] fn ensure_types_unchanged() { const EXPECTED_TYPE_INFO_HASH: &str = - "36d0e8436bb8fa8ea920012e1b4b079f9b6a83414e016771afc977568d30f29b"; + "121cc3512aca1cd7286aad8662766e4d8981242983de72c49c5744676a34c230"; let types = [ meta_type::(), diff --git a/ethexe/common/src/gear.rs b/ethexe/common/src/gear.rs index aec6406eeb3..8ba33aaa8ba 100644 --- a/ethexe/common/src/gear.rs +++ b/ethexe/common/src/gear.rs @@ -370,7 +370,7 @@ pub struct StateTransition { /// /// Negative numbers will be stored like this: /// ``` - /// $ cast + /// $ chisel /// > -1 ether /// Type: int256 /// Hex: 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c0000 diff --git a/ethexe/contracts/foundry.toml b/ethexe/contracts/foundry.toml index 1f0ef397839..5a82d09804a 100644 --- a/ethexe/contracts/foundry.toml +++ b/ethexe/contracts/foundry.toml @@ -22,6 +22,7 @@ ignored_warnings_from = [ "lib/openzeppelin-foundry-upgrades/src/internal/StringFinder.sol", # Warning (3628): This contract has a payable fallback function, but no receive ether function. "src/Mirror.sol", + "src/instrumented/MirrorWithInstrumentation.sol", "src/MirrorProxy.sol", ] # Required for Middleware tests diff --git a/ethexe/contracts/remappings.txt b/ethexe/contracts/remappings.txt index b4e81161be8..226ce8a872c 100644 --- a/ethexe/contracts/remappings.txt +++ b/ethexe/contracts/remappings.txt @@ -5,11 +5,11 @@ script=./script @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ @symbioticfi/core/=lib/symbiotic-rewards/lib/core/ core/=lib/symbiotic-rewards/lib/core/ -ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/ -erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/ +ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/ +erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/ forge-std/=lib/forge-std/src/ frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/ -halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/ +halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/ openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/ openzeppelin-contracts/=lib/openzeppelin-contracts/ openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/ diff --git a/ethexe/contracts/src/BatchMulticall.sol b/ethexe/contracts/src/BatchMulticall.sol index 49b9fcae7d6..4dfc0aa3c47 100644 --- a/ethexe/contracts/src/BatchMulticall.sol +++ b/ethexe/contracts/src/BatchMulticall.sol @@ -1,9 +1,9 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {IMirror} from "./IMirror.sol"; -import {IRouter} from "./IRouter.sol"; -import {IWrappedVara} from "./IWrappedVara.sol"; +import {IMirror} from "src/IMirror.sol"; +import {IRouter} from "src/IRouter.sol"; +import {IWrappedVara} from "src/IWrappedVara.sol"; contract BatchMulticall { error InsufficientValue(uint256 expected, uint256 actual); diff --git a/ethexe/contracts/src/IMiddleware.sol b/ethexe/contracts/src/IMiddleware.sol index 515281e0d74..7f66dbf706d 100644 --- a/ethexe/contracts/src/IMiddleware.sol +++ b/ethexe/contracts/src/IMiddleware.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.33; -import {Gear} from "./libraries/Gear.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; +import {Gear} from "src/libraries/Gear.sol"; /// @title Gear.exe Middleware Interface /// @notice The Middleware contract is responsible for managing the interaction between the Router (Gear.exe) and the Symbiotic Ecosystem. diff --git a/ethexe/contracts/src/IMirror.sol b/ethexe/contracts/src/IMirror.sol index e3df7c22d91..6735adee2a9 100644 --- a/ethexe/contracts/src/IMirror.sol +++ b/ethexe/contracts/src/IMirror.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {Gear} from "./libraries/Gear.sol"; +import {Gear} from "src/libraries/Gear.sol"; // TODO (breathx): sort here everything. interface IMirror { diff --git a/ethexe/contracts/src/IRouter.sol b/ethexe/contracts/src/IRouter.sol index 04fc9f9dc95..9d06c190f24 100644 --- a/ethexe/contracts/src/IRouter.sol +++ b/ethexe/contracts/src/IRouter.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {Gear} from "./libraries/Gear.sol"; +import {Gear} from "src/libraries/Gear.sol"; /// @title Gear.exe Router Interface /// @notice The Router interface provides basic co-processor functionalities, such as WASM submission, program creation, and result settlement, acting as an authority for acknowledged programs, driven by validator signature verification. diff --git a/ethexe/contracts/src/Middleware.sol b/ethexe/contracts/src/Middleware.sol index a31c9b14df4..6cafd31922b 100644 --- a/ethexe/contracts/src/Middleware.sol +++ b/ethexe/contracts/src/Middleware.sol @@ -1,9 +1,6 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {IMiddleware} from "./IMiddleware.sol"; -import {Gear} from "./libraries/Gear.sol"; -import {MapWithTimeData} from "./libraries/MapWithTimeData.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { ReentrancyGuardTransientUpgradeable @@ -14,6 +11,9 @@ import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; import {Time} from "@openzeppelin/contracts/utils/types/Time.sol"; +import {IMiddleware} from "src/IMiddleware.sol"; +import {Gear} from "src/libraries/Gear.sol"; +import {MapWithTimeData} from "src/libraries/MapWithTimeData.sol"; import {Subnetwork} from "symbiotic-core/src/contracts/libraries/Subnetwork.sol"; import {INetworkRegistry} from "symbiotic-core/src/interfaces/INetworkRegistry.sol"; import {IEntity} from "symbiotic-core/src/interfaces/common/IEntity.sol"; diff --git a/ethexe/contracts/src/Mirror.sol b/ethexe/contracts/src/Mirror.sol index c325ab3cad9..46f46522551 100644 --- a/ethexe/contracts/src/Mirror.sol +++ b/ethexe/contracts/src/Mirror.sol @@ -1,15 +1,15 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {ICallbacks} from "./ICallbacks.sol"; -import {IMirror} from "./IMirror.sol"; -import {IRouter} from "./IRouter.sol"; -import {IWrappedVara} from "./IWrappedVara.sol"; -import {Gear} from "./libraries/Gear.sol"; import {ERC1967Utils} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; import {Hashes} from "frost-secp256k1-evm/utils/cryptography/Hashes.sol"; +import {ICallbacks} from "src/ICallbacks.sol"; +import {IMirror} from "src/IMirror.sol"; +import {IRouter} from "src/IRouter.sol"; +import {IWrappedVara} from "src/IWrappedVara.sol"; +import {Gear} from "src/libraries/Gear.sol"; contract Mirror is IMirror { /// @dev Special address to which Sails contract sends messages so that Mirror can decode events: @@ -41,6 +41,29 @@ contract Mirror is IMirror { /// @dev The bool flag indicates whether to process arbitrary calls as `sendMessage` payload. bool isSmall; + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID = 1; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID = 2; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER = 3; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER = 4; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES = 5; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES = 6; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES = 7; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES = 8; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR = 9; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR = 10; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH = 11; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH = 12; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH = 13; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH = 14; + + event DebugEvent(uint256 indexed topic0) anonymous; + /// @dev Minimal constructor that only sets the immutable router address. constructor(address _router) { router = _router; @@ -184,33 +207,46 @@ contract Mirror is IMirror { returns (bytes32) { /// @dev Verify that the transition belongs to this contract. + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID); require(_transition.actorId == address(this), InvalidActorId()); + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID); /// @dev Transfer value to router if valueToReceive is non-zero and has negative sign. + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER); if (_transition.valueToReceiveNegativeSign) { _retrievingEther(_transition.valueToReceive); } + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER); /// @dev Send all outgoing messages. + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES); bytes32 messagesHashesHash = _sendMessages(_transition.messages); + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES); /// @dev Send value for each claim. + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES); bytes32 valueClaimsHash = _claimValues(_transition.valueClaims); + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES); /// @dev Set inheritor if exited. + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR); if (_transition.exited) { _setInheritor(_transition.inheritor); } else { require(_transition.inheritor == address(0), InheritorMustBeZero()); } + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR); /// @dev Update the state hash if changed. + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH); if (stateHash != _transition.newStateHash) { _updateStateHash(_transition.newStateHash); } + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH); /// @dev Return hash of performed state transition. - return Gear.stateTransitionHash( + // emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH); + bytes32 _stateTransitionHash = Gear.stateTransitionHash( _transition.actorId, _transition.newStateHash, _transition.exited, @@ -220,6 +256,8 @@ contract Mirror is IMirror { valueClaimsHash, messagesHashesHash ); + // emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH); + return _stateTransitionHash; } // # Private calls diff --git a/ethexe/contracts/src/POAMiddleware.sol b/ethexe/contracts/src/POAMiddleware.sol index b4d6c234540..26fc627a531 100644 --- a/ethexe/contracts/src/POAMiddleware.sol +++ b/ethexe/contracts/src/POAMiddleware.sol @@ -1,10 +1,6 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {IMiddleware} from "./IMiddleware.sol"; -import {IPOAMiddleware} from "./IPOAMiddleware.sol"; -import {Gear} from "./libraries/Gear.sol"; -import {MapWithTimeData} from "./libraries/MapWithTimeData.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import { ReentrancyGuardTransientUpgradeable @@ -13,6 +9,10 @@ import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeab import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; +import {IMiddleware} from "src/IMiddleware.sol"; +import {IPOAMiddleware} from "src/IPOAMiddleware.sol"; +import {Gear} from "src/libraries/Gear.sol"; +import {MapWithTimeData} from "src/libraries/MapWithTimeData.sol"; import {Subnetwork} from "symbiotic-core/src/contracts/libraries/Subnetwork.sol"; contract POAMiddleware is diff --git a/ethexe/contracts/src/Router.sol b/ethexe/contracts/src/Router.sol index c977d87d6c6..492ebec8524 100644 --- a/ethexe/contracts/src/Router.sol +++ b/ethexe/contracts/src/Router.sol @@ -1,13 +1,6 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {IMiddleware} from "./IMiddleware.sol"; -import {IMirror} from "./IMirror.sol"; -import {IRouter} from "./IRouter.sol"; -import {Clones} from "./libraries/Clones.sol"; -import {ClonesSmall} from "./libraries/ClonesSmall.sol"; -import {Gear} from "./libraries/Gear.sol"; -import {SSTORE2} from "./libraries/SSTORE2.sol"; import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; import { @@ -20,6 +13,13 @@ import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; import {FROST} from "frost-secp256k1-evm/FROST.sol"; import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; import {Hashes} from "frost-secp256k1-evm/utils/cryptography/Hashes.sol"; +import {IMiddleware} from "src/IMiddleware.sol"; +import {IMirror} from "src/IMirror.sol"; +import {IRouter} from "src/IRouter.sol"; +import {Clones} from "src/libraries/Clones.sol"; +import {ClonesSmall} from "src/libraries/ClonesSmall.sol"; +import {Gear} from "src/libraries/Gear.sol"; +import {SSTORE2} from "src/libraries/SSTORE2.sol"; contract Router is IRouter, @@ -33,6 +33,11 @@ contract Router is // keccak256(abi.encode(uint256(keccak256("router.storage.Transient")) - 1)) & ~bytes32(uint256(0xff)) bytes32 private constant TRANSIENT_STORAGE = 0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00; + uint256 public constant COMMIT_BATCH_BEFORE_COMMIT_CODES = 1; + uint256 public constant COMMIT_BATCH_AFTER_COMMIT_CODES = 2; + + event DebugEvent(uint256 indexed topic0) anonymous; + /// @custom:oz-upgrades-unsafe-allow constructor constructor() { _disableInitializers(); @@ -364,7 +369,11 @@ contract Router is require(router.latestCommittedBatch.timestamp <= _batch.blockTimestamp, BatchTimestampTooEarly()); bytes32 _chainCommitmentHash = _commitChain(router, _batch); + + // emit DebugEvent(COMMIT_BATCH_BEFORE_COMMIT_CODES); bytes32 _codeCommitmentsHash = _commitCodes(router, _batch); + // emit DebugEvent(COMMIT_BATCH_AFTER_COMMIT_CODES); + bytes32 _rewardsCommitmentHash = _commitRewards(router, _batch); bytes32 _validatorsCommitmentHash = _commitValidators(router, _batch); diff --git a/ethexe/contracts/src/instrumented/MirrorWithInstrumentation.sol b/ethexe/contracts/src/instrumented/MirrorWithInstrumentation.sol new file mode 100644 index 00000000000..1a97cbde76f --- /dev/null +++ b/ethexe/contracts/src/instrumented/MirrorWithInstrumentation.sol @@ -0,0 +1,592 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.33; + +import {ERC1967Utils} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol"; +import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; +import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; +import {Hashes} from "frost-secp256k1-evm/utils/cryptography/Hashes.sol"; +import {ICallbacks} from "src/ICallbacks.sol"; +import {IMirror} from "src/IMirror.sol"; +import {IRouter} from "src/IRouter.sol"; +import {IWrappedVara} from "src/IWrappedVara.sol"; +import {Gear} from "src/libraries/Gear.sol"; + +contract MirrorWithInstrumentation is IMirror { + /// @dev Special address to which Sails contract sends messages so that Mirror can decode events: + /// https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs + address internal constant ETH_EVENT_ADDR = 0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF; + + /// forge-lint: disable-next-item(screaming-snake-case-immutable) + /// @dev Address of the router contract, which is the sole authority. + address public immutable router; + + /// @dev Program's current state hash. + bytes32 public stateHash; + + /// @dev Source for message ids unique generation. + /// In-fact represents amount of messages received from Ethereum. + /// Zeroed nonce is always represent init message. + uint256 public nonce; + + /// @dev The bool flag indicates whether the program is exited. + bool public exited; + + // TODO (breathx): consider proxying there. + /// @dev The address of the inheritor, which is set by the program on exit. + address public inheritor; + + /// @dev The address eligible to send first (init) message. + address public initializer; + + /// @dev The bool flag indicates whether to process arbitrary calls as `sendMessage` payload. + bool isSmall; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID = 1; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID = 2; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER = 3; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER = 4; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES = 5; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES = 6; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES = 7; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES = 8; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR = 9; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR = 10; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH = 11; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH = 12; + + uint256 internal constant PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH = 13; + uint256 internal constant PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH = 14; + + event DebugEvent(uint256 indexed topic0) anonymous; + + /// @dev Minimal constructor that only sets the immutable router address. + constructor(address _router) { + router = _router; + } + + /// @dev Functions marked with this modifier can only be called if the init message has been created before. + modifier onlyAfterInitMessage() { + _onlyAfterInitMessage(); + _; + } + + function _onlyAfterInitMessage() internal view { + require(nonce > 0, InitMessageNotCreated()); + } + + /// @dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer. + modifier onlyAfterInitMessageOrInitializer() { + _onlyAfterInitMessageOrInitializer(); + _; + } + + function _onlyAfterInitMessageOrInitializer() internal view { + require(nonce > 0 || msg.sender == initializer, InitMessageNotCreatedAndCallerNotInitializer()); + } + + /// @dev Functions marked with this modifier can only be called if program is active. + modifier onlyIfActive() { + _onlyIfActive(); + _; + } + + function _onlyIfActive() internal view { + require(!exited, ProgramExited()); + } + + /// @dev Functions marked with this modifier can only be called if program is exited. + modifier onlyIfExited() { + _onlyIfExited(); + _; + } + + function _onlyIfExited() internal view { + require(exited, ProgramNotExited()); + } + + /// @dev Functions marked with this modifier can only be called by the router. + modifier onlyRouter() { + _onlyRouter(); + _; + } + + function _onlyRouter() internal view { + require(msg.sender == router, CallerNotRouter()); + } + + modifier whenNotPaused() { + _whenNotPaused(); + _; + } + + function _whenNotPaused() internal view { + require(!IRouter(router).paused(), EnforcedPause()); + } + + /// @dev Non-zero Vara value must be transferred from source to router in functions marked with this modifier. + modifier retrievingVara(uint128 value) { + _retrievingVara(value); + _; + } + + function _retrievingVara(uint128 value) internal { + if (value != 0) { + bool success = _wvara(router).transferFrom(msg.sender, router, value); + require(success, WVaraTransferFailed()); + } + } + + /// @dev Non-zero Ether value must be transferred from source to router in functions marked with this modifier. + function _retrievingEther(uint128 value) internal { + if (value != 0) { + (bool success,) = router.call{value: value}(""); + require(success, EtherTransferToRouterFailed()); + } + } + + // # External calls. Primary Gear logic. + + function sendMessage(bytes calldata _payload, bool _callReply) external payable whenNotPaused returns (bytes32) { + return _sendMessage(_payload, _callReply); + } + + function sendReply(bytes32 _repliedTo, bytes calldata _payload) + external + payable + whenNotPaused + onlyIfActive + onlyAfterInitMessage + { + uint128 _value = uint128(msg.value); + + _retrievingEther(_value); + + emit ReplyQueueingRequested(_repliedTo, msg.sender, _payload, _value); + } + + // TODO (breathx): consider and support claimValue after exit. + function claimValue(bytes32 _claimedId) external whenNotPaused onlyIfActive onlyAfterInitMessage { + emit ValueClaimingRequested(_claimedId, msg.sender); + } + + function executableBalanceTopUp(uint128 _value) external whenNotPaused onlyIfActive retrievingVara(_value) { + emit ExecutableBalanceTopUpRequested(_value); + } + + function transferLockedValueToInheritor() external whenNotPaused { + (, bool success) = _transferLockedValueToInheritor(); + require(success, TransferLockedValueToInheritorExternalFailed()); + } + + /* Router-driven state and funds management */ + + function initialize(address _initializer, address _abiInterface, bool _isSmall) public onlyRouter { + require(initializer == address(0), InitializerAlreadySet()); + + require(!isSmall, IsSmallAlreadySet()); + + StorageSlot.AddressSlot storage implementationSlot = + StorageSlot.getAddressSlot(ERC1967Utils.IMPLEMENTATION_SLOT); + + require(implementationSlot.value == address(0), AbiInterfaceAlreadySet()); + + initializer = _initializer; + isSmall = _isSmall; + implementationSlot.value = _abiInterface; + } + + function performStateTransition(Gear.StateTransition calldata _transition) + external + payable + onlyRouter + returns (bytes32) + { + /// @dev Verify that the transition belongs to this contract. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID); + require(_transition.actorId == address(this), InvalidActorId()); + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID); + + /// @dev Transfer value to router if valueToReceive is non-zero and has negative sign. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER); + if (_transition.valueToReceiveNegativeSign) { + _retrievingEther(_transition.valueToReceive); + } + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER); + + /// @dev Send all outgoing messages. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES); + bytes32 messagesHashesHash = _sendMessages(_transition.messages); + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES); + + /// @dev Send value for each claim. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES); + bytes32 valueClaimsHash = _claimValues(_transition.valueClaims); + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES); + + /// @dev Set inheritor if exited. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR); + if (_transition.exited) { + _setInheritor(_transition.inheritor); + } else { + require(_transition.inheritor == address(0), InheritorMustBeZero()); + } + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR); + + /// @dev Update the state hash if changed. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH); + if (stateHash != _transition.newStateHash) { + _updateStateHash(_transition.newStateHash); + } + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH); + + /// @dev Return hash of performed state transition. + emit DebugEvent(PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH); + bytes32 _stateTransitionHash = Gear.stateTransitionHash( + _transition.actorId, + _transition.newStateHash, + _transition.exited, + _transition.inheritor, + _transition.valueToReceive, + _transition.valueToReceiveNegativeSign, + valueClaimsHash, + messagesHashesHash + ); + emit DebugEvent(PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH); + return _stateTransitionHash; + } + + // # Private calls + + function _transferLockedValueToInheritor() private onlyIfExited returns (uint128, bool) { + uint256 balance = address(this).balance; + // casting to 'uint128' is safe because ETH supply is less than `type(uint128).max` + // forge-lint: disable-next-line(unsafe-typecast) + uint128 balance128 = uint128(balance); + return (balance128, _transferEther(inheritor, balance128)); + } + + function _sendMessage(bytes calldata _payload, bool _callReply) + private + onlyIfActive + onlyAfterInitMessageOrInitializer + returns (bytes32) + { + uint128 _value = uint128(msg.value); + + _retrievingEther(_value); + + uint256 _nonce = nonce; + bytes32 id; + assembly ("memory-safe") { + mstore(0x00, shl(96, address())) + mstore(0x14, _nonce) + id := keccak256(0x00, 0x34) + } + nonce++; + + emit MessageQueueingRequested(id, msg.sender, _payload, _value, _callReply); + + return id; + } + + // TODO (breathx): consider when to emit event: on success in decoder, on failure etc. + // TODO (breathx): make decoder gas configurable. + // TODO (breathx): handle if goes to mailbox or not. + function _sendMessages(Gear.Message[] calldata _messages) private returns (bytes32) { + uint256 messagesLen = _messages.length; + uint256 messagesHashesSize = messagesLen * 32; + uint256 messagesHashesMemPtr = Memory.allocate(messagesHashesSize); + uint256 offset = 0; + + for (uint256 i = 0; i < messagesLen; i++) { + Gear.Message calldata message = _messages[i]; + + // get the hash for this message + bytes32 messageHash = Gear.messageHash(message); + // store it at messagesHashes[offset : offset+32] + Memory.writeWordAsBytes32(messagesHashesMemPtr, offset, messageHash); + unchecked { + offset += 32; + } + + // send the message + if (message.replyDetails.to == 0) { + _sendMailboxedMessage(message); + } else { + _sendReplyMessage(message); + } + } + + return Hashes.efficientKeccak256AsBytes32(messagesHashesMemPtr, 0, messagesHashesSize); + } + + /// @dev Value never sent since goes to mailbox. + function _sendMailboxedMessage(Gear.Message calldata _message) private { + if (!_tryParseAndEmitSailsEvent(_message)) { + if (_message.call) { + (bool success,) = _message.destination.call{gas: 500_000}(_message.payload); + + if (!success) { + /// @dev In case of failed call, we emit appropriate event to inform external users. + emit MessageCallFailed(_message.id, _message.destination, _message.value); + + return; + } + } + + emit Message(_message.id, _message.destination, _message.payload, _message.value); + } + } + + /// @dev Tries to parse and emit Sails Event. Returns `true` in case of success and `false` in case of error. + function _tryParseAndEmitSailsEvent(Gear.Message calldata _message) private returns (bool) { + bytes calldata payload = _message.payload; + + // The format in which the Sails contract sends events is as follows: + // - `uint8 topicsLength` (can be `1`, `2`, `3`, `4`). + // specifies which opcode (`log1`, `log2`, `log3`, `log4`) should be called. + // - `bytes32 topic1` (required) + // should never match our event selectors! + // - `bytes32 topic2` (optional) + // - `bytes32 topic3` (optional) + // - `bytes32 topic4` (optional) + // - `bytes payload` (optional) + // contains encoded data of event in form of `abi.encode(...)`. + if (!(_message.destination == ETH_EVENT_ADDR && _message.value == 0 && payload.length > 0)) { + return false; + } + + uint256 topicsLength; + assembly ("memory-safe") { + // `248` right bit shift is required to remove extra bits since `calldataload` returns `uint256` + topicsLength := shr(248, calldataload(payload.offset)) + } + + if (!(topicsLength >= 1 && topicsLength <= 4)) { + return false; + } + + uint256 topicsLengthInBytes; + unchecked { + topicsLengthInBytes = 1 + topicsLength * 32; + } + + if (!(payload.length >= topicsLengthInBytes)) { + return false; + } + + // we use offset 1 to skip `uint8 topicsLength` + bytes32 topic1; + assembly ("memory-safe") { + topic1 := calldataload(add(payload.offset, 1)) + } + + /** + * @dev SECURITY: + * Very important check because custom events can match our hashes! + * If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic! + * + * Command to re-generate selectors check: + * ```bash + * grep -Po " event\s+\K[^(]+" ethexe/contracts/src/IMirror.sol | xargs -I{} echo " topic1 != {}.selector &&" | sed '$ s/ &&$//' + * ``` + */ + // forgefmt: disable-start + if (!( + topic1 != StateChanged.selector && + topic1 != MessageQueueingRequested.selector && + topic1 != ReplyQueueingRequested.selector && + topic1 != ValueClaimingRequested.selector && + topic1 != OwnedBalanceTopUpRequested.selector && + topic1 != ExecutableBalanceTopUpRequested.selector && + topic1 != Message.selector && + topic1 != MessageCallFailed.selector && + topic1 != Reply.selector && + topic1 != ReplyCallFailed.selector && + topic1 != ValueClaimed.selector && + topic1 != TransferLockedValueToInheritorFailed.selector && + topic1 != ReplyTransferFailed.selector && + topic1 != ValueClaimFailed.selector + )) { + return false; + } + // forgefmt: disable-end + + uint256 size; + unchecked { + size = payload.length - topicsLengthInBytes; + } + + uint256 memPtr = Memory.allocate(size); + assembly ("memory-safe") { + calldatacopy(memPtr, add(payload.offset, topicsLengthInBytes), size) + } + + // we use offset 1 to skip `uint8 topicsLength` + // regular offsets: `32`, `64`, `96` + bytes32 topic2; + bytes32 topic3; + bytes32 topic4; + assembly ("memory-safe") { + topic2 := calldataload(add(payload.offset, 33)) + topic3 := calldataload(add(payload.offset, 65)) + topic4 := calldataload(add(payload.offset, 97)) + } + + if (topicsLength == 1) { + assembly ("memory-safe") { + log1(memPtr, size, topic1) + } + } else if (topicsLength == 2) { + assembly ("memory-safe") { + log2(memPtr, size, topic1, topic2) + } + } else if (topicsLength == 3) { + assembly ("memory-safe") { + log3(memPtr, size, topic1, topic2, topic3) + } + } else if (topicsLength == 4) { + assembly ("memory-safe") { + log4(memPtr, size, topic1, topic2, topic3, topic4) + } + } + + return true; + } + + /// @dev Non-zero value always sent since never goes to mailbox. + function _sendReplyMessage(Gear.Message calldata _message) private { + if (_message.call) { + bool isSuccessReply = _message.replyDetails.code[0] == 0; + + bytes memory payload; + + if (isSuccessReply) { + payload = _message.payload; + } else { + // TODO (breathx): this should be removed in favor of future sails impl. + // TODO (breathx): consider support value arg. + payload = abi.encodeWithSelector( + ICallbacks.onErrorReply.selector, _message.id, _message.payload, _message.replyDetails.code + ); + } + + (bool success,) = _message.destination.call{gas: 500_000, value: _message.value}(payload); + + if (!success) { + bool transferSuccess = _transferEther(_message.destination, _message.value); + if (!transferSuccess) { + emit ReplyTransferFailed(_message.destination, _message.value); + } + + /// @dev In case of failed call, we emit appropriate event to inform external users. + emit ReplyCallFailed(_message.value, _message.replyDetails.to, _message.replyDetails.code); + } + } else { + bool transferSuccess = _transferEther(_message.destination, _message.value); + if (!transferSuccess) { + emit ReplyTransferFailed(_message.destination, _message.value); + } + + emit Reply(_message.payload, _message.value, _message.replyDetails.to, _message.replyDetails.code); + } + } + + // TODO (breathx): claimValues will fail if the program is exited: keep the funds on router. + function _claimValues(Gear.ValueClaim[] calldata _claims) private returns (bytes32) { + uint256 claimsLen = _claims.length; + uint256 claimsHashesSize = claimsLen * 32; + uint256 claimsHashesMemPtr = Memory.allocate(claimsHashesSize); + uint256 offset = 0; + + for (uint256 i = 0; i < claimsLen; i++) { + Gear.ValueClaim calldata claim = _claims[i]; + bytes32 claimHash = Gear.valueClaimHash(claim.messageId, claim.destination, claim.value); + Memory.writeWordAsBytes32(claimsHashesMemPtr, offset, claimHash); + unchecked { + offset += 32; + } + + bool success = _transferEther(claim.destination, claim.value); + if (success) { + emit ValueClaimed(claim.messageId, claim.value); + } else { + emit ValueClaimFailed(claim.messageId, claim.value); + } + } + + return Hashes.efficientKeccak256AsBytes32(claimsHashesMemPtr, 0, claimsHashesSize); + } + + // TODO (breathx): allow zero inheritor in router. + function _setInheritor(address _inheritor) private onlyIfActive { + /// @dev Set inheritor. + exited = true; + inheritor = _inheritor; + + /// @dev Transfer all available balance to the inheritor. + (uint128 value, bool success) = _transferLockedValueToInheritor(); + if (!success) { + /// @dev In case of failed transfer, we emit appropriate event to inform external users. + emit TransferLockedValueToInheritorFailed(_inheritor, value); + } + } + + function _updateStateHash(bytes32 _stateHash) private { + /// @dev Set state hash. + stateHash = _stateHash; + + /// @dev Emits an event signaling that the state has changed. + emit StateChanged(stateHash); + } + + /* Local helper functions */ + + function _wvara(address routerAddr) private view returns (IWrappedVara) { + address wvaraAddr = IRouter(routerAddr).wrappedVara(); + return IWrappedVara(wvaraAddr); + } + + function _transferEther(address destination, uint128 value) private returns (bool) { + if (value != 0) { + (bool success,) = destination.call{gas: 5_000, value: value}(""); + return success; + } + return true; + } + + fallback() external payable whenNotPaused { + if (msg.value > 0 && msg.data.length == 0) { + uint128 value = uint128(msg.value); + + emit OwnedBalanceTopUpRequested(value); + } else if (!isSmall && msg.data.length >= 0x24) { + // We only allow arbitrary calls to full mirror contracts, which are + // more likely to come from their ERC1967 implementor. + + // The minimum call data length is 0x24 (36 bytes) because: + // - 0x04 (4 bytes) for the function selector [0x00..0x04) + // - 0x20 (32 bytes) for the bool `callReply` [0x04..0x24) + + uint256 callReply; + + assembly ("memory-safe") { + callReply := calldataload(0x04) + } + + bytes32 messageId = _sendMessage(msg.data, callReply != 0); + + assembly ("memory-safe") { + mstore(0x00, messageId) + return(0x00, 0x20) + } + } else { + revert InvalidFallbackCall(); + } + } +} diff --git a/ethexe/contracts/src/instrumented/RouterWithInstrumentation.sol b/ethexe/contracts/src/instrumented/RouterWithInstrumentation.sol new file mode 100644 index 00000000000..c5f34aa7e2b --- /dev/null +++ b/ethexe/contracts/src/instrumented/RouterWithInstrumentation.sol @@ -0,0 +1,639 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.33; + +import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import {PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol"; +import { + ReentrancyGuardTransientUpgradeable +} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; +import {SlotDerivation} from "@openzeppelin/contracts/utils/SlotDerivation.sol"; +import {StorageSlot} from "@openzeppelin/contracts/utils/StorageSlot.sol"; +import {FROST} from "frost-secp256k1-evm/FROST.sol"; +import {Memory} from "frost-secp256k1-evm/utils/Memory.sol"; +import {Hashes} from "frost-secp256k1-evm/utils/cryptography/Hashes.sol"; +import {IMiddleware} from "src/IMiddleware.sol"; +import {IMirror} from "src/IMirror.sol"; +import {IRouter} from "src/IRouter.sol"; +import {Clones} from "src/libraries/Clones.sol"; +import {ClonesSmall} from "src/libraries/ClonesSmall.sol"; +import {Gear} from "src/libraries/Gear.sol"; +import {SSTORE2} from "src/libraries/SSTORE2.sol"; + +contract RouterWithInstrumentation is + IRouter, + OwnableUpgradeable, + PausableUpgradeable, + ReentrancyGuardTransientUpgradeable, + UUPSUpgradeable +{ + // keccak256(abi.encode(uint256(keccak256("router.storage.Slot")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant SLOT_STORAGE = 0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000; + // keccak256(abi.encode(uint256(keccak256("router.storage.Transient")) - 1)) & ~bytes32(uint256(0xff)) + bytes32 private constant TRANSIENT_STORAGE = 0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00; + + uint256 public constant COMMIT_BATCH_BEFORE_COMMIT_CODES = 1; + uint256 public constant COMMIT_BATCH_AFTER_COMMIT_CODES = 2; + + event DebugEvent(uint256 indexed topic0) anonymous; + + /// @custom:oz-upgrades-unsafe-allow constructor + constructor() { + _disableInitializers(); + } + + function initialize( + address _owner, + address _mirror, + address _wrappedVara, + address _middleware, + uint256 _eraDuration, + uint256 _electionDuration, + uint256 _validationDelay, + Gear.AggregatedPublicKey calldata _aggregatedPublicKey, + bytes calldata _verifiableSecretSharingCommitment, + address[] calldata _validators + ) public initializer { + __Ownable_init(_owner); + __Pausable_init(); + __ReentrancyGuardTransient_init(); + + // Because of validator storages impl we have to check, that current timestamp is greater than 0. + require(block.timestamp > 0, InvalidTimestamp()); + require(_electionDuration > 0, InvalidElectionDuration()); + require(_eraDuration > _electionDuration, EraDurationTooShort()); + // _validationDelay must be small enough, + // in order to restrict old era validators to make commitments, which can damage the system. + require(_validationDelay < (_eraDuration - _electionDuration) / 10, ValidationDelayTooBig()); + + _setStorageSlot("router.storage.RouterV1"); + Storage storage router = _router(); + + router.genesisBlock = Gear.newGenesis(); + router.implAddresses = Gear.AddressBook(_mirror, _wrappedVara, _middleware); + router.validationSettings.thresholdNumerator = Gear.VALIDATORS_THRESHOLD_NUMERATOR; + router.validationSettings.thresholdDenominator = Gear.VALIDATORS_THRESHOLD_DENOMINATOR; + router.computeSettings = Gear.defaultComputationSettings(); + router.timelines = Gear.Timelines(_eraDuration, _electionDuration, _validationDelay); + + // Set validators for the era 0. + _resetValidators( + router.validationSettings.validators0, + _aggregatedPublicKey, + _verifiableSecretSharingCommitment, + _validators, + block.timestamp + ); + } + + /// @custom:oz-upgrades-validate-as-initializer + function reinitialize() public onlyOwner reinitializer(2) { + __Ownable_init(owner()); + + Storage storage oldRouter = _router(); + + _setStorageSlot("router.storage.RouterV2"); + Storage storage newRouter = _router(); + + // Set current block as genesis. + newRouter.genesisBlock = Gear.newGenesis(); + + // New router latestCommittedBlock is already zeroed. + + // Copy impl addresses from the old router. + newRouter.implAddresses = oldRouter.implAddresses; + + // Copy signing threshold fraction from the old router. + newRouter.validationSettings.thresholdNumerator = oldRouter.validationSettings.thresholdNumerator; + newRouter.validationSettings.thresholdDenominator = oldRouter.validationSettings.thresholdDenominator; + + // Copy validators from the old router. + // TODO #4557: consider what to do. Maybe we should start reelection process. + // Skipping validators1 copying - means we forget election results + // if an election is already done for the next era. + _resetValidators( + newRouter.validationSettings.validators0, + Gear.currentEraValidators(oldRouter).aggregatedPublicKey, + SSTORE2.read(Gear.currentEraValidators(oldRouter).verifiableSecretSharingCommitmentPointer), + Gear.currentEraValidators(oldRouter).list, + block.timestamp + ); + + // Copy computation settings from the old router. + newRouter.computeSettings = oldRouter.computeSettings; + + // Copy timelines from the old router. + newRouter.timelines = oldRouter.timelines; + + // All protocol data must be removed - so leave it zeroed in new router. + } + + /** + * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. + * Called by {upgradeToAndCall}. + */ + function _authorizeUpgrade(address newImplementation) internal override onlyOwner {} + + // # Views. + + /// @dev Returns the storage view of the contract storage. + function storageView() public view returns (StorageView memory) { + Storage storage router = _router(); + Gear.ValidationSettingsView memory validationSettings = Gear.toView(router.validationSettings); + return StorageView({ + genesisBlock: router.genesisBlock, + latestCommittedBatch: router.latestCommittedBatch, + implAddresses: router.implAddresses, + validationSettings: validationSettings, + computeSettings: router.computeSettings, + timelines: router.timelines, + programsCount: router.protocolData.programsCount, + validatedCodesCount: router.protocolData.validatedCodesCount + }); + } + + function genesisBlockHash() public view returns (bytes32) { + return _router().genesisBlock.hash; + } + + function genesisTimestamp() public view returns (uint48) { + return _router().genesisBlock.timestamp; + } + + function latestCommittedBatchHash() public view returns (bytes32) { + return _router().latestCommittedBatch.hash; + } + + function latestCommittedBatchTimestamp() public view returns (uint48) { + return _router().latestCommittedBatch.timestamp; + } + + function mirrorImpl() public view returns (address) { + return _router().implAddresses.mirror; + } + + function wrappedVara() public view returns (address) { + return _router().implAddresses.wrappedVara; + } + + function middleware() public view returns (address) { + return _router().implAddresses.middleware; + } + + function validatorsAggregatedPublicKey() public view returns (Gear.AggregatedPublicKey memory) { + return Gear.currentEraValidators(_router()).aggregatedPublicKey; + } + + function validatorsVerifiableSecretSharingCommitment() external view returns (bytes memory) { + return SSTORE2.read(Gear.currentEraValidators(_router()).verifiableSecretSharingCommitmentPointer); + } + + function areValidators(address[] calldata _validators) public view returns (bool) { + Gear.Validators storage _currentValidators = Gear.currentEraValidators(_router()); + + for (uint256 i = 0; i < _validators.length; i++) { + if (!_currentValidators.map[_validators[i]]) { + return false; + } + } + + return true; + } + + function isValidator(address _validator) public view returns (bool) { + return Gear.currentEraValidators(_router()).map[_validator]; + } + + function signingThresholdFraction() public view returns (uint128, uint128) { + IRouter.Storage storage router = _router(); + return (router.validationSettings.thresholdNumerator, router.validationSettings.thresholdDenominator); + } + + function validators() public view returns (address[] memory) { + return Gear.currentEraValidators(_router()).list; + } + + function validatorsCount() public view returns (uint256) { + return Gear.currentEraValidators(_router()).list.length; + } + + function validatorsThreshold() public view returns (uint256) { + IRouter.Storage storage router = _router(); + return Gear.validatorsThreshold( + Gear.currentEraValidators(router).list.length, + router.validationSettings.thresholdNumerator, + router.validationSettings.thresholdDenominator + ); + } + + function paused() public view override(IRouter, PausableUpgradeable) returns (bool) { + return super.paused(); + } + + function computeSettings() public view returns (Gear.ComputationSettings memory) { + return _router().computeSettings; + } + + function codeState(bytes32 _codeId) public view returns (Gear.CodeState) { + return _router().protocolData.codes[_codeId]; + } + + function codesStates(bytes32[] calldata _codesIds) public view returns (Gear.CodeState[] memory) { + Storage storage router = _router(); + + Gear.CodeState[] memory res = new Gear.CodeState[](_codesIds.length); + + for (uint256 i = 0; i < _codesIds.length; i++) { + res[i] = router.protocolData.codes[_codesIds[i]]; + } + + return res; + } + + function programCodeId(address _programId) public view returns (bytes32) { + return _router().protocolData.programs[_programId]; + } + + function programsCodeIds(address[] calldata _programsIds) public view returns (bytes32[] memory) { + Storage storage router = _router(); + + bytes32[] memory res = new bytes32[](_programsIds.length); + + for (uint256 i = 0; i < _programsIds.length; i++) { + res[i] = router.protocolData.programs[_programsIds[i]]; + } + + return res; + } + + function programsCount() public view returns (uint256) { + return _router().protocolData.programsCount; + } + + function validatedCodesCount() public view returns (uint256) { + return _router().protocolData.validatedCodesCount; + } + + function timelines() public view returns (Gear.Timelines memory) { + return _router().timelines; + } + + // Owner calls. + function setMirror(address newMirror) external onlyOwner { + _router().implAddresses.mirror = newMirror; + } + + function pause() public onlyOwner { + _pause(); + } + + function unpause() public onlyOwner { + _unpause(); + } + + // # Calls. + function lookupGenesisHash() external whenNotPaused { + Storage storage router = _router(); + + require(router.genesisBlock.hash == bytes32(0), GenesisHashAlreadySet()); + + bytes32 genesisHash = blockhash(router.genesisBlock.number); + + require(genesisHash != bytes32(0), GenesisHashNotFound()); + + router.genesisBlock.hash = blockhash(router.genesisBlock.number); + } + + function requestCodeValidation(bytes32 _codeId) external whenNotPaused { + require(blobhash(0) != 0, BlobNotFound()); + + Storage storage router = _router(); + require(router.genesisBlock.hash != bytes32(0), RouterGenesisHashNotInitialized()); + + require(router.protocolData.codes[_codeId] == Gear.CodeState.Unknown, CodeAlreadyOnValidationOrValidated()); + + router.protocolData.codes[_codeId] = Gear.CodeState.ValidationRequested; + + emit CodeValidationRequested(_codeId); + } + + function createProgram(bytes32 _codeId, bytes32 _salt, address _overrideInitializer) + external + whenNotPaused + returns (address) + { + address mirror = _createProgram(_codeId, _salt, true); + + IMirror(mirror) + .initialize(_overrideInitializer == address(0) ? msg.sender : _overrideInitializer, mirrorImpl(), true); + + return mirror; + } + + function createProgramWithAbiInterface( + bytes32 _codeId, + bytes32 _salt, + address _overrideInitializer, + address _abiInterface + ) external whenNotPaused returns (address) { + address mirror = _createProgram(_codeId, _salt, false); + + IMirror(mirror) + .initialize(_overrideInitializer == address(0) ? msg.sender : _overrideInitializer, _abiInterface, false); + + return mirror; + } + + function commitBatch( + Gear.BatchCommitment calldata _batch, + Gear.SignatureType _signatureType, + bytes[] calldata _signatures + ) external nonReentrant { + Storage storage router = _router(); + + require(router.genesisBlock.hash != bytes32(0), RouterGenesisHashNotInitialized()); + + // `router.reserved` is always `0` but can be overridden in an RPC request + // to estimate gas excluding `Gear.blockIsPredecessor()`. + if (router.reserved == 0) { + require(Gear.blockIsPredecessor(_batch.blockHash, _batch.expiry), PredecessorBlockNotFound()); + require(block.timestamp > _batch.blockTimestamp, BatchTimestampNotInPast()); + } + + // Check that batch correctly references to the previous committed batch. + require( + router.latestCommittedBatch.hash == _batch.previousCommittedBatchHash, InvalidPreviousCommittedBatchHash() + ); + + require(router.latestCommittedBatch.timestamp <= _batch.blockTimestamp, BatchTimestampTooEarly()); + + bytes32 _chainCommitmentHash = _commitChain(router, _batch); + + emit DebugEvent(COMMIT_BATCH_BEFORE_COMMIT_CODES); + bytes32 _codeCommitmentsHash = _commitCodes(router, _batch); + emit DebugEvent(COMMIT_BATCH_AFTER_COMMIT_CODES); + + bytes32 _rewardsCommitmentHash = _commitRewards(router, _batch); + bytes32 _validatorsCommitmentHash = _commitValidators(router, _batch); + + bytes32 _batchHash = Gear.batchCommitmentHash( + _batch.blockHash, + _batch.blockTimestamp, + _batch.previousCommittedBatchHash, + _batch.expiry, + _chainCommitmentHash, + _codeCommitmentsHash, + _rewardsCommitmentHash, + _validatorsCommitmentHash + ); + + router.latestCommittedBatch.hash = _batchHash; + router.latestCommittedBatch.timestamp = _batch.blockTimestamp; + + emit BatchCommitted(_batchHash); + + require( + Gear.validateSignaturesAt( + router, TRANSIENT_STORAGE, _batchHash, _signatureType, _signatures, _batch.blockTimestamp + ), + SignatureVerificationFailed() + ); + } + + /* Helper private functions */ + + function _createProgram(bytes32 _codeId, bytes32 _salt, bool _isSmall) private returns (address) { + Storage storage router = _router(); + require(router.genesisBlock.hash != bytes32(0), RouterGenesisHashNotInitialized()); + + require(router.protocolData.codes[_codeId] == Gear.CodeState.Validated, CodeNotValidated()); + + // Check for duplicate isn't necessary, because `Clones.cloneDeterministic` + // reverts execution in case of address is already taken. + bytes32 salt = Hashes.efficientKeccak256AsBytes32(_codeId, _salt); + address actorId = _isSmall + ? ClonesSmall.cloneDeterministic(address(this), salt) + : Clones.cloneDeterministic(address(this), salt); + + router.protocolData.programs[actorId] = _codeId; + router.protocolData.programsCount++; + + emit ProgramCreated(actorId, _codeId); + + return actorId; + } + + function _commitChain(Storage storage router, Gear.BatchCommitment calldata _batch) private returns (bytes32) { + require(_batch.chainCommitment.length <= 1, TooManyChainCommitments()); + + if (_batch.chainCommitment.length == 0) { + /// forge-lint: disable-next-line(asm-keccak256) + return keccak256(""); + } + + Gear.ChainCommitment calldata _commitment = _batch.chainCommitment[0]; + + bytes32 _transitionsHash = _commitTransitions(router, _commitment.transitions); + + emit AnnouncesCommitted(_commitment.head); + + return Gear.chainCommitmentHash(_transitionsHash, _commitment.head); + } + + function _commitCodes(Storage storage router, Gear.BatchCommitment calldata _batch) private returns (bytes32) { + uint256 codeCommitmentsLen = _batch.codeCommitments.length; + uint256 codeCommitmentsHashSize = codeCommitmentsLen * 32; + uint256 codeCommitmentsPtr = Memory.allocate(codeCommitmentsHashSize); + uint256 offset = 0; + + for (uint256 i = 0; i < codeCommitmentsLen; i++) { + Gear.CodeCommitment calldata _commitment = _batch.codeCommitments[i]; + + require( + router.protocolData.codes[_commitment.id] == Gear.CodeState.ValidationRequested, + CodeValidationNotRequested() + ); + + if (_commitment.valid) { + router.protocolData.codes[_commitment.id] = Gear.CodeState.Validated; + router.protocolData.validatedCodesCount++; + } else { + delete router.protocolData.codes[_commitment.id]; + } + + emit CodeGotValidated(_commitment.id, _commitment.valid); + + bytes32 codeCommitmentHash = Gear.codeCommitmentHash(_commitment.id, _commitment.valid); + Memory.writeWordAsBytes32(codeCommitmentsPtr, offset, codeCommitmentHash); + unchecked { + offset += 32; + } + } + + return Hashes.efficientKeccak256AsBytes32(codeCommitmentsPtr, 0, codeCommitmentsHashSize); + } + + // TODO #4609 + // TODO #4611 + function _commitRewards(Storage storage router, Gear.BatchCommitment calldata _batch) private returns (bytes32) { + require(_batch.rewardsCommitment.length <= 1, TooManyRewardsCommitments()); + + if (_batch.rewardsCommitment.length == 0) { + /// forge-lint: disable-next-line(asm-keccak256) + return keccak256(""); + } + + Gear.RewardsCommitment calldata _commitment = _batch.rewardsCommitment[0]; + + require(_commitment.timestamp < _batch.blockTimestamp, RewardsCommitmentTimestampNotInPast()); + require(_commitment.timestamp >= router.genesisBlock.timestamp, RewardsCommitmentPredatesGenesis()); + + uint256 commitmentEraIndex = Gear.eraIndexAt(router, _commitment.timestamp); + uint256 batchEraIndex = Gear.eraIndexAt(router, _batch.blockTimestamp); + + require(commitmentEraIndex < batchEraIndex, RewardsCommitmentEraNotPrevious()); + + address _middleware = router.implAddresses.middleware; + bool success = IERC20(router.implAddresses.wrappedVara) + .approve(_middleware, _commitment.operators.amount + _commitment.stakers.totalAmount); + require(success, ApproveERC20Failed()); + + bytes32 _operatorRewardsHash = IMiddleware(_middleware) + .distributeOperatorRewards( + router.implAddresses.wrappedVara, _commitment.operators.amount, _commitment.operators.root + ); + + bytes32 _stakerRewardsHash = + IMiddleware(_middleware).distributeStakerRewards(_commitment.stakers, _commitment.timestamp); + + return Gear.rewardsCommitmentHash(_operatorRewardsHash, _stakerRewardsHash, _commitment.timestamp); + } + + /// @dev Set validators for the next era. + function _commitValidators(Storage storage router, Gear.BatchCommitment calldata _batch) private returns (bytes32) { + require(_batch.validatorsCommitment.length <= 1, TooManyValidatorsCommitments()); + + if (_batch.validatorsCommitment.length == 0) { + /// forge-lint: disable-next-line(asm-keccak256) + return keccak256(""); + } + + Gear.ValidatorsCommitment calldata _commitment = _batch.validatorsCommitment[0]; + + require(_commitment.validators.length > 0, EmptyValidatorsList()); + + uint256 currentEraIndex = (block.timestamp - router.genesisBlock.timestamp) / router.timelines.era; + + require(_commitment.eraIndex == currentEraIndex + 1, CommitmentEraNotNext()); + + uint256 nextEraStart = router.genesisBlock.timestamp + router.timelines.era * _commitment.eraIndex; + require(block.timestamp >= nextEraStart - router.timelines.election, ElectionNotStarted()); + + // Maybe free slot for new validators: + Gear.Validators storage _validators = Gear.previousEraValidators(router); + require(_validators.useFromTimestamp < block.timestamp, ValidatorsAlreadyScheduled()); + + _resetValidators( + _validators, + _commitment.aggregatedPublicKey, + _commitment.verifiableSecretSharingCommitment, + _commitment.validators, + nextEraStart + ); + + emit ValidatorsCommittedForEra(_commitment.eraIndex); + + return Gear.validatorsCommitmentHash(_commitment); + } + + function _commitTransitions(Storage storage router, Gear.StateTransition[] calldata _transitions) + private + returns (bytes32) + { + uint256 transitionsLen = _transitions.length; + uint256 transitionsHashSize = transitionsLen * 32; + uint256 transitionsHashesMemPtr = Memory.allocate(transitionsHashSize); + uint256 offset = 0; + + for (uint256 i = 0; i < transitionsLen; i++) { + Gear.StateTransition calldata transition = _transitions[i]; + + require(router.protocolData.programs[transition.actorId] != 0, UnknownProgram()); + + uint128 value = 0; + + if (transition.valueToReceive != 0 && !transition.valueToReceiveNegativeSign) { + value = transition.valueToReceive; + } + + bytes32 transitionHash = IMirror(transition.actorId).performStateTransition{value: value}(transition); + Memory.writeWordAsBytes32(transitionsHashesMemPtr, offset, transitionHash); + unchecked { + offset += 32; + } + } + + return Hashes.efficientKeccak256AsBytes32(transitionsHashesMemPtr, 0, transitionsHashSize); + } + + function _resetValidators( + Gear.Validators storage _validators, + Gear.AggregatedPublicKey memory _newAggregatedPublicKey, + bytes memory _verifiableSecretSharingCommitment, + address[] memory _newValidators, + uint256 _useFromTimestamp + ) private { + // basic checks for aggregated public key + // but it probably should be checked with + // [`frost_core::keys::PublicKeyPackage::{from_commitment, from_dkg_commitments}`] + // https://docs.rs/frost-core/latest/frost_core/keys/struct.PublicKeyPackage.html#method.from_dkg_commitments + // ideally onchain + require( + FROST.isValidPublicKey(_newAggregatedPublicKey.x, _newAggregatedPublicKey.y), + InvalidFROSTAggregatedPublicKey() + ); + _validators.aggregatedPublicKey = _newAggregatedPublicKey; + _validators.verifiableSecretSharingCommitmentPointer = SSTORE2.write(_verifiableSecretSharingCommitment); + for (uint256 i = 0; i < _validators.list.length; i++) { + address _validator = _validators.list[i]; + _validators.map[_validator] = false; + } + for (uint256 i = 0; i < _newValidators.length; i++) { + address _validator = _newValidators[i]; + _validators.map[_validator] = true; + } + _validators.list = _newValidators; + _validators.useFromTimestamp = _useFromTimestamp; + } + + function _router() private view returns (Storage storage router) { + bytes32 slot = _getStorageSlot(); + + assembly ("memory-safe") { + router.slot := slot + } + } + + function _getStorageSlot() private view returns (bytes32) { + return StorageSlot.getBytes32Slot(SLOT_STORAGE).value; + } + + function _setStorageSlot(string memory namespace) private onlyOwner { + bytes32 slot = SlotDerivation.erc7201Slot(namespace); + StorageSlot.getBytes32Slot(SLOT_STORAGE).value = slot; + + emit StorageSlotChanged(slot); + } + + receive() external payable whenNotPaused { + Storage storage router = _router(); + require(router.genesisBlock.hash != bytes32(0), RouterGenesisHashNotInitialized()); + + uint128 value = uint128(msg.value); + require(value > 0, ZeroValueTransfer()); + + address actorId = msg.sender; + require(router.protocolData.programs[actorId] != 0, UnknownProgram()); + } +} diff --git a/ethexe/contracts/test/Middleware.t.sol b/ethexe/contracts/test/Middleware.t.sol index d1a0222b9da..6f434a76d79 100644 --- a/ethexe/contracts/test/Middleware.t.sol +++ b/ethexe/contracts/test/Middleware.t.sol @@ -1,7 +1,6 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {Base} from "./Base.t.sol"; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; import {Vm} from "forge-std/Vm.sol"; @@ -13,6 +12,7 @@ import {IVetoSlasher} from "symbiotic-core/src/interfaces/slasher/IVetoSlasher.s import {IVault} from "symbiotic-core/src/interfaces/vault/IVault.sol"; import {IVault} from "symbiotic-core/src/interfaces/vault/IVault.sol"; import {POCBaseTest} from "symbiotic-core/test/POCBase.t.sol"; +import {Base} from "test/Base.t.sol"; contract MiddlewareTest is Base { using MessageHashUtils for address; diff --git a/ethexe/contracts/test/POC.t.sol b/ethexe/contracts/test/POC.t.sol index 6b42414a8a9..b3a09e589ed 100644 --- a/ethexe/contracts/test/POC.t.sol +++ b/ethexe/contracts/test/POC.t.sol @@ -1,7 +1,6 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {Base} from "./Base.t.sol"; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {EnumerableMap} from "@openzeppelin/contracts/utils/structs/EnumerableMap.sol"; import {Vm} from "forge-std/Vm.sol"; @@ -9,6 +8,7 @@ import {FROSTOffchain, SigningKey} from "frost-secp256k1-evm/FROSTOffchain.sol"; import {IRouter} from "src/IRouter.sol"; import {IMirror} from "src/Mirror.sol"; import {Gear} from "src/libraries/Gear.sol"; +import {Base} from "test/Base.t.sol"; contract POCTest is Base { using MessageHashUtils for address; diff --git a/ethexe/contracts/test/Router.t.sol b/ethexe/contracts/test/Router.t.sol index 2db6a309fe7..b4ad73d15a0 100644 --- a/ethexe/contracts/test/Router.t.sol +++ b/ethexe/contracts/test/Router.t.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.33; -import {Base} from "./Base.t.sol"; import {MessageHashUtils} from "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol"; import {Vm} from "forge-std/Test.sol"; import {FROSTOffchain, SigningKey} from "frost-secp256k1-evm/FROSTOffchain.sol"; import {Gear} from "src/libraries/Gear.sol"; +import {Base} from "test/Base.t.sol"; contract RouterTest is Base { using MessageHashUtils for address; diff --git a/ethexe/ethereum/Cargo.toml b/ethexe/ethereum/Cargo.toml index 6632c40aec0..9b37ef9838e 100644 --- a/ethexe/ethereum/Cargo.toml +++ b/ethexe/ethereum/Cargo.toml @@ -25,6 +25,7 @@ alloy = { workspace = true, features = [ "rpc-types-eth", "rpc-client", "signers", + "signer-mnemonic", "kzg", ] } futures.workspace = true @@ -36,6 +37,7 @@ serde.workspace = true nonempty.workspace = true rand.workspace = true gear-workspace-hack.workspace = true +revm.workspace = true [dev-dependencies] alloy = { workspace = true, features = [ diff --git a/ethexe/ethereum/abi/BatchMulticall.json b/ethexe/ethereum/abi/BatchMulticall.json index b6b30bc66f5..b2838d59fd8 100644 --- a/ethexe/ethereum/abi/BatchMulticall.json +++ b/ethexe/ethereum/abi/BatchMulticall.json @@ -1 +1 @@ -{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523460155761093a908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b1461020c5763564abd5f0361000e5760203660031901126101ab5760043567ffffffffffffffff81116101ab576100609036906004016106b7565b61006981610769565b915f915f5b8181106101d957503483116101c2575f5b8181106100f6577fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100c986863481106100ce575b506040519182916020835260208301906106e8565b0390a1005b5f8080806100df6100f09534610890565b335af16100ea61089d565b506108dc565b836100b4565b610101818385610918565b9081356001600160a01b038116908190036101ab578260209161013f6001600160801b03610134604061015b98016107ba565b16928481019061082f565b926040518097819582946242129d60e81b845260048401610862565b03925af180156101b7575f90610181575b6001925061017a82886107ef565b520161007f565b506020823d82116101af575b8161019a6020938361071b565b810103126101ab576001915161016c565b5f80fd5b3d915061018d565b6040513d5f823e3d90fd5b82631c102d6360e21b5f526004523460245260445ffd5b926102056001916001600160801b036101fe60406101f889888a610918565b016107ba565b16906107ce565b930161006e565b60403660031901126101ab576004356001600160a01b038116908190036101ab5760243567ffffffffffffffff81116101ab5761024d9036906004016106b7565b61025681610751565b610263604051918261071b565b81815261026f82610751565b602082019390601f190136853761028583610769565b9260405163088f50cf60e41b81526020816004818a5afa9081156101b7575f91610698575b5090945f926001600160a01b0390921691609e19368290030191845b8881101561061d578060051b830135848112156101ab5783016102f860608201976001600160801b036101fe8a6107ba565b9634881161060657905f929160208d606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101b7575f946105d6575b5061034b838b6107ef565b6001600160a01b0390941693849052608082016001600160801b0361036f826107ba565b166103f5575b509061039d9361013f6001600160801b036103916020956107ba565b1692604081019061082f565b03925af180156101b7575f906103c3575b600192506103bc828b6107ef565b52016102c6565b506020823d82116103ed575b816103dc6020938361071b565b810103126101ab57600191516103ae565b3d91506103cf565b8860206001600160801b03606461040e859796976107ba565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101b7575f916105b8575b5015610573578860206001600160801b03604461045f856107ba565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101b7575f91610545575b50156105095761049d906107ba565b93803b156101ab576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101b7576001600160801b0361039161013f9261039d986020976104f9575b5094955050505093610375565b5f6105039161071b565b5f6104ec565b60405162461bcd60e51b81526020600482015260146024820152731dd590549048185c1c1c9bdd994819985a5b195960621b6044820152606490fd5b610566915060203d811161056c575b61055e818361071b565b810190610817565b8f61048e565b503d610554565b60405162461bcd60e51b815260206004820152601960248201527f7756415241207472616e7366657246726f6d206661696c6564000000000000006044820152606490fd5b6105d0915060203d811161056c5761055e818361071b565b8f610443565b6105f891945060203d81116105ff575b6105f0818361071b565b81019061079b565b928d610340565b503d6105e6565b87631c102d6360e21b5f526004523460245260445ffd5b50858786348110610681575b5060405191604083019060408452518091526060830193905f5b81811061066257848061065e888783820360208501526106e8565b0390f35b82516001600160a01b0316865260209586019590920191600101610643565b5f8080806100df6106929534610890565b83610629565b6106b1915060203d6020116105ff576105f0818361071b565b876102aa565b9181601f840112156101ab5782359167ffffffffffffffff83116101ab576020808501948460051b0101116101ab57565b90602080835192838152019201905f5b8181106107055750505090565b82518452602093840193909201916001016106f8565b90601f8019910116810190811067ffffffffffffffff82111761073d57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161073d5760051b60200190565b9061077382610751565b610780604051918261071b565b8281528092610791601f1991610751565b0190602036910137565b908160209103126101ab57516001600160a01b03811681036101ab5790565b356001600160801b03811681036101ab5790565b919082018092116107db57565b634e487b7160e01b5f52601160045260245ffd5b80518210156108035760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101ab575180151581036101ab5790565b903590601e19813603018212156101ab570180359067ffffffffffffffff82116101ab576020019181360383136101ab57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b919082039182116107db57565b3d156108d7573d9067ffffffffffffffff821161073d57604051916108cc601f8201601f19166020018461071b565b82523d5f602084013e565b606090565b156108e357565b60405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606490fd5b91908110156108035760051b81013590605e19813603018212156101ab57019056","sourceMap":"193:3087:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b1461020c5763564abd5f0361000e5760203660031901126101ab5760043567ffffffffffffffff81116101ab576100609036906004016106b7565b61006981610769565b915f915f5b8181106101d957503483116101c2575f5b8181106100f6577fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100c986863481106100ce575b506040519182916020835260208301906106e8565b0390a1005b5f8080806100df6100f09534610890565b335af16100ea61089d565b506108dc565b836100b4565b610101818385610918565b9081356001600160a01b038116908190036101ab578260209161013f6001600160801b03610134604061015b98016107ba565b16928481019061082f565b926040518097819582946242129d60e81b845260048401610862565b03925af180156101b7575f90610181575b6001925061017a82886107ef565b520161007f565b506020823d82116101af575b8161019a6020938361071b565b810103126101ab576001915161016c565b5f80fd5b3d915061018d565b6040513d5f823e3d90fd5b82631c102d6360e21b5f526004523460245260445ffd5b926102056001916001600160801b036101fe60406101f889888a610918565b016107ba565b16906107ce565b930161006e565b60403660031901126101ab576004356001600160a01b038116908190036101ab5760243567ffffffffffffffff81116101ab5761024d9036906004016106b7565b61025681610751565b610263604051918261071b565b81815261026f82610751565b602082019390601f190136853761028583610769565b9260405163088f50cf60e41b81526020816004818a5afa9081156101b7575f91610698575b5090945f926001600160a01b0390921691609e19368290030191845b8881101561061d578060051b830135848112156101ab5783016102f860608201976001600160801b036101fe8a6107ba565b9634881161060657905f929160208d606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101b7575f946105d6575b5061034b838b6107ef565b6001600160a01b0390941693849052608082016001600160801b0361036f826107ba565b166103f5575b509061039d9361013f6001600160801b036103916020956107ba565b1692604081019061082f565b03925af180156101b7575f906103c3575b600192506103bc828b6107ef565b52016102c6565b506020823d82116103ed575b816103dc6020938361071b565b810103126101ab57600191516103ae565b3d91506103cf565b8860206001600160801b03606461040e859796976107ba565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101b7575f916105b8575b5015610573578860206001600160801b03604461045f856107ba565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101b7575f91610545575b50156105095761049d906107ba565b93803b156101ab576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101b7576001600160801b0361039161013f9261039d986020976104f9575b5094955050505093610375565b5f6105039161071b565b5f6104ec565b60405162461bcd60e51b81526020600482015260146024820152731dd590549048185c1c1c9bdd994819985a5b195960621b6044820152606490fd5b610566915060203d811161056c575b61055e818361071b565b810190610817565b8f61048e565b503d610554565b60405162461bcd60e51b815260206004820152601960248201527f7756415241207472616e7366657246726f6d206661696c6564000000000000006044820152606490fd5b6105d0915060203d811161056c5761055e818361071b565b8f610443565b6105f891945060203d81116105ff575b6105f0818361071b565b81019061079b565b928d610340565b503d6105e6565b87631c102d6360e21b5f526004523460245260445ffd5b50858786348110610681575b5060405191604083019060408452518091526060830193905f5b81811061066257848061065e888783820360208501526106e8565b0390f35b82516001600160a01b0316865260209586019590920191600101610643565b5f8080806100df6106929534610890565b83610629565b6106b1915060203d6020116105ff576105f0818361071b565b876102aa565b9181601f840112156101ab5782359167ffffffffffffffff83116101ab576020808501948460051b0101116101ab57565b90602080835192838152019201905f5b8181106107055750505090565b82518452602093840193909201916001016106f8565b90601f8019910116810190811067ffffffffffffffff82111761073d57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161073d5760051b60200190565b9061077382610751565b610780604051918261071b565b8281528092610791601f1991610751565b0190602036910137565b908160209103126101ab57516001600160a01b03811681036101ab5790565b356001600160801b03811681036101ab5790565b919082018092116107db57565b634e487b7160e01b5f52601160045260245ffd5b80518210156108035760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101ab575180151581036101ab5790565b903590601e19813603018212156101ab570180359067ffffffffffffffff82116101ab576020019181360383136101ab57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b919082039182116107db57565b3d156108d7573d9067ffffffffffffffff821161073d57604051916108cc601f8201601f19166020018461071b565b82523d5f602084013e565b606090565b156108e357565b60405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606490fd5b91908110156108035760051b81013590605e19813603018212156101ab57019056","sourceMap":"193:3087:153:-:0;;;;;;;;;-1:-1:-1;193:3087:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;193:3087:153;;;;;;;;;;;;;;;;;;:::i;:::-;725:27;;;:::i;:::-;763:16;193:3087;795:13;193:3087;810:16;;;;;;909:9;;898:20;;894:96;;193:3087;1020:16;;;;;;1442:34;193:3087;909:9;;;1265:20;;1261:166;;1000:251;193:3087;;;;;;;;;;;;;;:::i;:::-;1442:34;;;193:3087;1261:166;193:3087;909:9;;;1343:20;1382:34;909:9;;1343:20;:::i;:::-;1320:10;:48;;;;:::i;:::-;;1382:34;:::i;:::-;1261:166;;;1038:3;1092:8;;;;;:::i;:::-;193:3087;;;-1:-1:-1;;;;;193:3087:153;;;;;;;;1194:17;193:3087;1194:17;1213:19;-1:-1:-1;;;;;1194:17:153;193:3087;1147:93;1194:17;;;:::i;:::-;193:3087;1213:19;;;;;;:::i;:::-;193:3087;;;;;;;;;;;;1147:93;;193:3087;1147:93;;;:::i;:::-;;;;;;;;;193:3087;1147:93;;;1038:3;193:3087;1115:125;;;;;;:::i;:::-;193:3087;;1005:13;;1147:93;;193:3087;1147:93;;;;;;;;;193:3087;1147:93;;;:::i;:::-;;;193:3087;;;;;;;1147:93;;193:3087;;;;1147:93;;;-1:-1:-1;1147:93:153;;;193:3087;;;;;;;;;894:96;2128:38;;;;193:3087;941:38;193:3087;;909:9;193:3087;;;;941:38;828:3;859:8;847:26;193:3087;859:8;-1:-1:-1;;;;;859:14:153;193:3087;859:8;;;;;:::i;:::-;:14;;:::i;:::-;193:3087;847:26;;:::i;:::-;828:3;193:3087;795:13;;193:3087;;;-1:-1:-1;;193:3087:153;;;;;;-1:-1:-1;;;;;193:3087:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;193:3087:153;;;;1766:27;;;:::i;:::-;193:3087;;;;;;1838:20;;193:3087;1838:20;193:3087;1838:20;;;;;;;;;193:3087;1838:20;;;193:3087;-1:-1:-1;193:3087:153;;;;-1:-1:-1;;;;;193:3087:153;;;;-1:-1:-1;;193:3087:153;;;;;;;1935:3;1917:16;;;;;;193:3087;;;;;;;;;;;;;;2023:39;2035:27;;;;-1:-1:-1;;;;;2035:27:153;;;:::i;2023:39::-;2092:9;;2081:20;;2077:104;;193:3087;;;;;;2215:85;193:3087;;;;;;;;;2215:85;;193:3087;;;2215:85;;193:3087;2262:22;;;193:3087;;;;;2294:4;193:3087;;;;2215:85;;;;;;;193:3087;2215:85;;;1935:3;2314:25;;;;;:::i;:::-;-1:-1:-1;;;;;193:3087:153;;;;;;;2407:28;;;-1:-1:-1;;;;;2407:28:153;;;:::i;:::-;193:3087;2403:424;;1935:3;2903:27;;2877:92;2903:27;2932:29;-1:-1:-1;;;;;2903:27:153;193:3087;2903:27;;:::i;:::-;193:3087;2932:29;193:3087;2932:29;;;;:::i;2877:92::-;;;;;;;;;193:3087;2877:92;;;1935:3;193:3087;2983:25;;;;;;:::i;:::-;193:3087;;1902:13;;2877:92;;193:3087;2877:92;;;;;;;;;193:3087;2877:92;;;:::i;:::-;;;193:3087;;;;;;;2877:92;;;;;-1:-1:-1;2877:92:153;;2403:424;2534:28;193:3087;-1:-1:-1;;;;;2215:85:153;2534:28;;;;;;:::i;:::-;193:3087;;;;;;;;;;;2488:75;;2507:10;193:3087;2488:75;;193:3087;2294:4;193:3087;;;;;;;;;2488:75;;;;;;;193:3087;2488:75;;;2403:424;193:3087;;;;2681:28;193:3087;-1:-1:-1;;;;;193:3087:153;2681:28;;;:::i;:::-;193:3087;;;;;;;;;;;2656:54;;;193:3087;2656:54;;193:3087;;;;;;2656:54;;;;;;;193:3087;2656:54;;;2403:424;193:3087;;;;2783:28;;;:::i;:::-;2753:59;;;;;;-1:-1:-1;;;;;193:3087:153;;;;;;2753:59;;193:3087;;2753:59;;193:3087;;2753:59;193:3087;2753:59;;;;;;;;;;-1:-1:-1;;;;;2903:27:153;2932:29;2753:59;2877:92;2753:59;193:3087;2753:59;;;2403:424;;;;;;;;;;;2753:59;193:3087;2753:59;;;:::i;:::-;;;;193:3087;;;-1:-1:-1;;;193:3087:153;;;;;;;;;;;;-1:-1:-1;;;193:3087:153;;;;2215:85;;193:3087;2656:54;;;;193:3087;2656:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;193:3087;;;-1:-1:-1;;;193:3087:153;;;;;;;;;;;;;;;;;2215:85;;193:3087;2488:75;;;;193:3087;2488:75;;;;;;;;;:::i;:::-;;;;2215:85;;;;;193:3087;2215:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2077:104;2128:38;;;;193:3087;2128:38;193:3087;;2092:9;193:3087;;;;2128:38;1917:16;;;;;2092:9;3033:20;;3029:166;;1897:1122;193:3087;;;;;;;;;;;;;;;2035:27;193:3087;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;193:3087:153;;;;;;;;;;;;;;;;3029:166;193:3087;2092:9;;;3111:20;3150:34;2092:9;;3111:20;:::i;3150:34::-;3029:166;;;1838:20;;;;193:3087;1838:20;193:3087;1838:20;;;;;;;:::i;:::-;;;;193:3087;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;193:3087:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;193:3087:153;;;;;-1:-1:-1;193:3087:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;193:3087:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;193:3087:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;193:3087:153;;;;;:::i;:::-;;;;-1:-1:-1;193:3087:153;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;193:3087:153;;;;;;;;;;;;-1:-1:-1;;;193:3087:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0xffca7570fd8a6510550650b3ee84b980d3e1718a89f7415eb6536f7a3f52264d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://eb6388678281694fb51648a18c6782a5eabe0c49a10528fc25a3077ec0a73e88\",\"dweb:/ipfs/QmVXHYt9TMnG9E8UVqwo68ptuXWQUu6smzAR4gjKYFypuJ\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xb69ad2881333c466b4c115dce8795ed1f21b52b00fbc929b5d0c76ee336f253b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://25f1d70354c1b804b0de6c779690401a9043037e26ee8bf0d55bc1bdd0c1a876\",\"dweb:/ipfs/QmS9DmLZHTSovhwyHykzCQf73yie2NBFN5qTEDdBiuAGpg\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a\",\"dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808\",\"dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0xffca7570fd8a6510550650b3ee84b980d3e1718a89f7415eb6536f7a3f52264d","urls":["bzz-raw://eb6388678281694fb51648a18c6782a5eabe0c49a10528fc25a3077ec0a73e88","dweb:/ipfs/QmVXHYt9TMnG9E8UVqwo68ptuXWQUu6smzAR4gjKYFypuJ"],"license":"UNLICENSED"},"src/IMirror.sol":{"keccak256":"0xb69ad2881333c466b4c115dce8795ed1f21b52b00fbc929b5d0c76ee336f253b","urls":["bzz-raw://25f1d70354c1b804b0de6c779690401a9043037e26ee8bf0d55bc1bdd0c1a876","dweb:/ipfs/QmS9DmLZHTSovhwyHykzCQf73yie2NBFN5qTEDdBiuAGpg"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa","urls":["bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a","dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd","urls":["bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808","dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73032,"exportedSymbols":{"BatchMulticall":[73031],"IMirror":[73658],"IRouter":[74052],"IWrappedVara":[74063]},"nodeType":"SourceUnit","src":"39:3242:153","nodes":[{"id":72670,"nodeType":"PragmaDirective","src":"39:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":72672,"nodeType":"ImportDirective","src":"65:38:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":73032,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":72671,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"73:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72674,"nodeType":"ImportDirective","src":"104:38:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":73032,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":72673,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"112:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72676,"nodeType":"ImportDirective","src":"143:48:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73032,"sourceUnit":74064,"symbolAliases":[{"foreign":{"id":72675,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"151:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73031,"nodeType":"ContractDefinition","src":"193:3087:153","nodes":[{"id":72682,"nodeType":"ErrorDefinition","src":"223:58:153","nodes":[],"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"229:17:153","parameters":{"id":72681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72678,"mutability":"mutable","name":"expected","nameLocation":"255:8:153","nodeType":"VariableDeclaration","scope":72682,"src":"247:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72677,"name":"uint256","nodeType":"ElementaryTypeName","src":"247:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72680,"mutability":"mutable","name":"actual","nameLocation":"273:6:153","nodeType":"VariableDeclaration","scope":72682,"src":"265:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72679,"name":"uint256","nodeType":"ElementaryTypeName","src":"265:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"246:34:153"}},{"id":72687,"nodeType":"EventDefinition","src":"287:51:153","nodes":[],"anonymous":false,"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"293:22:153","parameters":{"id":72686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72685,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"326:10:153","nodeType":"VariableDeclaration","scope":72687,"src":"316:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"316:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72684,"nodeType":"ArrayTypeName","src":"316:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"315:22:153"}},{"id":72694,"nodeType":"StructDefinition","src":"344:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","members":[{"constant":false,"id":72689,"mutability":"mutable","name":"mirror","nameLocation":"381:6:153","nodeType":"VariableDeclaration","scope":72694,"src":"373:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72688,"name":"address","nodeType":"ElementaryTypeName","src":"373:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72691,"mutability":"mutable","name":"payload","nameLocation":"403:7:153","nodeType":"VariableDeclaration","scope":72694,"src":"397:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":72690,"name":"bytes","nodeType":"ElementaryTypeName","src":"397:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":72693,"mutability":"mutable","name":"value","nameLocation":"428:5:153","nodeType":"VariableDeclaration","scope":72694,"src":"420:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":72692,"name":"uint128","nodeType":"ElementaryTypeName","src":"420:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"351:11:153","scope":73031,"visibility":"public"},{"id":72705,"nodeType":"StructDefinition","src":"446:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","members":[{"constant":false,"id":72696,"mutability":"mutable","name":"codeId","nameLocation":"489:6:153","nodeType":"VariableDeclaration","scope":72705,"src":"481:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":72695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"481:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":72698,"mutability":"mutable","name":"salt","nameLocation":"513:4:153","nodeType":"VariableDeclaration","scope":72705,"src":"505:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":72697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"505:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":72700,"mutability":"mutable","name":"initPayload","nameLocation":"533:11:153","nodeType":"VariableDeclaration","scope":72705,"src":"527:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":72699,"name":"bytes","nodeType":"ElementaryTypeName","src":"527:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":72702,"mutability":"mutable","name":"initValue","nameLocation":"562:9:153","nodeType":"VariableDeclaration","scope":72705,"src":"554:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":72701,"name":"uint128","nodeType":"ElementaryTypeName","src":"554:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":72704,"mutability":"mutable","name":"topUpValue","nameLocation":"589:10:153","nodeType":"VariableDeclaration","scope":72705,"src":"581:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":72703,"name":"uint128","nodeType":"ElementaryTypeName","src":"581:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"453:17:153","scope":73031,"visibility":"public"},{"id":72825,"nodeType":"FunctionDefinition","src":"612:871:153","nodes":[],"body":{"id":72824,"nodeType":"Block","src":"685:798:153","nodes":[],"statements":[{"assignments":[72716],"declarations":[{"constant":false,"id":72716,"mutability":"mutable","name":"messageIds","nameLocation":"712:10:153","nodeType":"VariableDeclaration","scope":72824,"src":"695:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"695:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72715,"nodeType":"ArrayTypeName","src":"695:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":72723,"initialValue":{"arguments":[{"expression":{"id":72720,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"739:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"745:6:153","memberName":"length","nodeType":"MemberAccess","src":"739:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"725:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":72717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"729:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72718,"nodeType":"ArrayTypeName","src":"729:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":72722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"725:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"695:57:153"},{"assignments":[72725],"declarations":[{"constant":false,"id":72725,"mutability":"mutable","name":"consumed","nameLocation":"771:8:153","nodeType":"VariableDeclaration","scope":72824,"src":"763:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72724,"name":"uint256","nodeType":"ElementaryTypeName","src":"763:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72726,"nodeType":"VariableDeclarationStatement","src":"763:16:153"},{"body":{"id":72745,"nodeType":"Block","src":"833:51:153","statements":[{"expression":{"id":72743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72738,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"847:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":72739,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"859:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72741,"indexExpression":{"id":72740,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72728,"src":"865:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"859:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"868:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":72693,"src":"859:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"847:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72744,"nodeType":"ExpressionStatement","src":"847:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72731,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72728,"src":"810:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72732,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"814:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"820:6:153","memberName":"length","nodeType":"MemberAccess","src":"814:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"810:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72746,"initializationExpression":{"assignments":[72728],"declarations":[{"constant":false,"id":72728,"mutability":"mutable","name":"i","nameLocation":"803:1:153","nodeType":"VariableDeclaration","scope":72746,"src":"795:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72727,"name":"uint256","nodeType":"ElementaryTypeName","src":"795:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72730,"initialValue":{"hexValue":"30","id":72729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"807:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"795:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":72736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"828:3:153","subExpression":{"id":72735,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72728,"src":"830:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72737,"nodeType":"ExpressionStatement","src":"828:3:153"},"nodeType":"ForStatement","src":"790:94:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72747,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"898:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":72748,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"909:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"913:5:153","memberName":"value","nodeType":"MemberAccess","src":"909:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"898:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72758,"nodeType":"IfStatement","src":"894:96:153","trueBody":{"id":72757,"nodeType":"Block","src":"920:70:153","statements":[{"errorCall":{"arguments":[{"id":72752,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"959:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":72753,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"969:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"973:5:153","memberName":"value","nodeType":"MemberAccess","src":"969:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72751,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72682,"src":"941:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":72755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"941:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":72756,"nodeType":"RevertStatement","src":"934:45:153"}]}},{"body":{"id":72794,"nodeType":"Block","src":"1043:208:153","statements":[{"assignments":[72772],"declarations":[{"constant":false,"id":72772,"mutability":"mutable","name":"messageCall","nameLocation":"1078:11:153","nodeType":"VariableDeclaration","scope":72794,"src":"1057:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":72771,"nodeType":"UserDefinedTypeName","pathNode":{"id":72770,"name":"MessageCall","nameLocations":["1057:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":72694,"src":"1057:11:153"},"referencedDeclaration":72694,"src":"1057:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":72776,"initialValue":{"baseExpression":{"id":72773,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"1092:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72775,"indexExpression":{"id":72774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1098:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1092:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"1057:43:153"},{"expression":{"id":72792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":72777,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72716,"src":"1115:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":72779,"indexExpression":{"id":72778,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1126:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1115:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":72788,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72772,"src":"1213:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1225:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":72691,"src":"1213:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":72790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1234:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":72781,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72772,"src":"1155:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1167:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":72689,"src":"1155:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72780,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"1147:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":72783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":72784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1175:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":73620,"src":"1147:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":72785,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72772,"src":"1194:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1206:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":72693,"src":"1194:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"1147:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1147:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1115:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72793,"nodeType":"ExpressionStatement","src":"1115:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72763,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1020:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72764,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"1024:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1030:6:153","memberName":"length","nodeType":"MemberAccess","src":"1024:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1020:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72795,"initializationExpression":{"assignments":[72760],"declarations":[{"constant":false,"id":72760,"mutability":"mutable","name":"i","nameLocation":"1013:1:153","nodeType":"VariableDeclaration","scope":72795,"src":"1005:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72759,"name":"uint256","nodeType":"ElementaryTypeName","src":"1005:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72762,"initialValue":{"hexValue":"30","id":72761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1017:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1005:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":72768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1038:3:153","subExpression":{"id":72767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1040:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72769,"nodeType":"ExpressionStatement","src":"1038:3:153"},"nodeType":"ForStatement","src":"1000:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72796,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"1265:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72797,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1276:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1280:5:153","memberName":"value","nodeType":"MemberAccess","src":"1276:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1265:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72819,"nodeType":"IfStatement","src":"1261:166:153","trueBody":{"id":72818,"nodeType":"Block","src":"1287:140:153","statements":[{"assignments":[72801,null],"declarations":[{"constant":false,"id":72801,"mutability":"mutable","name":"refunded","nameLocation":"1307:8:153","nodeType":"VariableDeclaration","scope":72818,"src":"1302:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72800,"name":"bool","nodeType":"ElementaryTypeName","src":"1302:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":72812,"initialValue":{"arguments":[{"hexValue":"","id":72810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1365:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":72802,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1320:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1324:6:153","memberName":"sender","nodeType":"MemberAccess","src":"1320:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1331:4:153","memberName":"call","nodeType":"MemberAccess","src":"1320:15:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":72809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":72805,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1343:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1347:5:153","memberName":"value","nodeType":"MemberAccess","src":"1343:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":72807,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"1355:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1343:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1320:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":72811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1320:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1301:67:153"},{"expression":{"arguments":[{"id":72814,"name":"refunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"1390:8:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"526566756e64206661696c6564","id":72815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1400:15:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""},"value":"Refund failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""}],"id":72813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1382:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1382:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72817,"nodeType":"ExpressionStatement","src":"1382:34:153"}]}},{"eventCall":{"arguments":[{"id":72821,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72716,"src":"1465:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":72820,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72687,"src":"1442:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":72822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1442:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72823,"nodeType":"EmitStatement","src":"1437:39:153"}]},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"621:16:153","parameters":{"id":72710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72709,"mutability":"mutable","name":"calls","nameLocation":"661:5:153","nodeType":"VariableDeclaration","scope":72825,"src":"638:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":72707,"nodeType":"UserDefinedTypeName","pathNode":{"id":72706,"name":"MessageCall","nameLocations":["638:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":72694,"src":"638:11:153"},"referencedDeclaration":72694,"src":"638:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":72708,"nodeType":"ArrayTypeName","src":"638:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"637:30:153"},"returnParameters":{"id":72711,"nodeType":"ParameterList","parameters":[],"src":"685:0:153"},"scope":73031,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73026,"nodeType":"FunctionDefinition","src":"1489:1754:153","nodes":[],"body":{"id":73025,"nodeType":"Block","src":"1659:1584:153","nodes":[],"statements":[{"assignments":[72845],"declarations":[{"constant":false,"id":72845,"mutability":"mutable","name":"programIds","nameLocation":"1686:10:153","nodeType":"VariableDeclaration","scope":73025,"src":"1669:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":72843,"name":"address","nodeType":"ElementaryTypeName","src":"1669:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72844,"nodeType":"ArrayTypeName","src":"1669:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":72852,"initialValue":{"arguments":[{"expression":{"id":72849,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"1713:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:6:153","memberName":"length","nodeType":"MemberAccess","src":"1713:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1699:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":72846,"name":"address","nodeType":"ElementaryTypeName","src":"1703:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72847,"nodeType":"ArrayTypeName","src":"1703:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":72851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1699:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1669:57:153"},{"assignments":[72857],"declarations":[{"constant":false,"id":72857,"mutability":"mutable","name":"messageIds","nameLocation":"1753:10:153","nodeType":"VariableDeclaration","scope":73025,"src":"1736:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1736:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72856,"nodeType":"ArrayTypeName","src":"1736:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":72864,"initialValue":{"arguments":[{"expression":{"id":72861,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"1780:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1786:6:153","memberName":"length","nodeType":"MemberAccess","src":"1780:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1766:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":72858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1770:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72859,"nodeType":"ArrayTypeName","src":"1770:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":72863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1766:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1736:57:153"},{"assignments":[72867],"declarations":[{"constant":false,"id":72867,"mutability":"mutable","name":"wvara","nameLocation":"1817:5:153","nodeType":"VariableDeclaration","scope":73025,"src":"1804:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"},"typeName":{"id":72866,"nodeType":"UserDefinedTypeName","pathNode":{"id":72865,"name":"IWrappedVara","nameLocations":["1804:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":74063,"src":"1804:12:153"},"referencedDeclaration":74063,"src":"1804:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":72873,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":72869,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72828,"src":"1838:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":72870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1845:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73877,"src":"1838:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":72871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1838:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72868,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"1825:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$74063_$","typeString":"type(contract IWrappedVara)"}},"id":72872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1825:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"1804:55:153"},{"assignments":[72875],"declarations":[{"constant":false,"id":72875,"mutability":"mutable","name":"consumed","nameLocation":"1878:8:153","nodeType":"VariableDeclaration","scope":73025,"src":"1870:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72874,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72876,"nodeType":"VariableDeclarationStatement","src":"1870:16:153"},{"body":{"id":72995,"nodeType":"Block","src":"1940:1079:153","statements":[{"assignments":[72890],"declarations":[{"constant":false,"id":72890,"mutability":"mutable","name":"createProgramCall","nameLocation":"1981:17:153","nodeType":"VariableDeclaration","scope":72995,"src":"1954:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":72889,"nodeType":"UserDefinedTypeName","pathNode":{"id":72888,"name":"CreateProgramCall","nameLocations":["1954:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":72705,"src":"1954:17:153"},"referencedDeclaration":72705,"src":"1954:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":72894,"initialValue":{"baseExpression":{"id":72891,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"2001:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72893,"indexExpression":{"id":72892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"2007:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2001:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"1954:55:153"},{"expression":{"id":72898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72895,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"2023:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":72896,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2035:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2053:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":72702,"src":"2035:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2023:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72899,"nodeType":"ExpressionStatement","src":"2023:39:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72900,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"2081:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":72901,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2092:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2096:5:153","memberName":"value","nodeType":"MemberAccess","src":"2092:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2081:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72911,"nodeType":"IfStatement","src":"2077:104:153","trueBody":{"id":72910,"nodeType":"Block","src":"2103:78:153","statements":[{"errorCall":{"arguments":[{"id":72905,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"2146:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":72906,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2156:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2160:5:153","memberName":"value","nodeType":"MemberAccess","src":"2156:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72904,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72682,"src":"2128:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":72908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2128:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":72909,"nodeType":"RevertStatement","src":"2121:45:153"}]}},{"assignments":[72913],"declarations":[{"constant":false,"id":72913,"mutability":"mutable","name":"programId","nameLocation":"2203:9:153","nodeType":"VariableDeclaration","scope":72995,"src":"2195:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72912,"name":"address","nodeType":"ElementaryTypeName","src":"2195:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":72925,"initialValue":{"arguments":[{"expression":{"id":72916,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2236:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2254:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":72696,"src":"2236:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":72918,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2262:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2280:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":72698,"src":"2262:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":72922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2294:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}],"id":72921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2286:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":72920,"name":"address","nodeType":"ElementaryTypeName","src":"2286:7:153","typeDescriptions":{}}},"id":72923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2286:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":72914,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72828,"src":"2215:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":72915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2222:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74024,"src":"2215:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":72924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2215:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2195:105:153"},{"expression":{"id":72930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":72926,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72845,"src":"2314:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":72928,"indexExpression":{"id":72927,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"2325:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2314:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72929,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"2330:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2314:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72931,"nodeType":"ExpressionStatement","src":"2314:25:153"},{"assignments":[72934],"declarations":[{"constant":false,"id":72934,"mutability":"mutable","name":"mirror","nameLocation":"2361:6:153","nodeType":"VariableDeclaration","scope":72995,"src":"2353:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"},"typeName":{"id":72933,"nodeType":"UserDefinedTypeName","pathNode":{"id":72932,"name":"IMirror","nameLocations":["2353:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":73658,"src":"2353:7:153"},"referencedDeclaration":73658,"src":"2353:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"visibility":"internal"}],"id":72938,"initialValue":{"arguments":[{"id":72936,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"2378:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72935,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"2370:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":72937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2370:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"2353:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":72942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":72939,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2407:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2425:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2407:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":72941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2438:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2407:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72976,"nodeType":"IfStatement","src":"2403:424:153","trueBody":{"id":72975,"nodeType":"Block","src":"2441:386:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":72946,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2507:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2511:6:153","memberName":"sender","nodeType":"MemberAccess","src":"2507:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72950,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2527:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}],"id":72949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2519:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":72948,"name":"address","nodeType":"ElementaryTypeName","src":"2519:7:153","typeDescriptions":{}}},"id":72951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2519:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":72952,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2534:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2552:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2534:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":72944,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72867,"src":"2488:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":72945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2494:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46159,"src":"2488:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":72954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2488:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7756415241207472616e7366657246726f6d206661696c6564","id":72955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2585:27:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_8afd7245c8e6ab7e9bfe4b209933d7d173e77b53ebd30b2cdf10fa3f883dc117","typeString":"literal_string \"wVARA transferFrom failed\""},"value":"wVARA transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8afd7245c8e6ab7e9bfe4b209933d7d173e77b53ebd30b2cdf10fa3f883dc117","typeString":"literal_string \"wVARA transferFrom failed\""}],"id":72943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2459:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:171:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72957,"nodeType":"ExpressionStatement","src":"2459:171:153"},{"expression":{"arguments":[{"arguments":[{"id":72961,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"2670:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":72962,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2681:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2699:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2681:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":72959,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72867,"src":"2656:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":72960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2662:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46147,"src":"2656:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":72964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2656:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"775641524120617070726f7665206661696c6564","id":72965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2712:22:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ec6a228f7184508cdad91196a24c0dc2cf55d001014c643e60b97e1faf8b7c","typeString":"literal_string \"wVARA approve failed\""},"value":"wVARA approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1ec6a228f7184508cdad91196a24c0dc2cf55d001014c643e60b97e1faf8b7c","typeString":"literal_string \"wVARA approve failed\""}],"id":72958,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2648:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2648:87:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72967,"nodeType":"ExpressionStatement","src":"2648:87:153"},{"expression":{"arguments":[{"expression":{"id":72971,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2783:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2801:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2783:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":72968,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72934,"src":"2753:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":72970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2760:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":73637,"src":"2753:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":72973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2753:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72974,"nodeType":"ExpressionStatement","src":"2753:59:153"}]}},{"assignments":[72978],"declarations":[{"constant":false,"id":72978,"mutability":"mutable","name":"messageId","nameLocation":"2849:9:153","nodeType":"VariableDeclaration","scope":72995,"src":"2841:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":72977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2841:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":72988,"initialValue":{"arguments":[{"expression":{"id":72984,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2932:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2950:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":72700,"src":"2932:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":72986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2963:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":72979,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72934,"src":"2877:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":72980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2884:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":73620,"src":"2877:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":72981,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2903:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2921:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":72702,"src":"2903:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"2877:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2877:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2841:128:153"},{"expression":{"id":72993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":72989,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72857,"src":"2983:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":72991,"indexExpression":{"id":72990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"2994:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2983:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72992,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72978,"src":"2999:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2983:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72994,"nodeType":"ExpressionStatement","src":"2983:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"1917:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72882,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"1921:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:153","memberName":"length","nodeType":"MemberAccess","src":"1921:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1917:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72996,"initializationExpression":{"assignments":[72878],"declarations":[{"constant":false,"id":72878,"mutability":"mutable","name":"i","nameLocation":"1910:1:153","nodeType":"VariableDeclaration","scope":72996,"src":"1902:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72877,"name":"uint256","nodeType":"ElementaryTypeName","src":"1902:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72880,"initialValue":{"hexValue":"30","id":72879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1914:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1902:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":72886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1935:3:153","subExpression":{"id":72885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"1937:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72887,"nodeType":"ExpressionStatement","src":"1935:3:153"},"nodeType":"ForStatement","src":"1897:1122:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72997,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"3033:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3044:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3048:5:153","memberName":"value","nodeType":"MemberAccess","src":"3044:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3033:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73020,"nodeType":"IfStatement","src":"3029:166:153","trueBody":{"id":73019,"nodeType":"Block","src":"3055:140:153","statements":[{"assignments":[73002,null],"declarations":[{"constant":false,"id":73002,"mutability":"mutable","name":"refunded","nameLocation":"3075:8:153","nodeType":"VariableDeclaration","scope":73019,"src":"3070:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73001,"name":"bool","nodeType":"ElementaryTypeName","src":"3070:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73013,"initialValue":{"arguments":[{"hexValue":"","id":73011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3133:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73003,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3088:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3092:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3088:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3099:4:153","memberName":"call","nodeType":"MemberAccess","src":"3088:15:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3111:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3115:5:153","memberName":"value","nodeType":"MemberAccess","src":"3111:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73008,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"3123:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3111:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3088:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3088:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3069:67:153"},{"expression":{"arguments":[{"id":73015,"name":"refunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73002,"src":"3158:8:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"526566756e64206661696c6564","id":73016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3168:15:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""},"value":"Refund failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""}],"id":73014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3150:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":73017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3150:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73018,"nodeType":"ExpressionStatement","src":"3150:34:153"}]}},{"expression":{"components":[{"id":73021,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72845,"src":"3213:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73022,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72857,"src":"3225:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3212:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":72840,"id":73024,"nodeType":"Return","src":"3205:31:153"}]},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"1498:18:153","parameters":{"id":72833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72828,"mutability":"mutable","name":"router","nameLocation":"1525:6:153","nodeType":"VariableDeclaration","scope":73026,"src":"1517:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"},"typeName":{"id":72827,"nodeType":"UserDefinedTypeName","pathNode":{"id":72826,"name":"IRouter","nameLocations":["1517:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"1517:7:153"},"referencedDeclaration":74052,"src":"1517:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"calls","nameLocation":"1562:5:153","nodeType":"VariableDeclaration","scope":73026,"src":"1533:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":72830,"nodeType":"UserDefinedTypeName","pathNode":{"id":72829,"name":"CreateProgramCall","nameLocations":["1533:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":72705,"src":"1533:17:153"},"referencedDeclaration":72705,"src":"1533:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":72831,"nodeType":"ArrayTypeName","src":"1533:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"1516:52:153"},"returnParameters":{"id":72840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73026,"src":"1619:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":72834,"name":"address","nodeType":"ElementaryTypeName","src":"1619:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72835,"nodeType":"ArrayTypeName","src":"1619:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":72839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73026,"src":"1637:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1637:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72838,"nodeType":"ArrayTypeName","src":"1637:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1618:36:153"},"scope":73031,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73030,"nodeType":"FunctionDefinition","src":"3249:29:153","nodes":[],"body":{"id":73029,"nodeType":"Block","src":"3276:2:153","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[],"src":"3256:2:153"},"returnParameters":{"id":73028,"nodeType":"ParameterList","parameters":[],"src":"3276:0:153"},"scope":73031,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[73031],"name":"BatchMulticall","nameLocation":"202:14:153","scope":73032,"usedErrors":[72682],"usedEvents":[72687]}],"license":"UNLICENSED"},"id":153} \ No newline at end of file +{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"createProgramBatch","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.CreateProgramCall[]","components":[{"name":"codeId","type":"bytes32","internalType":"bytes32"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"initPayload","type":"bytes","internalType":"bytes"},{"name":"initValue","type":"uint128","internalType":"uint128"},{"name":"topUpValue","type":"uint128","internalType":"uint128"}]}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"sendMessageBatch","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct BatchMulticall.MessageCall[]","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"}]}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"SendMessageBatchResult","inputs":[{"name":"messageIds","type":"bytes32[]","indexed":false,"internalType":"bytes32[]"}],"anonymous":false},{"type":"error","name":"InsufficientValue","inputs":[{"name":"expected","type":"uint256","internalType":"uint256"},{"name":"actual","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x6080806040523460155761093a908161001a8239f35b5f80fdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b1461020c5763564abd5f0361000e5760203660031901126101ab5760043567ffffffffffffffff81116101ab576100609036906004016106b7565b61006981610769565b915f915f5b8181106101d957503483116101c2575f5b8181106100f6577fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100c986863481106100ce575b506040519182916020835260208301906106e8565b0390a1005b5f8080806100df6100f09534610890565b335af16100ea61089d565b506108dc565b836100b4565b610101818385610918565b9081356001600160a01b038116908190036101ab578260209161013f6001600160801b03610134604061015b98016107ba565b16928481019061082f565b926040518097819582946242129d60e81b845260048401610862565b03925af180156101b7575f90610181575b6001925061017a82886107ef565b520161007f565b506020823d82116101af575b8161019a6020938361071b565b810103126101ab576001915161016c565b5f80fd5b3d915061018d565b6040513d5f823e3d90fd5b82631c102d6360e21b5f526004523460245260445ffd5b926102056001916001600160801b036101fe60406101f889888a610918565b016107ba565b16906107ce565b930161006e565b60403660031901126101ab576004356001600160a01b038116908190036101ab5760243567ffffffffffffffff81116101ab5761024d9036906004016106b7565b61025681610751565b610263604051918261071b565b81815261026f82610751565b602082019390601f190136853761028583610769565b9260405163088f50cf60e41b81526020816004818a5afa9081156101b7575f91610698575b5090945f926001600160a01b0390921691609e19368290030191845b8881101561061d578060051b830135848112156101ab5783016102f860608201976001600160801b036101fe8a6107ba565b9634881161060657905f929160208d606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101b7575f946105d6575b5061034b838b6107ef565b6001600160a01b0390941693849052608082016001600160801b0361036f826107ba565b166103f5575b509061039d9361013f6001600160801b036103916020956107ba565b1692604081019061082f565b03925af180156101b7575f906103c3575b600192506103bc828b6107ef565b52016102c6565b506020823d82116103ed575b816103dc6020938361071b565b810103126101ab57600191516103ae565b3d91506103cf565b8860206001600160801b03606461040e859796976107ba565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101b7575f916105b8575b5015610573578860206001600160801b03604461045f856107ba565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101b7575f91610545575b50156105095761049d906107ba565b93803b156101ab576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101b7576001600160801b0361039161013f9261039d986020976104f9575b5094955050505093610375565b5f6105039161071b565b5f6104ec565b60405162461bcd60e51b81526020600482015260146024820152731dd590549048185c1c1c9bdd994819985a5b195960621b6044820152606490fd5b610566915060203d811161056c575b61055e818361071b565b810190610817565b8f61048e565b503d610554565b60405162461bcd60e51b815260206004820152601960248201527f7756415241207472616e7366657246726f6d206661696c6564000000000000006044820152606490fd5b6105d0915060203d811161056c5761055e818361071b565b8f610443565b6105f891945060203d81116105ff575b6105f0818361071b565b81019061079b565b928d610340565b503d6105e6565b87631c102d6360e21b5f526004523460245260445ffd5b50858786348110610681575b5060405191604083019060408452518091526060830193905f5b81811061066257848061065e888783820360208501526106e8565b0390f35b82516001600160a01b0316865260209586019590920191600101610643565b5f8080806100df6106929534610890565b83610629565b6106b1915060203d6020116105ff576105f0818361071b565b876102aa565b9181601f840112156101ab5782359167ffffffffffffffff83116101ab576020808501948460051b0101116101ab57565b90602080835192838152019201905f5b8181106107055750505090565b82518452602093840193909201916001016106f8565b90601f8019910116810190811067ffffffffffffffff82111761073d57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161073d5760051b60200190565b9061077382610751565b610780604051918261071b565b8281528092610791601f1991610751565b0190602036910137565b908160209103126101ab57516001600160a01b03811681036101ab5790565b356001600160801b03811681036101ab5790565b919082018092116107db57565b634e487b7160e01b5f52601160045260245ffd5b80518210156108035760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101ab575180151581036101ab5790565b903590601e19813603018212156101ab570180359067ffffffffffffffff82116101ab576020019181360383136101ab57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b919082039182116107db57565b3d156108d7573d9067ffffffffffffffff821161073d57604051916108cc601f8201601f19166020018461071b565b82523d5f602084013e565b606090565b156108e357565b60405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606490fd5b91908110156108035760051b81013590605e19813603018212156101ab57019056","sourceMap":"199:3087:153:-:0;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c80633cb1083b1461020c5763564abd5f0361000e5760203660031901126101ab5760043567ffffffffffffffff81116101ab576100609036906004016106b7565b61006981610769565b915f915f5b8181106101d957503483116101c2575f5b8181106100f6577fbf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd06100c986863481106100ce575b506040519182916020835260208301906106e8565b0390a1005b5f8080806100df6100f09534610890565b335af16100ea61089d565b506108dc565b836100b4565b610101818385610918565b9081356001600160a01b038116908190036101ab578260209161013f6001600160801b03610134604061015b98016107ba565b16928481019061082f565b926040518097819582946242129d60e81b845260048401610862565b03925af180156101b7575f90610181575b6001925061017a82886107ef565b520161007f565b506020823d82116101af575b8161019a6020938361071b565b810103126101ab576001915161016c565b5f80fd5b3d915061018d565b6040513d5f823e3d90fd5b82631c102d6360e21b5f526004523460245260445ffd5b926102056001916001600160801b036101fe60406101f889888a610918565b016107ba565b16906107ce565b930161006e565b60403660031901126101ab576004356001600160a01b038116908190036101ab5760243567ffffffffffffffff81116101ab5761024d9036906004016106b7565b61025681610751565b610263604051918261071b565b81815261026f82610751565b602082019390601f190136853761028583610769565b9260405163088f50cf60e41b81526020816004818a5afa9081156101b7575f91610698575b5090945f926001600160a01b0390921691609e19368290030191845b8881101561061d578060051b830135848112156101ab5783016102f860608201976001600160801b036101fe8a6107ba565b9634881161060657905f929160208d606460405180978193631b41e26960e11b8352873560048401528588013560248401523060448401525af19384156101b7575f946105d6575b5061034b838b6107ef565b6001600160a01b0390941693849052608082016001600160801b0361036f826107ba565b166103f5575b509061039d9361013f6001600160801b036103916020956107ba565b1692604081019061082f565b03925af180156101b7575f906103c3575b600192506103bc828b6107ef565b52016102c6565b506020823d82116103ed575b816103dc6020938361071b565b810103126101ab57600191516103ae565b3d91506103cf565b8860206001600160801b03606461040e859796976107ba565b5f60405195869485936323b872dd60e01b85523360048601523060248601521660448401525af19081156101b7575f916105b8575b5015610573578860206001600160801b03604461045f856107ba565b5f604051958694859363095ea7b360e01b85528d60048601521660248401525af19081156101b7575f91610545575b50156105095761049d906107ba565b93803b156101ab576001600160801b03604051956338276aa160e11b87521660048601525f8560248183855af19283156101b7576001600160801b0361039161013f9261039d986020976104f9575b5094955050505093610375565b5f6105039161071b565b5f6104ec565b60405162461bcd60e51b81526020600482015260146024820152731dd590549048185c1c1c9bdd994819985a5b195960621b6044820152606490fd5b610566915060203d811161056c575b61055e818361071b565b810190610817565b8f61048e565b503d610554565b60405162461bcd60e51b815260206004820152601960248201527f7756415241207472616e7366657246726f6d206661696c6564000000000000006044820152606490fd5b6105d0915060203d811161056c5761055e818361071b565b8f610443565b6105f891945060203d81116105ff575b6105f0818361071b565b81019061079b565b928d610340565b503d6105e6565b87631c102d6360e21b5f526004523460245260445ffd5b50858786348110610681575b5060405191604083019060408452518091526060830193905f5b81811061066257848061065e888783820360208501526106e8565b0390f35b82516001600160a01b0316865260209586019590920191600101610643565b5f8080806100df6106929534610890565b83610629565b6106b1915060203d6020116105ff576105f0818361071b565b876102aa565b9181601f840112156101ab5782359167ffffffffffffffff83116101ab576020808501948460051b0101116101ab57565b90602080835192838152019201905f5b8181106107055750505090565b82518452602093840193909201916001016106f8565b90601f8019910116810190811067ffffffffffffffff82111761073d57604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff811161073d5760051b60200190565b9061077382610751565b610780604051918261071b565b8281528092610791601f1991610751565b0190602036910137565b908160209103126101ab57516001600160a01b03811681036101ab5790565b356001600160801b03811681036101ab5790565b919082018092116107db57565b634e487b7160e01b5f52601160045260245ffd5b80518210156108035760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b908160209103126101ab575180151581036101ab5790565b903590601e19813603018212156101ab570180359067ffffffffffffffff82116101ab576020019181360383136101ab57565b92916060816020925f94604088528160408901528388013783828288010152601f8019910116850101930152565b919082039182116107db57565b3d156108d7573d9067ffffffffffffffff821161073d57604051916108cc601f8201601f19166020018461071b565b82523d5f602084013e565b606090565b156108e357565b60405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606490fd5b91908110156108035760051b81013590605e19813603018212156101ab57019056","sourceMap":"199:3087:153:-:0;;;;;;;;;-1:-1:-1;199:3087:153;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:3087:153;;;;;;;;;;;;;;;;;;:::i;:::-;731:27;;;:::i;:::-;769:16;199:3087;801:13;199:3087;816:16;;;;;;915:9;;904:20;;900:96;;199:3087;1026:16;;;;;;1448:34;199:3087;915:9;;;1271:20;;1267:166;;1006:251;199:3087;;;;;;;;;;;;;;:::i;:::-;1448:34;;;199:3087;1267:166;199:3087;915:9;;;1349:20;1388:34;915:9;;1349:20;:::i;:::-;1326:10;:48;;;;:::i;:::-;;1388:34;:::i;:::-;1267:166;;;1044:3;1098:8;;;;;:::i;:::-;199:3087;;;-1:-1:-1;;;;;199:3087:153;;;;;;;;1200:17;199:3087;1200:17;1219:19;-1:-1:-1;;;;;1200:17:153;199:3087;1153:93;1200:17;;;:::i;:::-;199:3087;1219:19;;;;;;:::i;:::-;199:3087;;;;;;;;;;;;1153:93;;199:3087;1153:93;;;:::i;:::-;;;;;;;;;199:3087;1153:93;;;1044:3;199:3087;1121:125;;;;;;:::i;:::-;199:3087;;1011:13;;1153:93;;199:3087;1153:93;;;;;;;;;199:3087;1153:93;;;:::i;:::-;;;199:3087;;;;;;;1153:93;;199:3087;;;;1153:93;;;-1:-1:-1;1153:93:153;;;199:3087;;;;;;;;;900:96;2134:38;;;;199:3087;947:38;199:3087;;915:9;199:3087;;;;947:38;834:3;865:8;853:26;199:3087;865:8;-1:-1:-1;;;;;865:14:153;199:3087;865:8;;;;;:::i;:::-;:14;;:::i;:::-;199:3087;853:26;;:::i;:::-;834:3;199:3087;801:13;;199:3087;;;-1:-1:-1;;199:3087:153;;;;;;-1:-1:-1;;;;;199:3087:153;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;199:3087:153;;;;1772:27;;;:::i;:::-;199:3087;;;;;;1844:20;;199:3087;1844:20;199:3087;1844:20;;;;;;;;;199:3087;1844:20;;;199:3087;-1:-1:-1;199:3087:153;;;;-1:-1:-1;;;;;199:3087:153;;;;-1:-1:-1;;199:3087:153;;;;;;;1941:3;1923:16;;;;;;199:3087;;;;;;;;;;;;;;2029:39;2041:27;;;;-1:-1:-1;;;;;2041:27:153;;;:::i;2029:39::-;2098:9;;2087:20;;2083:104;;199:3087;;;;;;2221:85;199:3087;;;;;;;;;2221:85;;199:3087;;;2221:85;;199:3087;2268:22;;;199:3087;;;;;2300:4;199:3087;;;;2221:85;;;;;;;199:3087;2221:85;;;1941:3;2320:25;;;;;:::i;:::-;-1:-1:-1;;;;;199:3087:153;;;;;;;2413:28;;;-1:-1:-1;;;;;2413:28:153;;;:::i;:::-;199:3087;2409:424;;1941:3;2909:27;;2883:92;2909:27;2938:29;-1:-1:-1;;;;;2909:27:153;199:3087;2909:27;;:::i;:::-;199:3087;2938:29;199:3087;2938:29;;;;:::i;2883:92::-;;;;;;;;;199:3087;2883:92;;;1941:3;199:3087;2989:25;;;;;;:::i;:::-;199:3087;;1908:13;;2883:92;;199:3087;2883:92;;;;;;;;;199:3087;2883:92;;;:::i;:::-;;;199:3087;;;;;;;2883:92;;;;;-1:-1:-1;2883:92:153;;2409:424;2540:28;199:3087;-1:-1:-1;;;;;2221:85:153;2540:28;;;;;;:::i;:::-;199:3087;;;;;;;;;;;2494:75;;2513:10;199:3087;2494:75;;199:3087;2300:4;199:3087;;;;;;;;;2494:75;;;;;;;199:3087;2494:75;;;2409:424;199:3087;;;;2687:28;199:3087;-1:-1:-1;;;;;199:3087:153;2687:28;;;:::i;:::-;199:3087;;;;;;;;;;;2662:54;;;199:3087;2662:54;;199:3087;;;;;;2662:54;;;;;;;199:3087;2662:54;;;2409:424;199:3087;;;;2789:28;;;:::i;:::-;2759:59;;;;;;-1:-1:-1;;;;;199:3087:153;;;;;;2759:59;;199:3087;;2759:59;;199:3087;;2759:59;199:3087;2759:59;;;;;;;;;;-1:-1:-1;;;;;2909:27:153;2938:29;2759:59;2883:92;2759:59;199:3087;2759:59;;;2409:424;;;;;;;;;;;2759:59;199:3087;2759:59;;;:::i;:::-;;;;199:3087;;;-1:-1:-1;;;199:3087:153;;;;;;;;;;;;-1:-1:-1;;;199:3087:153;;;;2221:85;;199:3087;2662:54;;;;199:3087;2662:54;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;199:3087;;;-1:-1:-1;;;199:3087:153;;;;;;;;;;;;;;;;;2221:85;;199:3087;2494:75;;;;199:3087;2494:75;;;;;;;;;:::i;:::-;;;;2221:85;;;;;199:3087;2221:85;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2083:104;2134:38;;;;199:3087;2134:38;199:3087;;2098:9;199:3087;;;;2134:38;1923:16;;;;;2098:9;3039:20;;3035:166;;1903:1122;199:3087;;;;;;;;;;;;;;;2041:27;199:3087;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;199:3087:153;;;;;;;;;;;;;;;;3035:166;199:3087;2098:9;;;3117:20;3156:34;2098:9;;3117:20;:::i;3156:34::-;3035:166;;;1844:20;;;;199:3087;1844:20;199:3087;1844:20;;;;;;;:::i;:::-;;;;199:3087;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;199:3087:153;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;199:3087:153;;;;;-1:-1:-1;199:3087:153;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;199:3087:153;;;;;;;:::o;:::-;;-1:-1:-1;;;;;199:3087:153;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;199:3087:153;;;;;:::i;:::-;;;;-1:-1:-1;199:3087:153;;;;:::o;:::-;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;199:3087:153;;;;;;;;;;;;-1:-1:-1;;;199:3087:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","linkReferences":{}},"methodIdentifiers":{"createProgramBatch(address,(bytes32,bytes32,bytes,uint128,uint128)[])":"3cb1083b","sendMessageBatch((address,bytes,uint128)[])":"564abd5f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actual\",\"type\":\"uint256\"}],\"name\":\"InsufficientValue\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32[]\",\"name\":\"messageIds\",\"type\":\"bytes32[]\"}],\"name\":\"SendMessageBatchResult\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"initPayload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"initValue\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"topUpValue\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.CreateProgramCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"createProgramBatch\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct BatchMulticall.MessageCall[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"sendMessageBatch\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/BatchMulticall.sol\":\"BatchMulticall\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/BatchMulticall.sol\":{\"keccak256\":\"0x63544d7623c76c4656652003c7e365f7e1a0e06163a523db5de5d26fe451f960\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://4f8e2cda25ab34b1a14ad695e7e589d94e0a1a673efc59f6b9b6a09fe3cfa01f\",\"dweb:/ipfs/QmQ2nPBJj4ahqZNkyPdHXe7q8Y3W92RuhF4U1z1aPkenuN\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852\",\"dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808\",\"dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"type":"error","name":"InsufficientValue"},{"inputs":[{"internalType":"bytes32[]","name":"messageIds","type":"bytes32[]","indexed":false}],"type":"event","name":"SendMessageBatchResult","anonymous":false},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"struct BatchMulticall.CreateProgramCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"bytes32","name":"codeId","type":"bytes32"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"initPayload","type":"bytes"},{"internalType":"uint128","name":"initValue","type":"uint128"},{"internalType":"uint128","name":"topUpValue","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"createProgramBatch","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct BatchMulticall.MessageCall[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"}]}],"stateMutability":"payable","type":"function","name":"sendMessageBatch"},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/BatchMulticall.sol":"BatchMulticall"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/BatchMulticall.sol":{"keccak256":"0x63544d7623c76c4656652003c7e365f7e1a0e06163a523db5de5d26fe451f960","urls":["bzz-raw://4f8e2cda25ab34b1a14ad695e7e589d94e0a1a673efc59f6b9b6a09fe3cfa01f","dweb:/ipfs/QmQ2nPBJj4ahqZNkyPdHXe7q8Y3W92RuhF4U1z1aPkenuN"],"license":"UNLICENSED"},"src/IMirror.sol":{"keccak256":"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0","urls":["bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852","dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd","urls":["bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808","dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/BatchMulticall.sol","id":73032,"exportedSymbols":{"BatchMulticall":[73031],"IMirror":[73658],"IRouter":[74052],"IWrappedVara":[74063]},"nodeType":"SourceUnit","src":"39:3248:153","nodes":[{"id":72670,"nodeType":"PragmaDirective","src":"39:24:153","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":72672,"nodeType":"ImportDirective","src":"65:40:153","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":73032,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":72671,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"73:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72674,"nodeType":"ImportDirective","src":"106:40:153","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":73032,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":72673,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"114:7:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72676,"nodeType":"ImportDirective","src":"147:50:153","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":73032,"sourceUnit":74064,"symbolAliases":[{"foreign":{"id":72675,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"155:12:153","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73031,"nodeType":"ContractDefinition","src":"199:3087:153","nodes":[{"id":72682,"nodeType":"ErrorDefinition","src":"229:58:153","nodes":[],"errorSelector":"7040b58c","name":"InsufficientValue","nameLocation":"235:17:153","parameters":{"id":72681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72678,"mutability":"mutable","name":"expected","nameLocation":"261:8:153","nodeType":"VariableDeclaration","scope":72682,"src":"253:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72677,"name":"uint256","nodeType":"ElementaryTypeName","src":"253:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72680,"mutability":"mutable","name":"actual","nameLocation":"279:6:153","nodeType":"VariableDeclaration","scope":72682,"src":"271:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72679,"name":"uint256","nodeType":"ElementaryTypeName","src":"271:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"252:34:153"}},{"id":72687,"nodeType":"EventDefinition","src":"293:51:153","nodes":[],"anonymous":false,"eventSelector":"bf5656409246fcf8590b3724124bfed7999e445c6e39ab2b4ad848f29915ecd0","name":"SendMessageBatchResult","nameLocation":"299:22:153","parameters":{"id":72686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72685,"indexed":false,"mutability":"mutable","name":"messageIds","nameLocation":"332:10:153","nodeType":"VariableDeclaration","scope":72687,"src":"322:20:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"322:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72684,"nodeType":"ArrayTypeName","src":"322:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"321:22:153"}},{"id":72694,"nodeType":"StructDefinition","src":"350:96:153","nodes":[],"canonicalName":"BatchMulticall.MessageCall","members":[{"constant":false,"id":72689,"mutability":"mutable","name":"mirror","nameLocation":"387:6:153","nodeType":"VariableDeclaration","scope":72694,"src":"379:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72688,"name":"address","nodeType":"ElementaryTypeName","src":"379:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72691,"mutability":"mutable","name":"payload","nameLocation":"409:7:153","nodeType":"VariableDeclaration","scope":72694,"src":"403:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":72690,"name":"bytes","nodeType":"ElementaryTypeName","src":"403:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":72693,"mutability":"mutable","name":"value","nameLocation":"434:5:153","nodeType":"VariableDeclaration","scope":72694,"src":"426:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":72692,"name":"uint128","nodeType":"ElementaryTypeName","src":"426:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"MessageCall","nameLocation":"357:11:153","scope":73031,"visibility":"public"},{"id":72705,"nodeType":"StructDefinition","src":"452:160:153","nodes":[],"canonicalName":"BatchMulticall.CreateProgramCall","members":[{"constant":false,"id":72696,"mutability":"mutable","name":"codeId","nameLocation":"495:6:153","nodeType":"VariableDeclaration","scope":72705,"src":"487:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":72695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"487:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":72698,"mutability":"mutable","name":"salt","nameLocation":"519:4:153","nodeType":"VariableDeclaration","scope":72705,"src":"511:12:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":72697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"511:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":72700,"mutability":"mutable","name":"initPayload","nameLocation":"539:11:153","nodeType":"VariableDeclaration","scope":72705,"src":"533:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":72699,"name":"bytes","nodeType":"ElementaryTypeName","src":"533:5:153","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":72702,"mutability":"mutable","name":"initValue","nameLocation":"568:9:153","nodeType":"VariableDeclaration","scope":72705,"src":"560:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":72701,"name":"uint128","nodeType":"ElementaryTypeName","src":"560:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":72704,"mutability":"mutable","name":"topUpValue","nameLocation":"595:10:153","nodeType":"VariableDeclaration","scope":72705,"src":"587:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":72703,"name":"uint128","nodeType":"ElementaryTypeName","src":"587:7:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"name":"CreateProgramCall","nameLocation":"459:17:153","scope":73031,"visibility":"public"},{"id":72825,"nodeType":"FunctionDefinition","src":"618:871:153","nodes":[],"body":{"id":72824,"nodeType":"Block","src":"691:798:153","nodes":[],"statements":[{"assignments":[72716],"declarations":[{"constant":false,"id":72716,"mutability":"mutable","name":"messageIds","nameLocation":"718:10:153","nodeType":"VariableDeclaration","scope":72824,"src":"701:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"701:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72715,"nodeType":"ArrayTypeName","src":"701:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":72723,"initialValue":{"arguments":[{"expression":{"id":72720,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"745:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"751:6:153","memberName":"length","nodeType":"MemberAccess","src":"745:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"731:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":72717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"735:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72718,"nodeType":"ArrayTypeName","src":"735:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":72722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"731:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"701:57:153"},{"assignments":[72725],"declarations":[{"constant":false,"id":72725,"mutability":"mutable","name":"consumed","nameLocation":"777:8:153","nodeType":"VariableDeclaration","scope":72824,"src":"769:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72724,"name":"uint256","nodeType":"ElementaryTypeName","src":"769:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72726,"nodeType":"VariableDeclarationStatement","src":"769:16:153"},{"body":{"id":72745,"nodeType":"Block","src":"839:51:153","statements":[{"expression":{"id":72743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72738,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"853:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":72739,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"865:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72741,"indexExpression":{"id":72740,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72728,"src":"871:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"865:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"874:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":72693,"src":"865:14:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"853:26:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72744,"nodeType":"ExpressionStatement","src":"853:26:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72731,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72728,"src":"816:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72732,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"820:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"826:6:153","memberName":"length","nodeType":"MemberAccess","src":"820:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"816:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72746,"initializationExpression":{"assignments":[72728],"declarations":[{"constant":false,"id":72728,"mutability":"mutable","name":"i","nameLocation":"809:1:153","nodeType":"VariableDeclaration","scope":72746,"src":"801:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72727,"name":"uint256","nodeType":"ElementaryTypeName","src":"801:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72730,"initialValue":{"hexValue":"30","id":72729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"813:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"801:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":72736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"834:3:153","subExpression":{"id":72735,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72728,"src":"836:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72737,"nodeType":"ExpressionStatement","src":"834:3:153"},"nodeType":"ForStatement","src":"796:94:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72747,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"904:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":72748,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"915:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"919:5:153","memberName":"value","nodeType":"MemberAccess","src":"915:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"904:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72758,"nodeType":"IfStatement","src":"900:96:153","trueBody":{"id":72757,"nodeType":"Block","src":"926:70:153","statements":[{"errorCall":{"arguments":[{"id":72752,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"965:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":72753,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"975:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"979:5:153","memberName":"value","nodeType":"MemberAccess","src":"975:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72751,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72682,"src":"947:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":72755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"947:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":72756,"nodeType":"RevertStatement","src":"940:45:153"}]}},{"body":{"id":72794,"nodeType":"Block","src":"1049:208:153","statements":[{"assignments":[72772],"declarations":[{"constant":false,"id":72772,"mutability":"mutable","name":"messageCall","nameLocation":"1084:11:153","nodeType":"VariableDeclaration","scope":72794,"src":"1063:32:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall"},"typeName":{"id":72771,"nodeType":"UserDefinedTypeName","pathNode":{"id":72770,"name":"MessageCall","nameLocations":["1063:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":72694,"src":"1063:11:153"},"referencedDeclaration":72694,"src":"1063:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"visibility":"internal"}],"id":72776,"initialValue":{"baseExpression":{"id":72773,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"1098:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72775,"indexExpression":{"id":72774,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1104:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1098:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"1063:43:153"},{"expression":{"id":72792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":72777,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72716,"src":"1121:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":72779,"indexExpression":{"id":72778,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1132:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1121:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":72788,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72772,"src":"1219:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1231:7:153","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":72691,"src":"1219:19:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":72790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1240:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"expression":{"id":72781,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72772,"src":"1161:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1173:6:153","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":72689,"src":"1161:18:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72780,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"1153:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":72783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":72784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1181:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":73620,"src":"1153:39:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":72785,"name":"messageCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72772,"src":"1200:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata"}},"id":72786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1212:5:153","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":72693,"src":"1200:17:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"1153:65:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:93:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1121:125:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72793,"nodeType":"ExpressionStatement","src":"1121:125:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72763,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1026:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72764,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72709,"src":"1030:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall calldata[] calldata"}},"id":72765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1036:6:153","memberName":"length","nodeType":"MemberAccess","src":"1030:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1026:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72795,"initializationExpression":{"assignments":[72760],"declarations":[{"constant":false,"id":72760,"mutability":"mutable","name":"i","nameLocation":"1019:1:153","nodeType":"VariableDeclaration","scope":72795,"src":"1011:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72759,"name":"uint256","nodeType":"ElementaryTypeName","src":"1011:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72762,"initialValue":{"hexValue":"30","id":72761,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1011:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":72768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1044:3:153","subExpression":{"id":72767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72760,"src":"1046:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72769,"nodeType":"ExpressionStatement","src":"1044:3:153"},"nodeType":"ForStatement","src":"1006:251:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72796,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"1271:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72797,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1282:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1286:5:153","memberName":"value","nodeType":"MemberAccess","src":"1282:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1271:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72819,"nodeType":"IfStatement","src":"1267:166:153","trueBody":{"id":72818,"nodeType":"Block","src":"1293:140:153","statements":[{"assignments":[72801,null],"declarations":[{"constant":false,"id":72801,"mutability":"mutable","name":"refunded","nameLocation":"1313:8:153","nodeType":"VariableDeclaration","scope":72818,"src":"1308:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72800,"name":"bool","nodeType":"ElementaryTypeName","src":"1308:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":72812,"initialValue":{"arguments":[{"hexValue":"","id":72810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1371:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":72802,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1326:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1330:6:153","memberName":"sender","nodeType":"MemberAccess","src":"1326:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1337:4:153","memberName":"call","nodeType":"MemberAccess","src":"1326:15:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":72809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":72805,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1349:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1353:5:153","memberName":"value","nodeType":"MemberAccess","src":"1349:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":72807,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72725,"src":"1361:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1349:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"1326:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":72811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1326:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1307:67:153"},{"expression":{"arguments":[{"id":72814,"name":"refunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"1396:8:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"526566756e64206661696c6564","id":72815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1406:15:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""},"value":"Refund failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""}],"id":72813,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"1388:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1388:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72817,"nodeType":"ExpressionStatement","src":"1388:34:153"}]}},{"eventCall":{"arguments":[{"id":72821,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72716,"src":"1471:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}],"id":72820,"name":"SendMessageBatchResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72687,"src":"1448:22:153","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes32[] memory)"}},"id":72822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1448:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72823,"nodeType":"EmitStatement","src":"1443:39:153"}]},"functionSelector":"564abd5f","implemented":true,"kind":"function","modifiers":[],"name":"sendMessageBatch","nameLocation":"627:16:153","parameters":{"id":72710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72709,"mutability":"mutable","name":"calls","nameLocation":"667:5:153","nodeType":"VariableDeclaration","scope":72825,"src":"644:28:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.MessageCall[]"},"typeName":{"baseType":{"id":72707,"nodeType":"UserDefinedTypeName","pathNode":{"id":72706,"name":"MessageCall","nameLocations":["644:11:153"],"nodeType":"IdentifierPath","referencedDeclaration":72694,"src":"644:11:153"},"referencedDeclaration":72694,"src":"644:11:153","typeDescriptions":{"typeIdentifier":"t_struct$_MessageCall_$72694_storage_ptr","typeString":"struct BatchMulticall.MessageCall"}},"id":72708,"nodeType":"ArrayTypeName","src":"644:13:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_MessageCall_$72694_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.MessageCall[]"}},"visibility":"internal"}],"src":"643:30:153"},"returnParameters":{"id":72711,"nodeType":"ParameterList","parameters":[],"src":"691:0:153"},"scope":73031,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73026,"nodeType":"FunctionDefinition","src":"1495:1754:153","nodes":[],"body":{"id":73025,"nodeType":"Block","src":"1665:1584:153","nodes":[],"statements":[{"assignments":[72845],"declarations":[{"constant":false,"id":72845,"mutability":"mutable","name":"programIds","nameLocation":"1692:10:153","nodeType":"VariableDeclaration","scope":73025,"src":"1675:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":72843,"name":"address","nodeType":"ElementaryTypeName","src":"1675:7:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72844,"nodeType":"ArrayTypeName","src":"1675:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":72852,"initialValue":{"arguments":[{"expression":{"id":72849,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"1719:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1725:6:153","memberName":"length","nodeType":"MemberAccess","src":"1719:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1705:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":72846,"name":"address","nodeType":"ElementaryTypeName","src":"1709:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72847,"nodeType":"ArrayTypeName","src":"1709:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":72851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1705:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1675:57:153"},{"assignments":[72857],"declarations":[{"constant":false,"id":72857,"mutability":"mutable","name":"messageIds","nameLocation":"1759:10:153","nodeType":"VariableDeclaration","scope":73025,"src":"1742:27:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1742:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72856,"nodeType":"ArrayTypeName","src":"1742:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":72864,"initialValue":{"arguments":[{"expression":{"id":72861,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"1786:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1792:6:153","memberName":"length","nodeType":"MemberAccess","src":"1786:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"1772:13:153","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":72858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1776:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72859,"nodeType":"ArrayTypeName","src":"1776:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":72863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1772:27:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"1742:57:153"},{"assignments":[72867],"declarations":[{"constant":false,"id":72867,"mutability":"mutable","name":"wvara","nameLocation":"1823:5:153","nodeType":"VariableDeclaration","scope":73025,"src":"1810:18:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"},"typeName":{"id":72866,"nodeType":"UserDefinedTypeName","pathNode":{"id":72865,"name":"IWrappedVara","nameLocations":["1810:12:153"],"nodeType":"IdentifierPath","referencedDeclaration":74063,"src":"1810:12:153"},"referencedDeclaration":74063,"src":"1810:12:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"id":72873,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":72869,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72828,"src":"1844:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":72870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1851:11:153","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73877,"src":"1844:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":72871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1844:20:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72868,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"1831:12:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$74063_$","typeString":"type(contract IWrappedVara)"}},"id":72872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1831:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"nodeType":"VariableDeclarationStatement","src":"1810:55:153"},{"assignments":[72875],"declarations":[{"constant":false,"id":72875,"mutability":"mutable","name":"consumed","nameLocation":"1884:8:153","nodeType":"VariableDeclaration","scope":73025,"src":"1876:16:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72874,"name":"uint256","nodeType":"ElementaryTypeName","src":"1876:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72876,"nodeType":"VariableDeclarationStatement","src":"1876:16:153"},{"body":{"id":72995,"nodeType":"Block","src":"1946:1079:153","statements":[{"assignments":[72890],"declarations":[{"constant":false,"id":72890,"mutability":"mutable","name":"createProgramCall","nameLocation":"1987:17:153","nodeType":"VariableDeclaration","scope":72995,"src":"1960:44:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall"},"typeName":{"id":72889,"nodeType":"UserDefinedTypeName","pathNode":{"id":72888,"name":"CreateProgramCall","nameLocations":["1960:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":72705,"src":"1960:17:153"},"referencedDeclaration":72705,"src":"1960:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"visibility":"internal"}],"id":72894,"initialValue":{"baseExpression":{"id":72891,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"2007:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72893,"indexExpression":{"id":72892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"2013:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2007:8:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"nodeType":"VariableDeclarationStatement","src":"1960:55:153"},{"expression":{"id":72898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72895,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"2029:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"id":72896,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2041:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2059:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":72702,"src":"2041:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"2029:39:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72899,"nodeType":"ExpressionStatement","src":"2029:39:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72900,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"2087:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":72901,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2098:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2102:5:153","memberName":"value","nodeType":"MemberAccess","src":"2098:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2087:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72911,"nodeType":"IfStatement","src":"2083:104:153","trueBody":{"id":72910,"nodeType":"Block","src":"2109:78:153","statements":[{"errorCall":{"arguments":[{"id":72905,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"2152:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":72906,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2162:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2166:5:153","memberName":"value","nodeType":"MemberAccess","src":"2162:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72904,"name":"InsufficientValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72682,"src":"2134:17:153","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$","typeString":"function (uint256,uint256) pure returns (error)"}},"id":72908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:38:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":72909,"nodeType":"RevertStatement","src":"2127:45:153"}]}},{"assignments":[72913],"declarations":[{"constant":false,"id":72913,"mutability":"mutable","name":"programId","nameLocation":"2209:9:153","nodeType":"VariableDeclaration","scope":72995,"src":"2201:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72912,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":72925,"initialValue":{"arguments":[{"expression":{"id":72916,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2242:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2260:6:153","memberName":"codeId","nodeType":"MemberAccess","referencedDeclaration":72696,"src":"2242:24:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":72918,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2268:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2286:4:153","memberName":"salt","nodeType":"MemberAccess","referencedDeclaration":72698,"src":"2268:22:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":72922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2300:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}],"id":72921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2292:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":72920,"name":"address","nodeType":"ElementaryTypeName","src":"2292:7:153","typeDescriptions":{}}},"id":72923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2292:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":72914,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72828,"src":"2221:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":72915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2228:13:153","memberName":"createProgram","nodeType":"MemberAccess","referencedDeclaration":74024,"src":"2221:20:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) external returns (address)"}},"id":72924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2221:85:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2201:105:153"},{"expression":{"id":72930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":72926,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72845,"src":"2320:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":72928,"indexExpression":{"id":72927,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"2331:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2320:13:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72929,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"2336:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2320:25:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72931,"nodeType":"ExpressionStatement","src":"2320:25:153"},{"assignments":[72934],"declarations":[{"constant":false,"id":72934,"mutability":"mutable","name":"mirror","nameLocation":"2367:6:153","nodeType":"VariableDeclaration","scope":72995,"src":"2359:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"},"typeName":{"id":72933,"nodeType":"UserDefinedTypeName","pathNode":{"id":72932,"name":"IMirror","nameLocations":["2359:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":73658,"src":"2359:7:153"},"referencedDeclaration":73658,"src":"2359:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"visibility":"internal"}],"id":72938,"initialValue":{"arguments":[{"id":72936,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"2384:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72935,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"2376:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":72937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2376:18:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"nodeType":"VariableDeclarationStatement","src":"2359:35:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":72942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":72939,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2413:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2431:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2413:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":72941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2444:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2413:32:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72976,"nodeType":"IfStatement","src":"2409:424:153","trueBody":{"id":72975,"nodeType":"Block","src":"2447:386:153","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":72946,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2513:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2517:6:153","memberName":"sender","nodeType":"MemberAccess","src":"2513:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72950,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2533:4:153","typeDescriptions":{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_BatchMulticall_$73031","typeString":"contract BatchMulticall"}],"id":72949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:7:153","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":72948,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:153","typeDescriptions":{}}},"id":72951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2525:13:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":72952,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2540:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2558:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2540:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":72944,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72867,"src":"2494:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":72945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2500:12:153","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46159,"src":"2494:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":72954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2494:75:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"7756415241207472616e7366657246726f6d206661696c6564","id":72955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2591:27:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_8afd7245c8e6ab7e9bfe4b209933d7d173e77b53ebd30b2cdf10fa3f883dc117","typeString":"literal_string \"wVARA transferFrom failed\""},"value":"wVARA transferFrom failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8afd7245c8e6ab7e9bfe4b209933d7d173e77b53ebd30b2cdf10fa3f883dc117","typeString":"literal_string \"wVARA transferFrom failed\""}],"id":72943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2465:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:171:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72957,"nodeType":"ExpressionStatement","src":"2465:171:153"},{"expression":{"arguments":[{"arguments":[{"id":72961,"name":"programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"2676:9:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":72962,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2687:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2705:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2687:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":72959,"name":"wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72867,"src":"2662:5:153","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":72960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2668:7:153","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46147,"src":"2662:13:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":72964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2662:54:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"775641524120617070726f7665206661696c6564","id":72965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2718:22:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ec6a228f7184508cdad91196a24c0dc2cf55d001014c643e60b97e1faf8b7c","typeString":"literal_string \"wVARA approve failed\""},"value":"wVARA approve failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a1ec6a228f7184508cdad91196a24c0dc2cf55d001014c643e60b97e1faf8b7c","typeString":"literal_string \"wVARA approve failed\""}],"id":72958,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2654:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":72966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2654:87:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72967,"nodeType":"ExpressionStatement","src":"2654:87:153"},{"expression":{"arguments":[{"expression":{"id":72971,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2789:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2807:10:153","memberName":"topUpValue","nodeType":"MemberAccess","referencedDeclaration":72704,"src":"2789:28:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":72968,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72934,"src":"2759:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":72970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2766:22:153","memberName":"executableBalanceTopUp","nodeType":"MemberAccess","referencedDeclaration":73637,"src":"2759:29:153","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128) external"}},"id":72973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2759:59:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72974,"nodeType":"ExpressionStatement","src":"2759:59:153"}]}},{"assignments":[72978],"declarations":[{"constant":false,"id":72978,"mutability":"mutable","name":"messageId","nameLocation":"2855:9:153","nodeType":"VariableDeclaration","scope":72995,"src":"2847:17:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":72977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2847:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":72988,"initialValue":{"arguments":[{"expression":{"id":72984,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2938:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2956:11:153","memberName":"initPayload","nodeType":"MemberAccess","referencedDeclaration":72700,"src":"2938:29:153","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"hexValue":"66616c7365","id":72986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2969:5:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":72979,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72934,"src":"2883:6:153","typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":72980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2890:11:153","memberName":"sendMessage","nodeType":"MemberAccess","referencedDeclaration":73620,"src":"2883:18:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":72981,"name":"createProgramCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72890,"src":"2909:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata"}},"id":72982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2927:9:153","memberName":"initValue","nodeType":"MemberAccess","referencedDeclaration":72702,"src":"2909:27:153","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"2883:54:153","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_bool_$returns$_t_bytes32_$value","typeString":"function (bytes memory,bool) payable external returns (bytes32)"}},"id":72987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2883:92:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2847:128:153"},{"expression":{"id":72993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":72989,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72857,"src":"2989:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":72991,"indexExpression":{"id":72990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"3000:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2989:13:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72992,"name":"messageId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72978,"src":"3005:9:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2989:25:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72994,"nodeType":"ExpressionStatement","src":"2989:25:153"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":72884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72881,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"1923:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72882,"name":"calls","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72832,"src":"1927:5:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall calldata[] calldata"}},"id":72883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1933:6:153","memberName":"length","nodeType":"MemberAccess","src":"1927:12:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1923:16:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":72996,"initializationExpression":{"assignments":[72878],"declarations":[{"constant":false,"id":72878,"mutability":"mutable","name":"i","nameLocation":"1916:1:153","nodeType":"VariableDeclaration","scope":72996,"src":"1908:9:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72877,"name":"uint256","nodeType":"ElementaryTypeName","src":"1908:7:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":72880,"initialValue":{"hexValue":"30","id":72879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1920:1:153","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1908:13:153"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":72886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"1941:3:153","subExpression":{"id":72885,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72878,"src":"1943:1:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":72887,"nodeType":"ExpressionStatement","src":"1941:3:153"},"nodeType":"ForStatement","src":"1903:1122:153"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":72997,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"3039:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":72998,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3050:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":72999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3054:5:153","memberName":"value","nodeType":"MemberAccess","src":"3050:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3039:20:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73020,"nodeType":"IfStatement","src":"3035:166:153","trueBody":{"id":73019,"nodeType":"Block","src":"3061:140:153","statements":[{"assignments":[73002,null],"declarations":[{"constant":false,"id":73002,"mutability":"mutable","name":"refunded","nameLocation":"3081:8:153","nodeType":"VariableDeclaration","scope":73019,"src":"3076:13:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73001,"name":"bool","nodeType":"ElementaryTypeName","src":"3076:4:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":73013,"initialValue":{"arguments":[{"hexValue":"","id":73011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3139:2:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"expression":{"id":73003,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3094:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3098:6:153","memberName":"sender","nodeType":"MemberAccess","src":"3094:10:153","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3105:4:153","memberName":"call","nodeType":"MemberAccess","src":"3094:15:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73006,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3117:3:153","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3121:5:153","memberName":"value","nodeType":"MemberAccess","src":"3117:9:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73008,"name":"consumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72875,"src":"3129:8:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3117:20:153","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"3094:44:153","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":73012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3094:48:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3075:67:153"},{"expression":{"arguments":[{"id":73015,"name":"refunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73002,"src":"3164:8:153","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"526566756e64206661696c6564","id":73016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3174:15:153","typeDescriptions":{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""},"value":"Refund failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_940ea0545bf4a4779ef86217d18a28c86bb09c07d43dd7635f3da6878953d25e","typeString":"literal_string \"Refund failed\""}],"id":73014,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3156:7:153","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":73017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3156:34:153","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73018,"nodeType":"ExpressionStatement","src":"3156:34:153"}]}},{"expression":{"components":[{"id":73021,"name":"programIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72845,"src":"3219:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":73022,"name":"messageIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72857,"src":"3231:10:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}}],"id":73023,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3218:24:153","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,bytes32[] memory)"}},"functionReturnParameters":72840,"id":73024,"nodeType":"Return","src":"3211:31:153"}]},"functionSelector":"3cb1083b","implemented":true,"kind":"function","modifiers":[],"name":"createProgramBatch","nameLocation":"1504:18:153","parameters":{"id":72833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72828,"mutability":"mutable","name":"router","nameLocation":"1531:6:153","nodeType":"VariableDeclaration","scope":73026,"src":"1523:14:153","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"},"typeName":{"id":72827,"nodeType":"UserDefinedTypeName","pathNode":{"id":72826,"name":"IRouter","nameLocations":["1523:7:153"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"1523:7:153"},"referencedDeclaration":74052,"src":"1523:7:153","typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"calls","nameLocation":"1568:5:153","nodeType":"VariableDeclaration","scope":73026,"src":"1539:34:153","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_calldata_ptr_$dyn_calldata_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"},"typeName":{"baseType":{"id":72830,"nodeType":"UserDefinedTypeName","pathNode":{"id":72829,"name":"CreateProgramCall","nameLocations":["1539:17:153"],"nodeType":"IdentifierPath","referencedDeclaration":72705,"src":"1539:17:153"},"referencedDeclaration":72705,"src":"1539:17:153","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProgramCall_$72705_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall"}},"id":72831,"nodeType":"ArrayTypeName","src":"1539:19:153","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CreateProgramCall_$72705_storage_$dyn_storage_ptr","typeString":"struct BatchMulticall.CreateProgramCall[]"}},"visibility":"internal"}],"src":"1522:52:153"},"returnParameters":{"id":72840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72836,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73026,"src":"1625:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":72834,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:153","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":72835,"nodeType":"ArrayTypeName","src":"1625:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":72839,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73026,"src":"1643:16:153","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":72837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1643:7:153","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":72838,"nodeType":"ArrayTypeName","src":"1643:9:153","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"1624:36:153"},"scope":73031,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73030,"nodeType":"FunctionDefinition","src":"3255:29:153","nodes":[],"body":{"id":73029,"nodeType":"Block","src":"3282:2:153","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[],"src":"3262:2:153"},"returnParameters":{"id":73028,"nodeType":"ParameterList","parameters":[],"src":"3282:0:153"},"scope":73031,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"BatchMulticall","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[73031],"name":"BatchMulticall","nameLocation":"208:14:153","scope":73032,"usedErrors":[72682],"usedEvents":[72687]}],"license":"UNLICENSED"},"id":153} \ No newline at end of file diff --git a/ethexe/ethereum/abi/ERC1967Proxy.json b/ethexe/ethereum/abi/ERC1967Proxy.json index b09064a1337..80332a9ad5b 100644 --- a/ethexe/ethereum/abi/ERC1967Proxy.json +++ b/ethexe/ethereum/abi/ERC1967Proxy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]}],"bytecode":{"object":"0x60806040526102678038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051604c908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:1117:52:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;600:1117:52;;;;;;;;;;;1748:29:53;;:34;1744:119;;811:66;;;-1:-1:-1;;;;;;811:66:53;;;;;2407:36;-1:-1:-1;;2407:36:53;600:1117:52;;2458:15:53;:11;;-1:-1:-1;4065:25:66;;4107:55;4065:25;;;;;;600:1117:52;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;600:1117:52;;;;4107:55:66;:::i;:::-;;2454:148:53;600:1117:52;;;;;;;;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;2454:148;6159:70;6199:19;;;-1:-1:-1;6199:19:53;;-1:-1:-1;6199:19:53;1744:119;1805:47;;;-1:-1:-1;1805:47:53;;600:1117:52;;-1:-1:-1;1805:47:53;600:1117:52;-1:-1:-1;600:1117:52;;;;;;;;;-1:-1:-1;;600:1117:52;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;600:1117:52;;;;;-1:-1:-1;600:1117:52;;-1:-1:-1;;;;;600:1117:52;;;;;;-1:-1:-1;;600:1117:52;;;;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;600:1117:52;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;600:1117:52;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;600:1117:52;;;;4933:24:66;600:1117:52;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:1117:52:-:0;;;811:66:53;;-1:-1:-1;;;;;;;;;811:66:53;1019:819:54;-1:-1:-1;;1019:819:54;;;;;;;-1:-1:-1;1019:819:54;;;;;;-1:-1:-1;1019:819:54;;;-1:-1:-1;1019:819:54","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":"ERC1967Proxy"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e","urls":["bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049","dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":44732,"exportedSymbols":{"ERC1967Proxy":[44731],"ERC1967Utils":[45025],"Proxy":[45061]},"nodeType":"SourceUnit","src":"114:1604:52","nodes":[{"id":44695,"nodeType":"PragmaDirective","src":"114:24:52","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":44697,"nodeType":"ImportDirective","src":"140:35:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"../Proxy.sol","nameLocation":"-1:-1:-1","scope":44732,"sourceUnit":45062,"symbolAliases":[{"foreign":{"id":44696,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45061,"src":"148:5:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44699,"nodeType":"ImportDirective","src":"176:48:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"./ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":44732,"sourceUnit":45026,"symbolAliases":[{"foreign":{"id":44698,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"184:12:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44731,"nodeType":"ContractDefinition","src":"600:1117:52","nodes":[{"id":44718,"nodeType":"FunctionDefinition","src":"1081:133:52","nodes":[],"body":{"id":44717,"nodeType":"Block","src":"1145:69:52","nodes":[],"statements":[{"expression":{"arguments":[{"id":44713,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44705,"src":"1185:14:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44714,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"1201:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44710,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"1155:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":44712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1168:16:52","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":44840,"src":"1155:29:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":44715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:52:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44716,"nodeType":"ExpressionStatement","src":"1155:52:52"}]},"documentation":{"id":44703,"nodeType":"StructuredDocumentation","src":"637:439:52","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":44708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44705,"mutability":"mutable","name":"implementation","nameLocation":"1101:14:52","nodeType":"VariableDeclaration","scope":44718,"src":"1093:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44704,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44707,"mutability":"mutable","name":"_data","nameLocation":"1130:5:52","nodeType":"VariableDeclaration","scope":44718,"src":"1117:18:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44706,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1092:44:52"},"returnParameters":{"id":44709,"nodeType":"ParameterList","parameters":[],"src":"1145:0:52"},"scope":44731,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":44730,"nodeType":"FunctionDefinition","src":"1583:132:52","nodes":[],"body":{"id":44729,"nodeType":"Block","src":"1659:56:52","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44725,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"1676:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":44726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1689:17:52","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":44777,"src":"1676:30:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":44727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1676:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":44724,"id":44728,"nodeType":"Return","src":"1669:39:52"}]},"baseFunctions":[45042],"documentation":{"id":44719,"nodeType":"StructuredDocumentation","src":"1220:358:52","text":" @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1592:15:52","overrides":{"id":44721,"nodeType":"OverrideSpecifier","overrides":[],"src":"1632:8:52"},"parameters":{"id":44720,"nodeType":"ParameterList","parameters":[],"src":"1607:2:52"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44730,"src":"1650:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44722,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1649:9:52"},"scope":44731,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":44701,"name":"Proxy","nameLocations":["625:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":45061,"src":"625:5:52"},"id":44702,"nodeType":"InheritanceSpecifier","src":"625:5:52"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":44700,"nodeType":"StructuredDocumentation","src":"226:373:52","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"linearizedBaseContracts":[44731,45061],"name":"ERC1967Proxy","nameLocation":"609:12:52","scope":44732,"usedErrors":[44751,44764,46696,48098],"usedEvents":[44105]}],"license":"MIT"},"id":52} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"implementation","type":"address","internalType":"address"},{"name":"_data","type":"bytes","internalType":"bytes"}],"stateMutability":"payable"},{"type":"fallback","stateMutability":"payable"},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]}],"bytecode":{"object":"0x60806040526102678038038061001481610168565b92833981016040828203126101645781516001600160a01b03811692909190838303610164576020810151906001600160401b03821161016457019281601f8501121561016457835161006e610069826101a1565b610168565b9481865260208601936020838301011161016457815f926020809301865e86010152823b15610152577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561013a575f8091610122945190845af43d15610132573d91610113610069846101a1565b9283523d5f602085013e6101bc565b505b604051604c908161021b8239f35b6060916101bc565b50505034156101245763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761018d57604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b03811161018d57601f01601f191660200190565b906101e057508051156101d157602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580610211575b6101f1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156101e956fe60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:1117:52:-:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;;;;;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;600:1117:52;;;;;;;;;;;1748:29:53;;:34;1744:119;;811:66;;;-1:-1:-1;;;;;;811:66:53;;;;;2407:36;-1:-1:-1;;2407:36:53;600:1117:52;;2458:15:53;:11;;-1:-1:-1;4065:25:66;;4107:55;4065:25;;;;;;600:1117:52;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;600:1117:52;;;;4107:55:66;:::i;:::-;;2454:148:53;600:1117:52;;;;;;;;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;2454:148;6159:70;6199:19;;;-1:-1:-1;6199:19:53;;-1:-1:-1;6199:19:53;1744:119;1805:47;;;-1:-1:-1;1805:47:53;;600:1117:52;;-1:-1:-1;1805:47:53;600:1117:52;-1:-1:-1;600:1117:52;;;;;;;;;-1:-1:-1;;600:1117:52;;;-1:-1:-1;;;;;600:1117:52;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;600:1117:52;;;;;-1:-1:-1;600:1117:52;;-1:-1:-1;;;;;600:1117:52;;;;;;-1:-1:-1;;600:1117:52;;;;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;600:1117:52;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;600:1117:52;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;600:1117:52;;;;4933:24:66;600:1117:52;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040527f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545f9081906001600160a01b0316368280378136915af43d5f803e156048573d5ff35b3d5ffd","sourceMap":"600:1117:52:-:0;;;811:66:53;;-1:-1:-1;;;;;;;;;811:66:53;1019:819:54;-1:-1:-1;;1019:819:54;;;;;;;-1:-1:-1;1019:819:54;;;;;;-1:-1:-1;1019:819:54;;;-1:-1:-1;1019:819:54","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"details\":\"This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an implementation address that can be changed. This address is stored in storage in the location specified by https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the implementation behind the proxy.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}]},\"events\":{\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":\"ERC1967Proxy\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049\",\"dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the upgradeable proxy with an initial implementation specified by `implementation`. If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an encoded function call, and allows initializing the storage of the proxy like a Solidity constructor. Requirements: - If `data` is empty, `msg.value` must be zero."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":"ERC1967Proxy"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa3066ff86b94128a9d3956a63a0511fa1aae41bd455772ab587b32ff322acb2e","urls":["bzz-raw://bf7b192fd82acf6187970c80548f624b1b9c80425b62fa49e7fdb538a52de049","dweb:/ipfs/QmWXG1YCde1tqDYTbNwjkZDWVgPEjzaQGSDqWkyKLzaNua"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","id":44732,"exportedSymbols":{"ERC1967Proxy":[44731],"ERC1967Utils":[45025],"Proxy":[45061]},"nodeType":"SourceUnit","src":"114:1604:52","nodes":[{"id":44695,"nodeType":"PragmaDirective","src":"114:24:52","nodes":[],"literals":["solidity","^","0.8",".22"]},{"id":44697,"nodeType":"ImportDirective","src":"140:35:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol","file":"../Proxy.sol","nameLocation":"-1:-1:-1","scope":44732,"sourceUnit":45062,"symbolAliases":[{"foreign":{"id":44696,"name":"Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45061,"src":"148:5:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44699,"nodeType":"ImportDirective","src":"176:48:52","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"./ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":44732,"sourceUnit":45026,"symbolAliases":[{"foreign":{"id":44698,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"184:12:52","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44731,"nodeType":"ContractDefinition","src":"600:1117:52","nodes":[{"id":44718,"nodeType":"FunctionDefinition","src":"1081:133:52","nodes":[],"body":{"id":44717,"nodeType":"Block","src":"1145:69:52","nodes":[],"statements":[{"expression":{"arguments":[{"id":44713,"name":"implementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44705,"src":"1185:14:52","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":44714,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44707,"src":"1201:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":44710,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"1155:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":44712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1168:16:52","memberName":"upgradeToAndCall","nodeType":"MemberAccess","referencedDeclaration":44840,"src":"1155:29:52","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes memory)"}},"id":44715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1155:52:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":44716,"nodeType":"ExpressionStatement","src":"1155:52:52"}]},"documentation":{"id":44703,"nodeType":"StructuredDocumentation","src":"637:439:52","text":" @dev Initializes the upgradeable proxy with an initial implementation specified by `implementation`.\n If `_data` is nonempty, it's used as data in a delegate call to `implementation`. This will typically be an\n encoded function call, and allows initializing the storage of the proxy like a Solidity constructor.\n Requirements:\n - If `data` is empty, `msg.value` must be zero."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":44708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44705,"mutability":"mutable","name":"implementation","nameLocation":"1101:14:52","nodeType":"VariableDeclaration","scope":44718,"src":"1093:22:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44704,"name":"address","nodeType":"ElementaryTypeName","src":"1093:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":44707,"mutability":"mutable","name":"_data","nameLocation":"1130:5:52","nodeType":"VariableDeclaration","scope":44718,"src":"1117:18:52","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":44706,"name":"bytes","nodeType":"ElementaryTypeName","src":"1117:5:52","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1092:44:52"},"returnParameters":{"id":44709,"nodeType":"ParameterList","parameters":[],"src":"1145:0:52"},"scope":44731,"stateMutability":"payable","virtual":false,"visibility":"public"},{"id":44730,"nodeType":"FunctionDefinition","src":"1583:132:52","nodes":[],"body":{"id":44729,"nodeType":"Block","src":"1659:56:52","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":44725,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"1676:12:52","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":44726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1689:17:52","memberName":"getImplementation","nodeType":"MemberAccess","referencedDeclaration":44777,"src":"1676:30:52","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":44727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1676:32:52","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":44724,"id":44728,"nodeType":"Return","src":"1669:39:52"}]},"baseFunctions":[45042],"documentation":{"id":44719,"nodeType":"StructuredDocumentation","src":"1220:358:52","text":" @dev Returns the current implementation address.\n TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using\n the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.\n `0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc`"},"implemented":true,"kind":"function","modifiers":[],"name":"_implementation","nameLocation":"1592:15:52","overrides":{"id":44721,"nodeType":"OverrideSpecifier","overrides":[],"src":"1632:8:52"},"parameters":{"id":44720,"nodeType":"ParameterList","parameters":[],"src":"1607:2:52"},"returnParameters":{"id":44724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44723,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":44730,"src":"1650:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44722,"name":"address","nodeType":"ElementaryTypeName","src":"1650:7:52","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1649:9:52"},"scope":44731,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":44701,"name":"Proxy","nameLocations":["625:5:52"],"nodeType":"IdentifierPath","referencedDeclaration":45061,"src":"625:5:52"},"id":44702,"nodeType":"InheritanceSpecifier","src":"625:5:52"}],"canonicalName":"ERC1967Proxy","contractDependencies":[],"contractKind":"contract","documentation":{"id":44700,"nodeType":"StructuredDocumentation","src":"226:373:52","text":" @dev This contract implements an upgradeable proxy. It is upgradeable because calls are delegated to an\n implementation address that can be changed. This address is stored in storage in the location specified by\n https://eips.ethereum.org/EIPS/eip-1967[ERC-1967], so that it doesn't conflict with the storage layout of the\n implementation behind the proxy."},"fullyImplemented":true,"linearizedBaseContracts":[44731,45061],"name":"ERC1967Proxy","nameLocation":"609:12:52","scope":44732,"usedErrors":[44751,44764,46696,48098],"usedEvents":[44105]}],"license":"MIT"},"id":52} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Middleware.json b/ethexe/ethereum/abi/Middleware.json index 62e8cb28e54..2db44fe78a0 100644 --- a/ethexe/ethereum/abi/Middleware.json +++ b/ethexe/ethereum/abi/Middleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2335:21856:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;7983:34:30;7979:146;;-1:-1:-1;2335:21856:160;;;;;;;;1052:13:60;2335:21856:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;8085:29:30;;2335:21856:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2335:21856:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2335:21856:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;7839:17;;2335:21856;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;2357:1:29;2335:21856:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2335:21856:160;;;;;;;;;;;;;;;9091:10;9062:20;-1:-1:-1;;;;;;;;;;;2335:21856:160;9062:20;9091:10;;;:::i;2335:21856::-;;;;;;;-1:-1:-1;;2335:21856:160;;;;;13797:372;2335:21856;;:::i;:::-;;;:::i;:::-;22933:2;;;;:::i;:::-;13797:372;:::i;:::-;2335:21856;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;7526:21;;2335:21856;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7412:30:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;7412:30;2335:21856;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;7631:21;2335:21856;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7286:34:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;7286:34;2335:21856;;;;;;;;;;;;;;;;;;;;;;7737:22;-1:-1:-1;;;;;;;;;;;2335:21856:160;7737:22;2335:21856;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;:::i;:::-;;;;;;7971:20;;;2335:21856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2335:21856:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;16211:38;;2335:21856;-1:-1:-1;;;;;2335:21856:160;16197:10;:52;16193:108;;2335:21856;;;;16316:9;16327:18;;;;;;2335:21856;;;16347:3;16399:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;8806:28:86;;16429:17:160;;-1:-1:-1;;;;;16456:11:160;2335:21856;16456:11;:::i;:::-;2335:21856;8806:28:86;5197:14;5101:129;-1:-1:-1;2335:21856:160;5197:14:86;2335:21856:160;;;-1:-1:-1;2335:21856:160;;5197:26:86;;5101:129;;8806:28;16428:40:160;16424:106;;2335:21856;;-1:-1:-1;;;;;16564:11:160;;;:::i;:::-;2335:21856;;;;;;;;;;16557:29;;;;;;;;;2335:21856;16557:29;;;;;;;16347:3;2335:21856;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16544:83;;16601:11;2335:21856;;16544:83;;2335:21856;;;;;;;;;;;:::i;:::-;16544:83;;-1:-1:-1;;;;;2335:21856:160;16544:83;;;;;;;2335:21856;16544:83;;;16347:3;;2335:21856;16316:9;;16544:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2335:21856;;;;;;;;;16557:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2335:21856;;;;;;;;;16424:106;-1:-1:-1;;;16495:20:160;;2335:21856;15818:20;16495;16193:108;-1:-1:-1;;;16272:18:160;;2335:21856;8465:18;16272;2335:21856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2335:21856:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;4301:16:30;2335:21856:160;;4724:16:30;;:34;;;;2335:21856:160;4803:1:30;4788:16;:50;;;;2335:21856:160;4853:13:30;:30;;;;2335:21856:160;4849:91:30;;;2335:21856:160;4803:1:30;-1:-1:-1;;;;;2335:21856:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;4977:67:30;;2335:21856:160;;;-1:-1:-1;;;;;2335:21856:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2335:21856:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2335:21856:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;3455:19;2335:21856;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;;;3510:29;2335:21856;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;3573:27;2335:21856;;;;;;;;;;-1:-1:-1;;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;3631:24;2335:21856;;;;;;;;;;-1:-1:-1;;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;3685:23;2335:21856;;;;;;;;;;-1:-1:-1;;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;3745:30;2335:21856;;;;;;;;;4803:1:30;3718:24:160;;2335:21856;;;;;;;;;;3785:27;;;2335:21856;3815:33;2335:21856;;;3886:31;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;;-1:-1:-1;;;;;3858:25:160;;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;;;;;;;3951:27;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;4026:18;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;;4011:12;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;4077:4;3573:27;2335:21856;;4054:12;;2335:21856;4139:19;2335:21856;4123:13;;;2335:21856;4180:14;2335:21856;;;;;;;;4169:8;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;4219:17;2335:21856;;;;;;;;4205:11;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;3057:1;;:::i;:::-;;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;3057:1;;:::i;:::-;;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;3057:1;2335:21856;;;;;;;;3057:1;;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;;;4264:33;;:::i;:::-;2335:21856;4247:69;;;;;2335:21856;;;;;;;;;;;;;4247:69;;;;;;;;;;2335:21856;-1:-1:-1;;;;;;4352:35:160;;:::i;:::-;2335:21856;4326:91;;;;;2335:21856;;;3455:19;2335:21856;;;;;;;;;4326:91;;4077:4;2335:21856;4326:91;;2335:21856;4326:91;;;;;;;;2335:21856;;;;;;;;17701:17;2335:21856;;;;;;;;;4803:1:30;2335:21856:160;;;;;;;;;;;18090:44;;2335:21856;;;;;3573:27;2335:21856;;18365:48;2335:21856;;;;;;;;18653:45;2335:21856;;3745:30;2335:21856;;;;18828:21;;2335:21856;;;;;;19100:28;;2335:21856;;;19207:44;;;;:::i;:::-;2335:21856;19207:71;2335:21856;;3858:25;2335:21856;;19549:32;2335:21856;;5064:101:30;;2335:21856:160;;;5064:101:30;2335:21856:160;5140:14:30;2335:21856:160;-1:-1:-1;;;2335:21856:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;4803:1:30;2335:21856:160;;5140:14:30;2335:21856:160;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;-1:-1:-1;;;2335:21856:160;;3057:1;2335:21856;;3455:19;2335:21856;;;-1:-1:-1;;;2335:21856:160;;;;;4326:91;;;;;:::i;:::-;2335:21856;;4326:91;;;;2335:21856;;;;4326:91;2335:21856;;;;;;;;;4247:69;;;;;:::i;:::-;2335:21856;;4247:69;;;;2335:21856;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2335:21856:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2335:21856:160;;;;;;;;;;;;;;7154:36;-1:-1:-1;;;;;;;;;;;2335:21856:160;7154:36;2335:21856;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;9344:11;;;;2376:23:170;23973:47:85;2335:21856:160;9344:11;23973:47:85;:::i;:::-;2335:21856:160;;;;;;676:2:170;2335:21856:160;;;698:2:170;2335:21856:160;390:319:170;;2376:23;-1:-1:-1;2335:21856:160;;;9389:17;;2335:21856;-1:-1:-1;9389:76:160;;;;2335:21856;9385:144;;;;21805:50:85;;;;:::i;:::-;;2335:21856:160;;9385:144;-1:-1:-1;;;9488:30:160;;2335:21856;9488:30;;9389:76;2335:21856;837:15:87;;;9429:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2335:21856:160;;;;;9429:36;;:::i;:::-;2335:21856;;;9410:55;9389:76;;;;2335:21856;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;11769:5;2335:21856;;:::i;:::-;23978:5;;;:::i;:::-;11744:17;-1:-1:-1;;;;;;;;;;;2335:21856:160;11744:17;11769:5;:::i;2335:21856::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;8413:29;;2335:21856;;8413:29;;2335:21856;-1:-1:-1;;;;;2335:21856:160;8399:10;:43;8395:99;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2335:21856:160;10296:8;;;;2335:21856;;;;;;;;;10282:10;:22;10278:71;;2335:21856;;;10384:12;;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;10363:33;10359:90;;10459:30;;;;;;2335:21856;10504:13;;10658:8;2335:21856;10894:13;10658:8;;;10894:13;;2335:21856;;;;10499:677;10556:3;10523:24;;2335:21856;;10519:35;;;;;10611:27;;;;:::i;:::-;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;-1:-1:-1;2335:21856:160;;;;5197:14:86;;2335:21856:160;;;;;;5197:26:86;10653:99:160;;2335:21856;;;;10872:58;2335:21856;;;;2581:23:170;2335:21856:160;23973:47:85;2335:21856:160;;;;;;;;;23973:47:85;;:::i;2581:23:170:-;2335:21856:160;;;;-1:-1:-1;;;;;2335:21856:160;;;;;-1:-1:-1;2335:21856:160;-1:-1:-1;2335:21856:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10872:58;;;;;2335:21856;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2335:21856:160;;;;;;;:::i;:::-;10872:58;2335:21856;;10872:58;;;;;;:::i;:::-;2335:21856;;;;11029:14;;;2335:21856;;11029:14;;2335:21856;;11029:14;;-1:-1:-1;;;;;2335:21856:160;;;;;10944:106;;;;;2335:21856;;;;;;;;;;;;;;;;;;;10944:106;;2335:21856;10944:106;;2335:21856;;;;;;;;;;;;;;;;;;;:::i;:::-;10944:106;;;;;;;;;;;;;10556:3;2335:21856;;;11085:80;2335:21856;;;;;;;;;;;;;;;11117:47;;;2335:21856;;;;;;11117:47;;;;;;:::i;:::-;11085:80;:::i;:::-;10556:3;2335:21856;10504:13;;;10944:106;;;;;:::i;:::-;2335:21856;;10944:106;;;;;2335:21856;;;;;;;;;10944:106;2335:21856;;;10519:35;;11203:93;10519:35;;;2335:21856;;;;;11235:60;;;;2335:21856;;;;;;;;;;;;11235:60;;;11117:47;11235:60;;:::i;11203:93::-;2335:21856;;;;;11193:104;2335:21856;;;;;;10359:90;-1:-1:-1;;;10419:19:160;;2335:21856;20101:19;10419;10278:71;-1:-1:-1;;;10327:11:160;;2335:21856;9787:11;10327;2335:21856;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;;;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;9756:8;;;2335:21856;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;9742:10;:22;;;9738:71;;9832:12;;;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;9823:21;;9819:78;;9931:27;;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;9907:101;;;;;;2335:21856;;;;;;;;;;;;9907:101;;2335:21856;9907:101;;2335:21856;;;;;;;;;;;;;;;9907:101;;;;;;;;2335:21856;;;;;;10036:30;;;;2335:21856;;;;;;;;10036:30;;;2335:21856;10036:30;;:::i;:::-;2335:21856;10026:41;;2335:21856;;;;;;9907:101;;;;;;:::i;:::-;2335:21856;;9907:101;;;;2335:21856;;;;;;;;;9819:78;-1:-1:-1;;;9867:19:160;;2335:21856;20101:19;9867;9738:71;-1:-1:-1;;;9787:11:160;;2335:21856;9787:11;;2335:21856;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;;-1:-1:-1;;;;;;2335:21856:160;;;;;;;-1:-1:-1;;;;;2335:21856:160;3975:40:29;2335:21856:160;;3975:40:29;2335:21856:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;8145:30;;2335:21856;;8145:30;;2335:21856;-1:-1:-1;;;;;2335:21856:160;8131:10;:44;8127:101;;2335:21856;;-1:-1:-1;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;8127:101;-1:-1:-1;;;8198:19:160;;2335:21856;15338:19;8198;2335:21856;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;6429:44:30;;;;;2335:21856:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;-1:-1:-1;;2335:21856:160;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;6959:1:30;;-1:-1:-1;;;;;2335:21856:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2335:21856:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;;;-1:-1:-1;;;2335:21856:160;-1:-1:-1;;;;;;2335:21856:160;;;;;;;1800:178:73;2335:21856:160;;;;-1:-1:-1;;;;2335:21856:160;-1:-1:-1;;;2335:21856:160;;;;;;;;;;-1:-1:-1;;;;2335:21856:160;-1:-1:-1;;;2335:21856:160;;;;;;;;;;-1:-1:-1;;;;2335:21856:160;-1:-1:-1;;;2335:21856:160;;;;;;;6591:4:30;5149:33:160;;2335:21856;;;6591:4:30;5113:33:160;;2335:21856;;;;;;;;;;4567:1;5231:36;;2335:21856;4567:1;5192:36;;2335:21856;5358:63;5314:34;;;-1:-1:-1;;;;;2335:21856:160;;;;5277:34;;5314;5277;;2335:21856;;;;;;;;;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;;-1:-1:-1;;;2335:21856:160;;;;;;5358:63;5455:21;;;;2335:21856;5431:21;;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;;;-1:-1:-1;;;;;;2335:21856:160;;;;;;;;5510:21;;;2335:21856;5486:21;;;2335:21856;5566:22;;;;2335:21856;5541:22;;;2335:21856;5618:17;;;;2335:21856;5598:17;;;2335:21856;;;;;;;;;;;5668:20;5645;;;;5668;;2335:21856;;;;;;-1:-1:-1;;5723:20:160;5844;;;;5704:13;5723:20;;;;5704:13;5754:3;2335:21856;;5719:33;;;;;5804:26;5844:36;5804:26;6591:4:30;5804:26:160;;;:::i;:::-;5844:36;;;:::i;:::-;;2335:21856;5704:13;;5719:33;-1:-1:-1;5925:17:160;6040;;;;5719:33;5925:17;5719:33;5953:3;2335:21856;;5921:30;;;;;6003:23;6040:33;6003:23;6591:4:30;6003:23:160;;;:::i;:::-;6040:33;;;:::i;:::-;;2335:21856;5906:13;;5921:30;;-1:-1:-1;;;2335:21856:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;;-1:-1:-1;;;;;;;;;;;2335:21856:160;6654:20:30;2335:21856:160;;;4567:1;2335:21856;;6654:20:30;2335:21856:160;;;;;;-1:-1:-1;;;;;;2335:21856:160;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2335:21856:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2335:21856:160;;6496:23:30;6429:44;4567:1:160;2335:21856;;-1:-1:-1;;;;;2335:21856:160;6448:25:30;;6429:44;;;2335:21856:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2335:21856:160;4815:4:60;4807:23;4803:145;;2335:21856:160;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2335:21856:160;;4908:29:60;2335:21856:160;-1:-1:-1;2335:21856:160;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2335:21856:160;4392:4:60;4384:23;;;:120;;;;2335:21856:160;4367:251:60;;;2303:62:29;;:::i;:::-;2335:21856:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;5865:52:60;;;;;;;2335:21856:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2335:21856:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;-1:-1:-1;;;;;;2335:21856:160;;;;;;;;2407:36:53;2335:21856:160;;2407:36:53;2335:21856:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2335:21856:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2335:21856:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2335:21856:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2335:21856:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2335:21856:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2335:21856:160;;;6026:34:60;;5865:52;;;;2335:21856:160;5865:52:60;;2335:21856:160;5865:52:60;;;;;;2335:21856:160;5865:52:60;;;:::i;:::-;;;2335:21856:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2335:21856:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2335:21856:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;9188:10;9160:20;-1:-1:-1;;;;;;;;;;;2335:21856:160;9160:20;9188:10;;;:::i;2335:21856::-;;;;;;;-1:-1:-1;;2335:21856:160;;;;11652:5;2335:21856;;:::i;:::-;23978:5;;;:::i;:::-;11626:17;-1:-1:-1;;;;;;;;;;;2335:21856:160;11626:17;11652:5;:::i;2335:21856::-;;;;;;;;;;;;;;;7022:33;-1:-1:-1;;;;;;;;;;;2335:21856:160;7022:33;2335:21856;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;8708:28;;;2335:21856;;;-1:-1:-1;;;8698:60:160;;8747:10;2335:21856;8698:60;;2335:21856;;;;;;8698:60;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;8698:60;;;;;;;;;;;2335:21856;8697:61;;8693:121;;8842:24;;;2335:21856;;;-1:-1:-1;;;8828:76:160;;8747:10;2335:21856;8828:76;;2335:21856;8898:4;8698:60;2335:21856;;;;;;;;8828:76;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;8828:76;;;;;;;;;;;2335:21856;8827:77;;8823:137;;1037:50:170;837:15:87;2335:21856:160;819:34:87;837:15;819:34;:::i;:::-;2335:21856:160;8747:10;8970:11;8747:10;8970:11;;1037:50:170;:::i;:::-;1036:51;1032:103;;2335:21856:160;;1032:103:170;-1:-1:-1;;;1110:14:170;;2335:21856:160;;1110:14:170;8823:137:160;-1:-1:-1;;;8927:22:160;;2335:21856;8927:22;;8828:76;;;;2335:21856;8828:76;2335:21856;8828:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2335:21856;;;;;;;;;8693:121;-1:-1:-1;;;8781:22:160;;2335:21856;8781:22;;8698:60;;;;2335:21856;8698:60;2335:21856;8698:60;;;;;;;:::i;:::-;;;;2335:21856;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;23978:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;;;;11931:8;;;;2376:23:170;23973:47:85;2335:21856:160;11931:8;23973:47:85;:::i;2376:23:170:-;-1:-1:-1;2335:21856:160;;;11970:17;;2335:21856;-1:-1:-1;11970:73:160;;;;2335:21856;11966:138;;;;21805:50:85;;;;:::i;11966:138:160:-;-1:-1:-1;;;12066:27:160;;2335:21856;12066:27;;11970:73;2335:21856;837:15:87;;;12010:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2335:21856:160;;;;;12010:33;;:::i;:::-;2335:21856;;;11991:52;11970:73;;;;2335:21856;;;;;;;-1:-1:-1;;2335:21856:160;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2335:21856:160;15285:30;;;2335:21856;-1:-1:-1;;;;;2335:21856:160;15271:10;:44;15267:101;;15383:9;2335:21856;;15378:726;15411:3;2335:21856;;;;;15394:15;;;;;2335:21856;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15508:18:160;2335:21856;;;15508:18;:::i;:::-;2335:21856;-1:-1:-1;2335:21856:160;;;5197:14:86;;;2335:21856:160;;;;;;5197:26:86;;;5101:129;8806:28;15486:41:160;15482:110;;15611:9;15651:3;15626:16;;;;2335:21856;;;15626:16;:::i;:::-;15622:27;;;;;;;15710:19;15626:16;15710;15626;;;2335:21856;;;15710:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15771:15:160;;;:::i;:::-;2335:21856;-1:-1:-1;2335:21856:160;;;5197:14:86;;;2335:21856:160;;;;;;5197:26:86;;;5101:129;8806:28;15752:35:160;15748:109;;2335:21856;;;;;;-1:-1:-1;;;;;15900:15:160;2335:21856;15900:15;:::i;:::-;2335:21856;;;;;;;;;;15893:33;;;;;;;;;;;;;15651:3;16000:12;2335:21856;16000:12;;2335:21856;;16014:18;2335:21856;;;16014:18;:::i;:::-;16052:12;;;2335:21856;;;;;;;;16052:12;;;;2335:21856;;;;;;;:::i;:::-;;;;-1:-1:-1;;2335:21856:160;;;;;;;;;;;;;;;;;;;15944:135;;2335:21856;15944:135;;2335:21856;;;;;;;;;;;16034:16;2335:21856;;;;;;16052:12;;;2335:21856;;;;;;;;;;;;;;;;:::i;:::-;15944:135;;-1:-1:-1;;;;;2335:21856:160;15944:135;;;;;;;2335:21856;15944:135;;;15651:3;;2335:21856;15611:9;;15944:135;;;;;;;;;;;;;:::i;:::-;;;;;15893:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15622:27;;;2335:21856;15622:27;;2335:21856;15383:9;;;15482:110;-1:-1:-1;;;15554:23:160;;2335:21856;15554:23;;15394:15;;2335:21856;;15267:101;-1:-1:-1;;;15338:19:160;;2335:21856;15338:19;;2335:21856;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;23978:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2335:21856:160;19789:11;;;2335:21856;;;-1:-1:-1;;;19779:53:160;;-1:-1:-1;;;;;2335:21856:160;;;;19779:53;;2335:21856;;;;;;;;;;;;;;;19779:53;;;;;;;2335:21856;19779:53;;;2335:21856;19778:54;;19774:109;;2335:21856;;-1:-1:-1;;;19897:35:160;;2335:21856;;;;19897:35;;;;;;;;2335:21856;19897:35;;;2335:21856;19936:25;;;;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;;19897:64;19893:128;;2335:21856;;-1:-1:-1;;;20035:27:160;;2335:21856;;;;20035:27;;;;;;;;2335:21856;20035:27;;;2335:21856;-1:-1:-1;20066:12:160;;;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;20035:43;20031:100;;2335:21856;;-1:-1:-1;;;20197:30:160;;2335:21856;;;;20197:30;;;;;;;;2335:21856;20197:30;;;2335:21856;;;;;;;;;;;20241:44;;;20237:107;;2335:21856;;-1:-1:-1;;;20392:39:160;;2335:21856;;;;20392:39;;;;;;;;2335:21856;20392:39;;;2335:21856;20391:40;;20387:103;;2335:21856;;-1:-1:-1;;;20542:26:160;;2335:21856;;;;20542:26;;;;;;;;2335:21856;20542:26;;;2335:21856;-1:-1:-1;2335:21856:160;20609:12;;;2335:21856;;;;-1:-1:-1;;;20583:39:160;;;;;2335:21856;20609:12;;-1:-1:-1;;;;;2335:21856:160;;;;;;;20583:39;;;;;;;2335:21856;20583:39;;;2335:21856;-1:-1:-1;20583:60:160;20579:158;;2335:21856;;;;;;;;;;;;;20766:32;;;;;;;;;;;;;2335:21856;-1:-1:-1;;;;;;2335:21856:160;17531:82;;2335:21856;;-1:-1:-1;;;20846:37:160;;2335:21856;;;;20846:37;;;;;;;;;;;;2335:21856;20845:38;;20841:99;;2335:21856;;-1:-1:-1;;;20968:24:160;;2335:21856;;;;20968:24;;;;;;;;;;;;2335:21856;-1:-1:-1;2335:21856:160;;-1:-1:-1;;;21006:23:160;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;21006:23;;;;;;;;;;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;21006:48;21002:111;;2335:21856;;-1:-1:-1;;;21127:36:160;;2335:21856;;;;21127:36;;;;;;;;;;;;2335:21856;21123:98;;;2335:21856;;-1:-1:-1;;;21253:36:160;;2335:21856;;;;21253:36;;;;;;;;;;;;2335:21856;;;;;;;;;;;21303:32;21299:92;;21405:39;2335:21856;21420:24;;;;;2335:21856;;21405:39;;:::i;:::-;2335:21856;21405:60;21401:119;;2335:21856;;-1:-1:-1;;;21534:46:160;;2335:21856;;;;21534:46;;;;;;;;;;;;2335:21856;21583:27;;;;2335:21856;-1:-1:-1;21530:139:160;;2335:21856;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2335:21856:160;;;;;;;;;;;;;;;;;;;21698:58;;2335:21856;21698:58;;2335:21856;;;;;;;;;;;:::i;:::-;21698:58;;;;;;;;;;;;;;2335:21856;-1:-1:-1;;;;;;2335:21856:160;21770:22;;;-1:-1:-1;21862:24:160;;2335:21856;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;:::i;:::-;;;;;;;;;21808:93;;;;;2335:21856;;;;;;;;;;;;;;;;;21808:93;;;2335:21856;21808:93;;2335:21856;;;;;;;;;;;;;;;:::i;:::-;21808:93;;;;;;;;;;;;;21766:299;;;;2335:21856;;-1:-1:-1;;;22151:23:160;;;2335:21856;;;22151:23;;;;;;;;;;;;21766:299;-1:-1:-1;;;;;;2335:21856:160;22151:37;22147:94;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;;;;;;22357:41;;;2335:21856;;;;;;;;;;;22347:71;;;2335:21856;22347:71;;2335:21856;22347:71;;;;;;;;;;;21766:299;22346:72;;22342:135;;2335:21856;;-1:-1:-1;;;22491:39:160;;;2335:21856;;;22491:39;;;;;;;;;;;;21766:299;-1:-1:-1;;;;;;2335:21856:160;22491:49;22487:114;;2335:21856;;-1:-1:-1;;;22615:41:160;;;2335:21856;;;22615:41;;;;;;;;;-1:-1:-1;;;;;22615:41:160;21583:27;22615:41;;;;;21766:299;2335:21856;;;22615:46;22611:118;;11488:17;1037:50:170;837:15:87;;2335:21856:160;819:34:87;837:15;819:34;:::i;:::-;2335:21856:160;908:2:170;2335:21856:160;;;;-1:-1:-1;;;;;;2335:21856:160;835:76:170;;11488:17:160;1037:50:170;:::i;22611:118:160:-;-1:-1:-1;;;22684:34:160;;2335:21856;22684:34;;22615:41;;;;;;-1:-1:-1;22615:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2335:21856;;;;;;;;;22487:114;-1:-1:-1;;;22563:27:160;;2335:21856;22563:27;;22491:39;;;;;;;;;;;;;;:::i;:::-;;;;;2335:21856;;;;;;;;;22342:135;-1:-1:-1;;;22441:25:160;;2335:21856;22441:25;;22347:71;;;;;;;;;;;;;;:::i;:::-;;;;22147:94;-1:-1:-1;;;22211:19:160;;2335:21856;22211:19;;22151:23;;;;;;;;;;;;;;:::i;:::-;;;;21808:93;;;;;:::i;:::-;2335:21856;;21808:93;;;;21766:299;21934:24;;;;2335:21856;-1:-1:-1;;;;;2335:21856:160;21922:36;;-1:-1:-1;21766:299:160;;-1:-1:-1;21918:147:160;-1:-1:-1;;;22036:18:160;;2335:21856;22036:18;;21698:58;;;;;;;;;;;;;;:::i;:::-;;;;21530:139;-1:-1:-1;;;21633:25:160;;2335:21856;21633:25;;21534:46;;;2335:21856;21534:46;;2335:21856;21534:46;;;;;;2335:21856;21534:46;;;:::i;:::-;;;2335:21856;;;;;21534:46;;;2335:21856;-1:-1:-1;2335:21856:160;;21534:46;;;-1:-1:-1;21534:46:160;;21401:119;-1:-1:-1;;;21488:21:160;;2335:21856;21488:21;;21299:92;-1:-1:-1;;;21358:22:160;;2335:21856;21358:22;;21253:36;;;;2335:21856;21253:36;2335:21856;21253:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21123:98;-1:-1:-1;;;21186:24:160;;2335:21856;21186:24;;21127:36;;;;2335:21856;21127:36;2335:21856;21127:36;;;;;;;:::i;:::-;;;;21002:111;-1:-1:-1;;;21077:25:160;;2335:21856;21077:25;;21006:23;-1:-1:-1;;;;;21006:23:160;;;;;;2335:21856;21006:23;2335:21856;21006:23;;;;;;;:::i;:::-;;;;;;20968:24;;;;2335:21856;20968:24;2335:21856;20968:24;;;;;;;:::i;:::-;;;;20841:99;-1:-1:-1;;;20906:23:160;;2335:21856;20906:23;;20846:37;;;;2335:21856;20846:37;2335:21856;20846:37;;;;;;;:::i;:::-;;;;17531:82;-1:-1:-1;;;;;;17576:26:160;;2335:21856;17576:26;;20766:32;;;;2335:21856;20766:32;2335:21856;20766:32;;;;;;;:::i;:::-;;;;20579:158;20659:67;;;;;2335:21856;;-1:-1:-1;;;20659:67:160;;2335:21856;;20659:67;;2335:21856;;;-1:-1:-1;;2335:21856:160;;;;;20659:67;2335:21856;;20659:67;;;;;;;;;20579:158;;;;20659:67;;;;;2335:21856;20659:67;;:::i;:::-;2335:21856;;;20659:67;;;2335:21856;;;;;;;;;20583:39;;;2335:21856;20583:39;;2335:21856;20583:39;;;;;;2335:21856;20583:39;;;:::i;:::-;;;2335:21856;;;;;20583:39;;;;;;-1:-1:-1;20583:39:160;;20542:26;;;;2335:21856;20542:26;2335:21856;20542:26;;;;;;;:::i;:::-;;;;20387:103;20454:25;;;2335:21856;20454:25;2335:21856;;20454:25;20392:39;;;;2335:21856;20392:39;2335:21856;20392:39;;;;;;;:::i;:::-;;;;20237:107;20308:25;;;2335:21856;20308:25;2335:21856;;20308:25;20197:30;;;;2335:21856;20197:30;2335:21856;20197:30;;;;;;;:::i;:::-;;;;20031:100;20101:19;;;2335:21856;20101:19;2335:21856;;20101:19;20035:27;;;;2335:21856;20035:27;2335:21856;20035:27;;;;;;;:::i;:::-;;;;19893:128;19984:26;;;2335:21856;19984:26;2335:21856;;19984:26;19897:35;;;;2335:21856;19897:35;2335:21856;19897:35;;;;;;;:::i;:::-;;;;19774:109;19855:17;;;2335:21856;19855:17;2335:21856;;19855:17;19779:53;;;;2335:21856;19779:53;2335:21856;19779:53;;;;;;;:::i;:::-;;;;2335:21856;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2335:21856:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2335:21856:160;;;;;-1:-1:-1;2335:21856:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2335:21856:160;;;;;;-1:-1:-1;;2335:21856:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2335:21856:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2335:21856:160;;;;;;;;-1:-1:-1;;2335:21856:160;;;;:::o;:::-;3057:1;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;3057:1;2335:21856;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12149:1642::-;;12266:17;;2335:21856;;12395:29;;;:::i;:::-;2335:21856;;;12439:39;;;;12435:92;;12282:1;20626:17;;2335:21856;;;;;12615:368;12635:5;;;;;;13050:26;;;;12689:1;20626:17;;;2335:21856;;;;;;;;13106:25;;;;:::i;:::-;2335:21856;13146:25;13141:188;13201:3;2335:21856;;13173:26;;;;;13224:9;;;;;:::i;:::-;2335:21856;13224:22;13220:66;;12689:1;2335:21856;;;;;;;12689:1;13299:19;13201:3;2335:21856;13146:25;;;13220:66;13266:5;;;;;;;;;13141:188;12689:1;13343:18;;13339:316;;13141:188;13665:87;;;;;12149:1642;:::o;13339:316::-;2335:21856;;13506:20;;;2335:21856;;;;;;;;;;13506:20;;;;;;;:::i;:::-;2335:21856;13496:31;;2335:21856;;;;;13612:27;2335:21856;;13612:27;;:::i;:::-;-1:-1:-1;;2335:21856:160;;;;;;;13559:85;;-1:-1:-1;;;;;2335:21856:160;13596:48;;;;:::i;:::-;2335:21856;;;13559:85;;:::i;:::-;2335:21856;13339:316;;;;;2335:21856;;;;12282:1;2335:21856;;;;;12282:1;2335:21856;13173:26;;;;;;;;;;;;12642:3;12666:13;;;;;;;;;12282:1;12661:312;12696:3;2335:21856;;;;;-1:-1:-1;;2335:21856:160;;;;;;12681:13;;;;;12723:9;;;;:::i;:::-;2335:21856;12689:1;2335:21856;;;;;;;;12735:13;;;12689:1;12735:13;;;;;;:::i;:::-;2335:21856;-1:-1:-1;12719:240:160;;12696:3;;;;2335:21856;12666:13;;;12719:240;12849:91;2335:21856;12802:13;12772:55;12802:13;;;;;:::i;:::-;2335:21856;12817:9;;;;;:::i;:::-;2335:21856;12772:55;;;;:::i;:::-;2335:21856;12772:55;:::i;:::-;2335:21856;;;;;;12897:22;;;;:::i;:::-;2335:21856;;;12849:91;2335:21856;;;;;12921:18;;;;:::i;:::-;2335:21856;;;12849:91;;:::i;:::-;2335:21856;12719:240;;;;;12681:13;;;;;12689:1;12681:13;;;;;;2335:21856;12620:13;;;12435:92;12494:22;;;;;;;:::o;2335:21856::-;;;;12282:1;2335:21856;;12282:1;2335:21856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2335:21856:160;;;;;;;;;;;;-1:-1:-1;2335:21856:160;;;;;;;;;;;:::i;:::-;:::o;14212:940::-;;22933:2;;;:::i;:::-;14475:11;-1:-1:-1;;;;;;;;;;;2335:21856:160;14475:11;2335:21856;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2335:21856:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2335:21856:160;;;:::i;:::-;;;;;;;-1:-1:-1;14600:9:160;-1:-1:-1;14595:416:160;14611:24;;;;;;15021:125;;;;;;;;;14364:23;14212:940;:::o;14637:3::-;2086:12:170;;;;2139:14;14756:35:160;2086:12:170;;;;;:::i;:::-;2139:14;;;2335:21856:160;;;;;;676:2:170;2335:21856:160;;;698:2:170;2335:21856:160;390:319:170;;2139:14;14756:35:160;;;:::i;:::-;14755:36;14751:83;;14848:39;14923:47;14848:39;;;;;:::i;:::-;-1:-1:-1;;;;;2335:21856:160;;;;14923:47;:::i;:::-;14901:69;;;;:::i;:::-;2335:21856;14999:1;2335:21856;;;;;;;14999:1;14984:16;14637:3;14600:9;2335:21856;14600:9;;;;;14751:83;14811:8;;14999:1;14811:8;;;13797:372;;14019:43;2335:21856;2376:23:170;23973:47:85;13965:20:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;13965:20;2335:21856;;;;;;;23973:47:85;;:::i;14019:43:160:-;14018:44;14014:83;;14115:47;;;:::i;:::-;13797:372;:::o;14014:83::-;14078:8;;-1:-1:-1;14078:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2335:21856:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2335:21856:160;;-1:-1:-1;;;;;;2335:21856:160;;;;;;;-1:-1:-1;;;;;2335:21856:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2335:21856:160;;3509:1:29;3534:31;24008:181:160;2335:21856;;-1:-1:-1;;;24073:61:160;;3003:4;24073:61;;;2335:21856;24123:10;3003:4;;;2335:21856;;3003:4;;2335:21856;;24073:61;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;24073:61;;;;;;;3003:4;24073:61;;;24008:181;24072:62;;24068:115;;24008:181::o;24068:115::-;24157:15;;;3003:4;24157:15;24073:61;3003:4;24157:15;24073:61;;;;3003:4;24073:61;3003:4;24073:61;;;;;;;:::i;:::-;;;;2335:21856;;;;;;;;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;1497:351:170:-;2335:21856:160;;1650:23:170;23973:47:85;-1:-1:-1;;;;;2335:21856:160;;23973:47:85;;:::i;1650:23:170:-;2335:21856:160;;;;;1688:16:170;;;:37;;;;;1497:351;1684:87;;;1781:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;884:2:170;2335:21856:160;;835:52:170;908:2;2335:21856:160;;;;-1:-1:-1;;;;;;2335:21856:160;835:76:170;;1781:60;:::i;:::-;;1497:351::o;1684:87::-;1748:12;;;-1:-1:-1;1748:12:170;;-1:-1:-1;1748:12:170;1688:37;2335:21856:160;;;;1708:17:170;;1688:37;;;1147:344;2335:21856:160;;1299:23:170;23973:47:85;-1:-1:-1;;;;;2335:21856:160;;23973:47:85;;:::i;1299:23:170:-;2335:21856:160;;;;1337:16:170;;:37;;;;1147:344;1333:91;;;1434:50;837:15:87;2335:21856:160;819:34:87;837:15;819:34;:::i;:::-;2335:21856:160;908:2:170;2335:21856:160;;;;-1:-1:-1;;;;;;2335:21856:160;835:76:170;;1434:50;:::i;1333:91::-;1397:16;;;-1:-1:-1;1397:16:170;;-1:-1:-1;1397:16:170;1337:37;2335:21856:160;;;;1357:17:170;1337:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2335:21856:160;-1:-1:-1;;;;;2335:21856:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2335:21856:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2335:21856:160;;;;;;;;-1:-1:-1;2335:21856:160;5004:11:85;2335:21856:160;;;-1:-1:-1;2335:21856:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2335:21856:160;;;;;;;;-1:-1:-1;2335:21856:160;3096:11:85;;;2335:21856:160;;;-1:-1:-1;2335:21856:160;;7898:23:86;:::i;22960:408:160:-;-1:-1:-1;;;;;;;;;;;2335:21856:160;837:15:87;2335:21856:160;819:34:87;837:15;819:34;:::i;:::-;2335:21856:160;;;;23064:22;;23060:80;;23272:16;2335:21856;;;;;;;;;;;;23171:42;;;:87;:42;;;:87;;23272:16;:::i;:::-;2335:21856;837:15:87;819:34;837:15;819:34;:::i;:::-;2335:21856:160;;;23272:36;;23268:94;;22960:408::o;23268:94::-;23109:20;;;-1:-1:-1;23331:20:160;;-1:-1:-1;23331:20:160;23171:87;;;;23272:16;:::i;17212:208::-;2335:21856;;17331:16;;;;17212:208;;17331:16;:37;;17212:208;17331:82;;;;17324:89;;17212:208;:::o;17331:82::-;2335:21856;;17373:17;;;-1:-1:-1;2335:21856:160;17373:39;;;;17331:82;;17212:208;:::o;17373:39::-;2335:21856;;-1:-1:-1;17394:18:160;;-1:-1:-1;17212:208:160;:::o;17331:37::-;2335:21856;;;-1:-1:-1;17351:17:160;;-1:-1:-1;17331:37:160;;;16650:556;-1:-1:-1;;;;;;;;;;;2335:21856:160;16829:8;;;2335:21856;;17113:25;17148:12;;;2335:21856;;;16650:556;2335:21856;;;;;;;16650:556;16825:21;;;;;;16650:556;;;;;;;;:::o;16848:3::-;2086:12:170;;;;;;;;2139:14;16979:53:160;2086:12:170;;;;;:::i;16979:53:160:-;16978:54;16974:101;;2335:21856;;-1:-1:-1;;;17113:25:160;;2335:21856;;;;;17113:25;;2335:21856;;-1:-1:-1;;;;;2335:21856:160;17113:25;;;;;;;2335:21856;17113:25;;;2335:21856;17113:25;;;16848:3;2335:21856;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17098:91:160;;17113:25;17098:91;;2335:21856;;;-1:-1:-1;;;;;2335:21856:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17098:91;;-1:-1:-1;;;;;2335:21856:160;17098:91;;;;;;;2335:21856;17098:91;;;16848:3;17089:100;;;2335:21856;17089:100;;:::i;:::-;16848:3;16814:9;2335:21856;16814:9;;;;;;;;;17098:91;;;;;;;;;;;;;;;;:::i;:::-;;;2335:21856;;;;;;17098:91;;;;;;;17113:25;;;;;;;;;;;;;;:::i;:::-;;;;16974:101;17052:8;;2335:21856;17052:8;;;14296:213:83;2335:21856:160;14374:24:83;;14370:103;;2335:21856:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2335:21856:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2335:21856:160;-1:-1:-1;2335:21856:160;3433:11:85;;;2335:21856:160;;-1:-1:-1;2335:21856:160;;;;8192:26:86;:::i;7082:141:30:-;2335:21856:160;-1:-1:-1;;;;;;;;;;;2335:21856:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2335:21856:160;-1:-1:-1;2335:21856:160;5743:11:85;;;2335:21856:160;;;-1:-1:-1;2335:21856:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2335:21856:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2335:21856:160;5197:14:86;2335:21856:160;;;-1:-1:-1;2335:21856:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2335:21856:160;;;;;;;;-1:-1:-1;2335:21856:160;;-1:-1:-1;2335:21856:160;;;-1:-1:-1;2335:21856:160;:::o;3071:1368:86:-;;3266:14;;;2335:21856:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2335:21856:160;;;;;;;;;-1:-1:-1;;2335:21856:160;;;20626:17;2335:21856;;;;3777:23:86;;;3773:378;;3298:1135;2335:21856:160;;;;;;;;;-1:-1:-1;;2335:21856:160;;;;;;:::i;:::-;;;;20626:17;;2335:21856;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2335:21856:160:-;;;;;;;;;;;;3773:378:86;2335:21856:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2335:21856:160;;;;;;3961:23:86;;;;;:::i;:::-;2335:21856:160;;;;;;;;;;20626:17;;;2335:21856;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2335:21856:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2335:21856:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2335:21856:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2335:21856:160;;;;4933:24:66;2335:21856:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2335:21856:160;;;5197:14:86;;;2335:21856:160;;;;;;2581:21:86;;2335:21856:160;;;-1:-1:-1;;;2335:21856:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2335:21856:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"45417":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x42686e2aa96b94c7e583d6e841136964d6905db22a097b741577290f449f6780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97631d6308e2c678f08bc4030696d5f5dfb09e0198c1bc658b9cc2929aa9baa3\",\"dweb:/ipfs/QmcmCmDjXZ67jjqo1EP743npGFfeGn6euYsurDcnQSFSUE\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a\",\"dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF\"]},\"src/Middleware.sol\":{\"keccak256\":\"0x58f430fc86d6b5cc2f23f56a72f98a54fea7ae63cb672d34516fcac42c0fe0e1\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://9f43656d546cbde4a059f7481d7357f830264047923968125c04ff5961bfe5ea\",\"dweb:/ipfs/QmbirtTEY2d2cLiEV654ojHx7hD1UNaAhAgYPBFYCvrY3U\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543\",\"dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x42686e2aa96b94c7e583d6e841136964d6905db22a097b741577290f449f6780","urls":["bzz-raw://97631d6308e2c678f08bc4030696d5f5dfb09e0198c1bc658b9cc2929aa9baa3","dweb:/ipfs/QmcmCmDjXZ67jjqo1EP743npGFfeGn6euYsurDcnQSFSUE"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa","urls":["bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a","dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF"],"license":"UNLICENSED"},"src/Middleware.sol":{"keccak256":"0x58f430fc86d6b5cc2f23f56a72f98a54fea7ae63cb672d34516fcac42c0fe0e1","urls":["bzz-raw://9f43656d546cbde4a059f7481d7357f830264047923968125c04ff5961bfe5ea","dweb:/ipfs/QmbirtTEY2d2cLiEV654ojHx7hD1UNaAhAgYPBFYCvrY3U"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae","urls":["bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543","dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":76340,"exportedSymbols":{"EnumerableMap":[57867],"Gear":[82248],"IAccessControl":[43863],"IBaseDelegator":[64830],"IDefaultOperatorRewards":[71122],"IDefaultStakerRewards":[71316],"IEntity":[64424],"IMiddleware":[73432],"IMigratableEntity":[64532],"INetworkMiddlewareService":[65318],"INetworkRegistry":[64322],"IOptInService":[65444],"IRegistry":[64656],"IVault":[66180],"IVetoSlasher":[65842],"MapWithTimeData":[82530],"Middleware":[76339],"OwnableUpgradeable":[41646],"ReentrancyGuardTransientUpgradeable":[43267],"SlotDerivation":[48289],"StorageSlot":[48413],"Subnetwork":[64302],"Time":[59667],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:24153:160","nodes":[{"id":74065,"nodeType":"PragmaDirective","src":"39:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":74067,"nodeType":"ImportDirective","src":"65:46:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"./IMiddleware.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":74066,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"73:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74069,"nodeType":"ImportDirective","src":"112:42:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":82249,"symbolAliases":[{"foreign":{"id":74068,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"120:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74071,"nodeType":"ImportDirective","src":"155:64:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"./libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":82531,"symbolAliases":[{"foreign":{"id":74070,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82530,"src":"163:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74073,"nodeType":"ImportDirective","src":"220:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":74072,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"228:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74075,"nodeType":"ImportDirective","src":"322:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":74074,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"335:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74077,"nodeType":"ImportDirective","src":"463:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":43864,"symbolAliases":[{"foreign":{"id":74076,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43863,"src":"471:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74079,"nodeType":"ImportDirective","src":"545:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":74078,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"553:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74081,"nodeType":"ImportDirective","src":"634:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":74080,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"642:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74083,"nodeType":"ImportDirective","src":"715:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":74082,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"723:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74085,"nodeType":"ImportDirective","src":"790:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":57868,"symbolAliases":[{"foreign":{"id":74084,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57867,"src":"798:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74087,"nodeType":"ImportDirective","src":"877:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":59668,"symbolAliases":[{"foreign":{"id":74086,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"885:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74089,"nodeType":"ImportDirective","src":"944:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64303,"symbolAliases":[{"foreign":{"id":74088,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64302,"src":"952:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74091,"nodeType":"ImportDirective","src":"1026:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64323,"symbolAliases":[{"foreign":{"id":74090,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"1034:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74093,"nodeType":"ImportDirective","src":"1111:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64425,"symbolAliases":[{"foreign":{"id":74092,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64424,"src":"1119:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74095,"nodeType":"ImportDirective","src":"1185:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64533,"symbolAliases":[{"foreign":{"id":74094,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64532,"src":"1193:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74097,"nodeType":"ImportDirective","src":"1279:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64657,"symbolAliases":[{"foreign":{"id":74096,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"1287:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74099,"nodeType":"ImportDirective","src":"1357:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64831,"symbolAliases":[{"foreign":{"id":74098,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"1365:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74101,"nodeType":"ImportDirective","src":"1448:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":65319,"symbolAliases":[{"foreign":{"id":74100,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65318,"src":"1456:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74103,"nodeType":"ImportDirective","src":"1559:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":65445,"symbolAliases":[{"foreign":{"id":74102,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65444,"src":"1567:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74105,"nodeType":"ImportDirective","src":"1646:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":65843,"symbolAliases":[{"foreign":{"id":74104,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"1654:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74107,"nodeType":"ImportDirective","src":"1731:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":66181,"symbolAliases":[{"foreign":{"id":74106,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"1739:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74109,"nodeType":"ImportDirective","src":"1802:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":71123,"symbolAliases":[{"foreign":{"id":74108,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71122,"src":"1815:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74111,"nodeType":"ImportDirective","src":"1933:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":71317,"symbolAliases":[{"foreign":{"id":74110,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"1941:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76339,"nodeType":"ContractDefinition","src":"2335:21856:160","nodes":[{"id":74123,"nodeType":"UsingForDirective","src":"2450:55:160","nodes":[],"global":false,"libraryName":{"id":74120,"name":"EnumerableMap","nameLocations":["2456:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"2456:13:160"},"typeName":{"id":74122,"nodeType":"UserDefinedTypeName","pathNode":{"id":74121,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2474:13:160","2488:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"2474:30:160"},"referencedDeclaration":56191,"src":"2474:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":74127,"nodeType":"UsingForDirective","src":"2510:57:160","nodes":[],"global":false,"libraryName":{"id":74124,"name":"MapWithTimeData","nameLocations":["2516:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":82530,"src":"2516:15:160"},"typeName":{"id":74126,"nodeType":"UserDefinedTypeName","pathNode":{"id":74125,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2536:13:160","2550:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"2536:30:160"},"referencedDeclaration":56191,"src":"2536:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":74131,"nodeType":"UsingForDirective","src":"2573:58:160","nodes":[],"global":false,"libraryName":{"id":74128,"name":"EnumerableMap","nameLocations":["2579:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"2579:13:160"},"typeName":{"id":74130,"nodeType":"UserDefinedTypeName","pathNode":{"id":74129,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2597:13:160","2611:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"2597:33:160"},"referencedDeclaration":56486,"src":"2597:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":74135,"nodeType":"UsingForDirective","src":"2636:60:160","nodes":[],"global":false,"libraryName":{"id":74132,"name":"MapWithTimeData","nameLocations":["2642:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":82530,"src":"2642:15:160"},"typeName":{"id":74134,"nodeType":"UserDefinedTypeName","pathNode":{"id":74133,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2662:13:160","2676:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"2662:33:160"},"referencedDeclaration":56486,"src":"2662:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":74138,"nodeType":"UsingForDirective","src":"2702:29:160","nodes":[],"global":false,"libraryName":{"id":74136,"name":"Subnetwork","nameLocations":["2708:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64302,"src":"2708:10:160"},"typeName":{"id":74137,"name":"address","nodeType":"ElementaryTypeName","src":"2723:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":74141,"nodeType":"VariableDeclaration","src":"2844:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2869:12:160","scope":76339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2844:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":74140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2884:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":74144,"nodeType":"VariableDeclaration","src":"2957:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2982:18:160","scope":76339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2957:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":74143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3003:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":74147,"nodeType":"VariableDeclaration","src":"3013:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3036:18:160","scope":76339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74145,"name":"uint8","nodeType":"ElementaryTypeName","src":"3013:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":74146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3057:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":74155,"nodeType":"FunctionDefinition","src":"3118:53:160","nodes":[],"body":{"id":74154,"nodeType":"Block","src":"3132:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74151,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"3142:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":74152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3142:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74153,"nodeType":"ExpressionStatement","src":"3142:22:160"}]},"documentation":{"id":74148,"nodeType":"StructuredDocumentation","src":"3065:48:160","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":74149,"nodeType":"ParameterList","parameters":[],"src":"3129:2:160"},"returnParameters":{"id":74150,"nodeType":"ParameterList","parameters":[],"src":"3132:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74309,"nodeType":"FunctionDefinition","src":"3177:1277:160","nodes":[],"body":{"id":74308,"nodeType":"Block","src":"3245:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":74164,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3270:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3278:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73163,"src":"3270:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74163,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"3255:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":74166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3255:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74167,"nodeType":"ExpressionStatement","src":"3255:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74168,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"3294:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":74169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3294:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74170,"nodeType":"ExpressionStatement","src":"3294:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":74172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3354:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":74171,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"3338:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":74173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74174,"nodeType":"ExpressionStatement","src":"3338:50:160"},{"assignments":[74177],"declarations":[{"constant":false,"id":74177,"mutability":"mutable","name":"$","nameLocation":"3414:1:160","nodeType":"VariableDeclaration","scope":74308,"src":"3398:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74176,"nodeType":"UserDefinedTypeName","pathNode":{"id":74175,"name":"Storage","nameLocations":["3398:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"3398:7:160"},"referencedDeclaration":73229,"src":"3398:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74180,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74178,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"3418:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3418:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3398:30:160"},{"expression":{"id":74186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3439:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3441:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"3439:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3455:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3463:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73165,"src":"3455:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3439:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74187,"nodeType":"ExpressionStatement","src":"3439:35:160"},{"expression":{"id":74193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74188,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3484:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3486:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"3484:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74191,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3510:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3518:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73167,"src":"3510:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3484:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74194,"nodeType":"ExpressionStatement","src":"3484:55:160"},{"expression":{"id":74200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74195,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3549:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3551:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"3549:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74198,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3573:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3581:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73169,"src":"3573:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3549:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74201,"nodeType":"ExpressionStatement","src":"3549:51:160"},{"expression":{"id":74207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3610:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3612:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"3610:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74205,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3631:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3639:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73171,"src":"3631:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3610:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74208,"nodeType":"ExpressionStatement","src":"3610:45:160"},{"expression":{"id":74214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3665:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3667:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"3665:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74212,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3685:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3693:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73173,"src":"3685:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3665:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74215,"nodeType":"ExpressionStatement","src":"3665:43:160"},{"expression":{"id":74221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3718:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3720:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"3718:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3745:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3753:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73175,"src":"3745:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3718:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74222,"nodeType":"ExpressionStatement","src":"3718:57:160"},{"expression":{"id":74228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74223,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3785:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3787:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"3785:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74226,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3815:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3823:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73181,"src":"3815:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3785:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74229,"nodeType":"ExpressionStatement","src":"3785:63:160"},{"expression":{"id":74235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74230,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3858:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3860:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"3858:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74233,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3886:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3894:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73177,"src":"3886:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3858:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74236,"nodeType":"ExpressionStatement","src":"3858:59:160"},{"expression":{"id":74242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74237,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3927:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3929:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"3927:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74240,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3951:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3959:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73179,"src":"3951:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3927:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74243,"nodeType":"ExpressionStatement","src":"3927:51:160"},{"expression":{"id":74249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74244,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4011:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4013:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"4011:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74247,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4026:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4034:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73185,"src":"4026:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4011:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74250,"nodeType":"ExpressionStatement","src":"4011:33:160"},{"expression":{"id":74261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74251,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4054:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4056:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"4054:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74259,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74147,"src":"4094:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":74256,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4077:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}],"id":74255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4069:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74254,"name":"address","nodeType":"ElementaryTypeName","src":"4069:7:160","typeDescriptions":{}}},"id":74257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4083:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64264,"src":"4069:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":74260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4054:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74262,"nodeType":"ExpressionStatement","src":"4054:59:160"},{"expression":{"id":74268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74263,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4123:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4125:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"4123:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74266,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4139:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4147:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73183,"src":"4139:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4123:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74269,"nodeType":"ExpressionStatement","src":"4123:35:160"},{"expression":{"id":74275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74270,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4169:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4171:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"4169:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74273,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4180:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4188:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73187,"src":"4180:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4169:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74276,"nodeType":"ExpressionStatement","src":"4169:25:160"},{"expression":{"id":74282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74277,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4205:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4207:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"4205:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74280,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4219:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4227:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73190,"src":"4219:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4205:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74283,"nodeType":"ExpressionStatement","src":"4205:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":74285,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4264:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4272:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73190,"src":"4264:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":74287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4282:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":81357,"src":"4264:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74284,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"4247:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64322_$","typeString":"type(contract INetworkRegistry)"}},"id":74288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64322","typeString":"contract INetworkRegistry"}},"id":74289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4299:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64321,"src":"4247:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":74290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74291,"nodeType":"ExpressionStatement","src":"4247:69:160"},{"expression":{"arguments":[{"arguments":[{"id":74300,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4411:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}],"id":74299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4403:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74298,"name":"address","nodeType":"ElementaryTypeName","src":"4403:7:160","typeDescriptions":{}}},"id":74301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4403:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":74293,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4352:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4360:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73190,"src":"4352:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":74295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4370:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":81359,"src":"4352:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74292,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65318,"src":"4326:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65318_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":74296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4326:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65318","typeString":"contract INetworkMiddlewareService"}},"id":74297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4389:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"4326:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":74302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4326:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74303,"nodeType":"ExpressionStatement","src":"4326:91:160"},{"expression":{"arguments":[{"id":74305,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4445:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":74304,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75888,"src":"4428:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73229_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":74306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4428:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74307,"nodeType":"ExpressionStatement","src":"4428:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":74161,"kind":"modifierInvocation","modifierName":{"id":74160,"name":"initializer","nameLocations":["3233:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"3233:11:160"},"nodeType":"ModifierInvocation","src":"3233:11:160"}],"name":"initialize","nameLocation":"3186:10:160","parameters":{"id":74159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74158,"mutability":"mutable","name":"_params","nameLocation":"3217:7:160","nodeType":"VariableDeclaration","scope":74309,"src":"3197:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":74157,"nodeType":"UserDefinedTypeName","pathNode":{"id":74156,"name":"InitParams","nameLocations":["3197:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73191,"src":"3197:10:160"},"referencedDeclaration":73191,"src":"3197:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3196:29:160"},"returnParameters":{"id":74162,"nodeType":"ParameterList","parameters":[],"src":"3245:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74506,"nodeType":"FunctionDefinition","src":"4512:1578:160","nodes":[],"body":{"id":74505,"nodeType":"Block","src":"4570:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"4595:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74318,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"4580:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":74321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4580:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74322,"nodeType":"ExpressionStatement","src":"4580:23:160"},{"assignments":[74325],"declarations":[{"constant":false,"id":74325,"mutability":"mutable","name":"oldStorage","nameLocation":"4630:10:160","nodeType":"VariableDeclaration","scope":74505,"src":"4614:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74324,"nodeType":"UserDefinedTypeName","pathNode":{"id":74323,"name":"Storage","nameLocations":["4614:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"4614:7:160"},"referencedDeclaration":73229,"src":"4614:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74328,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74326,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"4643:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4643:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4614:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":74330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4680:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":74329,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"4664:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":74331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4664:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74332,"nodeType":"ExpressionStatement","src":"4664:50:160"},{"assignments":[74335],"declarations":[{"constant":false,"id":74335,"mutability":"mutable","name":"newStorage","nameLocation":"4740:10:160","nodeType":"VariableDeclaration","scope":74505,"src":"4724:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74334,"nodeType":"UserDefinedTypeName","pathNode":{"id":74333,"name":"Storage","nameLocations":["4724:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"4724:7:160"},"referencedDeclaration":73229,"src":"4724:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74336,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"4753:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4753:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4724:39:160"},{"expression":{"id":74344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74339,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4774:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4785:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"4774:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74342,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"4799:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4810:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"4799:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4774:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74345,"nodeType":"ExpressionStatement","src":"4774:47:160"},{"expression":{"id":74351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74346,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4831:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4842:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"4831:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74349,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"4866:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4877:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"4866:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4831:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74352,"nodeType":"ExpressionStatement","src":"4831:67:160"},{"expression":{"id":74358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74353,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4908:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4919:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"4908:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74356,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"4941:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4952:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"4941:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4908:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74359,"nodeType":"ExpressionStatement","src":"4908:63:160"},{"expression":{"id":74365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74360,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4981:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4992:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"4981:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74363,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5011:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5022:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"5011:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4981:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74366,"nodeType":"ExpressionStatement","src":"4981:57:160"},{"expression":{"id":74372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74367,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5048:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5059:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"5048:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74370,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5077:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5088:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"5077:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5048:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74373,"nodeType":"ExpressionStatement","src":"5048:55:160"},{"expression":{"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74374,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5113:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5124:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"5113:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74377,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5149:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5160:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"5149:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5113:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74380,"nodeType":"ExpressionStatement","src":"5113:69:160"},{"expression":{"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74381,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5192:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5203:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"5192:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74384,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5231:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5242:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"5231:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5192:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74387,"nodeType":"ExpressionStatement","src":"5192:75:160"},{"expression":{"id":74393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74388,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5277:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5288:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"5277:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74391,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5314:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5325:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"5314:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5277:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74394,"nodeType":"ExpressionStatement","src":"5277:71:160"},{"expression":{"id":74400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74395,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5358:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5369:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"5358:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74398,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5391:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5402:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"5391:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5358:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74401,"nodeType":"ExpressionStatement","src":"5358:63:160"},{"expression":{"id":74407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74402,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5431:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5442:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"5431:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74405,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5455:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5466:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"5455:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5431:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74408,"nodeType":"ExpressionStatement","src":"5431:45:160"},{"expression":{"id":74414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74409,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5486:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5497:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"5486:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74412,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5510:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5521:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"5510:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5486:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74415,"nodeType":"ExpressionStatement","src":"5486:45:160"},{"expression":{"id":74421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74416,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5541:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5552:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"5541:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74419,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5566:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5577:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"5566:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5541:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74422,"nodeType":"ExpressionStatement","src":"5541:47:160"},{"expression":{"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74423,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5598:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5609:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"5598:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74426,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5618:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5629:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"5618:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5598:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74429,"nodeType":"ExpressionStatement","src":"5598:37:160"},{"expression":{"id":74435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74430,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5645:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5656:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"5645:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74433,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5668:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5679:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"5668:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5645:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74436,"nodeType":"ExpressionStatement","src":"5645:43:160"},{"body":{"id":74469,"nodeType":"Block","src":"5759:132:160","statements":[{"assignments":[74451,74453],"declarations":[{"constant":false,"id":74451,"mutability":"mutable","name":"key","nameLocation":"5782:3:160","nodeType":"VariableDeclaration","scope":74469,"src":"5774:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74450,"name":"address","nodeType":"ElementaryTypeName","src":"5774:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74453,"mutability":"mutable","name":"value","nameLocation":"5795:5:160","nodeType":"VariableDeclaration","scope":74469,"src":"5787:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74452,"name":"uint256","nodeType":"ElementaryTypeName","src":"5787:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74459,"initialValue":{"arguments":[{"id":74457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"5828:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74454,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5804:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5815:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"5804:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5825:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":56346,"src":"5804:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":74458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5804:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5773:57:160"},{"expression":{"arguments":[{"id":74465,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74451,"src":"5869:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74466,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74453,"src":"5874:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74460,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5844:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5855:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"5844:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5865:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56224,"src":"5844:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":74467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5844:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74468,"nodeType":"ExpressionStatement","src":"5844:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"5719:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":74442,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5723:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5734:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"5723:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5744:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"5723:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":74445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5723:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5719:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74470,"initializationExpression":{"assignments":[74438],"declarations":[{"constant":false,"id":74438,"mutability":"mutable","name":"i","nameLocation":"5712:1:160","nodeType":"VariableDeclaration","scope":74470,"src":"5704:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74437,"name":"uint256","nodeType":"ElementaryTypeName","src":"5704:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74440,"initialValue":{"hexValue":"30","id":74439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5716:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5704:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":74448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5754:3:160","subExpression":{"id":74447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"5754:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74449,"nodeType":"ExpressionStatement","src":"5754:3:160"},"nodeType":"ForStatement","src":"5699:192:160"},{"body":{"id":74503,"nodeType":"Block","src":"5958:126:160","statements":[{"assignments":[74485,74487],"declarations":[{"constant":false,"id":74485,"mutability":"mutable","name":"key","nameLocation":"5981:3:160","nodeType":"VariableDeclaration","scope":74503,"src":"5973:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74484,"name":"address","nodeType":"ElementaryTypeName","src":"5973:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74487,"mutability":"mutable","name":"value","nameLocation":"5994:5:160","nodeType":"VariableDeclaration","scope":74503,"src":"5986:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74486,"name":"uint256","nodeType":"ElementaryTypeName","src":"5986:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74493,"initialValue":{"arguments":[{"id":74491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74472,"src":"6024:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74488,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"6003:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6014:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"6003:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6021:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":56346,"src":"6003:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":74492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5972:54:160"},{"expression":{"arguments":[{"id":74499,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74485,"src":"6062:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74487,"src":"6067:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74494,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"6040:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6051:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"6040:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6058:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56224,"src":"6040:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":74501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6040:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74502,"nodeType":"ExpressionStatement","src":"6040:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74472,"src":"5921:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":74476,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5925:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5936:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"5925:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5943:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"5925:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":74479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5925:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5921:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74504,"initializationExpression":{"assignments":[74472],"declarations":[{"constant":false,"id":74472,"mutability":"mutable","name":"i","nameLocation":"5914:1:160","nodeType":"VariableDeclaration","scope":74504,"src":"5906:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74471,"name":"uint256","nodeType":"ElementaryTypeName","src":"5906:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74474,"initialValue":{"hexValue":"30","id":74473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5918:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5906:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":74482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5953:3:160","subExpression":{"id":74481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74472,"src":"5953:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74483,"nodeType":"ExpressionStatement","src":"5953:3:160"},"nodeType":"ForStatement","src":"5901:183:160"}]},"documentation":{"id":74310,"nodeType":"StructuredDocumentation","src":"4460:47:160","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":74313,"kind":"modifierInvocation","modifierName":{"id":74312,"name":"onlyOwner","nameLocations":["4543:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"4543:9:160"},"nodeType":"ModifierInvocation","src":"4543:9:160"},{"arguments":[{"hexValue":"32","id":74315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4567:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":74316,"kind":"modifierInvocation","modifierName":{"id":74314,"name":"reinitializer","nameLocations":["4553:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"4553:13:160"},"nodeType":"ModifierInvocation","src":"4553:16:160"}],"name":"reinitialize","nameLocation":"4521:12:160","parameters":{"id":74311,"nodeType":"ParameterList","parameters":[],"src":"4533:2:160"},"returnParameters":{"id":74317,"nodeType":"ParameterList","parameters":[],"src":"4570:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74516,"nodeType":"FunctionDefinition","src":"6255:84:160","nodes":[],"body":{"id":74515,"nodeType":"Block","src":"6337:2:160","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":74507,"nodeType":"StructuredDocumentation","src":"6096:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":74513,"kind":"modifierInvocation","modifierName":{"id":74512,"name":"onlyOwner","nameLocations":["6327:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"6327:9:160"},"nodeType":"ModifierInvocation","src":"6327:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6264:17:160","overrides":{"id":74511,"nodeType":"OverrideSpecifier","overrides":[],"src":"6318:8:160"},"parameters":{"id":74510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74509,"mutability":"mutable","name":"newImplementation","nameLocation":"6290:17:160","nodeType":"VariableDeclaration","scope":74516,"src":"6282:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74508,"name":"address","nodeType":"ElementaryTypeName","src":"6282:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6281:27:160"},"returnParameters":{"id":74514,"nodeType":"ParameterList","parameters":[],"src":"6337:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74526,"nodeType":"FunctionDefinition","src":"6360:98:160","nodes":[],"body":{"id":74525,"nodeType":"Block","src":"6412:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74521,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6429:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6429:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6440:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"6429:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74520,"id":74524,"nodeType":"Return","src":"6422:29:160"}]},"baseFunctions":[73253],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6369:11:160","parameters":{"id":74517,"nodeType":"ParameterList","parameters":[],"src":"6380:2:160"},"returnParameters":{"id":74520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74526,"src":"6404:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74518,"name":"uint48","nodeType":"ElementaryTypeName","src":"6404:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6403:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74536,"nodeType":"FunctionDefinition","src":"6464:118:160","nodes":[],"body":{"id":74535,"nodeType":"Block","src":"6526:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74531,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6543:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6543:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6554:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"6543:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74530,"id":74534,"nodeType":"Return","src":"6536:39:160"}]},"baseFunctions":[73258],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6473:21:160","parameters":{"id":74527,"nodeType":"ParameterList","parameters":[],"src":"6494:2:160"},"returnParameters":{"id":74530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74536,"src":"6518:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74528,"name":"uint48","nodeType":"ElementaryTypeName","src":"6518:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6517:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74546,"nodeType":"FunctionDefinition","src":"6588:116:160","nodes":[],"body":{"id":74545,"nodeType":"Block","src":"6650:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74541,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6667:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6667:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6678:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"6667:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74540,"id":74544,"nodeType":"Return","src":"6660:37:160"}]},"baseFunctions":[73263],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6597:19:160","parameters":{"id":74537,"nodeType":"ParameterList","parameters":[],"src":"6616:2:160"},"returnParameters":{"id":74540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74546,"src":"6642:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74538,"name":"uint48","nodeType":"ElementaryTypeName","src":"6642:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6641:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74556,"nodeType":"FunctionDefinition","src":"6710:110:160","nodes":[],"body":{"id":74555,"nodeType":"Block","src":"6769:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74551,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6786:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6786:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6797:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"6786:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74550,"id":74554,"nodeType":"Return","src":"6779:34:160"}]},"baseFunctions":[73268],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6719:16:160","parameters":{"id":74547,"nodeType":"ParameterList","parameters":[],"src":"6735:2:160"},"returnParameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74556,"src":"6761:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74548,"name":"uint48","nodeType":"ElementaryTypeName","src":"6761:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6760:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74566,"nodeType":"FunctionDefinition","src":"6826:108:160","nodes":[],"body":{"id":74565,"nodeType":"Block","src":"6884:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74561,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6901:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6901:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6912:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"6901:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74560,"id":74564,"nodeType":"Return","src":"6894:33:160"}]},"baseFunctions":[73273],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6835:15:160","parameters":{"id":74557,"nodeType":"ParameterList","parameters":[],"src":"6850:2:160"},"returnParameters":{"id":74560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74566,"src":"6876:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74558,"name":"uint48","nodeType":"ElementaryTypeName","src":"6876:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6875:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74576,"nodeType":"FunctionDefinition","src":"6940:122:160","nodes":[],"body":{"id":74575,"nodeType":"Block","src":"7005:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74571,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7022:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7022:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7033:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"7022:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74570,"id":74574,"nodeType":"Return","src":"7015:40:160"}]},"baseFunctions":[73278],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6949:22:160","parameters":{"id":74567,"nodeType":"ParameterList","parameters":[],"src":"6971:2:160"},"returnParameters":{"id":74570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74576,"src":"6997:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74568,"name":"uint48","nodeType":"ElementaryTypeName","src":"6997:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6996:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74586,"nodeType":"FunctionDefinition","src":"7068:129:160","nodes":[],"body":{"id":74585,"nodeType":"Block","src":"7137:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74581,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7154:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7154:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7165:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"7154:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74580,"id":74584,"nodeType":"Return","src":"7147:43:160"}]},"baseFunctions":[73283],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7077:25:160","parameters":{"id":74577,"nodeType":"ParameterList","parameters":[],"src":"7102:2:160"},"returnParameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74586,"src":"7128:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74578,"name":"uint256","nodeType":"ElementaryTypeName","src":"7128:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7127:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74596,"nodeType":"FunctionDefinition","src":"7203:124:160","nodes":[],"body":{"id":74595,"nodeType":"Block","src":"7269:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74591,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7286:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7286:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7297:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"7286:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":74590,"id":74594,"nodeType":"Return","src":"7279:41:160"}]},"baseFunctions":[73288],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7212:23:160","parameters":{"id":74587,"nodeType":"ParameterList","parameters":[],"src":"7235:2:160"},"returnParameters":{"id":74590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74596,"src":"7261:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":74588,"name":"uint64","nodeType":"ElementaryTypeName","src":"7261:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7260:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74606,"nodeType":"FunctionDefinition","src":"7333:116:160","nodes":[],"body":{"id":74605,"nodeType":"Block","src":"7395:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74601,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7412:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7412:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7423:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"7412:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":74600,"id":74604,"nodeType":"Return","src":"7405:37:160"}]},"baseFunctions":[73293],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7342:19:160","parameters":{"id":74597,"nodeType":"ParameterList","parameters":[],"src":"7361:2:160"},"returnParameters":{"id":74600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74606,"src":"7387:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":74598,"name":"uint64","nodeType":"ElementaryTypeName","src":"7387:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7386:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74616,"nodeType":"FunctionDefinition","src":"7455:99:160","nodes":[],"body":{"id":74615,"nodeType":"Block","src":"7509:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74611,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7526:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7526:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7537:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"7526:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":74610,"id":74614,"nodeType":"Return","src":"7519:28:160"}]},"baseFunctions":[73298],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7464:10:160","parameters":{"id":74607,"nodeType":"ParameterList","parameters":[],"src":"7474:2:160"},"returnParameters":{"id":74610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74616,"src":"7500:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74608,"name":"address","nodeType":"ElementaryTypeName","src":"7500:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7499:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74626,"nodeType":"FunctionDefinition","src":"7560:99:160","nodes":[],"body":{"id":74625,"nodeType":"Block","src":"7614:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74621,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7631:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7631:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7642:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"7631:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74620,"id":74624,"nodeType":"Return","src":"7624:28:160"}]},"baseFunctions":[73303],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7569:10:160","parameters":{"id":74617,"nodeType":"ParameterList","parameters":[],"src":"7579:2:160"},"returnParameters":{"id":74620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74626,"src":"7605:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7605:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7604:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74636,"nodeType":"FunctionDefinition","src":"7665:101:160","nodes":[],"body":{"id":74635,"nodeType":"Block","src":"7720:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74631,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7737:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7737:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7748:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"7737:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74630,"id":74634,"nodeType":"Return","src":"7730:29:160"}]},"baseFunctions":[73308],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7674:11:160","parameters":{"id":74627,"nodeType":"ParameterList","parameters":[],"src":"7685:2:160"},"returnParameters":{"id":74630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74636,"src":"7711:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74628,"name":"uint256","nodeType":"ElementaryTypeName","src":"7711:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7710:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74646,"nodeType":"FunctionDefinition","src":"7772:91:160","nodes":[],"body":{"id":74645,"nodeType":"Block","src":"7822:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74641,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7839:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7839:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7850:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"7839:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":74640,"id":74644,"nodeType":"Return","src":"7832:24:160"}]},"baseFunctions":[73313],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7781:6:160","parameters":{"id":74637,"nodeType":"ParameterList","parameters":[],"src":"7787:2:160"},"returnParameters":{"id":74640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74646,"src":"7813:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74638,"name":"address","nodeType":"ElementaryTypeName","src":"7813:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7812:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74657,"nodeType":"FunctionDefinition","src":"7869:129:160","nodes":[],"body":{"id":74656,"nodeType":"Block","src":"7954:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74652,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7971:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7971:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7982:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"7971:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":74651,"id":74655,"nodeType":"Return","src":"7964:27:160"}]},"baseFunctions":[73319],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7878:18:160","parameters":{"id":74647,"nodeType":"ParameterList","parameters":[],"src":"7896:2:160"},"returnParameters":{"id":74651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74657,"src":"7922:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":74649,"nodeType":"UserDefinedTypeName","pathNode":{"id":74648,"name":"Gear.SymbioticContracts","nameLocations":["7922:4:160","7927:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":81372,"src":"7922:23:160"},"referencedDeclaration":81372,"src":"7922:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7921:32:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74688,"nodeType":"FunctionDefinition","src":"8021:263:160","nodes":[],"body":{"id":74687,"nodeType":"Block","src":"8077:207:160","nodes":[],"statements":[{"assignments":[74664],"declarations":[{"constant":false,"id":74664,"mutability":"mutable","name":"$","nameLocation":"8103:1:160","nodeType":"VariableDeclaration","scope":74687,"src":"8087:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74663,"nodeType":"UserDefinedTypeName","pathNode":{"id":74662,"name":"Storage","nameLocations":["8087:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"8087:7:160"},"referencedDeclaration":73229,"src":"8087:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74667,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74665,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"8107:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8107:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8087:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8131:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8135:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8131:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74670,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"8145:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8147:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8145:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8157:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":81367,"src":"8145:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8131:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74678,"nodeType":"IfStatement","src":"8127:101:160","trueBody":{"id":74677,"nodeType":"Block","src":"8177:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74674,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73125,"src":"8198:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8198:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74676,"nodeType":"RevertStatement","src":"8191:26:160"}]}},{"expression":{"id":74685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":74679,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"8237:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8239:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8237:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8249:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":81367,"src":"8237:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74684,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74659,"src":"8270:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8237:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74686,"nodeType":"ExpressionStatement","src":"8237:40:160"}]},"baseFunctions":[73324],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8030:20:160","parameters":{"id":74660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74659,"mutability":"mutable","name":"newRole","nameLocation":"8059:7:160","nodeType":"VariableDeclaration","scope":74688,"src":"8051:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74658,"name":"address","nodeType":"ElementaryTypeName","src":"8051:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8050:17:160"},"returnParameters":{"id":74661,"nodeType":"ParameterList","parameters":[],"src":"8077:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74719,"nodeType":"FunctionDefinition","src":"8290:259:160","nodes":[],"body":{"id":74718,"nodeType":"Block","src":"8345:204:160","nodes":[],"statements":[{"assignments":[74695],"declarations":[{"constant":false,"id":74695,"mutability":"mutable","name":"$","nameLocation":"8371:1:160","nodeType":"VariableDeclaration","scope":74718,"src":"8355:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74694,"nodeType":"UserDefinedTypeName","pathNode":{"id":74693,"name":"Storage","nameLocations":["8355:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"8355:7:160"},"referencedDeclaration":73229,"src":"8355:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74698,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74696,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"8375:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8375:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8355:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74699,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8399:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8403:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8399:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74701,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74695,"src":"8413:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8415:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8413:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8425:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":81369,"src":"8413:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8399:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74709,"nodeType":"IfStatement","src":"8395:99:160","trueBody":{"id":74708,"nodeType":"Block","src":"8444:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74705,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"8465:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8465:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74707,"nodeType":"RevertStatement","src":"8458:25:160"}]}},{"expression":{"id":74716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":74710,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74695,"src":"8503:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8505:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8503:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8515:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":81369,"src":"8503:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74715,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74690,"src":"8535:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8503:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74717,"nodeType":"ExpressionStatement","src":"8503:39:160"}]},"baseFunctions":[73329],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8299:19:160","parameters":{"id":74691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74690,"mutability":"mutable","name":"newRole","nameLocation":"8327:7:160","nodeType":"VariableDeclaration","scope":74719,"src":"8319:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74689,"name":"address","nodeType":"ElementaryTypeName","src":"8319:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8318:17:160"},"returnParameters":{"id":74692,"nodeType":"ParameterList","parameters":[],"src":"8345:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74773,"nodeType":"FunctionDefinition","src":"8605:405:160","nodes":[],"body":{"id":74772,"nodeType":"Block","src":"8642:368:160","nodes":[],"statements":[{"assignments":[74724],"declarations":[{"constant":false,"id":74724,"mutability":"mutable","name":"$","nameLocation":"8668:1:160","nodeType":"VariableDeclaration","scope":74772,"src":"8652:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74723,"nodeType":"UserDefinedTypeName","pathNode":{"id":74722,"name":"Storage","nameLocations":["8652:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"8652:7:160"},"referencedDeclaration":73229,"src":"8652:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74725,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"8672:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8672:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8652:30:160"},{"condition":{"id":74737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8697:61:160","subExpression":{"arguments":[{"expression":{"id":74734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8747:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8751:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8747:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":74729,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74724,"src":"8708:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8710:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8708:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8720:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":81355,"src":"8708:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74728,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"8698:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$64656_$","typeString":"type(contract IRegistry)"}},"id":74732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8698:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$64656","typeString":"contract IRegistry"}},"id":74733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8738:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":64641,"src":"8698:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":74736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8698:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74742,"nodeType":"IfStatement","src":"8693:121:160","trueBody":{"id":74741,"nodeType":"Block","src":"8760:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74738,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73074,"src":"8781:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8781:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74740,"nodeType":"RevertStatement","src":"8774:29:160"}]}},{"condition":{"id":74756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8827:77:160","subExpression":{"arguments":[{"expression":{"id":74749,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8878:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8882:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8878:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74753,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8898:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}],"id":74752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8890:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74751,"name":"address","nodeType":"ElementaryTypeName","src":"8890:7:160","typeDescriptions":{}}},"id":74754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8890:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":74744,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74724,"src":"8842:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8844:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8842:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8854:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":81361,"src":"8842:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74743,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65444,"src":"8828:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$65444_$","typeString":"type(contract IOptInService)"}},"id":74747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8828:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$65444","typeString":"contract IOptInService"}},"id":74748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8868:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":65391,"src":"8828:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8828:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74761,"nodeType":"IfStatement","src":"8823:137:160","trueBody":{"id":74760,"nodeType":"Block","src":"8906:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74757,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73077,"src":"8927:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8927:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74759,"nodeType":"RevertStatement","src":"8920:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":74767,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8989:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8993:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8989:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9001:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":74762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74724,"src":"8970:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8972:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"8970:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8982:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":82355,"src":"8970:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":74770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8970:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74771,"nodeType":"ExpressionStatement","src":"8970:33:160"}]},"baseFunctions":[73368],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8614:16:160","parameters":{"id":74720,"nodeType":"ParameterList","parameters":[],"src":"8630:2:160"},"returnParameters":{"id":74721,"nodeType":"ParameterList","parameters":[],"src":"8642:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74785,"nodeType":"FunctionDefinition","src":"9016:93:160","nodes":[],"body":{"id":74784,"nodeType":"Block","src":"9052:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":74780,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9091:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9095:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9091:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74776,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9062:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9062:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9073:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9062:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9083:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":82449,"src":"9062:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":74782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9062:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74783,"nodeType":"ExpressionStatement","src":"9062:40:160"}]},"baseFunctions":[73372],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9025:15:160","parameters":{"id":74774,"nodeType":"ParameterList","parameters":[],"src":"9040:2:160"},"returnParameters":{"id":74775,"nodeType":"ParameterList","parameters":[],"src":"9052:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74797,"nodeType":"FunctionDefinition","src":"9115:91:160","nodes":[],"body":{"id":74796,"nodeType":"Block","src":"9150:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":74792,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9188:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9192:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9188:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74788,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9160:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9160:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9171:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9160:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9181:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":82402,"src":"9160:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":74794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9160:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74795,"nodeType":"ExpressionStatement","src":"9160:39:160"}]},"baseFunctions":[73376],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9124:14:160","parameters":{"id":74786,"nodeType":"ParameterList","parameters":[],"src":"9138:2:160"},"returnParameters":{"id":74787,"nodeType":"ParameterList","parameters":[],"src":"9150:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74842,"nodeType":"FunctionDefinition","src":"9212:362:160","nodes":[],"body":{"id":74841,"nodeType":"Block","src":"9267:307:160","nodes":[],"statements":[{"assignments":[74804],"declarations":[{"constant":false,"id":74804,"mutability":"mutable","name":"$","nameLocation":"9293:1:160","nodeType":"VariableDeclaration","scope":74841,"src":"9277:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74803,"nodeType":"UserDefinedTypeName","pathNode":{"id":74802,"name":"Storage","nameLocations":["9277:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"9277:7:160"},"referencedDeclaration":73229,"src":"9277:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74807,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74805,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9297:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9297:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9277:30:160"},{"assignments":[null,74809],"declarations":[null,{"constant":false,"id":74809,"mutability":"mutable","name":"disabledTime","nameLocation":"9328:12:160","nodeType":"VariableDeclaration","scope":74841,"src":"9321:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74808,"name":"uint48","nodeType":"ElementaryTypeName","src":"9321:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":74815,"initialValue":{"arguments":[{"id":74813,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"9365:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74804,"src":"9344:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9346:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9344:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9356:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":82508,"src":"9344:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":74814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9344:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9318:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":74818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74816,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74809,"src":"9389:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9405:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9389:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":74826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74819,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"9410:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":74820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9415:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"9410:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":74821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9410:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74822,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74809,"src":"9429:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":74823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74804,"src":"9444:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9446:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"9444:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9429:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9410:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9389:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74832,"nodeType":"IfStatement","src":"9385:144:160","trueBody":{"id":74831,"nodeType":"Block","src":"9467:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74828,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73062,"src":"9488:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9488:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74830,"nodeType":"RevertStatement","src":"9481:37:160"}]}},{"expression":{"arguments":[{"id":74838,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"9558:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74833,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74804,"src":"9539:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9541:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9539:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9551:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56251,"src":"9539:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":74839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9539:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74840,"nodeType":"ExpressionStatement","src":"9539:28:160"}]},"baseFunctions":[73382],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9221:18:160","parameters":{"id":74800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74799,"mutability":"mutable","name":"operator","nameLocation":"9248:8:160","nodeType":"VariableDeclaration","scope":74842,"src":"9240:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74798,"name":"address","nodeType":"ElementaryTypeName","src":"9240:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9239:18:160"},"returnParameters":{"id":74801,"nodeType":"ParameterList","parameters":[],"src":"9267:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74900,"nodeType":"FunctionDefinition","src":"9580:494:160","nodes":[],"body":{"id":74899,"nodeType":"Block","src":"9687:387:160","nodes":[],"statements":[{"assignments":[74855],"declarations":[{"constant":false,"id":74855,"mutability":"mutable","name":"$","nameLocation":"9713:1:160","nodeType":"VariableDeclaration","scope":74899,"src":"9697:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74854,"nodeType":"UserDefinedTypeName","pathNode":{"id":74853,"name":"Storage","nameLocations":["9697:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"9697:7:160"},"referencedDeclaration":73229,"src":"9697:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74858,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74856,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9717:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9717:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9697:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74859,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9742:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9746:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9742:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74861,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9756:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9758:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"9756:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9742:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74868,"nodeType":"IfStatement","src":"9738:71:160","trueBody":{"id":74867,"nodeType":"Block","src":"9766:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74864,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73122,"src":"9787:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9787:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74866,"nodeType":"RevertStatement","src":"9780:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74869,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74844,"src":"9823:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74870,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9832:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9834:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"9832:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9823:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74877,"nodeType":"IfStatement","src":"9819:78:160","trueBody":{"id":74876,"nodeType":"Block","src":"9846:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74873,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"9867:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9867:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74875,"nodeType":"RevertStatement","src":"9860:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":74884,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9978:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9980:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"9978:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74886,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74844,"src":"9988:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74887,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74846,"src":"9995:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74888,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"10003:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":74879,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9931:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9933:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"9931:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9943:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":81365,"src":"9931:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74878,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71122,"src":"9907:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71122_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":74882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9907:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71122","typeString":"contract IDefaultOperatorRewards"}},"id":74883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9960:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71104,"src":"9907:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":74889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9907:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74890,"nodeType":"ExpressionStatement","src":"9907:101:160"},{"expression":{"arguments":[{"arguments":[{"id":74894,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74846,"src":"10053:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74895,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"10061:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":74892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10036:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10040:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10036:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":74896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10036:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":74891,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10026:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":74897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74852,"id":74898,"nodeType":"Return","src":"10019:48:160"}]},"baseFunctions":[73420],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9589:25:160","parameters":{"id":74849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74844,"mutability":"mutable","name":"token","nameLocation":"9623:5:160","nodeType":"VariableDeclaration","scope":74900,"src":"9615:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74843,"name":"address","nodeType":"ElementaryTypeName","src":"9615:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74846,"mutability":"mutable","name":"amount","nameLocation":"9638:6:160","nodeType":"VariableDeclaration","scope":74900,"src":"9630:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74845,"name":"uint256","nodeType":"ElementaryTypeName","src":"9630:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74848,"mutability":"mutable","name":"root","nameLocation":"9654:4:160","nodeType":"VariableDeclaration","scope":74900,"src":"9646:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9646:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9614:45:160"},"returnParameters":{"id":74852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74900,"src":"9678:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9678:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9677:9:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75048,"nodeType":"FunctionDefinition","src":"10080:1224:160","nodes":[],"body":{"id":75047,"nodeType":"Block","src":"10227:1077:160","nodes":[],"statements":[{"assignments":[74912],"declarations":[{"constant":false,"id":74912,"mutability":"mutable","name":"$","nameLocation":"10253:1:160","nodeType":"VariableDeclaration","scope":75047,"src":"10237:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74911,"nodeType":"UserDefinedTypeName","pathNode":{"id":74910,"name":"Storage","nameLocations":["10237:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"10237:7:160"},"referencedDeclaration":73229,"src":"10237:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74915,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74913,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"10257:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10257:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10237:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74916,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10282:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10286:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10282:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74918,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10296:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10298:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"10296:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10282:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74925,"nodeType":"IfStatement","src":"10278:71:160","trueBody":{"id":74924,"nodeType":"Block","src":"10306:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74921,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73122,"src":"10327:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10327:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74923,"nodeType":"RevertStatement","src":"10320:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74926,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"10363:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":74927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10375:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":81233,"src":"10363:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74928,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10384:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10386:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"10384:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10363:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74935,"nodeType":"IfStatement","src":"10359:90:160","trueBody":{"id":74934,"nodeType":"Block","src":"10398:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74931,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"10419:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10419:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74933,"nodeType":"RevertStatement","src":"10412:26:160"}]}},{"assignments":[74937],"declarations":[{"constant":false,"id":74937,"mutability":"mutable","name":"distributionBytes","nameLocation":"10472:17:160","nodeType":"VariableDeclaration","scope":75047,"src":"10459:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74936,"name":"bytes","nodeType":"ElementaryTypeName","src":"10459:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":74938,"nodeType":"VariableDeclarationStatement","src":"10459:30:160"},{"body":{"id":75030,"nodeType":"Block","src":"10561:615:160","statements":[{"assignments":[74955],"declarations":[{"constant":false,"id":74955,"mutability":"mutable","name":"rewards","nameLocation":"10601:7:160","nodeType":"VariableDeclaration","scope":75030,"src":"10575:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":74954,"nodeType":"UserDefinedTypeName","pathNode":{"id":74953,"name":"Gear.StakerRewards","nameLocations":["10575:4:160","10580:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":81239,"src":"10575:18:160"},"referencedDeclaration":81239,"src":"10575:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":74960,"initialValue":{"baseExpression":{"expression":{"id":74956,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"10611:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":74957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10623:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":81229,"src":"10611:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$81239_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":74959,"indexExpression":{"id":74958,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"10636:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10611:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10575:63:160"},{"condition":{"id":74967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10657:33:160","subExpression":{"arguments":[{"expression":{"id":74964,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"10676:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":74965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10684:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":81236,"src":"10676:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74961,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10658:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10660:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"10658:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10667:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"10658:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":74966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10658:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74972,"nodeType":"IfStatement","src":"10653:99:160","trueBody":{"id":74971,"nodeType":"Block","src":"10692:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74968,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73110,"src":"10717:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10717:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74970,"nodeType":"RevertStatement","src":"10710:27:160"}]}},{"assignments":[74974],"declarations":[{"constant":false,"id":74974,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10774:14:160","nodeType":"VariableDeclaration","scope":75030,"src":"10766:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74973,"name":"address","nodeType":"ElementaryTypeName","src":"10766:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":74984,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":74980,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"10822:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":74981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10830:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":81236,"src":"10822:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74977,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10799:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10801:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"10799:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10808:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":82529,"src":"10799:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":74982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10799:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":74976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10791:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74975,"name":"address","nodeType":"ElementaryTypeName","src":"10791:7:160","typeDescriptions":{}}},"id":74983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10791:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10766:71:160"},{"assignments":[74986],"declarations":[{"constant":false,"id":74986,"mutability":"mutable","name":"data","nameLocation":"10865:4:160","nodeType":"VariableDeclaration","scope":75030,"src":"10852:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74985,"name":"bytes","nodeType":"ElementaryTypeName","src":"10852:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75001,"initialValue":{"arguments":[{"id":74989,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"10883:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":74990,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10894:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10896:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"10894:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":74994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10915:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":74993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10909:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":74992,"name":"bytes","nodeType":"ElementaryTypeName","src":"10909:5:160","typeDescriptions":{}}},"id":74995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10909:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":74998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10926:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":74997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10920:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":74996,"name":"bytes","nodeType":"ElementaryTypeName","src":"10920:5:160","typeDescriptions":{}}},"id":74999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10920:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":74987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10872:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10876:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10872:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10872:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10852:78:160"},{"expression":{"arguments":[{"expression":{"id":75006,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"11000:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11002:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"11000:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75008,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"11010:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11022:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":81233,"src":"11010:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75010,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"11029:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11037:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":81238,"src":"11029:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75012,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74986,"src":"11045:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75003,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74974,"src":"10966:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75002,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"10944:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71316_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10944:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71316","typeString":"contract IDefaultStakerRewards"}},"id":75005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10982:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71392,"src":"10944:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10944:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75014,"nodeType":"ExpressionStatement","src":"10944:106:160"},{"expression":{"id":75028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75015,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74937,"src":"11065:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75019,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74937,"src":"11098:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75022,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"11134:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11142:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":81236,"src":"11134:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75024,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"11149:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$81239_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11157:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":81238,"src":"11149:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11117:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11121:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11117:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11117:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11085:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75016,"name":"bytes","nodeType":"ElementaryTypeName","src":"11085:5:160","typeDescriptions":{}}},"id":75018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11091:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11085:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11085:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11065:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75029,"nodeType":"ExpressionStatement","src":"11065:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"10519:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":74944,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"10523:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":74945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10535:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":81229,"src":"10523:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$81239_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":74946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10548:6:160","memberName":"length","nodeType":"MemberAccess","src":"10523:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10519:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75031,"initializationExpression":{"assignments":[74940],"declarations":[{"constant":false,"id":74940,"mutability":"mutable","name":"i","nameLocation":"10512:1:160","nodeType":"VariableDeclaration","scope":75031,"src":"10504:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74939,"name":"uint256","nodeType":"ElementaryTypeName","src":"10504:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74942,"initialValue":{"hexValue":"30","id":74941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10516:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10504:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":74949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10556:3:160","subExpression":{"id":74948,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"10558:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74950,"nodeType":"ExpressionStatement","src":"10556:3:160"},"nodeType":"ForStatement","src":"10499:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75036,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74937,"src":"11216:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75039,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"11252:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11264:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":81231,"src":"11252:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75041,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"11277:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11289:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":81233,"src":"11277:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75037,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11235:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11239:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11235:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11235:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11203:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75033,"name":"bytes","nodeType":"ElementaryTypeName","src":"11203:5:160","typeDescriptions":{}}},"id":75035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11209:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11203:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11203:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75032,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11193:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11193:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74909,"id":75046,"nodeType":"Return","src":"11186:111:160"}]},"baseFunctions":[73431],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10089:23:160","parameters":{"id":74906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74903,"mutability":"mutable","name":"_commitment","nameLocation":"10149:11:160","nodeType":"VariableDeclaration","scope":75048,"src":"10113:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":74902,"nodeType":"UserDefinedTypeName","pathNode":{"id":74901,"name":"Gear.StakerRewardsCommitment","nameLocations":["10113:4:160","10118:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":81234,"src":"10113:28:160"},"referencedDeclaration":81234,"src":"10113:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":74905,"mutability":"mutable","name":"timestamp","nameLocation":"10169:9:160","nodeType":"VariableDeclaration","scope":75048,"src":"10162:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74904,"name":"uint48","nodeType":"ElementaryTypeName","src":"10162:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10112:67:160"},"returnParameters":{"id":74909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75048,"src":"10214:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10214:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10213:9:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75079,"nodeType":"FunctionDefinition","src":"11310:236:160","nodes":[],"body":{"id":75078,"nodeType":"Block","src":"11395:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75059,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11420:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75058,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"11405:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11405:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75061,"nodeType":"ExpressionStatement","src":"11405:22:160"},{"expression":{"arguments":[{"id":75063,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11460:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75064,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75052,"src":"11468:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75062,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"11437:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11437:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75066,"nodeType":"ExpressionStatement","src":"11437:40:160"},{"expression":{"arguments":[{"id":75071,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11513:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75074,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75052,"src":"11529:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11521:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":75072,"name":"uint160","nodeType":"ElementaryTypeName","src":"11521:7:160","typeDescriptions":{}}},"id":75075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11521:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75067,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11488:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11488:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11499:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11488:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11506:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":82355,"src":"11488:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11488:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75077,"nodeType":"ExpressionStatement","src":"11488:51:160"}]},"baseFunctions":[73390],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75055,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11387:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75056,"kind":"modifierInvocation","modifierName":{"id":75054,"name":"vaultOwner","nameLocations":["11376:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11376:10:160"},"nodeType":"ModifierInvocation","src":"11376:18:160"}],"name":"registerVault","nameLocation":"11319:13:160","parameters":{"id":75053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75050,"mutability":"mutable","name":"_vault","nameLocation":"11341:6:160","nodeType":"VariableDeclaration","scope":75079,"src":"11333:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75049,"name":"address","nodeType":"ElementaryTypeName","src":"11333:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75052,"mutability":"mutable","name":"_rewards","nameLocation":"11357:8:160","nodeType":"VariableDeclaration","scope":75079,"src":"11349:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75051,"name":"address","nodeType":"ElementaryTypeName","src":"11349:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11332:34:160"},"returnParameters":{"id":75057,"nodeType":"ParameterList","parameters":[],"src":"11395:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75095,"nodeType":"FunctionDefinition","src":"11552:113:160","nodes":[],"body":{"id":75094,"nodeType":"Block","src":"11616:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75091,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"11652:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75087,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11626:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11626:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11637:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11626:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11644:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":82449,"src":"11626:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11626:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75093,"nodeType":"ExpressionStatement","src":"11626:32:160"}]},"baseFunctions":[73402],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75084,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"11609:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75085,"kind":"modifierInvocation","modifierName":{"id":75083,"name":"vaultOwner","nameLocations":["11598:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11598:10:160"},"nodeType":"ModifierInvocation","src":"11598:17:160"}],"name":"disableVault","nameLocation":"11561:12:160","parameters":{"id":75082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75081,"mutability":"mutable","name":"vault","nameLocation":"11582:5:160","nodeType":"VariableDeclaration","scope":75095,"src":"11574:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75080,"name":"address","nodeType":"ElementaryTypeName","src":"11574:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11573:15:160"},"returnParameters":{"id":75086,"nodeType":"ParameterList","parameters":[],"src":"11616:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75111,"nodeType":"FunctionDefinition","src":"11671:111:160","nodes":[],"body":{"id":75110,"nodeType":"Block","src":"11734:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75107,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"11769:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75103,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11744:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11744:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11755:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11744:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11762:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":82402,"src":"11744:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11744:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75109,"nodeType":"ExpressionStatement","src":"11744:31:160"}]},"baseFunctions":[73408],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75100,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"11727:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75101,"kind":"modifierInvocation","modifierName":{"id":75099,"name":"vaultOwner","nameLocations":["11716:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11716:10:160"},"nodeType":"ModifierInvocation","src":"11716:17:160"}],"name":"enableVault","nameLocation":"11680:11:160","parameters":{"id":75098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75097,"mutability":"mutable","name":"vault","nameLocation":"11700:5:160","nodeType":"VariableDeclaration","scope":75111,"src":"11692:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75096,"name":"address","nodeType":"ElementaryTypeName","src":"11692:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11691:15:160"},"returnParameters":{"id":75102,"nodeType":"ParameterList","parameters":[],"src":"11734:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75159,"nodeType":"FunctionDefinition","src":"11788:355:160","nodes":[],"body":{"id":75158,"nodeType":"Block","src":"11855:288:160","nodes":[],"statements":[{"assignments":[75121],"declarations":[{"constant":false,"id":75121,"mutability":"mutable","name":"$","nameLocation":"11881:1:160","nodeType":"VariableDeclaration","scope":75158,"src":"11865:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75120,"nodeType":"UserDefinedTypeName","pathNode":{"id":75119,"name":"Storage","nameLocations":["11865:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"11865:7:160"},"referencedDeclaration":73229,"src":"11865:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75124,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75122,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11885:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11885:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11865:30:160"},{"assignments":[null,75126],"declarations":[null,{"constant":false,"id":75126,"mutability":"mutable","name":"disabledTime","nameLocation":"11915:12:160","nodeType":"VariableDeclaration","scope":75158,"src":"11908:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75125,"name":"uint48","nodeType":"ElementaryTypeName","src":"11908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75132,"initialValue":{"arguments":[{"id":75130,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75113,"src":"11949:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"11931:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11933:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11931:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11940:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":82508,"src":"11931:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11931:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11905:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75133,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"11970:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11986:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11970:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75136,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"11991:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":75137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11996:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"11991:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75139,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"12010:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75140,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"12025:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12027:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"12025:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12010:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11991:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11970:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75149,"nodeType":"IfStatement","src":"11966:138:160","trueBody":{"id":75148,"nodeType":"Block","src":"12045:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75145,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73065,"src":"12066:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12066:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75147,"nodeType":"RevertStatement","src":"12059:34:160"}]}},{"expression":{"arguments":[{"id":75155,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75113,"src":"12130:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75150,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"12114:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12116:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"12114:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12123:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56251,"src":"12114:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12114:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75157,"nodeType":"ExpressionStatement","src":"12114:22:160"}]},"baseFunctions":[73396],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75116,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75113,"src":"11848:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75117,"kind":"modifierInvocation","modifierName":{"id":75115,"name":"vaultOwner","nameLocations":["11837:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11837:10:160"},"nodeType":"ModifierInvocation","src":"11837:17:160"}],"name":"unregisterVault","nameLocation":"11797:15:160","parameters":{"id":75114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75113,"mutability":"mutable","name":"vault","nameLocation":"11821:5:160","nodeType":"VariableDeclaration","scope":75159,"src":"11813:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75112,"name":"address","nodeType":"ElementaryTypeName","src":"11813:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11812:15:160"},"returnParameters":{"id":75118,"nodeType":"ParameterList","parameters":[],"src":"11855:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75355,"nodeType":"FunctionDefinition","src":"12149:1642:160","nodes":[],"body":{"id":75354,"nodeType":"Block","src":"12248:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75170,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"12266:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12282:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12266:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75173,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"12285:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12285:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75169,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12258:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12258:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75176,"nodeType":"ExpressionStatement","src":"12258:64:160"},{"assignments":[75181,75184],"declarations":[{"constant":false,"id":75181,"mutability":"mutable","name":"activeOperators","nameLocation":"12351:15:160","nodeType":"VariableDeclaration","scope":75354,"src":"12334:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75179,"name":"address","nodeType":"ElementaryTypeName","src":"12334:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75180,"nodeType":"ArrayTypeName","src":"12334:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":75184,"mutability":"mutable","name":"stakes","nameLocation":"12385:6:160","nodeType":"VariableDeclaration","scope":75354,"src":"12368:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75182,"name":"uint256","nodeType":"ElementaryTypeName","src":"12368:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75183,"nodeType":"ArrayTypeName","src":"12368:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":75188,"initialValue":{"arguments":[{"id":75186,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75161,"src":"12421:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75185,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75498,"src":"12395:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12395:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12333:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75189,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12439:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12455:6:160","memberName":"length","nodeType":"MemberAccess","src":"12439:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75191,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"12465:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12439:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75196,"nodeType":"IfStatement","src":"12435:92:160","trueBody":{"id":75195,"nodeType":"Block","src":"12480:47:160","statements":[{"expression":{"id":75193,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12501:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":75168,"id":75194,"nodeType":"Return","src":"12494:22:160"}]}},{"assignments":[75198],"declarations":[{"constant":false,"id":75198,"mutability":"mutable","name":"n","nameLocation":"12579:1:160","nodeType":"VariableDeclaration","scope":75354,"src":"12571:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75197,"name":"uint256","nodeType":"ElementaryTypeName","src":"12571:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75201,"initialValue":{"expression":{"id":75199,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12583:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12599:6:160","memberName":"length","nodeType":"MemberAccess","src":"12583:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12571:34:160"},{"body":{"id":75279,"nodeType":"Block","src":"12647:336:160","statements":[{"body":{"id":75277,"nodeType":"Block","src":"12701:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75226,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12723:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75228,"indexExpression":{"id":75227,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12730:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12723:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":75229,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12735:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75233,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75230,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12742:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12746:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12742:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12735:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12723:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75276,"nodeType":"IfStatement","src":"12719:240:160","trueBody":{"id":75275,"nodeType":"Block","src":"12750:209:160","statements":[{"expression":{"id":75253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":75235,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12773:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75237,"indexExpression":{"id":75236,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12780:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12773:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":75238,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12784:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75242,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75239,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12791:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12795:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12791:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12784:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75243,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12772:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":75244,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12802:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75248,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75245,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12809:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12813:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12809:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12802:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":75249,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12817:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75251,"indexExpression":{"id":75250,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12824:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12817:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12801:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12772:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75254,"nodeType":"ExpressionStatement","src":"12772:55:160"},{"expression":{"id":75273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":75255,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12850:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75257,"indexExpression":{"id":75256,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12866:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12850:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":75258,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12870:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75262,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75259,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12886:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12890:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12886:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12870:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75263,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12849:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":75264,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12897:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75268,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75265,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12913:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12917:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12913:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12897:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":75269,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12921:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75271,"indexExpression":{"id":75270,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12937:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12921:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75272,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12896:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12849:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75274,"nodeType":"ExpressionStatement","src":"12849:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75216,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12681:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75217,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75198,"src":"12685:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12689:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12685:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75203,"src":"12693:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12685:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12681:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75278,"initializationExpression":{"assignments":[75213],"declarations":[{"constant":false,"id":75213,"mutability":"mutable","name":"j","nameLocation":"12674:1:160","nodeType":"VariableDeclaration","scope":75278,"src":"12666:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75212,"name":"uint256","nodeType":"ElementaryTypeName","src":"12666:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75215,"initialValue":{"hexValue":"30","id":75214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12678:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12666:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12696:3:160","subExpression":{"id":75223,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12696:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75225,"nodeType":"ExpressionStatement","src":"12696:3:160"},"nodeType":"ForStatement","src":"12661:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75206,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75203,"src":"12635:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75207,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75198,"src":"12639:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12635:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75280,"initializationExpression":{"assignments":[75203],"declarations":[{"constant":false,"id":75203,"mutability":"mutable","name":"i","nameLocation":"12628:1:160","nodeType":"VariableDeclaration","scope":75280,"src":"12620:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75202,"name":"uint256","nodeType":"ElementaryTypeName","src":"12620:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75205,"initialValue":{"hexValue":"30","id":75204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12632:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12620:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12642:3:160","subExpression":{"id":75209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75203,"src":"12642:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75211,"nodeType":"ExpressionStatement","src":"12642:3:160"},"nodeType":"ForStatement","src":"12615:368:160"},{"assignments":[75282],"declarations":[{"constant":false,"id":75282,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13058:14:160","nodeType":"VariableDeclaration","scope":75354,"src":"13050:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75281,"name":"uint256","nodeType":"ElementaryTypeName","src":"13050:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75284,"initialValue":{"hexValue":"31","id":75283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13075:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13050:26:160"},{"assignments":[75286],"declarations":[{"constant":false,"id":75286,"mutability":"mutable","name":"lastStake","nameLocation":"13094:9:160","nodeType":"VariableDeclaration","scope":75354,"src":"13086:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75285,"name":"uint256","nodeType":"ElementaryTypeName","src":"13086:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75292,"initialValue":{"baseExpression":{"id":75287,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"13106:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75291,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75288,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13113:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13129:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13113:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13106:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13086:45:160"},{"body":{"id":75316,"nodeType":"Block","src":"13206:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75304,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"13224:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75306,"indexExpression":{"id":75305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"13231:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13224:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75307,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75286,"src":"13237:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13224:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75311,"nodeType":"IfStatement","src":"13220:66:160","trueBody":{"id":75310,"nodeType":"Block","src":"13248:38:160","statements":[{"id":75309,"nodeType":"Break","src":"13266:5:160"}]}},{"expression":{"id":75314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75312,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"13299:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":75313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13317:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13299:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75315,"nodeType":"ExpressionStatement","src":"13299:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"13173:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75298,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13177:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13193:6:160","memberName":"length","nodeType":"MemberAccess","src":"13177:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13173:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75317,"initializationExpression":{"assignments":[75294],"declarations":[{"constant":false,"id":75294,"mutability":"mutable","name":"i","nameLocation":"13154:1:160","nodeType":"VariableDeclaration","scope":75317,"src":"13146:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75293,"name":"uint256","nodeType":"ElementaryTypeName","src":"13146:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75296,"initialValue":{"id":75295,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13158:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13146:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13201:3:160","subExpression":{"id":75301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"13201:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75303,"nodeType":"ExpressionStatement","src":"13201:3:160"},"nodeType":"ForStatement","src":"13141:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75318,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"13343:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":75319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13360:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13343:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75350,"nodeType":"IfStatement","src":"13339:316:160","trueBody":{"id":75349,"nodeType":"Block","src":"13363:292:160","statements":[{"assignments":[75322],"declarations":[{"constant":false,"id":75322,"mutability":"mutable","name":"randomIndex","nameLocation":"13474:11:160","nodeType":"VariableDeclaration","scope":75349,"src":"13466:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75321,"name":"uint256","nodeType":"ElementaryTypeName","src":"13466:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75334,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":75328,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75161,"src":"13523:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":75326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13506:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13510:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13506:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13506:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75325,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13496:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13496:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13488:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75323,"name":"uint256","nodeType":"ElementaryTypeName","src":"13488:7:160","typeDescriptions":{}}},"id":75331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13488:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":75332,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"13531:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13488:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13466:79:160"},{"expression":{"id":75347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75335,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13559:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75339,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75336,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13575:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13591:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13575:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13559:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":75340,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13596:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75346,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75341,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13612:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75342,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"13628:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13612:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13642:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13612:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13596:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13559:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75348,"nodeType":"ExpressionStatement","src":"13559:85:160"}]}},{"AST":{"nativeSrc":"13690:62:160","nodeType":"YulBlock","src":"13690:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13711:15:160","nodeType":"YulIdentifier","src":"13711:15:160"},{"name":"maxValidators","nativeSrc":"13728:13:160","nodeType":"YulIdentifier","src":"13728:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13704:6:160","nodeType":"YulIdentifier","src":"13704:6:160"},"nativeSrc":"13704:38:160","nodeType":"YulFunctionCall","src":"13704:38:160"},"nativeSrc":"13704:38:160","nodeType":"YulExpressionStatement","src":"13704:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":75181,"isOffset":false,"isSlot":false,"src":"13711:15:160","valueSize":1},{"declaration":75163,"isOffset":false,"isSlot":false,"src":"13728:13:160","valueSize":1}],"flags":["memory-safe"],"id":75351,"nodeType":"InlineAssembly","src":"13665:87:160"},{"expression":{"id":75352,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13769:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":75168,"id":75353,"nodeType":"Return","src":"13762:22:160"}]},"baseFunctions":[73340],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12158:14:160","parameters":{"id":75164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75161,"mutability":"mutable","name":"ts","nameLocation":"12180:2:160","nodeType":"VariableDeclaration","scope":75355,"src":"12173:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75160,"name":"uint48","nodeType":"ElementaryTypeName","src":"12173:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75163,"mutability":"mutable","name":"maxValidators","nameLocation":"12192:13:160","nodeType":"VariableDeclaration","scope":75355,"src":"12184:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75162,"name":"uint256","nodeType":"ElementaryTypeName","src":"12184:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12172:34:160"},"returnParameters":{"id":75168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75167,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75355,"src":"12230:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75165,"name":"address","nodeType":"ElementaryTypeName","src":"12230:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75166,"nodeType":"ArrayTypeName","src":"12230:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12229:18:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75396,"nodeType":"FunctionDefinition","src":"13797:372:160","nodes":[],"body":{"id":75395,"nodeType":"Block","src":"13911:258:160","nodes":[],"statements":[{"assignments":[75368,75370],"declarations":[{"constant":false,"id":75368,"mutability":"mutable","name":"enabledTime","nameLocation":"13929:11:160","nodeType":"VariableDeclaration","scope":75395,"src":"13922:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75367,"name":"uint48","nodeType":"ElementaryTypeName","src":"13922:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75370,"mutability":"mutable","name":"disabledTime","nameLocation":"13949:12:160","nodeType":"VariableDeclaration","scope":75395,"src":"13942:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75369,"name":"uint48","nodeType":"ElementaryTypeName","src":"13942:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75377,"initialValue":{"arguments":[{"id":75375,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75357,"src":"13995:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75371,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"13965:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13965:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13976:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"13965:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13986:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":82508,"src":"13965:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13965:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13921:83:160"},{"condition":{"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14018:44:160","subExpression":{"arguments":[{"id":75379,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75368,"src":"14032:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75380,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"14045:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75381,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75359,"src":"14059:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75378,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"14019:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14019:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75387,"nodeType":"IfStatement","src":"14014:83:160","trueBody":{"id":75386,"nodeType":"Block","src":"14064:33:160","statements":[{"expression":{"hexValue":"30","id":75384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14085:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":75366,"id":75385,"nodeType":"Return","src":"14078:8:160"}]}},{"expression":{"id":75393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75388,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75365,"src":"14107:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75390,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75357,"src":"14149:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75391,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75359,"src":"14159:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75389,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75754,"src":"14115:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14115:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14107:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75394,"nodeType":"ExpressionStatement","src":"14107:55:160"}]},"baseFunctions":[73350],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75362,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75359,"src":"13883:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":75363,"kind":"modifierInvocation","modifierName":{"id":75361,"name":"validTimestamp","nameLocations":["13868:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":76212,"src":"13868:14:160"},"nodeType":"ModifierInvocation","src":"13868:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13806:18:160","parameters":{"id":75360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75357,"mutability":"mutable","name":"operator","nameLocation":"13833:8:160","nodeType":"VariableDeclaration","scope":75396,"src":"13825:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75356,"name":"address","nodeType":"ElementaryTypeName","src":"13825:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75359,"mutability":"mutable","name":"ts","nameLocation":"13850:2:160","nodeType":"VariableDeclaration","scope":75396,"src":"13843:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75358,"name":"uint48","nodeType":"ElementaryTypeName","src":"13843:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13824:29:160"},"returnParameters":{"id":75366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75365,"mutability":"mutable","name":"stake","nameLocation":"13904:5:160","nodeType":"VariableDeclaration","scope":75396,"src":"13896:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75364,"name":"uint256","nodeType":"ElementaryTypeName","src":"13896:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13895:15:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75498,"nodeType":"FunctionDefinition","src":"14212:940:160","nodes":[],"body":{"id":75497,"nodeType":"Block","src":"14393:759:160","nodes":[],"statements":[{"assignments":[75412],"declarations":[{"constant":false,"id":75412,"mutability":"mutable","name":"$","nameLocation":"14419:1:160","nodeType":"VariableDeclaration","scope":75497,"src":"14403:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75411,"nodeType":"UserDefinedTypeName","pathNode":{"id":75410,"name":"Storage","nameLocations":["14403:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"14403:7:160"},"referencedDeclaration":73229,"src":"14403:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75415,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75413,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"14423:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14423:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14403:30:160"},{"expression":{"id":75425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75416,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75405,"src":"14443:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75420,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14475:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14477:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14475:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14487:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"14475:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14475:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14461:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":75417,"name":"address","nodeType":"ElementaryTypeName","src":"14465:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75418,"nodeType":"ArrayTypeName","src":"14465:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":75424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14461:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14443:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75426,"nodeType":"ExpressionStatement","src":"14443:53:160"},{"expression":{"id":75436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75427,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"14506:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75431,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14529:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14531:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14529:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14541:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"14529:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14529:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14515:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75428,"name":"uint256","nodeType":"ElementaryTypeName","src":"14519:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75429,"nodeType":"ArrayTypeName","src":"14519:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14515:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14506:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75437,"nodeType":"ExpressionStatement","src":"14506:44:160"},{"assignments":[75439],"declarations":[{"constant":false,"id":75439,"mutability":"mutable","name":"operatorIdx","nameLocation":"14569:11:160","nodeType":"VariableDeclaration","scope":75497,"src":"14561:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75438,"name":"uint256","nodeType":"ElementaryTypeName","src":"14561:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75441,"initialValue":{"hexValue":"30","id":75440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14583:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14561:23:160"},{"body":{"id":75494,"nodeType":"Block","src":"14642:369:160","statements":[{"assignments":[75455,75457,75459],"declarations":[{"constant":false,"id":75455,"mutability":"mutable","name":"operator","nameLocation":"14665:8:160","nodeType":"VariableDeclaration","scope":75494,"src":"14657:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75454,"name":"address","nodeType":"ElementaryTypeName","src":"14657:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75457,"mutability":"mutable","name":"enabled","nameLocation":"14682:7:160","nodeType":"VariableDeclaration","scope":75494,"src":"14675:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75456,"name":"uint48","nodeType":"ElementaryTypeName","src":"14675:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75459,"mutability":"mutable","name":"disabled","nameLocation":"14698:8:160","nodeType":"VariableDeclaration","scope":75494,"src":"14691:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75458,"name":"uint48","nodeType":"ElementaryTypeName","src":"14691:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75465,"initialValue":{"arguments":[{"id":75463,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"14734:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75460,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14710:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14712:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14710:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14722:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":82484,"src":"14710:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":75464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14710:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14656:80:160"},{"condition":{"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14755:36:160","subExpression":{"arguments":[{"id":75467,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75457,"src":"14769:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75468,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75459,"src":"14778:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75469,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75398,"src":"14788:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75466,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"14756:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":75470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14756:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75474,"nodeType":"IfStatement","src":"14751:83:160","trueBody":{"id":75473,"nodeType":"Block","src":"14793:41:160","statements":[{"id":75472,"nodeType":"Continue","src":"14811:8:160"}]}},{"expression":{"id":75479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75475,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75405,"src":"14848:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75477,"indexExpression":{"id":75476,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"14864:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14848:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75478,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75455,"src":"14879:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14848:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75480,"nodeType":"ExpressionStatement","src":"14848:39:160"},{"expression":{"id":75488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75481,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"14901:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75483,"indexExpression":{"id":75482,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"14908:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14901:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75485,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75455,"src":"14957:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75486,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75398,"src":"14967:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75484,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75754,"src":"14923:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":75487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14923:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14901:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75489,"nodeType":"ExpressionStatement","src":"14901:69:160"},{"expression":{"id":75492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75490,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"14984:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":75491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14999:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14984:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75493,"nodeType":"ExpressionStatement","src":"14984:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75445,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"14611:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75446,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14615:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14617:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14615:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14627:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"14615:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14615:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14611:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75495,"initializationExpression":{"assignments":[75443],"declarations":[{"constant":false,"id":75443,"mutability":"mutable","name":"i","nameLocation":"14608:1:160","nodeType":"VariableDeclaration","scope":75495,"src":"14600:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75442,"name":"uint256","nodeType":"ElementaryTypeName","src":"14600:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75444,"nodeType":"VariableDeclarationStatement","src":"14600:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14637:3:160","subExpression":{"id":75451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"14639:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75453,"nodeType":"ExpressionStatement","src":"14637:3:160"},"nodeType":"ForStatement","src":"14595:416:160"},{"AST":{"nativeSrc":"15046:100:160","nodeType":"YulBlock","src":"15046:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15067:15:160","nodeType":"YulIdentifier","src":"15067:15:160"},{"name":"operatorIdx","nativeSrc":"15084:11:160","nodeType":"YulIdentifier","src":"15084:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15060:6:160","nodeType":"YulIdentifier","src":"15060:6:160"},"nativeSrc":"15060:36:160","nodeType":"YulFunctionCall","src":"15060:36:160"},"nativeSrc":"15060:36:160","nodeType":"YulExpressionStatement","src":"15060:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15116:6:160","nodeType":"YulIdentifier","src":"15116:6:160"},{"name":"operatorIdx","nativeSrc":"15124:11:160","nodeType":"YulIdentifier","src":"15124:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15109:6:160","nodeType":"YulIdentifier","src":"15109:6:160"},"nativeSrc":"15109:27:160","nodeType":"YulFunctionCall","src":"15109:27:160"},"nativeSrc":"15109:27:160","nodeType":"YulExpressionStatement","src":"15109:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":75405,"isOffset":false,"isSlot":false,"src":"15067:15:160","valueSize":1},{"declaration":75439,"isOffset":false,"isSlot":false,"src":"15084:11:160","valueSize":1},{"declaration":75439,"isOffset":false,"isSlot":false,"src":"15124:11:160","valueSize":1},{"declaration":75408,"isOffset":false,"isSlot":false,"src":"15116:6:160","valueSize":1}],"flags":["memory-safe"],"id":75496,"nodeType":"InlineAssembly","src":"15021:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75401,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75398,"src":"14309:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":75402,"kind":"modifierInvocation","modifierName":{"id":75400,"name":"validTimestamp","nameLocations":["14294:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":76212,"src":"14294:14:160"},"nodeType":"ModifierInvocation","src":"14294:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14221:25:160","parameters":{"id":75399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75398,"mutability":"mutable","name":"ts","nameLocation":"14254:2:160","nodeType":"VariableDeclaration","scope":75498,"src":"14247:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75397,"name":"uint48","nodeType":"ElementaryTypeName","src":"14247:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14246:11:160"},"returnParameters":{"id":75409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75405,"mutability":"mutable","name":"activeOperators","nameLocation":"14347:15:160","nodeType":"VariableDeclaration","scope":75498,"src":"14330:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75403,"name":"address","nodeType":"ElementaryTypeName","src":"14330:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75404,"nodeType":"ArrayTypeName","src":"14330:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":75408,"mutability":"mutable","name":"stakes","nameLocation":"14381:6:160","nodeType":"VariableDeclaration","scope":75498,"src":"14364:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75406,"name":"uint256","nodeType":"ElementaryTypeName","src":"14364:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75407,"nodeType":"ArrayTypeName","src":"14364:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14329:59:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75614,"nodeType":"FunctionDefinition","src":"15158:952:160","nodes":[],"body":{"id":75613,"nodeType":"Block","src":"15216:894:160","nodes":[],"statements":[{"assignments":[75507],"declarations":[{"constant":false,"id":75507,"mutability":"mutable","name":"$","nameLocation":"15242:1:160","nodeType":"VariableDeclaration","scope":75613,"src":"15226:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75506,"nodeType":"UserDefinedTypeName","pathNode":{"id":75505,"name":"Storage","nameLocations":["15226:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"15226:7:160"},"referencedDeclaration":73229,"src":"15226:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75510,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75508,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"15246:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15246:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15226:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75511,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15271:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15275:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15271:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75513,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"15285:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15287:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"15285:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15297:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":81367,"src":"15285:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15271:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75521,"nodeType":"IfStatement","src":"15267:101:160","trueBody":{"id":75520,"nodeType":"Block","src":"15317:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75517,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73125,"src":"15338:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75519,"nodeType":"RevertStatement","src":"15331:26:160"}]}},{"body":{"id":75611,"nodeType":"Block","src":"15416:688:160","statements":[{"assignments":[75534],"declarations":[{"constant":false,"id":75534,"mutability":"mutable","name":"slashData","nameLocation":"15449:9:160","nodeType":"VariableDeclaration","scope":75611,"src":"15430:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":75533,"nodeType":"UserDefinedTypeName","pathNode":{"id":75532,"name":"SlashData","nameLocations":["15430:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73243,"src":"15430:9:160"},"referencedDeclaration":73243,"src":"15430:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":75538,"initialValue":{"baseExpression":{"id":75535,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75502,"src":"15461:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":75537,"indexExpression":{"id":75536,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"15466:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15461:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15430:38:160"},{"condition":{"id":75545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15486:41:160","subExpression":{"arguments":[{"expression":{"id":75542,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"15508:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15518:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73236,"src":"15508:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75539,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"15487:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15489:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"15487:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15499:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"15487:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15487:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75550,"nodeType":"IfStatement","src":"15482:110:160","trueBody":{"id":75549,"nodeType":"Block","src":"15529:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75546,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"15554:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15554:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75548,"nodeType":"RevertStatement","src":"15547:30:160"}]}},{"body":{"id":75609,"nodeType":"Block","src":"15656:438:160","statements":[{"assignments":[75564],"declarations":[{"constant":false,"id":75564,"mutability":"mutable","name":"vaultData","nameLocation":"15698:9:160","nodeType":"VariableDeclaration","scope":75609,"src":"15674:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":75563,"nodeType":"UserDefinedTypeName","pathNode":{"id":75562,"name":"VaultSlashData","nameLocations":["15674:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73234,"src":"15674:14:160"},"referencedDeclaration":73234,"src":"15674:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":75569,"initialValue":{"baseExpression":{"expression":{"id":75565,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"15710:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15720:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73242,"src":"15710:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73234_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":75568,"indexExpression":{"id":75567,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75552,"src":"15727:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15710:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15674:55:160"},{"condition":{"id":75576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15752:35:160","subExpression":{"arguments":[{"expression":{"id":75573,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75564,"src":"15771:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":75574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15781:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73231,"src":"15771:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75570,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"15753:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15755:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"15753:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15762:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"15753:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15753:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75581,"nodeType":"IfStatement","src":"15748:109:160","trueBody":{"id":75580,"nodeType":"Block","src":"15789:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75577,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73110,"src":"15818:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15818:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75579,"nodeType":"RevertStatement","src":"15811:27:160"}]}},{"assignments":[75583],"declarations":[{"constant":false,"id":75583,"mutability":"mutable","name":"slasher","nameLocation":"15883:7:160","nodeType":"VariableDeclaration","scope":75609,"src":"15875:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75582,"name":"address","nodeType":"ElementaryTypeName","src":"15875:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75590,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":75585,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75564,"src":"15900:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":75586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15910:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73231,"src":"15900:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75584,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"15893:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15893:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15917:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66252,"src":"15893:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15893:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15875:51:160"},{"expression":{"arguments":[{"expression":{"id":75595,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"16000:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16002:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"16000:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75597,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"16014:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16024:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73236,"src":"16014:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75599,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75564,"src":"16034:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":75600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16044:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73233,"src":"16034:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75601,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"16052:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16062:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73238,"src":"16052:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":75605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16076:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16066:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":75603,"name":"bytes","nodeType":"ElementaryTypeName","src":"16070:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":75606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16066:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75592,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75583,"src":"15957:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75591,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"15944:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":75593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15944:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":75594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15987:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":65813,"src":"15944:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":75607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15944:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75608,"nodeType":"ExpressionStatement","src":"15944:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75554,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75552,"src":"15622:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75555,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"15626:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15636:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73242,"src":"15626:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73234_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15643:6:160","memberName":"length","nodeType":"MemberAccess","src":"15626:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15622:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75610,"initializationExpression":{"assignments":[75552],"declarations":[{"constant":false,"id":75552,"mutability":"mutable","name":"j","nameLocation":"15619:1:160","nodeType":"VariableDeclaration","scope":75610,"src":"15611:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75551,"name":"uint256","nodeType":"ElementaryTypeName","src":"15611:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75553,"nodeType":"VariableDeclarationStatement","src":"15611:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15651:3:160","subExpression":{"id":75559,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75552,"src":"15653:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75561,"nodeType":"ExpressionStatement","src":"15651:3:160"},"nodeType":"ForStatement","src":"15606:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"15394:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75526,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75502,"src":"15398:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":75527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15403:6:160","memberName":"length","nodeType":"MemberAccess","src":"15398:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15394:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75612,"initializationExpression":{"assignments":[75523],"declarations":[{"constant":false,"id":75523,"mutability":"mutable","name":"i","nameLocation":"15391:1:160","nodeType":"VariableDeclaration","scope":75612,"src":"15383:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75522,"name":"uint256","nodeType":"ElementaryTypeName","src":"15383:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75524,"nodeType":"VariableDeclarationStatement","src":"15383:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15411:3:160","subExpression":{"id":75529,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"15413:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75531,"nodeType":"ExpressionStatement","src":"15411:3:160"},"nodeType":"ForStatement","src":"15378:726:160"}]},"baseFunctions":[73357],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15167:12:160","parameters":{"id":75503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75502,"mutability":"mutable","name":"data","nameLocation":"15201:4:160","nodeType":"VariableDeclaration","scope":75614,"src":"15180:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":75500,"nodeType":"UserDefinedTypeName","pathNode":{"id":75499,"name":"SlashData","nameLocations":["15180:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73243,"src":"15180:9:160"},"referencedDeclaration":73243,"src":"15180:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":75501,"nodeType":"ArrayTypeName","src":"15180:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15179:27:160"},"returnParameters":{"id":75504,"nodeType":"ParameterList","parameters":[],"src":"15216:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75683,"nodeType":"FunctionDefinition","src":"16116:528:160","nodes":[],"body":{"id":75682,"nodeType":"Block","src":"16183:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75621,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16197:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16201:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16197:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75623,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"16211:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16211:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16222:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"16211:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16232:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":81369,"src":"16211:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16197:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75632,"nodeType":"IfStatement","src":"16193:108:160","trueBody":{"id":75631,"nodeType":"Block","src":"16251:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75628,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"16272:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16272:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75630,"nodeType":"RevertStatement","src":"16265:25:160"}]}},{"body":{"id":75680,"nodeType":"Block","src":"16352:286:160","statements":[{"assignments":[75645],"declarations":[{"constant":false,"id":75645,"mutability":"mutable","name":"slash","nameLocation":"16391:5:160","nodeType":"VariableDeclaration","scope":75680,"src":"16366:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":75644,"nodeType":"UserDefinedTypeName","pathNode":{"id":75643,"name":"SlashIdentifier","nameLocations":["16366:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73248,"src":"16366:15:160"},"referencedDeclaration":73248,"src":"16366:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":75649,"initialValue":{"baseExpression":{"id":75646,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75618,"src":"16399:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":75648,"indexExpression":{"id":75647,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"16407:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16399:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16366:43:160"},{"condition":{"id":75657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16428:40:160","subExpression":{"arguments":[{"expression":{"id":75654,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"16456:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":75655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16462:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73245,"src":"16456:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75650,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"16429:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16429:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16440:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"16429:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16447:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"16429:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16429:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75662,"nodeType":"IfStatement","src":"16424:106:160","trueBody":{"id":75661,"nodeType":"Block","src":"16470:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75658,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73110,"src":"16495:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16495:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75660,"nodeType":"RevertStatement","src":"16488:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":75672,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"16601:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":75673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16607:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73247,"src":"16601:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":75676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16624:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16614:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":75674,"name":"bytes","nodeType":"ElementaryTypeName","src":"16618:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":75677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16614:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":75665,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"16564:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":75666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16570:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73245,"src":"16564:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75664,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"16557:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16557:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16577:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66252,"src":"16557:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16557:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75663,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"16544:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":75670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16544:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16588:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":65823,"src":"16544:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":75678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16544:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75679,"nodeType":"ExpressionStatement","src":"16544:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"16327:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75637,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75618,"src":"16331:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":75638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16339:6:160","memberName":"length","nodeType":"MemberAccess","src":"16331:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16327:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75681,"initializationExpression":{"assignments":[75634],"declarations":[{"constant":false,"id":75634,"mutability":"mutable","name":"i","nameLocation":"16324:1:160","nodeType":"VariableDeclaration","scope":75681,"src":"16316:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75633,"name":"uint256","nodeType":"ElementaryTypeName","src":"16316:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75635,"nodeType":"VariableDeclarationStatement","src":"16316:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16347:3:160","subExpression":{"id":75640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"16349:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75642,"nodeType":"ExpressionStatement","src":"16347:3:160"},"nodeType":"ForStatement","src":"16311:327:160"}]},"baseFunctions":[73364],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16125:12:160","parameters":{"id":75619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75618,"mutability":"mutable","name":"slashes","nameLocation":"16165:7:160","nodeType":"VariableDeclaration","scope":75683,"src":"16138:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":75616,"nodeType":"UserDefinedTypeName","pathNode":{"id":75615,"name":"SlashIdentifier","nameLocations":["16138:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73248,"src":"16138:15:160"},"referencedDeclaration":73248,"src":"16138:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":75617,"nodeType":"ArrayTypeName","src":"16138:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16137:36:160"},"returnParameters":{"id":75620,"nodeType":"ParameterList","parameters":[],"src":"16183:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75754,"nodeType":"FunctionDefinition","src":"16650:556:160","nodes":[],"body":{"id":75753,"nodeType":"Block","src":"16759:447:160","nodes":[],"statements":[{"assignments":[75694],"declarations":[{"constant":false,"id":75694,"mutability":"mutable","name":"$","nameLocation":"16785:1:160","nodeType":"VariableDeclaration","scope":75753,"src":"16769:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75693,"nodeType":"UserDefinedTypeName","pathNode":{"id":75692,"name":"Storage","nameLocations":["16769:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"16769:7:160"},"referencedDeclaration":73229,"src":"16769:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75697,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75695,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"16789:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16789:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16769:30:160"},{"body":{"id":75751,"nodeType":"Block","src":"16853:347:160","statements":[{"assignments":[75711,75713,75715],"declarations":[{"constant":false,"id":75711,"mutability":"mutable","name":"vault","nameLocation":"16876:5:160","nodeType":"VariableDeclaration","scope":75751,"src":"16868:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75710,"name":"address","nodeType":"ElementaryTypeName","src":"16868:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75713,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16890:16:160","nodeType":"VariableDeclaration","scope":75751,"src":"16883:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75712,"name":"uint48","nodeType":"ElementaryTypeName","src":"16883:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75715,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16915:17:160","nodeType":"VariableDeclaration","scope":75751,"src":"16908:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75714,"name":"uint48","nodeType":"ElementaryTypeName","src":"16908:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75721,"initialValue":{"arguments":[{"id":75719,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"16957:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75716,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"16936:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16938:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"16936:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16945:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":82484,"src":"16936:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16936:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16867:92:160"},{"condition":{"id":75727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16978:54:160","subExpression":{"arguments":[{"id":75723,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75713,"src":"16992:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75724,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75715,"src":"17010:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75725,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"17029:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75722,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"16979:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":75726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75730,"nodeType":"IfStatement","src":"16974:101:160","trueBody":{"id":75729,"nodeType":"Block","src":"17034:41:160","statements":[{"id":75728,"nodeType":"Continue","src":"17052:8:160"}]}},{"expression":{"id":75749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75731,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75690,"src":"17089:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":75740,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"17148:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17150:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"17148:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75742,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75685,"src":"17162:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75743,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"17172:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":75746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17186:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17176:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":75744,"name":"bytes","nodeType":"ElementaryTypeName","src":"17180:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":75747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17176:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75734,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75711,"src":"17120:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75733,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"17113:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17113:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17127:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66240,"src":"17113:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17113:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75732,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"17098:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$64830_$","typeString":"type(contract IBaseDelegator)"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17098:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":75739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17140:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":64791,"src":"17098:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":75748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17098:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17089:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75750,"nodeType":"ExpressionStatement","src":"17089:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75701,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"16825:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75702,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"16829:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16831:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"16829:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16838:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"16829:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16829:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16825:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75752,"initializationExpression":{"assignments":[75699],"declarations":[{"constant":false,"id":75699,"mutability":"mutable","name":"i","nameLocation":"16822:1:160","nodeType":"VariableDeclaration","scope":75752,"src":"16814:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75698,"name":"uint256","nodeType":"ElementaryTypeName","src":"16814:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75700,"nodeType":"VariableDeclarationStatement","src":"16814:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16848:3:160","subExpression":{"id":75707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"16850:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75709,"nodeType":"ExpressionStatement","src":"16848:3:160"},"nodeType":"ForStatement","src":"16809:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16659:33:160","parameters":{"id":75688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75685,"mutability":"mutable","name":"operator","nameLocation":"16701:8:160","nodeType":"VariableDeclaration","scope":75754,"src":"16693:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75684,"name":"address","nodeType":"ElementaryTypeName","src":"16693:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75687,"mutability":"mutable","name":"ts","nameLocation":"16718:2:160","nodeType":"VariableDeclaration","scope":75754,"src":"16711:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75686,"name":"uint48","nodeType":"ElementaryTypeName","src":"16711:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16692:29:160"},"returnParameters":{"id":75691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75690,"mutability":"mutable","name":"stake","nameLocation":"16752:5:160","nodeType":"VariableDeclaration","scope":75754,"src":"16744:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75689,"name":"uint256","nodeType":"ElementaryTypeName","src":"16744:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16743:15:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75783,"nodeType":"FunctionDefinition","src":"17212:208:160","nodes":[],"body":{"id":75782,"nodeType":"Block","src":"17314:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75765,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"17331:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17346:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17331:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75768,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"17351:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75769,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75760,"src":"17366:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17351:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17331:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75772,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75758,"src":"17373:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17389:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17373:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75775,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75758,"src":"17394:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":75776,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75760,"src":"17410:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17394:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17373:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":75779,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17372:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17331:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":75764,"id":75781,"nodeType":"Return","src":"17324:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17221:12:160","parameters":{"id":75761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75756,"mutability":"mutable","name":"enabledTime","nameLocation":"17241:11:160","nodeType":"VariableDeclaration","scope":75783,"src":"17234:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75755,"name":"uint48","nodeType":"ElementaryTypeName","src":"17234:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75758,"mutability":"mutable","name":"disabledTime","nameLocation":"17261:12:160","nodeType":"VariableDeclaration","scope":75783,"src":"17254:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75757,"name":"uint48","nodeType":"ElementaryTypeName","src":"17254:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75760,"mutability":"mutable","name":"ts","nameLocation":"17282:2:160","nodeType":"VariableDeclaration","scope":75783,"src":"17275:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75759,"name":"uint48","nodeType":"ElementaryTypeName","src":"17275:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17233:52:160"},"returnParameters":{"id":75764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75763,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75783,"src":"17308:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75762,"name":"bool","nodeType":"ElementaryTypeName","src":"17308:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17307:6:160"},"scope":76339,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75800,"nodeType":"FunctionDefinition","src":"17465:154:160","nodes":[],"body":{"id":75799,"nodeType":"Block","src":"17521:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75788,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"17535:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":75791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17551:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17543:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75789,"name":"address","nodeType":"ElementaryTypeName","src":"17543:7:160","typeDescriptions":{}}},"id":75792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17543:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17535:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75798,"nodeType":"IfStatement","src":"17531:82:160","trueBody":{"id":75797,"nodeType":"Block","src":"17555:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75794,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73080,"src":"17576:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17576:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75796,"nodeType":"RevertStatement","src":"17569:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17474:19:160","parameters":{"id":75786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75785,"mutability":"mutable","name":"hook","nameLocation":"17502:4:160","nodeType":"VariableDeclaration","scope":75800,"src":"17494:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75784,"name":"address","nodeType":"ElementaryTypeName","src":"17494:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17493:14:160"},"returnParameters":{"id":75787,"nodeType":"ParameterList","parameters":[],"src":"17521:0:160"},"scope":76339,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75888,"nodeType":"FunctionDefinition","src":"17625:2002:160","nodes":[],"body":{"id":75887,"nodeType":"Block","src":"17683:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"17701:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17703:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"17701:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17717:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17701:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75811,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73140,"src":"17720:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17720:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75806,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17693:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17693:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75814,"nodeType":"ExpressionStatement","src":"17693:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75816,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18090:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18092:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"18090:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18117:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":75819,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18121:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18123:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"18121:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18117:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18090:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75823,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73143,"src":"18136:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18136:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18082:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18082:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75826,"nodeType":"ExpressionStatement","src":"18082:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75828,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18365:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18367:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"18365:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":75830,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18390:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18392:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"18390:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18365:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75833,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73146,"src":"18415:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18415:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18357:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18357:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75836,"nodeType":"ExpressionStatement","src":"18357:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75838,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18653:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18655:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"18653:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":75840,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18675:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18677:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"18675:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18653:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75843,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73149,"src":"18700:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18700:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75837,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18645:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18645:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75846,"nodeType":"ExpressionStatement","src":"18645:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75848,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18828:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18830:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"18828:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18848:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18828:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75852,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73152,"src":"18851:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18851:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18820:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18820:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75855,"nodeType":"ExpressionStatement","src":"18820:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19100:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19102:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"19100:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19127:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19100:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75861,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73155,"src":"19130:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19130:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75856,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19092:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19092:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75864,"nodeType":"ExpressionStatement","src":"19092:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75866,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19207:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19209:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"19207:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75868,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19227:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19229:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"19227:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19207:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":75871,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19255:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19257:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"19255:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19207:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75874,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73158,"src":"19292:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19292:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19186:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19186:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75877,"nodeType":"ExpressionStatement","src":"19186:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75879,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19549:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19551:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"19549:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":75881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19580:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19549:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75883,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73161,"src":"19583:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19583:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19541:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19541:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75886,"nodeType":"ExpressionStatement","src":"19541:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17634:16:160","parameters":{"id":75804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75803,"mutability":"mutable","name":"$","nameLocation":"17667:1:160","nodeType":"VariableDeclaration","scope":75888,"src":"17651:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75802,"nodeType":"UserDefinedTypeName","pathNode":{"id":75801,"name":"Storage","nameLocations":["17651:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"17651:7:160"},"referencedDeclaration":73229,"src":"17651:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17650:19:160"},"returnParameters":{"id":75805,"nodeType":"ParameterList","parameters":[],"src":"17683:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76155,"nodeType":"FunctionDefinition","src":"19675:2572:160","nodes":[],"body":{"id":76154,"nodeType":"Block","src":"19723:2524:160","nodes":[],"statements":[{"assignments":[75895],"declarations":[{"constant":false,"id":75895,"mutability":"mutable","name":"$","nameLocation":"19749:1:160","nodeType":"VariableDeclaration","scope":76154,"src":"19733:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75894,"nodeType":"UserDefinedTypeName","pathNode":{"id":75893,"name":"Storage","nameLocations":["19733:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"19733:7:160"},"referencedDeclaration":73229,"src":"19733:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75896,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"19753:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19753:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19733:30:160"},{"condition":{"id":75907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19778:54:160","subExpression":{"arguments":[{"id":75905,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"19825:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75900,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"19789:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19791:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"19789:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19801:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":81353,"src":"19789:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75899,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"19779:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$64656_$","typeString":"type(contract IRegistry)"}},"id":75903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19779:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$64656","typeString":"contract IRegistry"}},"id":75904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19816:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":64641,"src":"19779:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19779:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75912,"nodeType":"IfStatement","src":"19774:109:160","trueBody":{"id":75911,"nodeType":"Block","src":"19834:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75908,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"19855:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19855:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75910,"nodeType":"RevertStatement","src":"19848:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":75920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75914,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"19915:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75913,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64532,"src":"19897:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$64532_$","typeString":"type(contract IMigratableEntity)"}},"id":75915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19897:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$64532","typeString":"contract IMigratableEntity"}},"id":75916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19923:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":64513,"src":"19897:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":75917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19897:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75918,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"19936:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19938:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"19936:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19897:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75925,"nodeType":"IfStatement","src":"19893:128:160","trueBody":{"id":75924,"nodeType":"Block","src":"19963:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75921,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"19984:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19984:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75923,"nodeType":"RevertStatement","src":"19977:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75927,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20042:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75926,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20035:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20035:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20050:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66228,"src":"20035:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20035:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75931,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"20066:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20068:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"20066:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20035:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75938,"nodeType":"IfStatement","src":"20031:100:160","trueBody":{"id":75937,"nodeType":"Block","src":"20080:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75934,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"20101:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20101:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75936,"nodeType":"RevertStatement","src":"20094:26:160"}]}},{"assignments":[75940],"declarations":[{"constant":false,"id":75940,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20176:18:160","nodeType":"VariableDeclaration","scope":76154,"src":"20169:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75939,"name":"uint48","nodeType":"ElementaryTypeName","src":"20169:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75946,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75942,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20204:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75941,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20197:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20197:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20212:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66270,"src":"20197:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":75945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20197:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20169:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75947,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"20241:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75948,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"20262:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20264:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"20262:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20241:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75955,"nodeType":"IfStatement","src":"20237:107:160","trueBody":{"id":75954,"nodeType":"Block","src":"20287:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75951,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"20308:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20308:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75953,"nodeType":"RevertStatement","src":"20301:32:160"}]}},{"condition":{"id":75961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20391:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75957,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20399:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75956,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20392:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20392:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20407:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66246,"src":"20392:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20392:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75966,"nodeType":"IfStatement","src":"20387:103:160","trueBody":{"id":75965,"nodeType":"Block","src":"20433:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75962,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"20454:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75964,"nodeType":"RevertStatement","src":"20447:32:160"}]}},{"assignments":[75969],"declarations":[{"constant":false,"id":75969,"mutability":"mutable","name":"delegator","nameLocation":"20515:9:160","nodeType":"VariableDeclaration","scope":76154,"src":"20500:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"},"typeName":{"id":75968,"nodeType":"UserDefinedTypeName","pathNode":{"id":75967,"name":"IBaseDelegator","nameLocations":["20500:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":64830,"src":"20500:14:160"},"referencedDeclaration":64830,"src":"20500:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":75977,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75972,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20549:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75971,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20542:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20542:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20557:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66240,"src":"20542:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20542:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75970,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"20527:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$64830_$","typeString":"type(contract IBaseDelegator)"}},"id":75976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20527:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20500:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":75980,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"20609:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20611:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"20609:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75978,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75969,"src":"20583:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":75979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20593:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":64777,"src":"20583:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":75982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20583:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":75985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20631:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75984,"name":"uint256","nodeType":"ElementaryTypeName","src":"20631:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":75983,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20626:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":75986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20626:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":75987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20640:3:160","memberName":"max","nodeType":"MemberAccess","src":"20626:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20583:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76001,"nodeType":"IfStatement","src":"20579:158:160","trueBody":{"id":76000,"nodeType":"Block","src":"20645:92:160","statements":[{"expression":{"arguments":[{"id":75992,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74147,"src":"20688:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":75995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20713:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75994,"name":"uint256","nodeType":"ElementaryTypeName","src":"20713:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":75993,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20708:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":75996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20708:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":75997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20722:3:160","memberName":"max","nodeType":"MemberAccess","src":"20708:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75989,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75969,"src":"20659:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":75991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20669:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":64809,"src":"20659:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":75998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20659:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75999,"nodeType":"ExpressionStatement","src":"20659:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76004,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75969,"src":"20781:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}],"id":76003,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"20766:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$64830_$","typeString":"type(contract IBaseDelegator)"}},"id":76005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20766:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":76006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20792:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":64769,"src":"20766:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20766:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76002,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75800,"src":"20746:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20746:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76009,"nodeType":"ExpressionStatement","src":"20746:53:160"},{"condition":{"id":76015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20845:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76011,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20853:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76010,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20846:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":76012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20846:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":76013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20861:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66258,"src":"20846:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20846:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76020,"nodeType":"IfStatement","src":"20841:99:160","trueBody":{"id":76019,"nodeType":"Block","src":"20885:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76016,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"20906:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20906:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76018,"nodeType":"RevertStatement","src":"20899:30:160"}]}},{"assignments":[76022],"declarations":[{"constant":false,"id":76022,"mutability":"mutable","name":"slasher","nameLocation":"20958:7:160","nodeType":"VariableDeclaration","scope":76154,"src":"20950:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76021,"name":"address","nodeType":"ElementaryTypeName","src":"20950:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76028,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76024,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20975:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76023,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20968:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":76025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20968:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":76026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20983:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66252,"src":"20968:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20968:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20950:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76030,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21014:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76029,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64424,"src":"21006:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$64424_$","typeString":"type(contract IEntity)"}},"id":76031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21006:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$64424","typeString":"contract IEntity"}},"id":76032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21023:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":64417,"src":"21006:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21006:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76034,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21033:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21035:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"21033:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21006:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76041,"nodeType":"IfStatement","src":"21002:111:160","trueBody":{"id":76040,"nodeType":"Block","src":"21056:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76037,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"21077:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21077:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76039,"nodeType":"RevertStatement","src":"21070:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76043,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21140:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76042,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21127:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21127:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21149:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":65510,"src":"21127:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21127:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76051,"nodeType":"IfStatement","src":"21123:98:160","trueBody":{"id":76050,"nodeType":"Block","src":"21165:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76047,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"21186:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21186:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76049,"nodeType":"RevertStatement","src":"21179:31:160"}]}},{"assignments":[76053],"declarations":[{"constant":false,"id":76053,"mutability":"mutable","name":"vetoDuration","nameLocation":"21238:12:160","nodeType":"VariableDeclaration","scope":76154,"src":"21231:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76052,"name":"uint48","nodeType":"ElementaryTypeName","src":"21231:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76059,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76055,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21266:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76054,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21253:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21253:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21275:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":65745,"src":"21253:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21253:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21231:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76060,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"21303:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76061,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21318:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21320:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"21318:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21303:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76068,"nodeType":"IfStatement","src":"21299:92:160","trueBody":{"id":76067,"nodeType":"Block","src":"21337:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76064,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73098,"src":"21358:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21358:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76066,"nodeType":"RevertStatement","src":"21351:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76069,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"21405:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76070,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21420:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21422:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"21420:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21405:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":76073,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"21447:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21405:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76079,"nodeType":"IfStatement","src":"21401:119:160","trueBody":{"id":76078,"nodeType":"Block","src":"21467:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76075,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"21488:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21488:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76077,"nodeType":"RevertStatement","src":"21481:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76081,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21547:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76080,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21534:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21534:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21556:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":65775,"src":"21534:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":76084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21534:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":76085,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21583:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21585:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"21583:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21534:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76092,"nodeType":"IfStatement","src":"21530:139:160","trueBody":{"id":76091,"nodeType":"Block","src":"21612:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76088,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73119,"src":"21633:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21633:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76090,"nodeType":"RevertStatement","src":"21626:32:160"}]}},{"assignments":[76094],"declarations":[{"constant":false,"id":76094,"mutability":"mutable","name":"resolver","nameLocation":"21687:8:160","nodeType":"VariableDeclaration","scope":76154,"src":"21679:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76093,"name":"address","nodeType":"ElementaryTypeName","src":"21679:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76106,"initialValue":{"arguments":[{"expression":{"id":76099,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21729:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21731:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"21729:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":76103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21753:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21743:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76101,"name":"bytes","nodeType":"ElementaryTypeName","src":"21747:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21743:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76096,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21711:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76095,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21698:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21698:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21720:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":65797,"src":"21698:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":76105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21698:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21679:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76107,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"21770:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21790:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21782:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76108,"name":"address","nodeType":"ElementaryTypeName","src":"21782:7:160","typeDescriptions":{}}},"id":76111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21782:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21770:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76128,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"21922:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76129,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21934:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21936:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"21934:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21946:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":81371,"src":"21934:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21922:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76137,"nodeType":"IfStatement","src":"21918:147:160","trueBody":{"id":76136,"nodeType":"Block","src":"21960:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76133,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"22036:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22036:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76135,"nodeType":"RevertStatement","src":"22029:25:160"}]}},"id":76138,"nodeType":"IfStatement","src":"21766:299:160","trueBody":{"id":76127,"nodeType":"Block","src":"21794:118:160","statements":[{"expression":{"arguments":[{"id":76117,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74147,"src":"21842:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":76118,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21862:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21864:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"21862:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21874:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":81371,"src":"21862:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":76123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21898:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21888:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76121,"name":"bytes","nodeType":"ElementaryTypeName","src":"21892:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21888:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76114,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21821:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76113,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21808:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21808:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21830:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":65841,"src":"21808:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":76125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21808:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76126,"nodeType":"ExpressionStatement","src":"21808:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76140,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"22158:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76139,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"22151:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":76141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22151:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":76142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22166:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66234,"src":"22151:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22151:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22186:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22178:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76144,"name":"address","nodeType":"ElementaryTypeName","src":"22178:7:160","typeDescriptions":{}}},"id":76147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22178:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22151:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76153,"nodeType":"IfStatement","src":"22147:94:160","trueBody":{"id":76152,"nodeType":"Block","src":"22190:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76149,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73083,"src":"22211:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22211:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76151,"nodeType":"RevertStatement","src":"22204:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19684:14:160","parameters":{"id":75891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75890,"mutability":"mutable","name":"_vault","nameLocation":"19707:6:160","nodeType":"VariableDeclaration","scope":76155,"src":"19699:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75889,"name":"address","nodeType":"ElementaryTypeName","src":"19699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19698:16:160"},"returnParameters":{"id":75892,"nodeType":"ParameterList","parameters":[],"src":"19723:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76202,"nodeType":"FunctionDefinition","src":"22253:482:160","nodes":[],"body":{"id":76201,"nodeType":"Block","src":"22332:403:160","nodes":[],"statements":[{"condition":{"id":76171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22346:72:160","subExpression":{"arguments":[{"id":76169,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"22409:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76163,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"22357:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22357:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22368:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"22357:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22378:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":81363,"src":"22357:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76162,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"22347:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$64656_$","typeString":"type(contract IRegistry)"}},"id":76167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22347:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$64656","typeString":"contract IRegistry"}},"id":76168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22400:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":64641,"src":"22347:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22347:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76176,"nodeType":"IfStatement","src":"22342:135:160","trueBody":{"id":76175,"nodeType":"Block","src":"22420:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76172,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73131,"src":"22441:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22441:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76174,"nodeType":"RevertStatement","src":"22434:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76178,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"22513:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76177,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"22491:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71316_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":76179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22491:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71316","typeString":"contract IDefaultStakerRewards"}},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22523:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71251,"src":"22491:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22491:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76182,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"22534:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22491:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76188,"nodeType":"IfStatement","src":"22487:114:160","trueBody":{"id":76187,"nodeType":"Block","src":"22542:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76184,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73134,"src":"22563:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22563:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76186,"nodeType":"RevertStatement","src":"22556:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76190,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"22637:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76189,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"22615:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71316_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":76191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22615:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71316","typeString":"contract IDefaultStakerRewards"}},"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22647:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":71368,"src":"22615:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22615:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":76194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22660:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22615:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76200,"nodeType":"IfStatement","src":"22611:118:160","trueBody":{"id":76199,"nodeType":"Block","src":"22663:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76196,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73107,"src":"22684:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22684:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76198,"nodeType":"RevertStatement","src":"22677:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22262:22:160","parameters":{"id":76160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76157,"mutability":"mutable","name":"_vault","nameLocation":"22293:6:160","nodeType":"VariableDeclaration","scope":76202,"src":"22285:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76156,"name":"address","nodeType":"ElementaryTypeName","src":"22285:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76159,"mutability":"mutable","name":"_rewards","nameLocation":"22309:8:160","nodeType":"VariableDeclaration","scope":76202,"src":"22301:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76158,"name":"address","nodeType":"ElementaryTypeName","src":"22301:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22284:34:160"},"returnParameters":{"id":76161,"nodeType":"ParameterList","parameters":[],"src":"22332:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76212,"nodeType":"ModifierDefinition","src":"22872:82:160","nodes":[],"body":{"id":76211,"nodeType":"Block","src":"22907:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76207,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76204,"src":"22933:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76206,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76259,"src":"22917:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":76208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22917:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76209,"nodeType":"ExpressionStatement","src":"22917:19:160"},{"id":76210,"nodeType":"PlaceholderStatement","src":"22946:1:160"}]},"name":"validTimestamp","nameLocation":"22881:14:160","parameters":{"id":76205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76204,"mutability":"mutable","name":"ts","nameLocation":"22903:2:160","nodeType":"VariableDeclaration","scope":76212,"src":"22896:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76203,"name":"uint48","nodeType":"ElementaryTypeName","src":"22896:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22895:11:160"},"virtual":false,"visibility":"internal"},{"id":76259,"nodeType":"FunctionDefinition","src":"22960:408:160","nodes":[],"body":{"id":76258,"nodeType":"Block","src":"23010:358:160","nodes":[],"statements":[{"assignments":[76219],"declarations":[{"constant":false,"id":76219,"mutability":"mutable","name":"$","nameLocation":"23036:1:160","nodeType":"VariableDeclaration","scope":76258,"src":"23020:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76218,"nodeType":"UserDefinedTypeName","pathNode":{"id":76217,"name":"Storage","nameLocations":["23020:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"23020:7:160"},"referencedDeclaration":73229,"src":"23020:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76222,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76220,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"23040:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23040:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23020:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76223,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76214,"src":"23064:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76224,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"23070:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":76225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23075:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"23070:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23070:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23064:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76232,"nodeType":"IfStatement","src":"23060:80:160","trueBody":{"id":76231,"nodeType":"Block","src":"23088:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76228,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"23109:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23109:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76230,"nodeType":"RevertStatement","src":"23102:27:160"}]}},{"assignments":[76234],"declarations":[{"constant":false,"id":76234,"mutability":"mutable","name":"gracePeriod","nameLocation":"23157:11:160","nodeType":"VariableDeclaration","scope":76258,"src":"23150:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76233,"name":"uint48","nodeType":"ElementaryTypeName","src":"23150:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76245,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76235,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23171:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23173:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"23171:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76237,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23195:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23197:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"23195:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23171:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":76242,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23240:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23242:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"23240:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23171:87:160","trueExpression":{"expression":{"id":76240,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23216:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23218:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"23216:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23150:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76246,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76214,"src":"23272:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76247,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"23277:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23272:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76249,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"23292:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":76250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23297:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"23292:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23292:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23272:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76257,"nodeType":"IfStatement","src":"23268:94:160","trueBody":{"id":76256,"nodeType":"Block","src":"23310:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76253,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"23331:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23331:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76255,"nodeType":"RevertStatement","src":"23324:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22969:15:160","parameters":{"id":76215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76214,"mutability":"mutable","name":"ts","nameLocation":"22992:2:160","nodeType":"VariableDeclaration","scope":76259,"src":"22985:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76213,"name":"uint48","nodeType":"ElementaryTypeName","src":"22985:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22984:11:160"},"returnParameters":{"id":76216,"nodeType":"ParameterList","parameters":[],"src":"23010:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76272,"nodeType":"FunctionDefinition","src":"23374:201:160","nodes":[],"body":{"id":76271,"nodeType":"Block","src":"23444:131:160","nodes":[],"statements":[{"assignments":[76266],"declarations":[{"constant":false,"id":76266,"mutability":"mutable","name":"slot","nameLocation":"23462:4:160","nodeType":"VariableDeclaration","scope":76271,"src":"23454:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23454:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76269,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76267,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76284,"src":"23469:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23469:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23454:32:160"},{"AST":{"nativeSrc":"23522:47:160","nodeType":"YulBlock","src":"23522:47:160","statements":[{"nativeSrc":"23536:23:160","nodeType":"YulAssignment","src":"23536:23:160","value":{"name":"slot","nativeSrc":"23555:4:160","nodeType":"YulIdentifier","src":"23555:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23536:15:160","nodeType":"YulIdentifier","src":"23536:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":76263,"isOffset":false,"isSlot":true,"src":"23536:15:160","suffix":"slot","valueSize":1},{"declaration":76266,"isOffset":false,"isSlot":false,"src":"23555:4:160","valueSize":1}],"flags":["memory-safe"],"id":76270,"nodeType":"InlineAssembly","src":"23497:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23383:8:160","parameters":{"id":76260,"nodeType":"ParameterList","parameters":[],"src":"23391:2:160"},"returnParameters":{"id":76264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76263,"mutability":"mutable","name":"middleware","nameLocation":"23432:10:160","nodeType":"VariableDeclaration","scope":76272,"src":"23416:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76262,"nodeType":"UserDefinedTypeName","pathNode":{"id":76261,"name":"Storage","nameLocations":["23416:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"23416:7:160"},"referencedDeclaration":73229,"src":"23416:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23415:28:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76284,"nodeType":"FunctionDefinition","src":"23581:128:160","nodes":[],"body":{"id":76283,"nodeType":"Block","src":"23639:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":76279,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"23683:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76277,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"23656:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":76278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23668:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"23656:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":76280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23656:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":76281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23697:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"23656:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76276,"id":76282,"nodeType":"Return","src":"23649:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23590:15:160","parameters":{"id":76273,"nodeType":"ParameterList","parameters":[],"src":"23605:2:160"},"returnParameters":{"id":76276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76284,"src":"23630:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23630:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23629:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76308,"nodeType":"FunctionDefinition","src":"23715:200:160","nodes":[],"body":{"id":76307,"nodeType":"Block","src":"23783:132:160","nodes":[],"statements":[{"assignments":[76292],"declarations":[{"constant":false,"id":76292,"mutability":"mutable","name":"slot","nameLocation":"23801:4:160","nodeType":"VariableDeclaration","scope":76307,"src":"23793:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23793:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76297,"initialValue":{"arguments":[{"id":76295,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76286,"src":"23835:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":76293,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"23808:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":76294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23823:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"23808:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23808:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23793:52:160"},{"expression":{"id":76305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":76301,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"23882:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76298,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"23855:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":76300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23867:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"23855:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":76302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23855:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":76303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23896:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"23855:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76304,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"23904:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23855:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76306,"nodeType":"ExpressionStatement","src":"23855:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":76289,"kind":"modifierInvocation","modifierName":{"id":76288,"name":"onlyOwner","nameLocations":["23773:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"23773:9:160"},"nodeType":"ModifierInvocation","src":"23773:9:160"}],"name":"_setStorageSlot","nameLocation":"23724:15:160","parameters":{"id":76287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76286,"mutability":"mutable","name":"namespace","nameLocation":"23754:9:160","nodeType":"VariableDeclaration","scope":76308,"src":"23740:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76285,"name":"string","nodeType":"ElementaryTypeName","src":"23740:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23739:25:160"},"returnParameters":{"id":76290,"nodeType":"ParameterList","parameters":[],"src":"23783:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76318,"nodeType":"ModifierDefinition","src":"23921:81:160","nodes":[],"body":{"id":76317,"nodeType":"Block","src":"23956:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76313,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76310,"src":"23978:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76312,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"23966:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23966:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76315,"nodeType":"ExpressionStatement","src":"23966:18:160"},{"id":76316,"nodeType":"PlaceholderStatement","src":"23994:1:160"}]},"name":"vaultOwner","nameLocation":"23930:10:160","parameters":{"id":76311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76310,"mutability":"mutable","name":"vault","nameLocation":"23949:5:160","nodeType":"VariableDeclaration","scope":76318,"src":"23941:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76309,"name":"address","nodeType":"ElementaryTypeName","src":"23941:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23940:15:160"},"virtual":false,"visibility":"internal"},{"id":76338,"nodeType":"FunctionDefinition","src":"24008:181:160","nodes":[],"body":{"id":76337,"nodeType":"Block","src":"24058:131:160","nodes":[],"statements":[{"condition":{"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24072:62:160","subExpression":{"arguments":[{"id":76327,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74144,"src":"24103:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76328,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24123:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24127:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24123:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":76324,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76320,"src":"24088:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76323,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43863,"src":"24073:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$43863_$","typeString":"type(contract IAccessControl)"}},"id":76325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24073:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$43863","typeString":"contract IAccessControl"}},"id":76326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24095:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":43830,"src":"24073:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":76330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24073:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76336,"nodeType":"IfStatement","src":"24068:115:160","trueBody":{"id":76335,"nodeType":"Block","src":"24136:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76332,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"24157:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24157:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76334,"nodeType":"RevertStatement","src":"24150:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24017:11:160","parameters":{"id":76321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76320,"mutability":"mutable","name":"vault","nameLocation":"24037:5:160","nodeType":"VariableDeclaration","scope":76338,"src":"24029:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76319,"name":"address","nodeType":"ElementaryTypeName","src":"24029:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24028:15:160"},"returnParameters":{"id":76322,"nodeType":"ParameterList","parameters":[],"src":"24058:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":74112,"name":"IMiddleware","nameLocations":["2358:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":73432,"src":"2358:11:160"},"id":74113,"nodeType":"InheritanceSpecifier","src":"2358:11:160"},{"baseName":{"id":74114,"name":"OwnableUpgradeable","nameLocations":["2371:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"2371:18:160"},"id":74115,"nodeType":"InheritanceSpecifier","src":"2371:18:160"},{"baseName":{"id":74116,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2391:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"2391:35:160"},"id":74117,"nodeType":"InheritanceSpecifier","src":"2391:35:160"},{"baseName":{"id":74118,"name":"UUPSUpgradeable","nameLocations":["2428:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"2428:15:160"},"id":74119,"nodeType":"InheritanceSpecifier","src":"2428:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76339,45567,44157,43267,41646,42808,41914,73432],"name":"Middleware","nameLocation":"2344:10:160","scope":76340,"usedErrors":[41482,41487,41663,41666,43199,44751,44764,45424,45429,46696,48098,53204,55115,73053,73056,73059,73062,73065,73068,73071,73074,73077,73080,73083,73086,73089,73092,73095,73098,73101,73104,73107,73110,73113,73116,73119,73122,73125,73128,73131,73134,73137,73140,73143,73146,73149,73152,73155,73158,73161,82260,82262,82264],"usedEvents":[41493,41671,44105]}],"license":"UNLICENSED"},"id":160} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"newRole","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"disableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"_commitment","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enableVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"executeSlash","inputs":[{"name":"slashes","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"activeOperators","type":"address[]","internalType":"address[]"},{"name":"stakes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"stake","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"maxValidators","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerVault","inputs":[{"name":"_vault","type":"address","internalType":"address"},{"name":"_rewards","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"data","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterVault","inputs":[{"name":"vault","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"AlreadyAdded","inputs":[]},{"type":"error","name":"AlreadyEnabled","inputs":[]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EnumerableMapNonexistentKey","inputs":[{"name":"key","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotEnabled","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f516020613d365f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b604051613c6f90816100c78239608051818181611c690152611d380152f35b6001600160401b0319166001600160401b039081175f516020613d365f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2341:21856:160:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;7983:34:30;7979:146;;-1:-1:-1;2341:21856:160;;;;;;;;1052:13:60;2341:21856:160;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;8085:29:30;;2341:21856:160;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;2341:21856:160;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f5f3560e01c806305c4fdf9146124bf5780630a71094c146122175780632633b70f146121635780632acde0981461200b578063373bba1f14611fd55780633ccce78914611f985780633d15e74e14611f6b5780634455a38f14611f38578063461e7a8e14611f025780634f1ef28614611cbd57806352d1902d14611c565780636c2eb350146118195780636d1064eb146117ac5780636e5c79321461176f578063709d06ae14611739578063715018a6146116d0578063729e2f36146115b257806379a8b2451461157c5780637fbe95b5146111b957806386c241a11461115b5780638da5cb5b14611126578063936f4330146110e9578063945cf2dd146110b357806396115bc214610fe75780639e03231114610fb9578063ab12275314610849578063ad3cb1cc146107fc578063af962995146105e9578063b5e5ad1214610570578063bcf33934146103a0578063c639e2d614610372578063c9b0b1e91461033b578063ceebb69a1461030d578063d55a5bdf146102d3578063d8dfeb451461029a578063d99ddfc71461025c578063d99fcd661461022f578063f2fde38b146102025763f887ea40146101c7575f80fd5b346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600701546040516001600160a01b039091168152602090f35b80fd5b50346101ff5760203660031901126101ff5761022c61021f612e55565b6102276136a7565b613480565b80f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f52540133906135a1565b50346101ff5760403660031901126101ff57602061029261027b612e55565b610283612f00565b9061028d8261372b565b61343d565b604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015460401c16604051908152f35b50346101ff57806003193601126101ff57602060045f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff5760206001600160401b0360035f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff57602060055f516020613c2f5f395f51905f52540154604051908152f35b50346101ff57806003193601126101ff576101206040516103c081612e7f565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015201526101405f516020613c2f5f395f51905f525460405161041481612e7f565b60018060a01b036008830154169182825260018060a01b036009820154166020830190815260018060a01b03600a830154166040840190815260018060a01b03600b840154166060850190815260018060a01b03600c850154166080860190815260018060a01b03600d860154169160a0870192835260018060a01b03600e870154169360c0880194855260018060a01b03600f880154169560e0890196875261012060018060a01b0360108a015416986101008b01998a52601160018060a01b03910154169901988952604051998a5260018060a01b0390511660208a015260018060a01b03905116604089015260018060a01b03905116606088015260018060a01b03905116608087015260018060a01b0390511660a086015260018060a01b0390511660c085015260018060a01b0390511660e084015260018060a01b0390511661010083015260018060a01b03905116610120820152f35b50346101ff5760203660031901126101ff576105ac90610596610591612eeb565b61331c565b9091604051938493604085526040850190612f15565b8381036020850152602080845192838152019301915b8181106105d0575050500390f35b82518452859450602093840193909201916001016105c2565b50346101ff5760203660031901126101ff576004356001600160401b0381116107f857366023820112156107f85780600401356001600160401b0381116107f4576024820191602436918360061b0101116107f4575f516020613c2f5f395f51905f5254601001546001600160a01b031633036107e5576020905f90845b818110610672578580f35b61067d818387613003565b5f516020613c2f5f395f51905f52549091906106bc906015016001600160a01b036106a785612fba565b16906001915f520160205260405f2054151590565b156107d6576004856001600160a01b036106d585612fba565b166040519283809263b134427160e01b82525afa9283156107cb576107439387928a9161079e575b50828a6040519361070e8386612eaf565b81855289368487013760405197889586948593635ca61c3760e11b855201356004840152604060248401526044830190612f68565b03926001600160a01b03165af191821561079357600192610766575b5001610667565b61078590863d881161078c575b61077d8183612eaf565b810190613046565b505f61075f565b503d610773565b6040513d89823e3d90fd5b6107be9150833d85116107c4575b6107b68183612eaf565b810190613027565b5f6106fd565b503d6107ac565b6040513d8a823e3d90fd5b633b2fc1c360e21b8752600487fd5b632249f71f60e21b8352600483fd5b8280fd5b5080fd5b50346101ff57806003193601126101ff575061084560405161081f604082612eaf565b60058152640352e302e360dc1b6020820152604051918291602083526020830190612f68565b0390f35b50346101ff576102e03660031901126101ff575f516020613c4f5f395f51905f52546001600160401b0360ff8260401c1615911680159081610fb1575b6001149081610fa7575b159081610f9e575b50610f8f578060016001600160401b03195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f5255610f5f575b6004356001600160a01b03811681036107f4576108f5906108ed6139d1565b6102276139d1565b6108fd6139d1565b604090815161090c8382612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563100815261093f6136a7565b905190205f190183526020832060ff19165f516020613c2f5f395f51905f5281905560243565ffffffffffff81168103610f5b57815465ffffffffffff191665ffffffffffff9182161782556044359081168103610f5b5781546bffffffffffff000000000000191660309190911b65ffffffffffff60301b1617815560643565ffffffffffff81168103610f5b57815465ffffffffffff60601b191660609190911b65ffffffffffff60601b1617815560843565ffffffffffff81168103610f5b57815465ffffffffffff60901b191660909190911b65ffffffffffff60901b1617815560a43565ffffffffffff81168103610f5b57815465ffffffffffff60c01b191660c09190911b65ffffffffffff60c01b1617815560c43565ffffffffffff81168103610f5b5765ffffffffffff60018301911665ffffffffffff19825416178155600282019161012435835560e4356001600160401b0381168103610f53576001600160401b036003830191166001600160401b0319825416178155610104356001600160401b0381168103610f575781546fffffffffffffffff0000000000000000191660409190911b67ffffffffffffffff60401b16179055610164356001600160a01b0381168103610f53576006820180546001600160a01b0319166001600160a01b039283161790553060601b6004830155610144356005830155610184359081168103610f53576007820180546001600160a01b0319166001600160a01b039283161790556101a4359081168103610f53576008820180546001600160a01b0319166001600160a01b039283161790556101c4359081168103610f53576009820180546001600160a01b0319166001600160a01b03909216919091179055610bcf612f8c565b600a820180546001600160a01b0319166001600160a01b03909216919091179055610bf8612fa3565b600b820180546001600160a01b0319166001600160a01b03928316179055610224359081168103610f5357600c820180546001600160a01b0319166001600160a01b03928316179055610244359081168103610f5357600d820180546001600160a01b0319166001600160a01b03928316179055610264359081168103610f5357600e820180546001600160a01b0319166001600160a01b03928316179055610284359081168103610f5357600f820180546001600160a01b0319166001600160a01b039283161790556102a4359081168103610f53576010820180546001600160a01b0319166001600160a01b039283161790556102c4359081168103610f53576011820180546001600160a01b0319166001600160a01b039283161790558690610d22612f8c565b16803b156107f85781809160048951809481936387140b5b60e01b83525af18015610f3457610f3e575b506001600160a01b03610d5d612fa3565b16803b156107f857818091602489518094819363b7d8e1a960e01b83523060048401525af18015610f3457610f1b575b5050549065ffffffffffff821615610f0c5765ffffffffffff8260301c16918060011b6601fffffffffffe65fffffffffffe821691168103610ef8578310610ee9578265ffffffffffff8260601c1610610eda578265ffffffffffff8260901c1610610ecb5760c01c65ffffffffffff16908115610ebc575465ffffffffffff16908115610ead5765ffffffffffff91610e2691613055565b1611610e9e576003905410610e8f57610e3d575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52555160018152a180f35b634bd1214b60e11b8352600483fd5b63681d91d760e01b8452600484fd5b634c57479b60e11b8752600487fd5b63a46498b960e01b8752600487fd5b630ff9ae5960e11b8752600487fd5b630314153160e21b8752600487fd5b63395b39b960e21b8752600487fd5b634e487b7160e01b88526011600452602488fd5b6330e28a3960e11b8652600486fd5b81610f2591612eaf565b610f3057855f610d8d565b8580fd5b87513d84823e3d90fd5b81610f4891612eaf565b610f3057855f610d4c565b8680fd5b8780fd5b8480fd5b600160401b60ff60401b195f516020613c4f5f395f51905f525416175f516020613c4f5f395f51905f52556108ce565b63f92ee8a960e01b8252600482fd5b9050155f610898565b303b159150610890565b829150610886565b50346101ff57806003193601126101ff57602060025f516020613c2f5f395f51905f52540154604051908152f35b50346101ff5760203660031901126101ff57611001612e55565b5f516020613c2f5f395f51905f52546001600160a01b0390911690601281019061104b61102e84846139fc565b65ffffffffffff81169165ffffffffffff8260301c169160601c90565b5065ffffffffffff8116159291508215611083575b50506110745790611070916139b7565b5080f35b63f1c9810160e01b8352600483fd5b65ffffffffffff9192506110a882918261109c42613988565b955460601c1690613055565b169116105f80611060565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460301c16604051908152f35b50346101ff5760203660031901126101ff5761022c611106612e55565b61110f816134f1565b60155f516020613c2f5f395f51905f52540161362b565b50346101ff57806003193601126101ff575f516020613bef5f395f51905f52546040516001600160a01b039091168152602090f35b50346101ff5760203660031901126101ff57611175612e55565b5f516020613c2f5f395f51905f525460100180549091906001600160a01b031633036107e55781546001600160a01b0319166001600160a01b039190911617905580f35b50346101ff5760403660031901126101ff576004356001600160401b0381116107f857606060031982360301126107f857604051606081018181106001600160401b038211176115685760405281600401356001600160401b0381116115645782013660238201121561156457600481013561123481612f51565b916112426040519384612eaf565b818352602060048185019360061b8301010190368211610f5357602401915b818310611506575050508152611284604460208301936024810135855201612e6b565b9060408101918252611294612f00565b935f516020613c2f5f395f51905f525490600782019460018060a01b0386541633036114f757845160068401546001600160a01b039182169116036114e857819594939550606093829565ffffffffffff60056015870196019916926020965b895180518a10156114a157896113099161309f565b5180516001600160a01b03165f908152600189016020526040902054156107d657908b91866113c28b6113b48b6113a26113518f61102e9060018060a01b038a5116906139fc565b9a546040516001600160a01b03909c169b925090506113708683612eaf565b838252604051936113818786612eaf565b845260405197889687015260408601526080606086015260a0850190612f68565b838103601f1901608085015290612f68565b03601f198101835282612eaf565b85548751838d0180519096909290916001600160a01b039081169116823b1561149d57908c809493926114226040519788968795869463239723ed60e01b8652600486015260248501526044840152608060648401526084830190612f68565b03925af180156114925790899161147d575b50509161147591600193519151604051926bffffffffffffffffffffffff199060601b168c840152603483015260348252611470605483612eaf565b6132dc565b9801976112f4565b8161148791612eaf565b610f5757875f611434565b6040513d8b823e3d90fd5b8c80fd5b886114da86848651915160405192858401526bffffffffffffffffffffffff199060601b16604083015260348252611470605483612eaf565b818151910120604051908152f35b63039a1fd760e21b8252600482fd5b639165520160e01b8252600482fd5b604083360312610f5357604051604081018181106001600160401b038211176115505791602091604093845261153b86612e6b565b81528286013583820152815201920191611261565b634e487b7160e01b89526041600452602489fd5b8380fd5b634e487b7160e01b84526041600452602484fd5b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460901c16604051908152f35b50346101ff5760603660031901126101ff576115cc612e55565b5f516020613c2f5f395f51905f5254600781015460243592604435926001600160a01b0390921691338390036116c15760068101546001600160a01b03928316921682036116b257600e01546001600160a01b031691859190833b156107f4576084908360405195869485936348a78da760e01b8552600485015260248401528860448401528760648401525af180156116a757611692575b6020838360405190838201928352604082015260408152611687606082612eaf565b519020604051908152f35b61169d848092612eaf565b6107f45782611665565b6040513d86823e3d90fd5b63039a1fd760e21b8652600486fd5b639165520160e01b8652600486fd5b50346101ff57806003193601126101ff576116e96136a7565b5f516020613bef5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460601c16604051908152f35b50346101ff5760403660031901126101ff5761084561179861178f612eeb565b602435906130c0565b604051918291602083526020830190612f15565b50346101ff5760203660031901126101ff576117c6612e55565b5f516020613c2f5f395f51905f5254600f0180549091906001600160a01b0316330361180a5781546001600160a01b0319166001600160a01b039190911617905580f35b633fdc220360e01b8352600483fd5b50346101ff57806003193601126101ff576118326136a7565b5f516020613c4f5f395f51905f525460ff8160401c16908115611c41575b50611c32575f516020613c4f5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f516020613bef5f395f51905f52546118a2906001600160a01b03166108ed6139d1565b5f516020613c2f5f395f51905f5254906040516118c0604082612eaf565b601f8152602081017f6d6964646c65776172652e73746f726167652e4d6964646c657761726556320081526118f36136a7565b905190205f190181526020812060ff19165f516020613c2f5f395f51905f528190558254815465ffffffffffff90911665ffffffffffff19821681178355845465ffffffffffff60301b166001600160601b031990921617178155918054835465ffffffffffff60601b191665ffffffffffff60601b9091161783558054835465ffffffffffff60901b191665ffffffffffff60901b9091161783558054835465ffffffffffff60c01b191665ffffffffffff60c01b90911617835565ffffffffffff60018201541665ffffffffffff60018501911665ffffffffffff1982541617905560028101546002840155611a30600382016001600160401b0380825416918160038801931682198454161783555460401c1667ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b60068181015490840180546001600160a01b039283166001600160a01b031991821617909155600480840154908601556005808401549086015560078084015490860180549190931691161790556008808401908201828503611b4a575b50506012808401939290820191815b8354811015611ac45780611abd611ab6600193876136da565b9089613709565b5001611a9d565b506015808501929101815b8154811015611af65780611aef611ae8600193856136da565b9087613709565b5001611acf565b8260ff60401b195f516020613c4f5f395f51905f5254165f516020613c4f5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a180f35b5481546001600160a01b03199081166001600160a01b039283161790925560098381015490860180548416918316919091179055600a8084015490860180548416918316919091179055600b8084015490860180548416918316919091179055600c8084015490860180548416918316919091179055600d8084015490860180548416918316919091179055600e8084015490860180548416918316919091179055600f808401549086018054841691831691909117905560108084015490860180548416918316919091179055601180840154908601805490931691161790555f80611a8e565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611850565b50346101ff57806003193601126101ff577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611cae5760206040515f516020613c0f5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126101ff57611cd2612e55565b602435906001600160401b0382116107f457366023830112156107f45781600401359083611cff83612ed0565b93611d0d6040519586612eaf565b838552602085019336602482840101116107f457806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611ee0575b50611ed157611d706136a7565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181611e9d575b50611db357634c9c8ce360e01b86526004859052602486fd5b93845f516020613c0f5f395f51905f52879603611e8b5750823b15611e79575f516020613c0f5f395f51905f5280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115611e5e576110709382915190845af43d15611e56573d91611e3a83612ed0565b92611e486040519485612eaf565b83523d85602085013e613b43565b606091613b43565b5050505034611e6a5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011611ec9575b81611eb960209383612eaf565b81010312610f535751905f611d9a565b3d9150611eac565b63703e46dd60e11b8452600484fd5b5f516020613c0f5f395f51905f52546001600160a01b0316141590505f611d63565b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545460c01c16604051908152f35b50346101ff57806003193601126101ff57602065ffffffffffff5f516020613c2f5f395f51905f52545416604051908152f35b50346101ff57806003193601126101ff5761022c60125f516020613c2f5f395f51905f525401339061362b565b50346101ff5760203660031901126101ff5761022c611fb5612e55565b611fbe816134f1565b60155f516020613c2f5f395f51905f5254016135a1565b50346101ff57806003193601126101ff57602065ffffffffffff60015f516020613c2f5f395f51905f5254015416604051908152f35b50346101ff57806003193601126101ff575f516020613c2f5f395f51905f525460098101546040516302910f8b60e31b815233600482015290602090829060249082906001600160a01b03165afa90811561212a578391612144575b501561213557600c8101546040516308834cb560e21b815233600482015230602482015290602090829060449082906001600160a01b03165afa90811561212a5783916120fb575b50156120ec576120d59065ffffffffffff6120c942613988565b16906012339101613709565b156120dd5780f35b63f411c32760e01b8152600490fd5b6396cc2bc360e01b8252600482fd5b61211d915060203d602011612123575b6121158183612eaf565b810190613087565b5f6120af565b503d61210b565b6040513d85823e3d90fd5b6325878fa360e21b8252600482fd5b61215d915060203d602011612123576121158183612eaf565b5f612067565b50346101ff5760203660031901126101ff5761217d612e55565b612186816134f1565b5f516020613c2f5f395f51905f52546001600160a01b039091169060158101906121b361102e84846139fc565b5065ffffffffffff81161592915082156121e7575b50506121d85790611070916139b7565b6347a11ef760e11b8352600483fd5b65ffffffffffff91925061220c82918261220042613988565b955460901c1690613055565b169116105f806121c8565b50346101ff5760203660031901126101ff576001600160401b03600435116101ff573660236004350112156101ff576001600160401b0360043560040135116101ff573660246004356004013560051b6004350101116101ff575f516020613c2f5f395f51905f5254600f8101546001600160a01b031633036124b05781906020905b600435600401358310156124ac5760248360051b600435010135608219600435360301811215610f5b5760043501906122f66001600160a01b036122e060248501612fba565b165f908152601383016020526040902054151590565b1561249d57845b61230d6064840160248501612fce565b9050811015612490576123308161232a6064860160248701612fce565b90613003565b61235a6001600160a01b0361234483612fba565b165f908152601685016020526040902054151590565b156107d657869190600490866001600160a01b0361237783612fba565b166040519384809263b134427160e01b82525afa9182156116a7578492612471575b506004850154916123ac60248801612fba565b604488013565ffffffffffff81169003610f3057889586946124316040516123d48882612eaf565b838152601f1988013689830137604051998a978896879563545ce38960e01b8752600487015260018060a01b031660248601520135604484015265ffffffffffff60448d013516606484015260a0608484015260a4830190612f68565b03926001600160a01b03165af191821561079357600192612454575b50016122fd565b61246a90863d881161078c5761077d8183612eaf565b505f61244d565b612489919250873d89116107c4576107b68183612eaf565b905f612399565b509260019150019161229a565b6303fa1eaf60e41b8552600485fd5b8380f35b633fdc220360e01b8252600482fd5b5034612b81576040366003190112612b81576124d9612e55565b6024356001600160a01b038116929190839003612b81576124f9816134f1565b5f516020613c2f5f395f51905f525460088101546040516302910f8b60e31b81526001600160a01b038085166004830181905294939260209183916024918391165afa908115612d13575f91612e36575b5015612e275760405163054fd4d560e41b8152602081600481875afa908115612d13575f91612e08575b5060038201906001600160401b0380835416911603612df95760405163d8dfeb4560e01b8152602081600481885afa908115612d13575f91612dda575b5060068301546001600160a01b03908116911603612dcb576040516327f843b560e11b8152602081600481885afa908115612d13575f91612dac575b5065ffffffffffff80845460301c169116908110612d9d5760405163142186b760e21b8152602081600481895afa908115612d13575f91612d7e575b5015612d6f57604051630ce9b79360e41b8152602081600481895afa908115612d13575f91612d50575b50600484810180546040516368adba0760e11b81529283015292916001600160a01b031690602081602481855afa908115612d13575f91612d1e575b5019612cc1575b602060049160405192838092637f5a7c7b60e01b82525afa9081156107cb578891612ca2575b506001600160a01b0316612c9057604051630dd83c7f60e31b81526020816004818a5afa9081156107cb578891612c71575b5015612c625760405163b134427160e01b81526020816004818a5afa9081156107cb578891612c43575b50604051635d927f4560e11b81526001600160a01b039190911693602082600481885afa918215611492578992612c17575b506001600160401b0380915460401c16911603612c0857604051631a684c7560e11b8152602081600481875afa9081156107cb578891612be9575b50612bda5760405163e054e08b60e01b8152602081600481875afa9081156107cb578891612bab575b5065ffffffffffff855460c01c1665ffffffffffff821610612b9c576127e265ffffffffffff918260018801541690613055565b1611612b8d5760405163bc6eac5b60e01b8152602081600481865afa908115610793578791612b57575b50600284015410612b485754906020926128648460405161282d8282612eaf565b898152601f19820195863684840137604051938492839263cd05b8a160e01b84526004840152604060248401526044830190612f68565b0381865afa9081156107cb578891612b2b575b506001600160a01b031680612b04575060110154604051926001600160a01b03909116906128a58585612eaf565b8784523685850137813b15610f53579186916128eb93836040518096819582946348b47ce960e11b84528460048501526024840152606060448401526064830190612f68565b03925af18015612a5557908591612aef575b50505b6040516313c085b760e11b81528181600481875afa908115612a55578591612ad2575b506001600160a01b031615612ac3575f516020613c2f5f395f51905f52549260248260018060a01b03600d87015416604051928380926302910f8b60e31b82528b60048301525afa908115612a8c578691612aa6575b5015612a975760405163411557d160e01b815282816004818a5afa908115612a8c578691612a6f575b506001600160a01b031603612a605760405163054fd4d560e41b81528181600481895afa918215612a5557916001600160401b03916002938792612a28575b50501603612a195760156120d5939465ffffffffffff612a0042613988565b1660609190911b6001600160601b031916179201613709565b63ded51c0b60e01b8352600483fd5b612a479250803d10612a4e575b612a3f8183612eaf565b810190613564565b5f806129e1565b503d612a35565b6040513d87823e3d90fd5b630a724f6160e01b8452600484fd5b612a869150833d85116107c4576107b68183612eaf565b5f6129a2565b6040513d88823e3d90fd5b6346e01c4360e11b8552600485fd5b612abd9150833d8511612123576121158183612eaf565b5f612979565b630c6b5ff760e31b8452600484fd5b612ae99150823d84116107c4576107b68183612eaf565b5f612923565b81612af991612eaf565b61156457835f6128fd565b6011909101546001600160a01b0316149150612900905057633cc6586560e21b8452600484fd5b612b429150853d87116107c4576107b68183612eaf565b5f612877565b633a2662c360e11b8652600486fd5b90506020813d602011612b85575b81612b7260209383612eaf565b81010312612b8157515f61280c565b5f80fd5b3d9150612b65565b6307cfe49360e51b8652600486fd5b633062eb1960e21b8852600488fd5b612bcd915060203d602011612bd3575b612bc58183612eaf565b810190613583565b5f6127ae565b503d612bbb565b63447984b360e11b8752600487fd5b612c02915060203d602011612123576121158183612eaf565b5f612785565b63f8c618c760e01b8752600487fd5b6001600160401b03919250612c3b829160203d602011612a4e57612a3f8183612eaf565b92915061274a565b612c5c915060203d6020116107c4576107b68183612eaf565b5f612718565b631501f36360e21b8752600487fd5b612c8a915060203d602011612123576121158183612eaf565b5f6126ee565b60016221bb1360e11b03198752600487fd5b612cbb915060203d6020116107c4576107b68183612eaf565b5f6126bc565b803b15612b81576040516323f752d560e01b81525f600482018190525f1960248301528160448183865af18015612d1357612cfd575b50612696565b612d0a9198505f90612eaf565b5f966020612cf7565b6040513d5f823e3d90fd5b90506020813d602011612d48575b81612d3960209383612eaf565b81010312612b8157515f61268f565b3d9150612d2c565b612d69915060203d6020116107c4576107b68183612eaf565b5f612653565b636e549c1760e11b5f5260045ffd5b612d97915060203d602011612123576121158183612eaf565b5f612629565b634934476760e01b5f5260045ffd5b612dc5915060203d602011612bd357612bc58183612eaf565b5f6125ed565b63039a1fd760e21b5f5260045ffd5b612df3915060203d6020116107c4576107b68183612eaf565b5f6125b1565b63bfcdc45f60e01b5f5260045ffd5b612e21915060203d602011612a4e57612a3f8183612eaf565b5f612574565b635b19e4bb60e01b5f5260045ffd5b612e4f915060203d602011612123576121158183612eaf565b5f61254a565b600435906001600160a01b0382168203612b8157565b35906001600160a01b0382168203612b8157565b61014081019081106001600160401b03821117612e9b57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b03821117612e9b57604052565b6001600160401b038111612e9b57601f01601f191660200190565b6004359065ffffffffffff82168203612b8157565b6024359065ffffffffffff82168203612b8157565b90602080835192838152019201905f5b818110612f325750505090565b82516001600160a01b0316845260209384019390920191600101612f25565b6001600160401b038111612e9b5760051b60200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b6101e4356001600160a01b0381168103612b815790565b610204356001600160a01b0381168103612b815790565b356001600160a01b0381168103612b815790565b903590601e1981360301821215612b8157018035906001600160401b038211612b8157602001918160061b36038313612b8157565b91908110156130135760061b0190565b634e487b7160e01b5f52603260045260245ffd5b90816020910312612b8157516001600160a01b0381168103612b815790565b90816020910312612b81575190565b9065ffffffffffff8091169116019065ffffffffffff821161307357565b634e487b7160e01b5f52601160045260245ffd5b90816020910312612b8157518015158103612b815790565b80518210156130135760209160051b010190565b9190820180921161307357565b9181156132cd576130d08361331c565b928151818111156132c4575f5f198201828111925b8083106131eb57505050506001945f1982019082821161307357613109828761309f565b5183975b85518910156131dd57816131218a8a61309f565b510361313d57600181018091116130735760019098019761310d565b9395975050909294505b60018211613158575b505050815290565b604051602081019165ffffffffffff60d01b9060d01b16825260068152613180602682612eaf565b5190209080156131c9576131959106836130b3565b5f198101908111613073576131c0906001600160a01b03906131b7908661309f565b5116918461309f565b525f8080613150565b634e487b7160e01b5f52601260045260245ffd5b939597505090929450613147565b9296958792959891945f935b613073578685035f1901868111613073578410156132b157613219848961309f565b51600185019485811161307357858c826001946132378f9a8f61309f565b5111613248575b50505001936131f7565b6132a8918d6132788361325b878461309f565b5192613267828261309f565b51613272898361309f565b5261309f565b52858060a01b03613289858361309f565b511693613272878060a01b0361329f858561309f565b5116918361309f565b525f8c8261323e565b94919895600191979894935001916130e5565b50509150915090565b6314f867c760e21b5f5260045ffd5b61331a906020808095946040519684889551918291018487015e8401908282015f8152815193849201905e01015f815203601f198101845283612eaf565b565b906133268261372b565b60125f516020613c2f5f395f51905f52540180549261334484612f51565b916133526040519384612eaf565b848352601f1961336186612f51565b0136602085013761337185612f51565b9461337f6040519687612eaf565b808652601f1961338e82612f51565b013660208801375f925f925b8284106133ae575050505080825283529190565b909192936133e36133ea846133c388866136da565b93909365ffffffffffff81169165ffffffffffff8260301c169160601c90565b50906137b5565b15613433578361340f916133fe848a61309f565b6001600160a01b038216905261380e565b613419828a61309f565b526001810180911161307357600190945b0192919061339a565b509360019061342a565b90613469816133e361102e60125f516020613c2f5f395f51905f52540160018060a01b038716906139fc565b1561347a576134779161380e565b90565b50505f90565b6001600160a01b031680156134de575f516020613bef5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b604051632474521560e21b81525f600482015233602482015290602090829060449082906001600160a01b03165afa908115612d13575f91613545575b501561353657565b630e7fea9d60e01b5f5260045ffd5b61355e915060203d602011612123576121158183612eaf565b5f61352e565b90816020910312612b8157516001600160401b0381168103612b815790565b90816020910312612b81575165ffffffffffff81168103612b815790565b65ffffffffffff916135bf61102e6001600160a01b038316846139fc565b9194909416938415908115613619575b5061360a576136079365ffffffffffff60301b6135eb42613988565b60301b161760609190911b6001600160601b0319161791613709565b50565b633f54562b60e11b5f5260045ffd5b65ffffffffffff91501615155f6135cf565b65ffffffffffff9161364961102e6001600160a01b038316846139fc565b9490911615159081613696575b50613687576136079265ffffffffffff61366f42613988565b1660609190911b6001600160601b0319161791613709565b637952fbad60e11b5f5260045ffd5b65ffffffffffff915016155f613656565b5f516020613bef5f395f51905f52546001600160a01b031633036136c757565b63118cdaa760e01b5f523360045260245ffd5b91906136e860029184613a53565b90549060031b1c92835f520160205260405f20549160018060a01b03169190565b613477929160018060a01b031691825f526002820160205260405f2055613ba1565b5f516020613c2f5f395f51905f52549065ffffffffffff61374b42613988565b1665ffffffffffff8216101561379e57613782915465ffffffffffff808260601c169160901c168082105f146137ad575090613055565b65ffffffffffff8061379342613988565b169116111561379e57565b63686c69fd60e01b5f5260045ffd5b905090613055565b65ffffffffffff16801515929190836137fb575b50826137d457505090565b65ffffffffffff16801592509082156137ec57505090565b65ffffffffffff161115905090565b65ffffffffffff8316101592505f6137c9565b5f516020613c2f5f395f51905f52546015810180546004909201545f95948694602093869391905b868810613847575050505050505050565b90919293949596986133e3613860866133c38d866136da565b1561397e57604051630ce9b79360e41b8152908890829060049082906001600160a01b03165afa908115612d13576138fc9189915f91613961575b50604051906138aa8383612eaf565b5f825289368484013760405163e02f693760e01b8152600481018990526001600160a01b038816602482015265ffffffffffff8a16604482015260806064820152938492839182916084830190612f68565b03916001600160a01b03165afa908115612d13575f91613933575b50613924906001926130b3565b995b0196959493929190613836565b90508781813d831161395a575b61394a8183612eaf565b81010312612b8157516001613917565b503d613940565b6139789150823d84116107c4576107b68183612eaf565b5f61389b565b5098600190613926565b65ffffffffffff81116139a05765ffffffffffff1690565b6306dfcc6560e41b5f52603060045260245260445ffd5b9061347791815f52600281016020525f6040812055613a68565b60ff5f516020613c4f5f395f51905f525460401c16156139ed57565b631afcd79f60e31b5f5260045ffd5b90805f526002820160205260405f2054918183159182613a33575b5050613a21575090565b63015ab34360e11b5f5260045260245ffd5b613a4b92506001915f520160205260405f2054151590565b15815f613a17565b8054821015613013575f5260205f2001905f90565b906001820191815f528260205260405f20548015155f14613b3b575f1981018181116130735782545f1981019190821161307357818103613af0575b50505080548015613adc575f190190613abd8282613a53565b8154905f199060031b1b19169055555f526020525f6040812055600190565b634e487b7160e01b5f52603160045260245ffd5b613b26613b00613b109386613a53565b90549060031b1c92839286613a53565b819391549060031b91821b915f19901b19161790565b90555f528360205260405f20555f8080613aa4565b505050505f90565b90613b675750805115613b5857602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580613b98575b613b78575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613b70565b5f82815260018201602052604090205461347a57805490600160401b821015612e9b5782613bd9613b10846001809601855584613a53565b90558054925f520160205260405f205560019056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"2341:21856:160:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;7845:17;;2341:21856;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;2357:1:29;2341:21856:160;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;2341:21856:160;;;;;;;;;;;;;;;9097:10;9068:20;-1:-1:-1;;;;;;;;;;;2341:21856:160;9068:20;9097:10;;;:::i;2341:21856::-;;;;;;;-1:-1:-1;;2341:21856:160;;;;;13803:372;2341:21856;;:::i;:::-;;;:::i;:::-;22939:2;;;;:::i;:::-;13803:372;:::i;:::-;2341:21856;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;7532:21;;2341:21856;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7418:30:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;7418:30;2341:21856;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;7637:21;2341:21856;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7292:34:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;7292:34;2341:21856;;;;;;;;;;;;;;;;;;;;;;7743:22;-1:-1:-1;;;;;;;;;;;2341:21856:160;7743:22;2341:21856;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;:::i;:::-;;;;;;7977:20;;;2341:21856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2341:21856:160;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;16217:38;;2341:21856;-1:-1:-1;;;;;2341:21856:160;16203:10;:52;16199:108;;2341:21856;;;;16322:9;16333:18;;;;;;2341:21856;;;16353:3;16405:10;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;8806:28:86;;16435:17:160;;-1:-1:-1;;;;;16462:11:160;2341:21856;16462:11;:::i;:::-;2341:21856;8806:28:86;5197:14;5101:129;-1:-1:-1;2341:21856:160;5197:14:86;2341:21856:160;;;-1:-1:-1;2341:21856:160;;5197:26:86;;5101:129;;8806:28;16434:40:160;16430:106;;2341:21856;;-1:-1:-1;;;;;16570:11:160;;;:::i;:::-;2341:21856;;;;;;;;;;16563:29;;;;;;;;;2341:21856;16563:29;;;;;;;16353:3;2341:21856;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;16550:83;;16607:11;2341:21856;;16550:83;;2341:21856;;;;;;;;;;;:::i;:::-;16550:83;;-1:-1:-1;;;;;2341:21856:160;16550:83;;;;;;;2341:21856;16550:83;;;16353:3;;2341:21856;16322:9;;16550:83;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2341:21856;;;;;;;;;16563:29;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2341:21856;;;;;;;;;16430:106;-1:-1:-1;;;16501:20:160;;2341:21856;15824:20;16501;16199:108;-1:-1:-1;;;16278:18:160;;2341:21856;8471:18;16278;2341:21856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;2341:21856:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;4301:16:30;2341:21856:160;;4724:16:30;;:34;;;;2341:21856:160;4803:1:30;4788:16;:50;;;;2341:21856:160;4853:13:30;:30;;;;2341:21856:160;4849:91:30;;;2341:21856:160;4803:1:30;-1:-1:-1;;;;;2341:21856:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;4977:67:30;;2341:21856:160;;;-1:-1:-1;;;;;2341:21856:160;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;2341:21856:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2341:21856:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;3461:19;2341:21856;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;;;3516:29;2341:21856;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;3579:27;2341:21856;;;;;;;;;;-1:-1:-1;;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;3637:24;2341:21856;;;;;;;;;;-1:-1:-1;;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;3691:23;2341:21856;;;;;;;;;;-1:-1:-1;;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;3751:30;2341:21856;;;;;;;;;4803:1:30;3724:24:160;;2341:21856;;;;;;;;;;3791:27;;;2341:21856;3821:33;2341:21856;;;3892:31;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;;-1:-1:-1;;;;;3864:25:160;;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;;;;;;;3957:27;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;4032:18;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;;4017:12;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;4083:4;3579:27;2341:21856;;4060:12;;2341:21856;4145:19;2341:21856;4129:13;;;2341:21856;4186:14;2341:21856;;;;;;;;4175:8;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;4225:17;2341:21856;;;;;;;;4211:11;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;3063:1;;:::i;:::-;;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;3063:1;;:::i;:::-;;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;3063:1;2341:21856;;;;;;;;3063:1;;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;;;4270:33;;:::i;:::-;2341:21856;4253:69;;;;;2341:21856;;;;;;;;;;;;;4253:69;;;;;;;;;;2341:21856;-1:-1:-1;;;;;;4358:35:160;;:::i;:::-;2341:21856;4332:91;;;;;2341:21856;;;3461:19;2341:21856;;;;;;;;;4332:91;;4083:4;2341:21856;4332:91;;2341:21856;4332:91;;;;;;;;2341:21856;;;;;;;;17707:17;2341:21856;;;;;;;;;4803:1:30;2341:21856:160;;;;;;;;;;;18096:44;;2341:21856;;;;;3579:27;2341:21856;;18371:48;2341:21856;;;;;;;;18659:45;2341:21856;;3751:30;2341:21856;;;;18834:21;;2341:21856;;;;;;19106:28;;2341:21856;;;19213:44;;;;:::i;:::-;2341:21856;19213:71;2341:21856;;3864:25;2341:21856;;19555:32;2341:21856;;5064:101:30;;2341:21856:160;;;5064:101:30;2341:21856:160;5140:14:30;2341:21856:160;-1:-1:-1;;;2341:21856:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;4803:1:30;2341:21856:160;;5140:14:30;2341:21856:160;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;-1:-1:-1;;;2341:21856:160;;3063:1;2341:21856;;3461:19;2341:21856;;;-1:-1:-1;;;2341:21856:160;;;;;4332:91;;;;;:::i;:::-;2341:21856;;4332:91;;;;2341:21856;;;;4332:91;2341:21856;;;;;;;;;4253:69;;;;;:::i;:::-;2341:21856;;4253:69;;;;2341:21856;;;;;;;;;;;;4977:67:30;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;2341:21856:160;6496:23:30;4906;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;2341:21856:160;;;;;;;;;;;;;;7160:36;-1:-1:-1;;;;;;;;;;;2341:21856:160;7160:36;2341:21856;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;9350:11;;;;2376:23:172;23973:47:85;2341:21856:160;9350:11;23973:47:85;:::i;:::-;2341:21856:160;;;;;;676:2:172;2341:21856:160;;;698:2:172;2341:21856:160;390:319:172;;2376:23;-1:-1:-1;2341:21856:160;;;9395:17;;2341:21856;-1:-1:-1;9395:76:160;;;;2341:21856;9391:144;;;;21805:50:85;;;;:::i;:::-;;2341:21856:160;;9391:144;-1:-1:-1;;;9494:30:160;;2341:21856;9494:30;;9395:76;2341:21856;837:15:87;;;9435:36:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2341:21856:160;;;;;9435:36;;:::i;:::-;2341:21856;;;9416:55;9395:76;;;;2341:21856;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;11775:5;2341:21856;;:::i;:::-;23984:5;;;:::i;:::-;11750:17;-1:-1:-1;;;;;;;;;;;2341:21856:160;11750:17;11775:5;:::i;2341:21856::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;8419:29;;2341:21856;;8419:29;;2341:21856;-1:-1:-1;;;;;2341:21856:160;8405:10;:43;8401:99;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;2341:21856:160;10302:8;;;;2341:21856;;;;;;;;;10288:10;:22;10284:71;;2341:21856;;;10390:12;;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;10369:33;10365:90;;10465:30;;;;;;2341:21856;10510:13;;10664:8;2341:21856;10900:13;10664:8;;;10900:13;;2341:21856;;;;10505:677;10562:3;10529:24;;2341:21856;;10525:35;;;;;10617:27;;;;:::i;:::-;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;-1:-1:-1;2341:21856:160;;;;5197:14:86;;2341:21856:160;;;;;;5197:26:86;10659:99:160;;2341:21856;;;;10878:58;2341:21856;;;;2581:23:172;2341:21856:160;23973:47:85;2341:21856:160;;;;;;;;;23973:47:85;;:::i;2581:23:172:-;2341:21856:160;;;;-1:-1:-1;;;;;2341:21856:160;;;;;-1:-1:-1;2341:21856:160;-1:-1:-1;2341:21856:160;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;10878:58;;;;;2341:21856;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2341:21856:160;;;;;;;:::i;:::-;10878:58;2341:21856;;10878:58;;;;;;:::i;:::-;2341:21856;;;;11035:14;;;2341:21856;;11035:14;;2341:21856;;11035:14;;-1:-1:-1;;;;;2341:21856:160;;;;;10950:106;;;;;2341:21856;;;;;;;;;;;;;;;;;;;10950:106;;2341:21856;10950:106;;2341:21856;;;;;;;;;;;;;;;;;;;:::i;:::-;10950:106;;;;;;;;;;;;;10562:3;2341:21856;;;11091:80;2341:21856;;;;;;;;;;;;;;;11123:47;;;2341:21856;;;;;;11123:47;;;;;;:::i;:::-;11091:80;:::i;:::-;10562:3;2341:21856;10510:13;;;10950:106;;;;;:::i;:::-;2341:21856;;10950:106;;;;;2341:21856;;;;;;;;;10950:106;2341:21856;;;10525:35;;11209:93;10525:35;;;2341:21856;;;;;11241:60;;;;2341:21856;;;;;;;;;;;;11241:60;;;11123:47;11241:60;;:::i;11209:93::-;2341:21856;;;;;11199:104;2341:21856;;;;;;10365:90;-1:-1:-1;;;10425:19:160;;2341:21856;20107:19;10425;10284:71;-1:-1:-1;;;10333:11:160;;2341:21856;9793:11;10333;2341:21856;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;;;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;9762:8;;;2341:21856;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;9748:10;:22;;;9744:71;;9838:12;;;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;9829:21;;9825:78;;9937:27;;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;9913:101;;;;;;2341:21856;;;;;;;;;;;;9913:101;;2341:21856;9913:101;;2341:21856;;;;;;;;;;;;;;;9913:101;;;;;;;;2341:21856;;;;;;10042:30;;;;2341:21856;;;;;;;;10042:30;;;2341:21856;10042:30;;:::i;:::-;2341:21856;10032:41;;2341:21856;;;;;;9913:101;;;;;;:::i;:::-;2341:21856;;9913:101;;;;2341:21856;;;;;;;;;9825:78;-1:-1:-1;;;9873:19:160;;2341:21856;20107:19;9873;9744:71;-1:-1:-1;;;9793:11:160;;2341:21856;9793:11;;2341:21856;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;;-1:-1:-1;;;;;;2341:21856:160;;;;;;;-1:-1:-1;;;;;2341:21856:160;3975:40:29;2341:21856:160;;3975:40:29;2341:21856:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;8151:30;;2341:21856;;8151:30;;2341:21856;-1:-1:-1;;;;;2341:21856:160;8137:10;:44;8133:101;;2341:21856;;-1:-1:-1;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;8133:101;-1:-1:-1;;;8204:19:160;;2341:21856;15344:19;8204;2341:21856;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;6429:44:30;;;;;2341:21856:160;6425:105:30;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;-1:-1:-1;;2341:21856:160;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;6959:1:30;;-1:-1:-1;;;;;2341:21856:160;6891:76:30;;:::i;6959:1::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;2341:21856:160;1800:178:73;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;;;-1:-1:-1;;;2341:21856:160;-1:-1:-1;;;;;;2341:21856:160;;;;;;;1800:178:73;2341:21856:160;;;;-1:-1:-1;;;;2341:21856:160;-1:-1:-1;;;2341:21856:160;;;;;;;;;;-1:-1:-1;;;;2341:21856:160;-1:-1:-1;;;2341:21856:160;;;;;;;;;;-1:-1:-1;;;;2341:21856:160;-1:-1:-1;;;2341:21856:160;;;;;;;6591:4:30;5155:33:160;;2341:21856;;;6591:4:30;5119:33:160;;2341:21856;;;;;;;;;;4573:1;5237:36;;2341:21856;4573:1;5198:36;;2341:21856;5364:63;5320:34;;;-1:-1:-1;;;;;2341:21856:160;;;;5283:34;;5320;5283;;2341:21856;;;;;;;;;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;;-1:-1:-1;;;2341:21856:160;;;;;;5364:63;5461:21;;;;2341:21856;5437:21;;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;;;-1:-1:-1;;;;;;2341:21856:160;;;;;;;;5516:21;;;2341:21856;5492:21;;;2341:21856;5572:22;;;;2341:21856;5547:22;;;2341:21856;5624:17;;;;2341:21856;5604:17;;;2341:21856;;;;;;;;;;;5674:20;5651;;;;5674;;2341:21856;;;;;;-1:-1:-1;;5729:20:160;5850;;;;5710:13;5729:20;;;;5710:13;5760:3;2341:21856;;5725:33;;;;;5810:26;5850:36;5810:26;6591:4:30;5810:26:160;;;:::i;:::-;5850:36;;;:::i;:::-;;2341:21856;5710:13;;5725:33;-1:-1:-1;5931:17:160;6046;;;;5725:33;5931:17;5725:33;5959:3;2341:21856;;5927:30;;;;;6009:23;6046:33;6009:23;6591:4:30;6009:23:160;;;:::i;:::-;6046:33;;;:::i;:::-;;2341:21856;5912:13;;5927:30;;-1:-1:-1;;;2341:21856:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;;-1:-1:-1;;;;;;;;;;;2341:21856:160;6654:20:30;2341:21856:160;;;4573:1;2341:21856;;6654:20:30;2341:21856:160;;;;;;-1:-1:-1;;;;;;2341:21856:160;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2341:21856:160;;6425:105:30;-1:-1:-1;;;6496:23:30;;2341:21856:160;;6496:23:30;6429:44;4573:1:160;2341:21856;;-1:-1:-1;;;;;2341:21856:160;6448:25:30;;6429:44;;;2341:21856:160;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;2341:21856:160;4815:4:60;4807:23;4803:145;;2341:21856:160;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;4803:145:60;-1:-1:-1;;;4908:29:60;;2341:21856:160;;4908:29:60;2341:21856:160;-1:-1:-1;2341:21856:160;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;2341:21856:160;4392:4:60;4384:23;;;:120;;;;2341:21856:160;4367:251:60;;;2303:62:29;;:::i;:::-;2341:21856:160;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;5865:52:60;;;;;;;2341:21856:160;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;2341:21856:160;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;-1:-1:-1;;;;;;2341:21856:160;;;;;;;;2407:36:53;2341:21856:160;;2407:36:53;2341:21856:160;;2458:15:53;:11;;4107:55:66;4065:25;;;;;;;;2341:21856:160;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;2341:21856:160:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;;6159:70;;2341:21856:160;;6159:70:53;-1:-1:-1;;;6199:19:53;;2341:21856:160;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;2341:21856:160;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;2341:21856:160;;;6026:34:60;;5865:52;;;;2341:21856:160;5865:52:60;;2341:21856:160;5865:52:60;;;;;;2341:21856:160;5865:52:60;;;:::i;:::-;;;2341:21856:160;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;2341:21856:160;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;4462:42:60;;;-1:-1:-1;4384:120:60;;;2341:21856:160;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;9194:10;9166:20;-1:-1:-1;;;;;;;;;;;2341:21856:160;9166:20;9194:10;;;:::i;2341:21856::-;;;;;;;-1:-1:-1;;2341:21856:160;;;;11658:5;2341:21856;;:::i;:::-;23984:5;;;:::i;:::-;11632:17;-1:-1:-1;;;;;;;;;;;2341:21856:160;11632:17;11658:5;:::i;2341:21856::-;;;;;;;;;;;;;;;7028:33;-1:-1:-1;;;;;;;;;;;2341:21856:160;7028:33;2341:21856;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;8714:28;;;2341:21856;;;-1:-1:-1;;;8704:60:160;;8753:10;2341:21856;8704:60;;2341:21856;;;;;;8704:60;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;8704:60;;;;;;;;;;;2341:21856;8703:61;;8699:121;;8848:24;;;2341:21856;;;-1:-1:-1;;;8834:76:160;;8753:10;2341:21856;8834:76;;2341:21856;8904:4;8704:60;2341:21856;;;;;;;;8834:76;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;8834:76;;;;;;;;;;;2341:21856;8833:77;;8829:137;;1037:50:172;837:15:87;2341:21856:160;819:34:87;837:15;819:34;:::i;:::-;2341:21856:160;8753:10;8976:11;8753:10;8976:11;;1037:50:172;:::i;:::-;1036:51;1032:103;;2341:21856:160;;1032:103:172;-1:-1:-1;;;1110:14:172;;2341:21856:160;;1110:14:172;8829:137:160;-1:-1:-1;;;8933:22:160;;2341:21856;8933:22;;8834:76;;;;2341:21856;8834:76;2341:21856;8834:76;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;2341:21856;;;;;;;;;8699:121;-1:-1:-1;;;8787:22:160;;2341:21856;8787:22;;8704:60;;;;2341:21856;8704:60;2341:21856;8704:60;;;;;;;:::i;:::-;;;;2341:21856;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;23984:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;;;;11937:8;;;;2376:23:172;23973:47:85;2341:21856:160;11937:8;23973:47:85;:::i;2376:23:172:-;-1:-1:-1;2341:21856:160;;;11976:17;;2341:21856;-1:-1:-1;11976:73:160;;;;2341:21856;11972:138;;;;21805:50:85;;;;:::i;11972:138:160:-;-1:-1:-1;;;12072:27:160;;2341:21856;12072:27;;11976:73;2341:21856;837:15:87;;;12016:33:160;837:15:87;;;819:34;837:15;819:34;:::i;:::-;2341:21856:160;;;;;12016:33;;:::i;:::-;2341:21856;;;11997:52;11976:73;;;;2341:21856;;;;;;;-1:-1:-1;;2341:21856:160;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2341:21856:160;15291:30;;;2341:21856;-1:-1:-1;;;;;2341:21856:160;15277:10;:44;15273:101;;15389:9;2341:21856;;15384:726;15417:3;2341:21856;;;;;15400:15;;;;;2341:21856;;;;;;;;;;;;;;;;;;;;;;;;;8806:28:86;-1:-1:-1;;;;;15514:18:160;2341:21856;;;15514:18;:::i;:::-;2341:21856;-1:-1:-1;2341:21856:160;;;5197:14:86;;;2341:21856:160;;;;;;5197:26:86;;;5101:129;8806:28;15492:41:160;15488:110;;15617:9;15657:3;15632:16;;;;2341:21856;;;15632:16;:::i;:::-;15628:27;;;;;;;15716:19;15632:16;15716;15632;;;2341:21856;;;15716:16;:::i;:::-;:19;;:::i;:::-;8806:28:86;-1:-1:-1;;;;;15777:15:160;;;:::i;:::-;2341:21856;-1:-1:-1;2341:21856:160;;;5197:14:86;;;2341:21856:160;;;;;;5197:26:86;;;5101:129;8806:28;15758:35:160;15754:109;;2341:21856;;;;;;-1:-1:-1;;;;;15906:15:160;2341:21856;15906:15;:::i;:::-;2341:21856;;;;;;;;;;15899:33;;;;;;;;;;;;;15657:3;16006:12;2341:21856;16006:12;;2341:21856;;16020:18;2341:21856;;;16020:18;:::i;:::-;16058:12;;;2341:21856;;;;;;;;16058:12;;;;2341:21856;;;;;;;:::i;:::-;;;;-1:-1:-1;;2341:21856:160;;;;;;;;;;;;;;;;;;;15950:135;;2341:21856;15950:135;;2341:21856;;;;;;;;;;;16040:16;2341:21856;;;;;;16058:12;;;2341:21856;;;;;;;;;;;;;;;;:::i;:::-;15950:135;;-1:-1:-1;;;;;2341:21856:160;15950:135;;;;;;;2341:21856;15950:135;;;15657:3;;2341:21856;15617:9;;15950:135;;;;;;;;;;;;;:::i;:::-;;;;;15899:33;;;;;;;;;;;;;;;:::i;:::-;;;;;15628:27;;;2341:21856;15628:27;;2341:21856;15389:9;;;15488:110;-1:-1:-1;;;15560:23:160;;2341:21856;15560:23;;15400:15;;2341:21856;;15273:101;-1:-1:-1;;;15344:19:160;;2341:21856;15344:19;;2341:21856;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;23984:5;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;2341:21856:160;19795:11;;;2341:21856;;;-1:-1:-1;;;19785:53:160;;-1:-1:-1;;;;;2341:21856:160;;;;19785:53;;2341:21856;;;;;;;;;;;;;;;19785:53;;;;;;;2341:21856;19785:53;;;2341:21856;19784:54;;19780:109;;2341:21856;;-1:-1:-1;;;19903:35:160;;2341:21856;;;;19903:35;;;;;;;;2341:21856;19903:35;;;2341:21856;19942:25;;;;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;;19903:64;19899:128;;2341:21856;;-1:-1:-1;;;20041:27:160;;2341:21856;;;;20041:27;;;;;;;;2341:21856;20041:27;;;2341:21856;-1:-1:-1;20072:12:160;;;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;20041:43;20037:100;;2341:21856;;-1:-1:-1;;;20203:30:160;;2341:21856;;;;20203:30;;;;;;;;2341:21856;20203:30;;;2341:21856;;;;;;;;;;;20247:44;;;20243:107;;2341:21856;;-1:-1:-1;;;20398:39:160;;2341:21856;;;;20398:39;;;;;;;;2341:21856;20398:39;;;2341:21856;20397:40;;20393:103;;2341:21856;;-1:-1:-1;;;20548:26:160;;2341:21856;;;;20548:26;;;;;;;;2341:21856;20548:26;;;2341:21856;-1:-1:-1;2341:21856:160;20615:12;;;2341:21856;;;;-1:-1:-1;;;20589:39:160;;;;;2341:21856;20615:12;;-1:-1:-1;;;;;2341:21856:160;;;;;;;20589:39;;;;;;;2341:21856;20589:39;;;2341:21856;-1:-1:-1;20589:60:160;20585:158;;2341:21856;;;;;;;;;;;;;20772:32;;;;;;;;;;;;;2341:21856;-1:-1:-1;;;;;;2341:21856:160;17537:82;;2341:21856;;-1:-1:-1;;;20852:37:160;;2341:21856;;;;20852:37;;;;;;;;;;;;2341:21856;20851:38;;20847:99;;2341:21856;;-1:-1:-1;;;20974:24:160;;2341:21856;;;;20974:24;;;;;;;;;;;;2341:21856;-1:-1:-1;2341:21856:160;;-1:-1:-1;;;21012:23:160;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;21012:23;;;;;;;;;;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;21012:48;21008:111;;2341:21856;;-1:-1:-1;;;21133:36:160;;2341:21856;;;;21133:36;;;;;;;;;;;;2341:21856;21129:98;;;2341:21856;;-1:-1:-1;;;21259:36:160;;2341:21856;;;;21259:36;;;;;;;;;;;;2341:21856;;;;;;;;;;;21309:32;21305:92;;21411:39;2341:21856;21426:24;;;;;2341:21856;;21411:39;;:::i;:::-;2341:21856;21411:60;21407:119;;2341:21856;;-1:-1:-1;;;21540:46:160;;2341:21856;;;;21540:46;;;;;;;;;;;;2341:21856;21589:27;;;;2341:21856;-1:-1:-1;21536:139:160;;2341:21856;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2341:21856:160;;;;;;;;;;;;;;;;;;;21704:58;;2341:21856;21704:58;;2341:21856;;;;;;;;;;;:::i;:::-;21704:58;;;;;;;;;;;;;;2341:21856;-1:-1:-1;;;;;;2341:21856:160;21776:22;;;-1:-1:-1;21868:24:160;;2341:21856;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;:::i;:::-;;;;;;;;;21814:93;;;;;2341:21856;;;;;;;;;;;;;;;;;21814:93;;;2341:21856;21814:93;;2341:21856;;;;;;;;;;;;;;;:::i;:::-;21814:93;;;;;;;;;;;;;21772:299;;;;2341:21856;;-1:-1:-1;;;22157:23:160;;;2341:21856;;;22157:23;;;;;;;;;;;;21772:299;-1:-1:-1;;;;;;2341:21856:160;22157:37;22153:94;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;;;;;;22363:41;;;2341:21856;;;;;;;;;;;22353:71;;;2341:21856;22353:71;;2341:21856;22353:71;;;;;;;;;;;21772:299;22352:72;;22348:135;;2341:21856;;-1:-1:-1;;;22497:39:160;;;2341:21856;;;22497:39;;;;;;;;;;;;21772:299;-1:-1:-1;;;;;;2341:21856:160;22497:49;22493:114;;2341:21856;;-1:-1:-1;;;22621:41:160;;;2341:21856;;;22621:41;;;;;;;;;-1:-1:-1;;;;;22621:41:160;21589:27;22621:41;;;;;21772:299;2341:21856;;;22621:46;22617:118;;11494:17;1037:50:172;837:15:87;;2341:21856:160;819:34:87;837:15;819:34;:::i;:::-;2341:21856:160;908:2:172;2341:21856:160;;;;-1:-1:-1;;;;;;2341:21856:160;835:76:172;;11494:17:160;1037:50:172;:::i;22617:118:160:-;-1:-1:-1;;;22690:34:160;;2341:21856;22690:34;;22621:41;;;;;;-1:-1:-1;22621:41:160;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;2341:21856;;;;;;;;;22493:114;-1:-1:-1;;;22569:27:160;;2341:21856;22569:27;;22497:39;;;;;;;;;;;;;;:::i;:::-;;;;;2341:21856;;;;;;;;;22348:135;-1:-1:-1;;;22447:25:160;;2341:21856;22447:25;;22353:71;;;;;;;;;;;;;;:::i;:::-;;;;22153:94;-1:-1:-1;;;22217:19:160;;2341:21856;22217:19;;22157:23;;;;;;;;;;;;;;:::i;:::-;;;;21814:93;;;;;:::i;:::-;2341:21856;;21814:93;;;;21772:299;21940:24;;;;2341:21856;-1:-1:-1;;;;;2341:21856:160;21928:36;;-1:-1:-1;21772:299:160;;-1:-1:-1;21924:147:160;-1:-1:-1;;;22042:18:160;;2341:21856;22042:18;;21704:58;;;;;;;;;;;;;;:::i;:::-;;;;21536:139;-1:-1:-1;;;21639:25:160;;2341:21856;21639:25;;21540:46;;;2341:21856;21540:46;;2341:21856;21540:46;;;;;;2341:21856;21540:46;;;:::i;:::-;;;2341:21856;;;;;21540:46;;;2341:21856;-1:-1:-1;2341:21856:160;;21540:46;;;-1:-1:-1;21540:46:160;;21407:119;-1:-1:-1;;;21494:21:160;;2341:21856;21494:21;;21305:92;-1:-1:-1;;;21364:22:160;;2341:21856;21364:22;;21259:36;;;;2341:21856;21259:36;2341:21856;21259:36;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;21129:98;-1:-1:-1;;;21192:24:160;;2341:21856;21192:24;;21133:36;;;;2341:21856;21133:36;2341:21856;21133:36;;;;;;;:::i;:::-;;;;21008:111;-1:-1:-1;;;21083:25:160;;2341:21856;21083:25;;21012:23;-1:-1:-1;;;;;21012:23:160;;;;;;2341:21856;21012:23;2341:21856;21012:23;;;;;;;:::i;:::-;;;;;;20974:24;;;;2341:21856;20974:24;2341:21856;20974:24;;;;;;;:::i;:::-;;;;20847:99;-1:-1:-1;;;20912:23:160;;2341:21856;20912:23;;20852:37;;;;2341:21856;20852:37;2341:21856;20852:37;;;;;;;:::i;:::-;;;;17537:82;-1:-1:-1;;;;;;17582:26:160;;2341:21856;17582:26;;20772:32;;;;2341:21856;20772:32;2341:21856;20772:32;;;;;;;:::i;:::-;;;;20585:158;20665:67;;;;;2341:21856;;-1:-1:-1;;;20665:67:160;;2341:21856;;20665:67;;2341:21856;;;-1:-1:-1;;2341:21856:160;;;;;20665:67;2341:21856;;20665:67;;;;;;;;;20585:158;;;;20665:67;;;;;2341:21856;20665:67;;:::i;:::-;2341:21856;;;20665:67;;;2341:21856;;;;;;;;;20589:39;;;2341:21856;20589:39;;2341:21856;20589:39;;;;;;2341:21856;20589:39;;;:::i;:::-;;;2341:21856;;;;;20589:39;;;;;;-1:-1:-1;20589:39:160;;20548:26;;;;2341:21856;20548:26;2341:21856;20548:26;;;;;;;:::i;:::-;;;;20393:103;20460:25;;;2341:21856;20460:25;2341:21856;;20460:25;20398:39;;;;2341:21856;20398:39;2341:21856;20398:39;;;;;;;:::i;:::-;;;;20243:107;20314:25;;;2341:21856;20314:25;2341:21856;;20314:25;20203:30;;;;2341:21856;20203:30;2341:21856;20203:30;;;;;;;:::i;:::-;;;;20037:100;20107:19;;;2341:21856;20107:19;2341:21856;;20107:19;20041:27;;;;2341:21856;20041:27;2341:21856;20041:27;;;;;;;:::i;:::-;;;;19899:128;19990:26;;;2341:21856;19990:26;2341:21856;;19990:26;19903:35;;;;2341:21856;19903:35;2341:21856;19903:35;;;;;;;:::i;:::-;;;;19780:109;19861:17;;;2341:21856;19861:17;2341:21856;;19861:17;19785:53;;;;2341:21856;19785:53;2341:21856;19785:53;;;;;;;:::i;:::-;;;;2341:21856;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2341:21856:160;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;;;;-1:-1:-1;2341:21856:160;;;;;-1:-1:-1;2341:21856:160;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;-1:-1:-1;;;;;2341:21856:160;;;;;;-1:-1:-1;;2341:21856:160;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2341:21856:160;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;2341:21856:160;;;;;;;;-1:-1:-1;;2341:21856:160;;;;:::o;:::-;3063:1;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;3063:1;2341:21856;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;12155:1642::-;;12272:17;;2341:21856;;12401:29;;;:::i;:::-;2341:21856;;;12445:39;;;;12441:92;;12288:1;20632:17;;2341:21856;;;;;12621:368;12641:5;;;;;;13056:26;;;;12695:1;20632:17;;;2341:21856;;;;;;;;13112:25;;;;:::i;:::-;2341:21856;13152:25;13147:188;13207:3;2341:21856;;13179:26;;;;;13230:9;;;;;:::i;:::-;2341:21856;13230:22;13226:66;;12695:1;2341:21856;;;;;;;12695:1;13305:19;13207:3;2341:21856;13152:25;;;13226:66;13272:5;;;;;;;;;13147:188;12695:1;13349:18;;13345:316;;13147:188;13671:87;;;;;12155:1642;:::o;13345:316::-;2341:21856;;13512:20;;;2341:21856;;;;;;;;;;13512:20;;;;;;;:::i;:::-;2341:21856;13502:31;;2341:21856;;;;;13618:27;2341:21856;;13618:27;;:::i;:::-;-1:-1:-1;;2341:21856:160;;;;;;;13565:85;;-1:-1:-1;;;;;2341:21856:160;13602:48;;;;:::i;:::-;2341:21856;;;13565:85;;:::i;:::-;2341:21856;13345:316;;;;;2341:21856;;;;12288:1;2341:21856;;;;;12288:1;2341:21856;13179:26;;;;;;;;;;;;12648:3;12672:13;;;;;;;;;12288:1;12667:312;12702:3;2341:21856;;;;;-1:-1:-1;;2341:21856:160;;;;;;12687:13;;;;;12729:9;;;;:::i;:::-;2341:21856;12695:1;2341:21856;;;;;;;;12741:13;;;12695:1;12741:13;;;;;;:::i;:::-;2341:21856;-1:-1:-1;12725:240:160;;12702:3;;;;2341:21856;12672:13;;;12725:240;12855:91;2341:21856;12808:13;12778:55;12808:13;;;;;:::i;:::-;2341:21856;12823:9;;;;;:::i;:::-;2341:21856;12778:55;;;;:::i;:::-;2341:21856;12778:55;:::i;:::-;2341:21856;;;;;;12903:22;;;;:::i;:::-;2341:21856;;;12855:91;2341:21856;;;;;12927:18;;;;:::i;:::-;2341:21856;;;12855:91;;:::i;:::-;2341:21856;12725:240;;;;;12687:13;;;;;12695:1;12687:13;;;;;;2341:21856;12626:13;;;12441:92;12500:22;;;;;;;:::o;2341:21856::-;;;;12288:1;2341:21856;;12288:1;2341:21856;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2341:21856:160;;;;;;;;;;;;-1:-1:-1;2341:21856:160;;;;;;;;;;;:::i;:::-;:::o;14218:940::-;;22939:2;;;:::i;:::-;14481:11;-1:-1:-1;;;;;;;;;;;2341:21856:160;14481:11;2341:21856;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2341:21856:160;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;;2341:21856:160;;;:::i;:::-;;;;;;;-1:-1:-1;14606:9:160;-1:-1:-1;14601:416:160;14617:24;;;;;;15027:125;;;;;;;;;14370:23;14218:940;:::o;14643:3::-;2086:12:172;;;;2139:14;14762:35:160;2086:12:172;;;;;:::i;:::-;2139:14;;;2341:21856:160;;;;;;676:2:172;2341:21856:160;;;698:2:172;2341:21856:160;390:319:172;;2139:14;14762:35:160;;;:::i;:::-;14761:36;14757:83;;14854:39;14929:47;14854:39;;;;;:::i;:::-;-1:-1:-1;;;;;2341:21856:160;;;;14929:47;:::i;:::-;14907:69;;;;:::i;:::-;2341:21856;15005:1;2341:21856;;;;;;;15005:1;14990:16;14643:3;14606:9;2341:21856;14606:9;;;;;14757:83;14817:8;;15005:1;14817:8;;;13803:372;;14025:43;2341:21856;2376:23:172;23973:47:85;13971:20:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;13971:20;2341:21856;;;;;;;23973:47:85;;:::i;14025:43:160:-;14024:44;14020:83;;14121:47;;;:::i;:::-;13803:372;:::o;14020:83::-;14084:8;;-1:-1:-1;14084:8:160;:::o;3405:215:29:-;-1:-1:-1;;;;;2341:21856:160;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;2341:21856:160;;-1:-1:-1;;;;;;2341:21856:160;;;;;;;-1:-1:-1;;;;;2341:21856:160;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;2341:21856:160;;3509:1:29;3534:31;24014:181:160;2341:21856;;-1:-1:-1;;;24079:61:160;;3009:4;24079:61;;;2341:21856;24129:10;3009:4;;;2341:21856;;3009:4;;2341:21856;;24079:61;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;24079:61;;;;;;;3009:4;24079:61;;;24014:181;24078:62;;24074:115;;24014:181::o;24074:115::-;24163:15;;;3009:4;24163:15;24079:61;3009:4;24163:15;24079:61;;;;3009:4;24079:61;3009:4;24079:61;;;;;;;:::i;:::-;;;;2341:21856;;;;;;;;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;1497:351:172:-;2341:21856:160;;1650:23:172;23973:47:85;-1:-1:-1;;;;;2341:21856:160;;23973:47:85;;:::i;1650:23:172:-;2341:21856:160;;;;;1688:16:172;;;:37;;;;;1497:351;1684:87;;;1781:60;837:15:87;-1:-1:-1;;;819:34:87;837:15;819:34;:::i;:::-;884:2:172;2341:21856:160;;835:52:172;908:2;2341:21856:160;;;;-1:-1:-1;;;;;;2341:21856:160;835:76:172;;1781:60;:::i;:::-;;1497:351::o;1684:87::-;1748:12;;;-1:-1:-1;1748:12:172;;-1:-1:-1;1748:12:172;1688:37;2341:21856:160;;;;1708:17:172;;1688:37;;;1147:344;2341:21856:160;;1299:23:172;23973:47:85;-1:-1:-1;;;;;2341:21856:160;;23973:47:85;;:::i;1299:23:172:-;2341:21856:160;;;;1337:16:172;;:37;;;;1147:344;1333:91;;;1434:50;837:15:87;2341:21856:160;819:34:87;837:15;819:34;:::i;:::-;2341:21856:160;908:2:172;2341:21856:160;;;;-1:-1:-1;;;;;;2341:21856:160;835:76:172;;1434:50;:::i;1333:91::-;1397:16;;;-1:-1:-1;1397:16:172;;-1:-1:-1;1397:16:172;1337:37;2341:21856:160;;;;1357:17:172;1337:37;;;2658:162:29;-1:-1:-1;;;;;;;;;;;2341:21856:160;-1:-1:-1;;;;;2341:21856:160;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;2341:21856:160;;-1:-1:-1;2763:40:29;23080:242:85;;;5853:18:86;5004:11:85;23080:242;5853:18:86;;:::i;:::-;2341:21856:160;;;;;;;;-1:-1:-1;2341:21856:160;5004:11:85;2341:21856:160;;;-1:-1:-1;2341:21856:160;;;;;;;;;23260:55:85;23080:242;:::o;21364:182::-;7898:23:86;21364:182:85;;2341:21856:160;;;;;;;;-1:-1:-1;2341:21856:160;3096:11:85;;;2341:21856:160;;;-1:-1:-1;2341:21856:160;;7898:23:86;:::i;22966:408:160:-;-1:-1:-1;;;;;;;;;;;2341:21856:160;837:15:87;2341:21856:160;819:34:87;837:15;819:34;:::i;:::-;2341:21856:160;;;;23070:22;;23066:80;;23278:16;2341:21856;;;;;;;;;;;;23177:42;;;:87;:42;;;:87;;23278:16;:::i;:::-;2341:21856;837:15:87;819:34;837:15;819:34;:::i;:::-;2341:21856:160;;;23278:36;;23274:94;;22966:408::o;23274:94::-;23115:20;;;-1:-1:-1;23337:20:160;;-1:-1:-1;23337:20:160;23177:87;;;;23278:16;:::i;17218:208::-;2341:21856;;17337:16;;;;17218:208;;17337:16;:37;;17218:208;17337:82;;;;17330:89;;17218:208;:::o;17337:82::-;2341:21856;;17379:17;;;-1:-1:-1;2341:21856:160;17379:39;;;;17337:82;;17218:208;:::o;17379:39::-;2341:21856;;-1:-1:-1;17400:18:160;;-1:-1:-1;17218:208:160;:::o;17337:37::-;2341:21856;;;-1:-1:-1;17357:17:160;;-1:-1:-1;17337:37:160;;;16656:556;-1:-1:-1;;;;;;;;;;;2341:21856:160;16835:8;;;2341:21856;;17119:25;17154:12;;;2341:21856;;;16656:556;2341:21856;;;;;;;16656:556;16831:21;;;;;;16656:556;;;;;;;;:::o;16854:3::-;2086:12:172;;;;;;;;2139:14;16985:53:160;2086:12:172;;;;;:::i;16985:53:160:-;16984:54;16980:101;;2341:21856;;-1:-1:-1;;;17119:25:160;;2341:21856;;;;;17119:25;;2341:21856;;-1:-1:-1;;;;;2341:21856:160;17119:25;;;;;;;2341:21856;17119:25;;;2341:21856;17119:25;;;16854:3;2341:21856;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;17104:91:160;;17119:25;17104:91;;2341:21856;;;-1:-1:-1;;;;;2341:21856:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17104:91;;-1:-1:-1;;;;;2341:21856:160;17104:91;;;;;;;2341:21856;17104:91;;;16854:3;17095:100;;;2341:21856;17095:100;;:::i;:::-;16854:3;16820:9;2341:21856;16820:9;;;;;;;;;17104:91;;;;;;;;;;;;;;;;:::i;:::-;;;2341:21856;;;;;;17104:91;;;;;;;17119:25;;;;;;;;;;;;;;:::i;:::-;;;;16980:101;17058:8;;2341:21856;17058:8;;;14296:213:83;2341:21856:160;14374:24:83;;14370:103;;2341:21856:160;;14296:213:83;:::o;14370:103::-;14421:41;;;;;14452:2;14421:41;2341:21856:160;;;;14421:41:83;;3330:164:85;;8192:26:86;3330:164:85;2341:21856:160;-1:-1:-1;2341:21856:160;3433:11:85;;;2341:21856:160;;-1:-1:-1;2341:21856:160;;;;8192:26:86;:::i;7082:141:30:-;2341:21856:160;-1:-1:-1;;;;;;;;;;;2341:21856:160;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5626:274:85;;2341:21856:160;-1:-1:-1;2341:21856:160;5743:11:85;;;2341:21856:160;;;-1:-1:-1;2341:21856:160;;5773:10:85;;;;:33;;;;5626:274;5769:103;;;;5881:12;5626:274;:::o;5769:103::-;5829:32;;;-1:-1:-1;5829:32:85;;2341:21856:160;;-1:-1:-1;5829:32:85;5773:33;8806:28:86;;;5197:14;5101:129;-1:-1:-1;2341:21856:160;5197:14:86;2341:21856:160;;;-1:-1:-1;2341:21856:160;;5197:26:86;;5101:129;;8806:28;5787:19:85;5773:33;;;;2341:21856:160;;;;;;;;-1:-1:-1;2341:21856:160;;-1:-1:-1;2341:21856:160;;;-1:-1:-1;2341:21856:160;:::o;3071:1368:86:-;;3266:14;;;2341:21856:160;;;;;;;;;;;3302:13:86;;;3298:1135;3302:13;;;-1:-1:-1;;2341:21856:160;;;;;;;;;-1:-1:-1;;2341:21856:160;;;20632:17;2341:21856;;;;3777:23:86;;;3773:378;;3298:1135;2341:21856:160;;;;;;;;;-1:-1:-1;;2341:21856:160;;;;;;:::i;:::-;;;;20632:17;;2341:21856;;;;;;;;;;;;;;;;;;3266:14:86;4368:11;:::o;2341:21856:160:-;;;;;;;;;;;;3773:378:86;2341:21856:160;3840:22:86;3961:23;3840:22;;;:::i;:::-;2341:21856:160;;;;;;3961:23:86;;;;;:::i;:::-;2341:21856:160;;;;;;;;;;20632:17;;;2341:21856;;;;;;;;;;;;;;;;;;;3773:378:86;;;;;3298:1135;4410:12;;;;2341:21856:160;4410:12:86;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;2341:21856:160;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;2341:21856:160;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;2341:21856:160;;;;4933:24:66;2341:21856:160;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;2497:406:86;-1:-1:-1;2341:21856:160;;;5197:14:86;;;2341:21856:160;;;;;;2581:21:86;;2341:21856:160;;;-1:-1:-1;;;2341:21856:160;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;2776:14:86;2341:21856:160;;;;;;;2832:11:86;:::o","linkReferences":{},"immutableReferences":{"45417":[{"start":7273,"length":32},{"start":7480,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AlreadyEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"name\":\"EnumerableMapNonexistentKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newRole\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"_commitment\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"slashes\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"activeOperators\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"stakes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"stake\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"maxValidators\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vault\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_rewards\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"data\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnumerableMapNonexistentKey(bytes32)\":[{\"details\":\"Query for a nonexistent map key.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getOperatorStakeAt(address,uint48)\":{\"returns\":{\"stake\":\"The total stake of the operator in all vaults that was active at the given timestamp.\"}},\"makeElectionAt(uint48,uint256)\":{\"details\":\"This function returns the list of validators that are will be responsible for block production in the next era.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"disableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"distributeOperatorRewards(address,uint256,bytes32)\":{\"notice\":\"The function can be called only by the Router contract.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterOperator(address)\":{\"notice\":\"This function can be called only be operator themselves.\"},\"unregisterVault(address)\":{\"notice\":\"This function can be called only by the vault owner.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Middleware.sol\":\"Middleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d\",\"dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol\":{\"keccak256\":\"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f\",\"dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy\"]},\"lib/symbiotic-core/src/interfaces/common/IEntity.sol\":{\"keccak256\":\"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b\",\"dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv\"]},\"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol\":{\"keccak256\":\"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c\",\"dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds\"]},\"lib/symbiotic-core/src/interfaces/common/IRegistry.sol\":{\"keccak256\":\"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014\",\"dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK\"]},\"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol\":{\"keccak256\":\"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2\",\"dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8\"]},\"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol\":{\"keccak256\":\"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c\",\"dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA\"]},\"lib/symbiotic-core/src/interfaces/service/IOptInService.sol\":{\"keccak256\":\"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337\",\"dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24\"]},\"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol\":{\"keccak256\":\"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf\",\"dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx\"]},\"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol\":{\"keccak256\":\"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508\",\"dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg\"]},\"lib/symbiotic-core/src/interfaces/vault/IVault.sol\":{\"keccak256\":\"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9\",\"dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R\"]},\"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol\":{\"keccak256\":\"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e\",\"dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6\"]},\"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol\":{\"keccak256\":\"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06\",\"dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4\"]},\"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol\":{\"keccak256\":\"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a\",\"dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7\"]},\"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol\":{\"keccak256\":\"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a\",\"dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626\",\"dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/Middleware.sol\":{\"keccak256\":\"0xe76b0eb569cfd10e96a5f77f84260e0484f650d99a2ce1ce6bbeff4aee2aa1f4\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://502c65b65a35cb8ff51f97b152c4f5f8cb7f6cd7e8cd0d4f1a65a6ae1c97a642\",\"dweb:/ipfs/QmVeP6oRTYXgWMyW2KFYBAXumCRkc3zwcR1XkShWgyWHaA\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543\",\"dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"AlreadyAdded"},{"inputs":[],"type":"error","name":"AlreadyEnabled"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"bytes32","name":"key","type":"bytes32"}],"type":"error","name":"EnumerableMapNonexistentKey"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotEnabled"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"type":"error","name":"SafeCastOverflowedUintDowncast"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"newRole","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"view","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"_commitment","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}],"stateMutability":"nonpayable","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"view","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"slashes","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"activeOperators","type":"address[]"},{"internalType":"uint256[]","name":"stakes","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"}],"stateMutability":"view","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"stake","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"uint256","name":"maxValidators","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"_vault","type":"address"},{"internalType":"address","name":"_rewards","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"data","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"nonpayable","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"vault","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getOperatorStakeAt(address,uint48)":{"returns":{"stake":"The total stake of the operator in all vaults that was active at the given timestamp."}},"makeElectionAt(uint48,uint256)":{"details":"This function returns the list of validators that are will be responsible for block production in the next era."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"disableVault(address)":{"notice":"This function can be called only by the vault owner."},"distributeOperatorRewards(address,uint256,bytes32)":{"notice":"The function can be called only by the Router contract."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"enableVault(address)":{"notice":"This function can be called only by the vault owner."},"registerOperator()":{"notice":"This function can be called only be operator themselves."},"unregisterOperator(address)":{"notice":"This function can be called only be operator themselves."},"unregisterVault(address)":{"notice":"This function can be called only by the vault owner."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Middleware.sol":"Middleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xbff9f59c84e5337689161ce7641c0ef8e872d6a7536fbc1f5133f128887aba3c","urls":["bzz-raw://b308f882e796f7b79c9502deacb0a62983035c6f6f4e962b319ba6a1f4a77d3d","dweb:/ipfs/QmaWCW7ahEQqFjwhSUhV7Ae7WhfNvzSpE7DQ58hvEooqPL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol":{"keccak256":"0x60dcd8ad04980a471f42b6ed57f6b96fbc4091db97b6314cb198914975327938","urls":["bzz-raw://fc207782fcb74a144ecb0c7dc1f427ee6de38710e0966c3cd43040493e11379f","dweb:/ipfs/QmSa8LVejhmRr5T3pWYvUTrDr4fCfohfqyJfRyW2fV4zYy"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IEntity.sol":{"keccak256":"0x8ef4b63d6da63489778ccd5f8d13ebdd527dd4b62730b2c616df5af7474d2d21","urls":["bzz-raw://5a8d69576a9219d85c50816a18ad53a4d53cfcb27ed38b8cccc808dc2734b71b","dweb:/ipfs/QmYVN3P4Q4REvBWJ97TbAcaxm3uyB2anV6NSGa6ZtSwcEv"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol":{"keccak256":"0x8f5f2809f3afbe8ebfbb365dd7b57b4dd3b6f9943a6187eaf648d45895b8e3c4","urls":["bzz-raw://0ffe640537d539e7a4fde70d30d3e4c57f4ba9c2c25c450cea713aae38e8fd5c","dweb:/ipfs/QmSUTGzvdcn1R1KB7tLThMRtESsfPbeXDhhhKWGtntzBds"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/common/IRegistry.sol":{"keccak256":"0x474c981518bb6ac974ba2a1274c49fd918d3b5acf1f3710e59786c5e3c8fc8bb","urls":["bzz-raw://db439e8880386dd308f8c67e612e9b15067fdffb29d6d0fd89c4edf820f30014","dweb:/ipfs/QmQJuzgU17EZyPMoJNwknPkveK1Nwx1ByhZCBJzgRgcpvK"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol":{"keccak256":"0x96bb312f032e17accce3f8f80936d99468029d6b37c9ca74acdb4b026a0148ee","urls":["bzz-raw://2a66dcb5b7d1a6ef6a363431ea98ebd78bc4fdd3d7a134d9b542dc66e7d025c2","dweb:/ipfs/QmRhTPLd2ZAyRHmJUFUcWKs9b3if49QY17LYZuRqWmghw8"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol":{"keccak256":"0x347afc7fcf1fbcdb96d66162070ef6c78aed27b3af2c1d5dfb4e511840631783","urls":["bzz-raw://2d90b8ceb495159e8e4e95d76447719dd166443f67dfabdd942846162071595c","dweb:/ipfs/QmVVuiAWYx92T6vBvNMKZfTvraCf1fa16BsUKkdNs3hdHA"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/service/IOptInService.sol":{"keccak256":"0x76fb5460a6d87a5705433d4fbeff7253cd75b8bbd0c888b2088f16e86ace146a","urls":["bzz-raw://990322019b3d11465f7024bae77ccbf7e2fe5d6fa3c754584778f37d04fa1337","dweb:/ipfs/QmaSNHzcqxTkUCG9a4nqVfLECHLdjdrwAnDi3yDC7tDL24"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IBaseSlasher.sol":{"keccak256":"0x7c82528b445659c313ab77335c407b0b6efe5e79027187bb287f7bc74202b404","urls":["bzz-raw://0274c90aa5df1aa6bb470a6aab53992fb14fd7e5472c9430416505b29647d9cf","dweb:/ipfs/QmckbmJLDetPemVzCnnGcKYWAZV2BRFXGDsjiaec8jkHxx"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol":{"keccak256":"0xdf7edd04a4f36e9aec3a15241dcb6b6315b2e64927b12710c2c410d571fc55e9","urls":["bzz-raw://c4be6ac339c2ebf230fed65363f036784224095d0cd0f3f2d01d64d6e0da9508","dweb:/ipfs/QmRSMbpfaHExqrzUA8vYZMYZWh6eQW1KX9JKJSLdgronfg"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVault.sol":{"keccak256":"0xffee01d383cd4e1a5530c614bf4360c1ef070c288abec9da1eb531b51bc07235","urls":["bzz-raw://04f0046cac285d8ec44ebbb1f79dc94fab4495767190cad8364fbc1fafaadfb9","dweb:/ipfs/QmUawAunwzXfCyShWfhKeThAgKtqe51hmrxvrXvM772M2R"],"license":"MIT"},"lib/symbiotic-core/src/interfaces/vault/IVaultStorage.sol":{"keccak256":"0x592626f13754194f83047135de19229c49390bd59e34659b1bb38be71d973a22","urls":["bzz-raw://06a6a9dfddd05e580b32bebe2cff4f63ba26a653180676d58225dd30d9c89d3e","dweb:/ipfs/QmdgzBeY6Sxo8mGtyBxtv1tM1c2kU6J6zjeRd7vuXm4DU6"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol":{"keccak256":"0xb0ba8270d29fa1af4a8024f20072d13bb2eefd3aa10a77dc4650829e738ddb28","urls":["bzz-raw://6db9eca4620c65a96bc68d3b32d1b92f90558a354be72ac525e689162fda4b06","dweb:/ipfs/QmV5TQpb7b9RMUrMNPw9n1rJX1TRyb573tUoG7rye2W1m4"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol":{"keccak256":"0xc7ee0e2ffe9f592a6a295d216ab221cbacfcbeccbb06be6098e2b1e46863f6fc","urls":["bzz-raw://e6c09ad742a4836d07a4ec910f582a58991503f0244290c4a6c23fe641749e1a","dweb:/ipfs/QmVR4k1D3ZNQVdJ1vkWpeZ1MAotsH4WTwCuu6Z2X1UJEb7"],"license":"MIT"},"lib/symbiotic-rewards/src/interfaces/stakerRewards/IStakerRewards.sol":{"keccak256":"0x7516733d48956a5d54243c843b977b402a3b53998b81dc0e9ec89afeabc2a60e","urls":["bzz-raw://53571bf204dc1ccedc4a5f8154d4ad014c20e66f6196b062e260e14a7d0b6f4a","dweb:/ipfs/QmT6JRgPjvQ5DEiFUMyrGxv6qxU1ZvyKMstdigtEKVpF41"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca","urls":["bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626","dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S"],"license":"MIT"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/Middleware.sol":{"keccak256":"0xe76b0eb569cfd10e96a5f77f84260e0484f650d99a2ce1ce6bbeff4aee2aa1f4","urls":["bzz-raw://502c65b65a35cb8ff51f97b152c4f5f8cb7f6cd7e8cd0d4f1a65a6ae1c97a642","dweb:/ipfs/QmVeP6oRTYXgWMyW2KFYBAXumCRkc3zwcR1XkShWgyWHaA"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae","urls":["bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543","dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Middleware.sol","id":76340,"exportedSymbols":{"EnumerableMap":[57867],"Gear":[85973],"IAccessControl":[43863],"IBaseDelegator":[64830],"IDefaultOperatorRewards":[71122],"IDefaultStakerRewards":[71316],"IEntity":[64424],"IMiddleware":[73432],"IMigratableEntity":[64532],"INetworkMiddlewareService":[65318],"INetworkRegistry":[64322],"IOptInService":[65444],"IRegistry":[64656],"IVault":[66180],"IVetoSlasher":[65842],"MapWithTimeData":[86255],"Middleware":[76339],"OwnableUpgradeable":[41646],"ReentrancyGuardTransientUpgradeable":[43267],"SlotDerivation":[48289],"StorageSlot":[48413],"Subnetwork":[64302],"Time":[59667],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:24159:160","nodes":[{"id":74065,"nodeType":"PragmaDirective","src":"39:24:160","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":74067,"nodeType":"ImportDirective","src":"65:101:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":74066,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"73:18:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74069,"nodeType":"ImportDirective","src":"167:140:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":74068,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"180:35:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74071,"nodeType":"ImportDirective","src":"308:81:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol","file":"@openzeppelin/contracts/access/IAccessControl.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":43864,"symbolAliases":[{"foreign":{"id":74070,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43863,"src":"316:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74073,"nodeType":"ImportDirective","src":"390:88:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":74072,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"398:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74075,"nodeType":"ImportDirective","src":"479:80:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":74074,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"487:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74077,"nodeType":"ImportDirective","src":"560:74:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":74076,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"568:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74079,"nodeType":"ImportDirective","src":"635:86:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":57868,"symbolAliases":[{"foreign":{"id":74078,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57867,"src":"643:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74081,"nodeType":"ImportDirective","src":"722:66:160","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/types/Time.sol","file":"@openzeppelin/contracts/utils/types/Time.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":59668,"symbolAliases":[{"foreign":{"id":74080,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"730:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74083,"nodeType":"ImportDirective","src":"789:48:160","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":74082,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"797:11:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74085,"nodeType":"ImportDirective","src":"838:44:160","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":85974,"symbolAliases":[{"foreign":{"id":74084,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"846:4:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74087,"nodeType":"ImportDirective","src":"883:66:160","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":86256,"symbolAliases":[{"foreign":{"id":74086,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86255,"src":"891:15:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74089,"nodeType":"ImportDirective","src":"950:81:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64303,"symbolAliases":[{"foreign":{"id":74088,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64302,"src":"958:10:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74091,"nodeType":"ImportDirective","src":"1032:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/INetworkRegistry.sol","file":"symbiotic-core/src/interfaces/INetworkRegistry.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64323,"symbolAliases":[{"foreign":{"id":74090,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"1040:16:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74093,"nodeType":"ImportDirective","src":"1117:73:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IEntity.sol","file":"symbiotic-core/src/interfaces/common/IEntity.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64425,"symbolAliases":[{"foreign":{"id":74092,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64424,"src":"1125:7:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74095,"nodeType":"ImportDirective","src":"1191:93:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IMigratableEntity.sol","file":"symbiotic-core/src/interfaces/common/IMigratableEntity.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64533,"symbolAliases":[{"foreign":{"id":74094,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64532,"src":"1199:17:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74097,"nodeType":"ImportDirective","src":"1285:77:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/common/IRegistry.sol","file":"symbiotic-core/src/interfaces/common/IRegistry.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64657,"symbolAliases":[{"foreign":{"id":74096,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"1293:9:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74099,"nodeType":"ImportDirective","src":"1363:90:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","file":"symbiotic-core/src/interfaces/delegator/IBaseDelegator.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":64831,"symbolAliases":[{"foreign":{"id":74098,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"1371:14:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74101,"nodeType":"ImportDirective","src":"1454:110:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","file":"symbiotic-core/src/interfaces/service/INetworkMiddlewareService.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":65319,"symbolAliases":[{"foreign":{"id":74100,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65318,"src":"1462:25:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74103,"nodeType":"ImportDirective","src":"1565:86:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/service/IOptInService.sol","file":"symbiotic-core/src/interfaces/service/IOptInService.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":65445,"symbolAliases":[{"foreign":{"id":74102,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65444,"src":"1573:13:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74105,"nodeType":"ImportDirective","src":"1652:84:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","file":"symbiotic-core/src/interfaces/slasher/IVetoSlasher.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":65843,"symbolAliases":[{"foreign":{"id":74104,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"1660:12:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74107,"nodeType":"ImportDirective","src":"1737:70:160","nodes":[],"absolutePath":"lib/symbiotic-core/src/interfaces/vault/IVault.sol","file":"symbiotic-core/src/interfaces/vault/IVault.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":66181,"symbolAliases":[{"foreign":{"id":74106,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"1745:6:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74109,"nodeType":"ImportDirective","src":"1808:130:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultOperatorRewards/IDefaultOperatorRewards.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":71123,"symbolAliases":[{"foreign":{"id":74108,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71122,"src":"1821:23:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":74111,"nodeType":"ImportDirective","src":"1939:118:160","nodes":[],"absolutePath":"lib/symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","file":"symbiotic-rewards/src/interfaces/defaultStakerRewards/IDefaultStakerRewards.sol","nameLocation":"-1:-1:-1","scope":76340,"sourceUnit":71317,"symbolAliases":[{"foreign":{"id":74110,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"1947:21:160","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76339,"nodeType":"ContractDefinition","src":"2341:21856:160","nodes":[{"id":74123,"nodeType":"UsingForDirective","src":"2456:55:160","nodes":[],"global":false,"libraryName":{"id":74120,"name":"EnumerableMap","nameLocations":["2462:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"2462:13:160"},"typeName":{"id":74122,"nodeType":"UserDefinedTypeName","pathNode":{"id":74121,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2480:13:160","2494:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"2480:30:160"},"referencedDeclaration":56191,"src":"2480:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":74127,"nodeType":"UsingForDirective","src":"2516:57:160","nodes":[],"global":false,"libraryName":{"id":74124,"name":"MapWithTimeData","nameLocations":["2522:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":86255,"src":"2522:15:160"},"typeName":{"id":74126,"nodeType":"UserDefinedTypeName","pathNode":{"id":74125,"name":"EnumerableMap.AddressToUintMap","nameLocations":["2542:13:160","2556:16:160"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"2542:30:160"},"referencedDeclaration":56191,"src":"2542:30:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":74131,"nodeType":"UsingForDirective","src":"2579:58:160","nodes":[],"global":false,"libraryName":{"id":74128,"name":"EnumerableMap","nameLocations":["2585:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"2585:13:160"},"typeName":{"id":74130,"nodeType":"UserDefinedTypeName","pathNode":{"id":74129,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2603:13:160","2617:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"2603:33:160"},"referencedDeclaration":56486,"src":"2603:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":74135,"nodeType":"UsingForDirective","src":"2642:60:160","nodes":[],"global":false,"libraryName":{"id":74132,"name":"MapWithTimeData","nameLocations":["2648:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":86255,"src":"2648:15:160"},"typeName":{"id":74134,"nodeType":"UserDefinedTypeName","pathNode":{"id":74133,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["2668:13:160","2682:19:160"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"2668:33:160"},"referencedDeclaration":56486,"src":"2668:33:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":74138,"nodeType":"UsingForDirective","src":"2708:29:160","nodes":[],"global":false,"libraryName":{"id":74136,"name":"Subnetwork","nameLocations":["2714:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":64302,"src":"2714:10:160"},"typeName":{"id":74137,"name":"address","nodeType":"ElementaryTypeName","src":"2729:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":74141,"nodeType":"VariableDeclaration","src":"2850:106:160","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"2875:12:160","scope":76339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74139,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2850:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":74140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:66:160","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":74144,"nodeType":"VariableDeclaration","src":"2963:50:160","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"2988:18:160","scope":76339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74142,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2963:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":74143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3009:4:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":74147,"nodeType":"VariableDeclaration","src":"3019:45:160","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"3042:18:160","scope":76339,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74145,"name":"uint8","nodeType":"ElementaryTypeName","src":"3019:5:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":74146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3063:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":74155,"nodeType":"FunctionDefinition","src":"3124:53:160","nodes":[],"body":{"id":74154,"nodeType":"Block","src":"3138:39:160","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74151,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"3148:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":74152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3148:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74153,"nodeType":"ExpressionStatement","src":"3148:22:160"}]},"documentation":{"id":74148,"nodeType":"StructuredDocumentation","src":"3071:48:160","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":74149,"nodeType":"ParameterList","parameters":[],"src":"3135:2:160"},"returnParameters":{"id":74150,"nodeType":"ParameterList","parameters":[],"src":"3138:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74309,"nodeType":"FunctionDefinition","src":"3183:1277:160","nodes":[],"body":{"id":74308,"nodeType":"Block","src":"3251:1209:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":74164,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3276:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3284:5:160","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73163,"src":"3276:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74163,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"3261:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":74166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3261:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74167,"nodeType":"ExpressionStatement","src":"3261:29:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74168,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"3300:31:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":74169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3300:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74170,"nodeType":"ExpressionStatement","src":"3300:33:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":74172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3360:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":74171,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"3344:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":74173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3344:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74174,"nodeType":"ExpressionStatement","src":"3344:50:160"},{"assignments":[74177],"declarations":[{"constant":false,"id":74177,"mutability":"mutable","name":"$","nameLocation":"3420:1:160","nodeType":"VariableDeclaration","scope":74308,"src":"3404:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74176,"nodeType":"UserDefinedTypeName","pathNode":{"id":74175,"name":"Storage","nameLocations":["3404:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"3404:7:160"},"referencedDeclaration":73229,"src":"3404:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74180,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74178,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"3424:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3404:30:160"},{"expression":{"id":74186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74181,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3445:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3447:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"3445:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74184,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3461:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3469:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73165,"src":"3461:19:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3445:35:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74187,"nodeType":"ExpressionStatement","src":"3445:35:160"},{"expression":{"id":74193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74188,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3490:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3492:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"3490:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74191,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3516:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3524:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73167,"src":"3516:29:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3490:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74194,"nodeType":"ExpressionStatement","src":"3490:55:160"},{"expression":{"id":74200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74195,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3555:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3557:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"3555:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74198,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3579:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3587:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73169,"src":"3579:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3555:51:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74201,"nodeType":"ExpressionStatement","src":"3555:51:160"},{"expression":{"id":74207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74202,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3616:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3618:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"3616:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74205,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3637:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3645:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73171,"src":"3637:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3616:45:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74208,"nodeType":"ExpressionStatement","src":"3616:45:160"},{"expression":{"id":74214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74209,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3671:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3673:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"3671:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74212,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3691:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3699:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73173,"src":"3691:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3671:43:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74215,"nodeType":"ExpressionStatement","src":"3671:43:160"},{"expression":{"id":74221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74216,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3724:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3726:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"3724:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74219,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3751:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3759:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73175,"src":"3751:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"3724:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74222,"nodeType":"ExpressionStatement","src":"3724:57:160"},{"expression":{"id":74228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74223,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3791:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3793:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"3791:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74226,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3821:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3829:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73181,"src":"3821:33:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3791:63:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74229,"nodeType":"ExpressionStatement","src":"3791:63:160"},{"expression":{"id":74235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74230,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3864:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3866:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"3864:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74233,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3892:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3900:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73177,"src":"3892:31:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3864:59:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74236,"nodeType":"ExpressionStatement","src":"3864:59:160"},{"expression":{"id":74242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74237,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"3933:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3935:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"3933:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74240,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"3957:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3965:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73179,"src":"3957:27:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"3933:51:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74243,"nodeType":"ExpressionStatement","src":"3933:51:160"},{"expression":{"id":74249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74244,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4017:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4019:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"4017:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74247,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4032:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4040:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73185,"src":"4032:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4017:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74250,"nodeType":"ExpressionStatement","src":"4017:33:160"},{"expression":{"id":74261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74251,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4060:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4062:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"4060:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74259,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74147,"src":"4100:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"arguments":[{"id":74256,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4083:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}],"id":74255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4075:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74254,"name":"address","nodeType":"ElementaryTypeName","src":"4075:7:160","typeDescriptions":{}}},"id":74257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4075:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4089:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":64264,"src":"4075:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_uint96_$returns$_t_bytes32_$attached_to$_t_address_$","typeString":"function (address,uint96) pure returns (bytes32)"}},"id":74260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4075:44:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4060:59:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74262,"nodeType":"ExpressionStatement","src":"4060:59:160"},{"expression":{"id":74268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74263,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4129:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4131:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"4129:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74266,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4145:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4153:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73183,"src":"4145:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4129:35:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74269,"nodeType":"ExpressionStatement","src":"4129:35:160"},{"expression":{"id":74275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74270,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4175:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4177:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"4175:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74273,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4186:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4194:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73187,"src":"4186:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4175:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74276,"nodeType":"ExpressionStatement","src":"4175:25:160"},{"expression":{"id":74282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74277,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4211:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4213:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"4211:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74280,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4225:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4233:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73190,"src":"4225:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"src":"4211:31:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74283,"nodeType":"ExpressionStatement","src":"4211:31:160"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"expression":{"id":74285,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4270:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4278:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73190,"src":"4270:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":74287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:15:160","memberName":"networkRegistry","nodeType":"MemberAccess","referencedDeclaration":85082,"src":"4270:33:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74284,"name":"INetworkRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64322,"src":"4253:16:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkRegistry_$64322_$","typeString":"type(contract INetworkRegistry)"}},"id":74288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4253:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkRegistry_$64322","typeString":"contract INetworkRegistry"}},"id":74289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4305:15:160","memberName":"registerNetwork","nodeType":"MemberAccess","referencedDeclaration":64321,"src":"4253:67:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":74290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4253:69:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74291,"nodeType":"ExpressionStatement","src":"4253:69:160"},{"expression":{"arguments":[{"arguments":[{"id":74300,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4417:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}],"id":74299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4409:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74298,"name":"address","nodeType":"ElementaryTypeName","src":"4409:7:160","typeDescriptions":{}}},"id":74301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4409:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":74293,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74158,"src":"4358:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":74294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4366:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73190,"src":"4358:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_calldata_ptr","typeString":"struct Gear.SymbioticContracts calldata"}},"id":74295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4376:17:160","memberName":"middlewareService","nodeType":"MemberAccess","referencedDeclaration":85084,"src":"4358:35:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74292,"name":"INetworkMiddlewareService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65318,"src":"4332:25:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_INetworkMiddlewareService_$65318_$","typeString":"type(contract INetworkMiddlewareService)"}},"id":74296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4332:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_INetworkMiddlewareService_$65318","typeString":"contract INetworkMiddlewareService"}},"id":74297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4395:13:160","memberName":"setMiddleware","nodeType":"MemberAccess","referencedDeclaration":65317,"src":"4332:76:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":74302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4332:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74303,"nodeType":"ExpressionStatement","src":"4332:91:160"},{"expression":{"arguments":[{"id":74305,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"4451:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}],"id":74304,"name":"_validateStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75888,"src":"4434:16:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73229_storage_ptr_$returns$__$","typeString":"function (struct IMiddleware.Storage storage pointer) view"}},"id":74306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4434:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74307,"nodeType":"ExpressionStatement","src":"4434:19:160"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":74161,"kind":"modifierInvocation","modifierName":{"id":74160,"name":"initializer","nameLocations":["3239:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"3239:11:160"},"nodeType":"ModifierInvocation","src":"3239:11:160"}],"name":"initialize","nameLocation":"3192:10:160","parameters":{"id":74159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74158,"mutability":"mutable","name":"_params","nameLocation":"3223:7:160","nodeType":"VariableDeclaration","scope":74309,"src":"3203:27:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":74157,"nodeType":"UserDefinedTypeName","pathNode":{"id":74156,"name":"InitParams","nameLocations":["3203:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":73191,"src":"3203:10:160"},"referencedDeclaration":73191,"src":"3203:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"3202:29:160"},"returnParameters":{"id":74162,"nodeType":"ParameterList","parameters":[],"src":"3251:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74506,"nodeType":"FunctionDefinition","src":"4518:1578:160","nodes":[],"body":{"id":74505,"nodeType":"Block","src":"4576:1520:160","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":74319,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"4601:5:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":74320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:7:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74318,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"4586:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":74321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4586:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74322,"nodeType":"ExpressionStatement","src":"4586:23:160"},{"assignments":[74325],"declarations":[{"constant":false,"id":74325,"mutability":"mutable","name":"oldStorage","nameLocation":"4636:10:160","nodeType":"VariableDeclaration","scope":74505,"src":"4620:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74324,"nodeType":"UserDefinedTypeName","pathNode":{"id":74323,"name":"Storage","nameLocations":["4620:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"4620:7:160"},"referencedDeclaration":73229,"src":"4620:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74328,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74326,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"4649:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4649:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4620:39:160"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":74330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4686:33:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":74329,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76308,"src":"4670:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":74331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4670:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74332,"nodeType":"ExpressionStatement","src":"4670:50:160"},{"assignments":[74335],"declarations":[{"constant":false,"id":74335,"mutability":"mutable","name":"newStorage","nameLocation":"4746:10:160","nodeType":"VariableDeclaration","scope":74505,"src":"4730:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74334,"nodeType":"UserDefinedTypeName","pathNode":{"id":74333,"name":"Storage","nameLocations":["4730:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"4730:7:160"},"referencedDeclaration":73229,"src":"4730:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74338,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74336,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"4759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4730:39:160"},{"expression":{"id":74344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74339,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4780:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4791:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"4780:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74342,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"4805:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4816:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"4805:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4780:47:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74345,"nodeType":"ExpressionStatement","src":"4780:47:160"},{"expression":{"id":74351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74346,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4837:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4848:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"4837:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74349,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"4872:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4883:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"4872:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4837:67:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74352,"nodeType":"ExpressionStatement","src":"4837:67:160"},{"expression":{"id":74358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74353,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4914:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4925:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"4914:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74356,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"4947:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4958:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"4947:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4914:63:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74359,"nodeType":"ExpressionStatement","src":"4914:63:160"},{"expression":{"id":74365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74360,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"4987:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74362,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4998:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"4987:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74363,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5017:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5028:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"5017:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"4987:57:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74366,"nodeType":"ExpressionStatement","src":"4987:57:160"},{"expression":{"id":74372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74367,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5054:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5065:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"5054:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74370,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5083:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5094:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"5083:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5054:55:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74373,"nodeType":"ExpressionStatement","src":"5054:55:160"},{"expression":{"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74374,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5119:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5130:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"5119:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74377,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5155:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5166:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"5155:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"5119:69:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":74380,"nodeType":"ExpressionStatement","src":"5119:69:160"},{"expression":{"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74381,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5198:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74383,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5209:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"5198:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74384,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5237:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5248:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"5237:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5198:75:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74387,"nodeType":"ExpressionStatement","src":"5198:75:160"},{"expression":{"id":74393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74388,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5283:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5294:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"5283:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74391,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5320:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5331:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"5320:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5283:71:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74394,"nodeType":"ExpressionStatement","src":"5283:71:160"},{"expression":{"id":74400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74395,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5364:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5375:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"5364:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74398,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5397:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5408:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"5397:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"5364:63:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":74401,"nodeType":"ExpressionStatement","src":"5364:63:160"},{"expression":{"id":74407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74402,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5437:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5448:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"5437:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74405,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5461:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5472:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"5461:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5437:45:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74408,"nodeType":"ExpressionStatement","src":"5437:45:160"},{"expression":{"id":74414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74409,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5492:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5503:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"5492:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74412,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5516:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5527:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"5516:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5492:45:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":74415,"nodeType":"ExpressionStatement","src":"5492:45:160"},{"expression":{"id":74421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74416,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5547:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5558:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"5547:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74419,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5572:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5583:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"5572:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5547:47:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74422,"nodeType":"ExpressionStatement","src":"5547:47:160"},{"expression":{"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74423,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5604:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5615:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"5604:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74426,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5624:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5635:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"5624:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5604:37:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74429,"nodeType":"ExpressionStatement","src":"5604:37:160"},{"expression":{"id":74435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74430,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5651:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5662:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"5651:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74433,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5674:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5685:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"5674:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"src":"5651:43:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74436,"nodeType":"ExpressionStatement","src":"5651:43:160"},{"body":{"id":74469,"nodeType":"Block","src":"5765:132:160","statements":[{"assignments":[74451,74453],"declarations":[{"constant":false,"id":74451,"mutability":"mutable","name":"key","nameLocation":"5788:3:160","nodeType":"VariableDeclaration","scope":74469,"src":"5780:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74450,"name":"address","nodeType":"ElementaryTypeName","src":"5780:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74453,"mutability":"mutable","name":"value","nameLocation":"5801:5:160","nodeType":"VariableDeclaration","scope":74469,"src":"5793:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74452,"name":"uint256","nodeType":"ElementaryTypeName","src":"5793:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74459,"initialValue":{"arguments":[{"id":74457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"5834:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74454,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5810:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5821:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"5810:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5831:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":56346,"src":"5810:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":74458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5779:57:160"},{"expression":{"arguments":[{"id":74465,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74451,"src":"5875:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74466,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74453,"src":"5880:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74460,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"5850:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5861:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"5850:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5871:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56224,"src":"5850:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":74467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5850:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74468,"nodeType":"ExpressionStatement","src":"5850:36:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74441,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"5725:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":74442,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5729:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5740:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"5729:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5750:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"5729:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":74445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5729:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5725:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74470,"initializationExpression":{"assignments":[74438],"declarations":[{"constant":false,"id":74438,"mutability":"mutable","name":"i","nameLocation":"5718:1:160","nodeType":"VariableDeclaration","scope":74470,"src":"5710:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74437,"name":"uint256","nodeType":"ElementaryTypeName","src":"5710:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74440,"initialValue":{"hexValue":"30","id":74439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5722:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5710:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":74448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5760:3:160","subExpression":{"id":74447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"5760:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74449,"nodeType":"ExpressionStatement","src":"5760:3:160"},"nodeType":"ForStatement","src":"5705:192:160"},{"body":{"id":74503,"nodeType":"Block","src":"5964:126:160","statements":[{"assignments":[74485,74487],"declarations":[{"constant":false,"id":74485,"mutability":"mutable","name":"key","nameLocation":"5987:3:160","nodeType":"VariableDeclaration","scope":74503,"src":"5979:11:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74484,"name":"address","nodeType":"ElementaryTypeName","src":"5979:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74487,"mutability":"mutable","name":"value","nameLocation":"6000:5:160","nodeType":"VariableDeclaration","scope":74503,"src":"5992:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74486,"name":"uint256","nodeType":"ElementaryTypeName","src":"5992:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74493,"initialValue":{"arguments":[{"id":74491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74472,"src":"6030:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74488,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"6009:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6020:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"6009:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6027:2:160","memberName":"at","nodeType":"MemberAccess","referencedDeclaration":56346,"src":"6009:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint256)"}},"id":74492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6009:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint256_$","typeString":"tuple(address,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"5978:54:160"},{"expression":{"arguments":[{"id":74499,"name":"key","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74485,"src":"6068:3:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74487,"src":"6073:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":74494,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74335,"src":"6046:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6057:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"6046:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6064:3:160","memberName":"set","nodeType":"MemberAccess","referencedDeclaration":56224,"src":"6046:21:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint256_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint256) returns (bool)"}},"id":74501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6046:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74502,"nodeType":"ExpressionStatement","src":"6046:33:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74475,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74472,"src":"5927:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":74476,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74325,"src":"5931:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5942:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"5931:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5949:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"5931:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":74479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5931:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5927:30:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74504,"initializationExpression":{"assignments":[74472],"declarations":[{"constant":false,"id":74472,"mutability":"mutable","name":"i","nameLocation":"5920:1:160","nodeType":"VariableDeclaration","scope":74504,"src":"5912:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74471,"name":"uint256","nodeType":"ElementaryTypeName","src":"5912:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74474,"initialValue":{"hexValue":"30","id":74473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5924:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"5912:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":74482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5959:3:160","subExpression":{"id":74481,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74472,"src":"5959:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74483,"nodeType":"ExpressionStatement","src":"5959:3:160"},"nodeType":"ForStatement","src":"5907:183:160"}]},"documentation":{"id":74310,"nodeType":"StructuredDocumentation","src":"4466:47:160","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":74313,"kind":"modifierInvocation","modifierName":{"id":74312,"name":"onlyOwner","nameLocations":["4549:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"4549:9:160"},"nodeType":"ModifierInvocation","src":"4549:9:160"},{"arguments":[{"hexValue":"32","id":74315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4573:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":74316,"kind":"modifierInvocation","modifierName":{"id":74314,"name":"reinitializer","nameLocations":["4559:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"4559:13:160"},"nodeType":"ModifierInvocation","src":"4559:16:160"}],"name":"reinitialize","nameLocation":"4527:12:160","parameters":{"id":74311,"nodeType":"ParameterList","parameters":[],"src":"4539:2:160"},"returnParameters":{"id":74317,"nodeType":"ParameterList","parameters":[],"src":"4576:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":74516,"nodeType":"FunctionDefinition","src":"6261:84:160","nodes":[],"body":{"id":74515,"nodeType":"Block","src":"6343:2:160","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":74507,"nodeType":"StructuredDocumentation","src":"6102:154:160","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":74513,"kind":"modifierInvocation","modifierName":{"id":74512,"name":"onlyOwner","nameLocations":["6333:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"6333:9:160"},"nodeType":"ModifierInvocation","src":"6333:9:160"}],"name":"_authorizeUpgrade","nameLocation":"6270:17:160","overrides":{"id":74511,"nodeType":"OverrideSpecifier","overrides":[],"src":"6324:8:160"},"parameters":{"id":74510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74509,"mutability":"mutable","name":"newImplementation","nameLocation":"6296:17:160","nodeType":"VariableDeclaration","scope":74516,"src":"6288:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74508,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6287:27:160"},"returnParameters":{"id":74514,"nodeType":"ParameterList","parameters":[],"src":"6343:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74526,"nodeType":"FunctionDefinition","src":"6366:98:160","nodes":[],"body":{"id":74525,"nodeType":"Block","src":"6418:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74521,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6446:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"6435:22:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74520,"id":74524,"nodeType":"Return","src":"6428:29:160"}]},"baseFunctions":[73253],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"6375:11:160","parameters":{"id":74517,"nodeType":"ParameterList","parameters":[],"src":"6386:2:160"},"returnParameters":{"id":74520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74526,"src":"6410:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74518,"name":"uint48","nodeType":"ElementaryTypeName","src":"6410:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6409:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74536,"nodeType":"FunctionDefinition","src":"6470:118:160","nodes":[],"body":{"id":74535,"nodeType":"Block","src":"6532:56:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74531,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6549:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6549:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6560:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"6549:32:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74530,"id":74534,"nodeType":"Return","src":"6542:39:160"}]},"baseFunctions":[73258],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"6479:21:160","parameters":{"id":74527,"nodeType":"ParameterList","parameters":[],"src":"6500:2:160"},"returnParameters":{"id":74530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74536,"src":"6524:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74528,"name":"uint48","nodeType":"ElementaryTypeName","src":"6524:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6523:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74546,"nodeType":"FunctionDefinition","src":"6594:116:160","nodes":[],"body":{"id":74545,"nodeType":"Block","src":"6656:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74541,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6673:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6673:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6684:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"6673:30:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74540,"id":74544,"nodeType":"Return","src":"6666:37:160"}]},"baseFunctions":[73263],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"6603:19:160","parameters":{"id":74537,"nodeType":"ParameterList","parameters":[],"src":"6622:2:160"},"returnParameters":{"id":74540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74546,"src":"6648:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74538,"name":"uint48","nodeType":"ElementaryTypeName","src":"6648:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6647:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74556,"nodeType":"FunctionDefinition","src":"6716:110:160","nodes":[],"body":{"id":74555,"nodeType":"Block","src":"6775:51:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74551,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6792:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6792:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6803:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"6792:27:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74550,"id":74554,"nodeType":"Return","src":"6785:34:160"}]},"baseFunctions":[73268],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"6725:16:160","parameters":{"id":74547,"nodeType":"ParameterList","parameters":[],"src":"6741:2:160"},"returnParameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74556,"src":"6767:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74548,"name":"uint48","nodeType":"ElementaryTypeName","src":"6767:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6766:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74566,"nodeType":"FunctionDefinition","src":"6832:108:160","nodes":[],"body":{"id":74565,"nodeType":"Block","src":"6890:50:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74561,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"6907:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6907:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6918:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"6907:26:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74560,"id":74564,"nodeType":"Return","src":"6900:33:160"}]},"baseFunctions":[73273],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"6841:15:160","parameters":{"id":74557,"nodeType":"ParameterList","parameters":[],"src":"6856:2:160"},"returnParameters":{"id":74560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74566,"src":"6882:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74558,"name":"uint48","nodeType":"ElementaryTypeName","src":"6882:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6881:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74576,"nodeType":"FunctionDefinition","src":"6946:122:160","nodes":[],"body":{"id":74575,"nodeType":"Block","src":"7011:57:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74571,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7028:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7028:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7039:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"7028:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":74570,"id":74574,"nodeType":"Return","src":"7021:40:160"}]},"baseFunctions":[73278],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"6955:22:160","parameters":{"id":74567,"nodeType":"ParameterList","parameters":[],"src":"6977:2:160"},"returnParameters":{"id":74570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74576,"src":"7003:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74568,"name":"uint48","nodeType":"ElementaryTypeName","src":"7003:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7002:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74586,"nodeType":"FunctionDefinition","src":"7074:129:160","nodes":[],"body":{"id":74585,"nodeType":"Block","src":"7143:60:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74581,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7160:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7160:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7171:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"7160:36:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74580,"id":74584,"nodeType":"Return","src":"7153:43:160"}]},"baseFunctions":[73283],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"7083:25:160","parameters":{"id":74577,"nodeType":"ParameterList","parameters":[],"src":"7108:2:160"},"returnParameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74586,"src":"7134:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74578,"name":"uint256","nodeType":"ElementaryTypeName","src":"7134:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7133:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74596,"nodeType":"FunctionDefinition","src":"7209:124:160","nodes":[],"body":{"id":74595,"nodeType":"Block","src":"7275:58:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74591,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7292:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7292:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7303:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"7292:34:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":74590,"id":74594,"nodeType":"Return","src":"7285:41:160"}]},"baseFunctions":[73288],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"7218:23:160","parameters":{"id":74587,"nodeType":"ParameterList","parameters":[],"src":"7241:2:160"},"returnParameters":{"id":74590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74589,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74596,"src":"7267:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":74588,"name":"uint64","nodeType":"ElementaryTypeName","src":"7267:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7266:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74606,"nodeType":"FunctionDefinition","src":"7339:116:160","nodes":[],"body":{"id":74605,"nodeType":"Block","src":"7401:54:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74601,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7418:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7418:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7429:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"7418:30:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":74600,"id":74604,"nodeType":"Return","src":"7411:37:160"}]},"baseFunctions":[73293],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"7348:19:160","parameters":{"id":74597,"nodeType":"ParameterList","parameters":[],"src":"7367:2:160"},"returnParameters":{"id":74600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74606,"src":"7393:6:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":74598,"name":"uint64","nodeType":"ElementaryTypeName","src":"7393:6:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"7392:8:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74616,"nodeType":"FunctionDefinition","src":"7461:99:160","nodes":[],"body":{"id":74615,"nodeType":"Block","src":"7515:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74611,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7532:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7532:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7543:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"7532:21:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":74610,"id":74614,"nodeType":"Return","src":"7525:28:160"}]},"baseFunctions":[73298],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"7470:10:160","parameters":{"id":74607,"nodeType":"ParameterList","parameters":[],"src":"7480:2:160"},"returnParameters":{"id":74610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74609,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74616,"src":"7506:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74608,"name":"address","nodeType":"ElementaryTypeName","src":"7506:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7505:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74626,"nodeType":"FunctionDefinition","src":"7566:99:160","nodes":[],"body":{"id":74625,"nodeType":"Block","src":"7620:45:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74621,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7637:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7637:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7648:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"7637:21:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74620,"id":74624,"nodeType":"Return","src":"7630:28:160"}]},"baseFunctions":[73303],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"7575:10:160","parameters":{"id":74617,"nodeType":"ParameterList","parameters":[],"src":"7585:2:160"},"returnParameters":{"id":74620,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74619,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74626,"src":"7611:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74618,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7611:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7610:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74636,"nodeType":"FunctionDefinition","src":"7671:101:160","nodes":[],"body":{"id":74635,"nodeType":"Block","src":"7726:46:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74631,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7743:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7743:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7754:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"7743:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74630,"id":74634,"nodeType":"Return","src":"7736:29:160"}]},"baseFunctions":[73308],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"7680:11:160","parameters":{"id":74627,"nodeType":"ParameterList","parameters":[],"src":"7691:2:160"},"returnParameters":{"id":74630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74629,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74636,"src":"7717:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74628,"name":"uint256","nodeType":"ElementaryTypeName","src":"7717:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7716:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74646,"nodeType":"FunctionDefinition","src":"7778:91:160","nodes":[],"body":{"id":74645,"nodeType":"Block","src":"7828:41:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74641,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7845:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7845:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7856:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"7845:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":74640,"id":74644,"nodeType":"Return","src":"7838:24:160"}]},"baseFunctions":[73313],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"7787:6:160","parameters":{"id":74637,"nodeType":"ParameterList","parameters":[],"src":"7793:2:160"},"returnParameters":{"id":74640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74646,"src":"7819:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74638,"name":"address","nodeType":"ElementaryTypeName","src":"7819:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7818:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74657,"nodeType":"FunctionDefinition","src":"7875:129:160","nodes":[],"body":{"id":74656,"nodeType":"Block","src":"7960:44:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74652,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"7977:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7988:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"7977:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"functionReturnParameters":74651,"id":74655,"nodeType":"Return","src":"7970:27:160"}]},"baseFunctions":[73319],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"7884:18:160","parameters":{"id":74647,"nodeType":"ParameterList","parameters":[],"src":"7902:2:160"},"returnParameters":{"id":74651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74650,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74657,"src":"7928:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":74649,"nodeType":"UserDefinedTypeName","pathNode":{"id":74648,"name":"Gear.SymbioticContracts","nameLocations":["7928:4:160","7933:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":85097,"src":"7928:23:160"},"referencedDeclaration":85097,"src":"7928:23:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"7927:32:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74688,"nodeType":"FunctionDefinition","src":"8027:263:160","nodes":[],"body":{"id":74687,"nodeType":"Block","src":"8083:207:160","nodes":[],"statements":[{"assignments":[74664],"declarations":[{"constant":false,"id":74664,"mutability":"mutable","name":"$","nameLocation":"8109:1:160","nodeType":"VariableDeclaration","scope":74687,"src":"8093:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74663,"nodeType":"UserDefinedTypeName","pathNode":{"id":74662,"name":"Storage","nameLocations":["8093:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"8093:7:160"},"referencedDeclaration":73229,"src":"8093:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74667,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74665,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"8113:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8113:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8093:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8137:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8141:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8137:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74670,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"8151:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8153:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8151:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8163:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":85092,"src":"8151:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8137:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74678,"nodeType":"IfStatement","src":"8133:101:160","trueBody":{"id":74677,"nodeType":"Block","src":"8183:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74674,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73125,"src":"8204:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8204:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74676,"nodeType":"RevertStatement","src":"8197:26:160"}]}},{"expression":{"id":74685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":74679,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"8243:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8245:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8243:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8255:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":85092,"src":"8243:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74684,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74659,"src":"8276:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8243:40:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74686,"nodeType":"ExpressionStatement","src":"8243:40:160"}]},"baseFunctions":[73324],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"8036:20:160","parameters":{"id":74660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74659,"mutability":"mutable","name":"newRole","nameLocation":"8065:7:160","nodeType":"VariableDeclaration","scope":74688,"src":"8057:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74658,"name":"address","nodeType":"ElementaryTypeName","src":"8057:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8056:17:160"},"returnParameters":{"id":74661,"nodeType":"ParameterList","parameters":[],"src":"8083:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74719,"nodeType":"FunctionDefinition","src":"8296:259:160","nodes":[],"body":{"id":74718,"nodeType":"Block","src":"8351:204:160","nodes":[],"statements":[{"assignments":[74695],"declarations":[{"constant":false,"id":74695,"mutability":"mutable","name":"$","nameLocation":"8377:1:160","nodeType":"VariableDeclaration","scope":74718,"src":"8361:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74694,"nodeType":"UserDefinedTypeName","pathNode":{"id":74693,"name":"Storage","nameLocations":["8361:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"8361:7:160"},"referencedDeclaration":73229,"src":"8361:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74698,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74696,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"8381:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8381:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8361:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74699,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8405:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8409:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8405:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74701,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74695,"src":"8419:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8421:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8419:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8431:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":85094,"src":"8419:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8405:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74709,"nodeType":"IfStatement","src":"8401:99:160","trueBody":{"id":74708,"nodeType":"Block","src":"8450:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74705,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"8471:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8471:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74707,"nodeType":"RevertStatement","src":"8464:25:160"}]}},{"expression":{"id":74716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":74710,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74695,"src":"8509:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8511:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8509:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8521:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":85094,"src":"8509:29:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74715,"name":"newRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74690,"src":"8541:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8509:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74717,"nodeType":"ExpressionStatement","src":"8509:39:160"}]},"baseFunctions":[73329],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"8305:19:160","parameters":{"id":74691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74690,"mutability":"mutable","name":"newRole","nameLocation":"8333:7:160","nodeType":"VariableDeclaration","scope":74719,"src":"8325:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74689,"name":"address","nodeType":"ElementaryTypeName","src":"8325:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8324:17:160"},"returnParameters":{"id":74692,"nodeType":"ParameterList","parameters":[],"src":"8351:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74773,"nodeType":"FunctionDefinition","src":"8611:405:160","nodes":[],"body":{"id":74772,"nodeType":"Block","src":"8648:368:160","nodes":[],"statements":[{"assignments":[74724],"declarations":[{"constant":false,"id":74724,"mutability":"mutable","name":"$","nameLocation":"8674:1:160","nodeType":"VariableDeclaration","scope":74772,"src":"8658:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74723,"nodeType":"UserDefinedTypeName","pathNode":{"id":74722,"name":"Storage","nameLocations":["8658:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"8658:7:160"},"referencedDeclaration":73229,"src":"8658:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74727,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74725,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"8678:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8678:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8658:30:160"},{"condition":{"id":74737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8703:61:160","subExpression":{"arguments":[{"expression":{"id":74734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8753:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8757:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8753:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":74729,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74724,"src":"8714:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8716:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8714:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8726:16:160","memberName":"operatorRegistry","nodeType":"MemberAccess","referencedDeclaration":85080,"src":"8714:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74728,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"8704:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$64656_$","typeString":"type(contract IRegistry)"}},"id":74732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8704:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$64656","typeString":"contract IRegistry"}},"id":74733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8744:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":64641,"src":"8704:48:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":74736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8704:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74742,"nodeType":"IfStatement","src":"8699:121:160","trueBody":{"id":74741,"nodeType":"Block","src":"8766:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74738,"name":"OperatorDoesNotExist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73074,"src":"8787:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8787:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74740,"nodeType":"RevertStatement","src":"8780:29:160"}]}},{"condition":{"id":74756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8833:77:160","subExpression":{"arguments":[{"expression":{"id":74749,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8884:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8888:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8884:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74753,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8904:4:160","typeDescriptions":{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Middleware_$76339","typeString":"contract Middleware"}],"id":74752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8896:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74751,"name":"address","nodeType":"ElementaryTypeName","src":"8896:7:160","typeDescriptions":{}}},"id":74754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8896:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":74744,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74724,"src":"8848:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8850:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"8848:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8860:12:160","memberName":"networkOptIn","nodeType":"MemberAccess","referencedDeclaration":85086,"src":"8848:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74743,"name":"IOptInService","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65444,"src":"8834:13:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptInService_$65444_$","typeString":"type(contract IOptInService)"}},"id":74747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8834:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IOptInService_$65444","typeString":"contract IOptInService"}},"id":74748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8874:9:160","memberName":"isOptedIn","nodeType":"MemberAccess","referencedDeclaration":65391,"src":"8834:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8834:76:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74761,"nodeType":"IfStatement","src":"8829:137:160","trueBody":{"id":74760,"nodeType":"Block","src":"8912:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74757,"name":"OperatorDoesNotOptIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73077,"src":"8933:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8933:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74759,"nodeType":"RevertStatement","src":"8926:29:160"}]}},{"expression":{"arguments":[{"expression":{"id":74767,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8995:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8999:6:160","memberName":"sender","nodeType":"MemberAccess","src":"8995:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9007:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"expression":{"id":74762,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74724,"src":"8976:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8978:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"8976:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8988:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":86080,"src":"8976:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":74770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8976:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74771,"nodeType":"ExpressionStatement","src":"8976:33:160"}]},"baseFunctions":[73368],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"8620:16:160","parameters":{"id":74720,"nodeType":"ParameterList","parameters":[],"src":"8636:2:160"},"returnParameters":{"id":74721,"nodeType":"ParameterList","parameters":[],"src":"8648:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74785,"nodeType":"FunctionDefinition","src":"9022:93:160","nodes":[],"body":{"id":74784,"nodeType":"Block","src":"9058:57:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":74780,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9097:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9101:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9097:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74776,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9068:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9079:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9068:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9089:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":86174,"src":"9068:28:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":74782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74783,"nodeType":"ExpressionStatement","src":"9068:40:160"}]},"baseFunctions":[73372],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"9031:15:160","parameters":{"id":74774,"nodeType":"ParameterList","parameters":[],"src":"9046:2:160"},"returnParameters":{"id":74775,"nodeType":"ParameterList","parameters":[],"src":"9058:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74797,"nodeType":"FunctionDefinition","src":"9121:91:160","nodes":[],"body":{"id":74796,"nodeType":"Block","src":"9156:56:160","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":74792,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9194:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9198:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9194:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":74788,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9166:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9166:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9177:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9166:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9187:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":86127,"src":"9166:27:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":74794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9166:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74795,"nodeType":"ExpressionStatement","src":"9166:39:160"}]},"baseFunctions":[73376],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"9130:14:160","parameters":{"id":74786,"nodeType":"ParameterList","parameters":[],"src":"9144:2:160"},"returnParameters":{"id":74787,"nodeType":"ParameterList","parameters":[],"src":"9156:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74842,"nodeType":"FunctionDefinition","src":"9218:362:160","nodes":[],"body":{"id":74841,"nodeType":"Block","src":"9273:307:160","nodes":[],"statements":[{"assignments":[74804],"declarations":[{"constant":false,"id":74804,"mutability":"mutable","name":"$","nameLocation":"9299:1:160","nodeType":"VariableDeclaration","scope":74841,"src":"9283:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74803,"nodeType":"UserDefinedTypeName","pathNode":{"id":74802,"name":"Storage","nameLocations":["9283:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"9283:7:160"},"referencedDeclaration":73229,"src":"9283:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74807,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74805,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9303:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9303:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9283:30:160"},{"assignments":[null,74809],"declarations":[null,{"constant":false,"id":74809,"mutability":"mutable","name":"disabledTime","nameLocation":"9334:12:160","nodeType":"VariableDeclaration","scope":74841,"src":"9327:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74808,"name":"uint48","nodeType":"ElementaryTypeName","src":"9327:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":74815,"initialValue":{"arguments":[{"id":74813,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"9371:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74810,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74804,"src":"9350:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9352:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9350:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9362:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":86233,"src":"9350:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":74814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9350:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"9324:56:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":74818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74816,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74809,"src":"9395:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9411:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9395:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":74826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74819,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"9416:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":74820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9421:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"9416:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":74821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9416:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74822,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74809,"src":"9435:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":74823,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74804,"src":"9450:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9452:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"9450:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9435:36:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"9416:55:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9395:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74832,"nodeType":"IfStatement","src":"9391:144:160","trueBody":{"id":74831,"nodeType":"Block","src":"9473:62:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74828,"name":"OperatorGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73062,"src":"9494:28:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9494:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74830,"nodeType":"RevertStatement","src":"9487:37:160"}]}},{"expression":{"arguments":[{"id":74838,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"9564:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74833,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74804,"src":"9545:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9547:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"9545:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9557:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56251,"src":"9545:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":74839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9545:28:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74840,"nodeType":"ExpressionStatement","src":"9545:28:160"}]},"baseFunctions":[73382],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"9227:18:160","parameters":{"id":74800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74799,"mutability":"mutable","name":"operator","nameLocation":"9254:8:160","nodeType":"VariableDeclaration","scope":74842,"src":"9246:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74798,"name":"address","nodeType":"ElementaryTypeName","src":"9246:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9245:18:160"},"returnParameters":{"id":74801,"nodeType":"ParameterList","parameters":[],"src":"9273:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74900,"nodeType":"FunctionDefinition","src":"9586:494:160","nodes":[],"body":{"id":74899,"nodeType":"Block","src":"9693:387:160","nodes":[],"statements":[{"assignments":[74855],"declarations":[{"constant":false,"id":74855,"mutability":"mutable","name":"$","nameLocation":"9719:1:160","nodeType":"VariableDeclaration","scope":74899,"src":"9703:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74854,"nodeType":"UserDefinedTypeName","pathNode":{"id":74853,"name":"Storage","nameLocations":["9703:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"9703:7:160"},"referencedDeclaration":73229,"src":"9703:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74858,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74856,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"9723:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9723:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9703:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74859,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9748:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9752:6:160","memberName":"sender","nodeType":"MemberAccess","src":"9748:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74861,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9762:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9764:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"9762:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9748:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74868,"nodeType":"IfStatement","src":"9744:71:160","trueBody":{"id":74867,"nodeType":"Block","src":"9772:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74864,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73122,"src":"9793:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9793:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74866,"nodeType":"RevertStatement","src":"9786:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74869,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74844,"src":"9829:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74870,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9838:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9840:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"9838:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9829:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74877,"nodeType":"IfStatement","src":"9825:78:160","trueBody":{"id":74876,"nodeType":"Block","src":"9852:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74873,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"9873:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74875,"nodeType":"RevertStatement","src":"9866:26:160"}]}},{"expression":{"arguments":[{"expression":{"id":74884,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9984:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9986:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"9984:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74886,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74844,"src":"9994:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74887,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74846,"src":"10001:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74888,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"10009:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"expression":{"expression":{"id":74879,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"9937:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9939:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"9937:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":74881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9949:15:160","memberName":"operatorRewards","nodeType":"MemberAccess","referencedDeclaration":85090,"src":"9937:27:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74878,"name":"IDefaultOperatorRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71122,"src":"9913:23:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultOperatorRewards_$71122_$","typeString":"type(contract IDefaultOperatorRewards)"}},"id":74882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9913:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultOperatorRewards_$71122","typeString":"contract IDefaultOperatorRewards"}},"id":74883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9966:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71104,"src":"9913:70:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,bytes32) external"}},"id":74889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9913:101:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74890,"nodeType":"ExpressionStatement","src":"9913:101:160"},{"expression":{"arguments":[{"arguments":[{"id":74894,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74846,"src":"10059:6:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74895,"name":"root","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"10067:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":74892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10042:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10046:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"10042:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":74896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10042:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":74891,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"10032:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":74897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10032:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74852,"id":74898,"nodeType":"Return","src":"10025:48:160"}]},"baseFunctions":[73420],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"9595:25:160","parameters":{"id":74849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74844,"mutability":"mutable","name":"token","nameLocation":"9629:5:160","nodeType":"VariableDeclaration","scope":74900,"src":"9621:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74843,"name":"address","nodeType":"ElementaryTypeName","src":"9621:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74846,"mutability":"mutable","name":"amount","nameLocation":"9644:6:160","nodeType":"VariableDeclaration","scope":74900,"src":"9636:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74845,"name":"uint256","nodeType":"ElementaryTypeName","src":"9636:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74848,"mutability":"mutable","name":"root","nameLocation":"9660:4:160","nodeType":"VariableDeclaration","scope":74900,"src":"9652:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9652:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9620:45:160"},"returnParameters":{"id":74852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74851,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74900,"src":"9684:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9684:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9683:9:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75048,"nodeType":"FunctionDefinition","src":"10086:1224:160","nodes":[],"body":{"id":75047,"nodeType":"Block","src":"10233:1077:160","nodes":[],"statements":[{"assignments":[74912],"declarations":[{"constant":false,"id":74912,"mutability":"mutable","name":"$","nameLocation":"10259:1:160","nodeType":"VariableDeclaration","scope":75047,"src":"10243:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":74911,"nodeType":"UserDefinedTypeName","pathNode":{"id":74910,"name":"Storage","nameLocations":["10243:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"10243:7:160"},"referencedDeclaration":73229,"src":"10243:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":74915,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":74913,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"10263:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":74914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10263:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10243:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74916,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10288:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10292:6:160","memberName":"sender","nodeType":"MemberAccess","src":"10288:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74918,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10302:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10304:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"10302:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10288:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74925,"nodeType":"IfStatement","src":"10284:71:160","trueBody":{"id":74924,"nodeType":"Block","src":"10312:43:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74921,"name":"NotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73122,"src":"10333:9:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10333:11:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74923,"nodeType":"RevertStatement","src":"10326:18:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74926,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"10369:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":74927,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10381:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":84958,"src":"10369:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":74928,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10390:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10392:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"10390:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10369:33:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74935,"nodeType":"IfStatement","src":"10365:90:160","trueBody":{"id":74934,"nodeType":"Block","src":"10404:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74931,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"10425:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10425:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74933,"nodeType":"RevertStatement","src":"10418:26:160"}]}},{"assignments":[74937],"declarations":[{"constant":false,"id":74937,"mutability":"mutable","name":"distributionBytes","nameLocation":"10478:17:160","nodeType":"VariableDeclaration","scope":75047,"src":"10465:30:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74936,"name":"bytes","nodeType":"ElementaryTypeName","src":"10465:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":74938,"nodeType":"VariableDeclarationStatement","src":"10465:30:160"},{"body":{"id":75030,"nodeType":"Block","src":"10567:615:160","statements":[{"assignments":[74955],"declarations":[{"constant":false,"id":74955,"mutability":"mutable","name":"rewards","nameLocation":"10607:7:160","nodeType":"VariableDeclaration","scope":75030,"src":"10581:33:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards"},"typeName":{"id":74954,"nodeType":"UserDefinedTypeName","pathNode":{"id":74953,"name":"Gear.StakerRewards","nameLocations":["10581:4:160","10586:13:160"],"nodeType":"IdentifierPath","referencedDeclaration":84964,"src":"10581:18:160"},"referencedDeclaration":84964,"src":"10581:18:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_storage_ptr","typeString":"struct Gear.StakerRewards"}},"visibility":"internal"}],"id":74960,"initialValue":{"baseExpression":{"expression":{"id":74956,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"10617:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":74957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10629:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":84954,"src":"10617:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$84964_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":74959,"indexExpression":{"id":74958,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"10642:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10617:27:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"nodeType":"VariableDeclarationStatement","src":"10581:63:160"},{"condition":{"id":74967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10663:33:160","subExpression":{"arguments":[{"expression":{"id":74964,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"10682:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":74965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10690:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":84961,"src":"10682:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74961,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10664:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10666:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"10664:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74963,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10673:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"10664:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":74966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10664:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74972,"nodeType":"IfStatement","src":"10659:99:160","trueBody":{"id":74971,"nodeType":"Block","src":"10698:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74968,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73110,"src":"10723:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":74969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10723:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":74970,"nodeType":"RevertStatement","src":"10716:27:160"}]}},{"assignments":[74974],"declarations":[{"constant":false,"id":74974,"mutability":"mutable","name":"rewardsAddress","nameLocation":"10780:14:160","nodeType":"VariableDeclaration","scope":75030,"src":"10772:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74973,"name":"address","nodeType":"ElementaryTypeName","src":"10772:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":74984,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":74980,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"10828:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":74981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10836:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":84961,"src":"10828:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":74977,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10805:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10807:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"10805:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":74979,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10814:13:160","memberName":"getPinnedData","nodeType":"MemberAccess","referencedDeclaration":86254,"src":"10805:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint160_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint160)"}},"id":74982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10805:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":74976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10797:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74975,"name":"address","nodeType":"ElementaryTypeName","src":"10797:7:160","typeDescriptions":{}}},"id":74983,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10797:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10772:71:160"},{"assignments":[74986],"declarations":[{"constant":false,"id":74986,"mutability":"mutable","name":"data","nameLocation":"10871:4:160","nodeType":"VariableDeclaration","scope":75030,"src":"10858:17:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74985,"name":"bytes","nodeType":"ElementaryTypeName","src":"10858:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":75001,"initialValue":{"arguments":[{"id":74989,"name":"timestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"10889:9:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":74990,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"10900:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":74991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10902:11:160","memberName":"maxAdminFee","nodeType":"MemberAccess","referencedDeclaration":73214,"src":"10900:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"","id":74994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10921:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":74993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10915:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":74992,"name":"bytes","nodeType":"ElementaryTypeName","src":"10915:5:160","typeDescriptions":{}}},"id":74995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10915:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"hexValue":"","id":74998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10932:2:160","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":74997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10926:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":74996,"name":"bytes","nodeType":"ElementaryTypeName","src":"10926:5:160","typeDescriptions":{}}},"id":74999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10926:9:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":74987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10878:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10882:6:160","memberName":"encode","nodeType":"MemberAccess","src":"10878:10:160","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10878:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"10858:78:160"},{"expression":{"arguments":[{"expression":{"id":75006,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74912,"src":"11006:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11008:6:160","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"11006:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75008,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"11016:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11028:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":84958,"src":"11016:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75010,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"11035:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11043:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":84963,"src":"11035:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75012,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74986,"src":"11051:4:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75003,"name":"rewardsAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74974,"src":"10972:14:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75002,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"10950:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71316_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":75004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10950:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71316","typeString":"contract IDefaultStakerRewards"}},"id":75005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10988:17:160","memberName":"distributeRewards","nodeType":"MemberAccess","referencedDeclaration":71392,"src":"10950:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,address,uint256,bytes memory) external"}},"id":75013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10950:106:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75014,"nodeType":"ExpressionStatement","src":"10950:106:160"},{"expression":{"id":75028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75015,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74937,"src":"11071:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75019,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74937,"src":"11104:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75022,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"11140:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11148:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":84961,"src":"11140:13:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75024,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74955,"src":"11155:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewards_$84964_memory_ptr","typeString":"struct Gear.StakerRewards memory"}},"id":75025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11163:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":84963,"src":"11155:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11123:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11127:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11123:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11123:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11091:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75016,"name":"bytes","nodeType":"ElementaryTypeName","src":"11091:5:160","typeDescriptions":{}}},"id":75018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11097:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11091:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11091:80:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"11071:100:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":75029,"nodeType":"ExpressionStatement","src":"11071:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74943,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"10525:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":74944,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"10529:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":74945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10541:12:160","memberName":"distribution","nodeType":"MemberAccess","referencedDeclaration":84954,"src":"10529:24:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StakerRewards_$84964_memory_ptr_$dyn_memory_ptr","typeString":"struct Gear.StakerRewards memory[] memory"}},"id":74946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10554:6:160","memberName":"length","nodeType":"MemberAccess","src":"10529:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10525:35:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75031,"initializationExpression":{"assignments":[74940],"declarations":[{"constant":false,"id":74940,"mutability":"mutable","name":"i","nameLocation":"10518:1:160","nodeType":"VariableDeclaration","scope":75031,"src":"10510:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74939,"name":"uint256","nodeType":"ElementaryTypeName","src":"10510:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74942,"initialValue":{"hexValue":"30","id":74941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10522:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10510:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":74949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10562:3:160","subExpression":{"id":74948,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"10564:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74950,"nodeType":"ExpressionStatement","src":"10562:3:160"},"nodeType":"ForStatement","src":"10505:677:160"},{"expression":{"arguments":[{"arguments":[{"id":75036,"name":"distributionBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74937,"src":"11222:17:160","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"arguments":[{"expression":{"id":75039,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"11258:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11270:11:160","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":84956,"src":"11258:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75041,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74903,"src":"11283:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment memory"}},"id":75042,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11295:5:160","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":84958,"src":"11283:17:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":75037,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11241:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75038,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11245:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"11241:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11241:60:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":75034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11209:5:160","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":75033,"name":"bytes","nodeType":"ElementaryTypeName","src":"11209:5:160","typeDescriptions":{}}},"id":75035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11215:6:160","memberName":"concat","nodeType":"MemberAccess","src":"11209:12:160","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11209:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75032,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11199:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11199:104:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":74909,"id":75046,"nodeType":"Return","src":"11192:111:160"}]},"baseFunctions":[73431],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"10095:23:160","parameters":{"id":74906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74903,"mutability":"mutable","name":"_commitment","nameLocation":"10155:11:160","nodeType":"VariableDeclaration","scope":75048,"src":"10119:47:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":74902,"nodeType":"UserDefinedTypeName","pathNode":{"id":74901,"name":"Gear.StakerRewardsCommitment","nameLocations":["10119:4:160","10124:23:160"],"nodeType":"IdentifierPath","referencedDeclaration":84959,"src":"10119:28:160"},"referencedDeclaration":84959,"src":"10119:28:160","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":74905,"mutability":"mutable","name":"timestamp","nameLocation":"10175:9:160","nodeType":"VariableDeclaration","scope":75048,"src":"10168:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":74904,"name":"uint48","nodeType":"ElementaryTypeName","src":"10168:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"10118:67:160"},"returnParameters":{"id":74909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75048,"src":"10220:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":74907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10220:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10219:9:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75079,"nodeType":"FunctionDefinition","src":"11316:236:160","nodes":[],"body":{"id":75078,"nodeType":"Block","src":"11401:151:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75059,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11426:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75058,"name":"_validateVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"11411:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11411:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75061,"nodeType":"ExpressionStatement","src":"11411:22:160"},{"expression":{"arguments":[{"id":75063,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11466:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75064,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75052,"src":"11474:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75062,"name":"_validateStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"11443:22:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) view"}},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11443:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75066,"nodeType":"ExpressionStatement","src":"11443:40:160"},{"expression":{"arguments":[{"id":75071,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11519:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":75074,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75052,"src":"11535:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11527:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":75072,"name":"uint160","nodeType":"ElementaryTypeName","src":"11527:7:160","typeDescriptions":{}}},"id":75075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11527:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint160","typeString":"uint160"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75067,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11494:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11494:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11505:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11494:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11512:6:160","memberName":"append","nodeType":"MemberAccess","referencedDeclaration":86080,"src":"11494:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$_t_uint160_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address,uint160)"}},"id":75076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11494:51:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75077,"nodeType":"ExpressionStatement","src":"11494:51:160"}]},"baseFunctions":[73390],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75055,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75050,"src":"11393:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75056,"kind":"modifierInvocation","modifierName":{"id":75054,"name":"vaultOwner","nameLocations":["11382:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11382:10:160"},"nodeType":"ModifierInvocation","src":"11382:18:160"}],"name":"registerVault","nameLocation":"11325:13:160","parameters":{"id":75053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75050,"mutability":"mutable","name":"_vault","nameLocation":"11347:6:160","nodeType":"VariableDeclaration","scope":75079,"src":"11339:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75049,"name":"address","nodeType":"ElementaryTypeName","src":"11339:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75052,"mutability":"mutable","name":"_rewards","nameLocation":"11363:8:160","nodeType":"VariableDeclaration","scope":75079,"src":"11355:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75051,"name":"address","nodeType":"ElementaryTypeName","src":"11355:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11338:34:160"},"returnParameters":{"id":75057,"nodeType":"ParameterList","parameters":[],"src":"11401:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75095,"nodeType":"FunctionDefinition","src":"11558:113:160","nodes":[],"body":{"id":75094,"nodeType":"Block","src":"11622:49:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75091,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"11658:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75087,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11632:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11632:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11643:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11632:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11650:7:160","memberName":"disable","nodeType":"MemberAccess","referencedDeclaration":86174,"src":"11632:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11632:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75093,"nodeType":"ExpressionStatement","src":"11632:32:160"}]},"baseFunctions":[73402],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75084,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"11615:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75085,"kind":"modifierInvocation","modifierName":{"id":75083,"name":"vaultOwner","nameLocations":["11604:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11604:10:160"},"nodeType":"ModifierInvocation","src":"11604:17:160"}],"name":"disableVault","nameLocation":"11567:12:160","parameters":{"id":75082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75081,"mutability":"mutable","name":"vault","nameLocation":"11588:5:160","nodeType":"VariableDeclaration","scope":75095,"src":"11580:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75080,"name":"address","nodeType":"ElementaryTypeName","src":"11580:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11579:15:160"},"returnParameters":{"id":75086,"nodeType":"ParameterList","parameters":[],"src":"11622:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75111,"nodeType":"FunctionDefinition","src":"11677:111:160","nodes":[],"body":{"id":75110,"nodeType":"Block","src":"11740:48:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":75107,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"11775:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75103,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11750:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11761:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11750:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11768:6:160","memberName":"enable","nodeType":"MemberAccess","referencedDeclaration":86127,"src":"11750:24:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$__$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address)"}},"id":75108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11750:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75109,"nodeType":"ExpressionStatement","src":"11750:31:160"}]},"baseFunctions":[73408],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75100,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75097,"src":"11733:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75101,"kind":"modifierInvocation","modifierName":{"id":75099,"name":"vaultOwner","nameLocations":["11722:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11722:10:160"},"nodeType":"ModifierInvocation","src":"11722:17:160"}],"name":"enableVault","nameLocation":"11686:11:160","parameters":{"id":75098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75097,"mutability":"mutable","name":"vault","nameLocation":"11706:5:160","nodeType":"VariableDeclaration","scope":75111,"src":"11698:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75096,"name":"address","nodeType":"ElementaryTypeName","src":"11698:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11697:15:160"},"returnParameters":{"id":75102,"nodeType":"ParameterList","parameters":[],"src":"11740:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75159,"nodeType":"FunctionDefinition","src":"11794:355:160","nodes":[],"body":{"id":75158,"nodeType":"Block","src":"11861:288:160","nodes":[],"statements":[{"assignments":[75121],"declarations":[{"constant":false,"id":75121,"mutability":"mutable","name":"$","nameLocation":"11887:1:160","nodeType":"VariableDeclaration","scope":75158,"src":"11871:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75120,"nodeType":"UserDefinedTypeName","pathNode":{"id":75119,"name":"Storage","nameLocations":["11871:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"11871:7:160"},"referencedDeclaration":73229,"src":"11871:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75124,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75122,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"11891:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11891:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11871:30:160"},{"assignments":[null,75126],"declarations":[null,{"constant":false,"id":75126,"mutability":"mutable","name":"disabledTime","nameLocation":"11921:12:160","nodeType":"VariableDeclaration","scope":75158,"src":"11914:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75125,"name":"uint48","nodeType":"ElementaryTypeName","src":"11914:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75132,"initialValue":{"arguments":[{"id":75130,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75113,"src":"11955:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75127,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"11937:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11939:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"11937:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11946:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":86233,"src":"11937:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11937:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"11911:50:160"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75133,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"11976:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11992:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11976:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":75136,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"11997:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":75137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12002:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"11997:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":75138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11997:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75139,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75126,"src":"12016:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75140,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"12031:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12033:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"12031:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"12016:33:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"11997:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11976:73:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75149,"nodeType":"IfStatement","src":"11972:138:160","trueBody":{"id":75148,"nodeType":"Block","src":"12051:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75145,"name":"VaultGracePeriodNotPassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73065,"src":"12072:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12072:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75147,"nodeType":"RevertStatement","src":"12065:34:160"}]}},{"expression":{"arguments":[{"id":75155,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75113,"src":"12136:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75150,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"12120:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12122:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"12120:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12129:6:160","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":56251,"src":"12120:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) returns (bool)"}},"id":75156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12120:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75157,"nodeType":"ExpressionStatement","src":"12120:22:160"}]},"baseFunctions":[73396],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75116,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75113,"src":"11854:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75117,"kind":"modifierInvocation","modifierName":{"id":75115,"name":"vaultOwner","nameLocations":["11843:10:160"],"nodeType":"IdentifierPath","referencedDeclaration":76318,"src":"11843:10:160"},"nodeType":"ModifierInvocation","src":"11843:17:160"}],"name":"unregisterVault","nameLocation":"11803:15:160","parameters":{"id":75114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75113,"mutability":"mutable","name":"vault","nameLocation":"11827:5:160","nodeType":"VariableDeclaration","scope":75159,"src":"11819:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75112,"name":"address","nodeType":"ElementaryTypeName","src":"11819:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11818:15:160"},"returnParameters":{"id":75118,"nodeType":"ParameterList","parameters":[],"src":"11861:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75355,"nodeType":"FunctionDefinition","src":"12155:1642:160","nodes":[],"body":{"id":75354,"nodeType":"Block","src":"12254:1543:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75170,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"12272:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12288:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12272:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75173,"name":"MaxValidatorsMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"12291:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12291:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75169,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12264:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12264:64:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75176,"nodeType":"ExpressionStatement","src":"12264:64:160"},{"assignments":[75181,75184],"declarations":[{"constant":false,"id":75181,"mutability":"mutable","name":"activeOperators","nameLocation":"12357:15:160","nodeType":"VariableDeclaration","scope":75354,"src":"12340:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75179,"name":"address","nodeType":"ElementaryTypeName","src":"12340:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75180,"nodeType":"ArrayTypeName","src":"12340:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":75184,"mutability":"mutable","name":"stakes","nameLocation":"12391:6:160","nodeType":"VariableDeclaration","scope":75354,"src":"12374:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75182,"name":"uint256","nodeType":"ElementaryTypeName","src":"12374:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75183,"nodeType":"ArrayTypeName","src":"12374:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":75188,"initialValue":{"arguments":[{"id":75186,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75161,"src":"12427:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75185,"name":"getActiveOperatorsStakeAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75498,"src":"12401:25:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint48) view returns (address[] memory,uint256[] memory)"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12401:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"tuple(address[] memory,uint256[] memory)"}},"nodeType":"VariableDeclarationStatement","src":"12339:91:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75189,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12445:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12461:6:160","memberName":"length","nodeType":"MemberAccess","src":"12445:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75191,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"12471:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12445:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75196,"nodeType":"IfStatement","src":"12441:92:160","trueBody":{"id":75195,"nodeType":"Block","src":"12486:47:160","statements":[{"expression":{"id":75193,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12507:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":75168,"id":75194,"nodeType":"Return","src":"12500:22:160"}]}},{"assignments":[75198],"declarations":[{"constant":false,"id":75198,"mutability":"mutable","name":"n","nameLocation":"12585:1:160","nodeType":"VariableDeclaration","scope":75354,"src":"12577:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75197,"name":"uint256","nodeType":"ElementaryTypeName","src":"12577:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75201,"initialValue":{"expression":{"id":75199,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12589:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12605:6:160","memberName":"length","nodeType":"MemberAccess","src":"12589:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12577:34:160"},{"body":{"id":75279,"nodeType":"Block","src":"12653:336:160","statements":[{"body":{"id":75277,"nodeType":"Block","src":"12707:272:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75226,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12729:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75228,"indexExpression":{"id":75227,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12736:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12729:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"baseExpression":{"id":75229,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12741:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75233,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75230,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12748:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12752:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12748:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12741:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12729:25:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75276,"nodeType":"IfStatement","src":"12725:240:160","trueBody":{"id":75275,"nodeType":"Block","src":"12756:209:160","statements":[{"expression":{"id":75253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":75235,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12779:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75237,"indexExpression":{"id":75236,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12786:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12779:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":75238,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12790:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75242,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75239,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12797:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12801:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12797:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12790:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75243,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12778:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":75244,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12808:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75248,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75245,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12815:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12819:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12815:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12808:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":75249,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"12823:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75251,"indexExpression":{"id":75250,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12830:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12823:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75252,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12807:26:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"12778:55:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75254,"nodeType":"ExpressionStatement","src":"12778:55:160"},{"expression":{"id":75273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"baseExpression":{"id":75255,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12856:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75257,"indexExpression":{"id":75256,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12872:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12856:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":75258,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12876:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75262,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75259,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12892:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12896:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12892:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12876:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75263,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"12855:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"components":[{"baseExpression":{"id":75264,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12903:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75268,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75265,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12919:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12923:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12919:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12903:22:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"baseExpression":{"id":75269,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"12927:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75271,"indexExpression":{"id":75270,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12943:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12927:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75272,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12902:44:160","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$","typeString":"tuple(address,address)"}},"src":"12855:91:160","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75274,"nodeType":"ExpressionStatement","src":"12855:91:160"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75216,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12687:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75217,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75198,"src":"12691:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12695:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12691:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75220,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75203,"src":"12699:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12691:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12687:13:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75278,"initializationExpression":{"assignments":[75213],"declarations":[{"constant":false,"id":75213,"mutability":"mutable","name":"j","nameLocation":"12680:1:160","nodeType":"VariableDeclaration","scope":75278,"src":"12672:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75212,"name":"uint256","nodeType":"ElementaryTypeName","src":"12672:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75215,"initialValue":{"hexValue":"30","id":75214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12684:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12672:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12702:3:160","subExpression":{"id":75223,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75213,"src":"12702:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75225,"nodeType":"ExpressionStatement","src":"12702:3:160"},"nodeType":"ForStatement","src":"12667:312:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75206,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75203,"src":"12641:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75207,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75198,"src":"12645:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12641:5:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75280,"initializationExpression":{"assignments":[75203],"declarations":[{"constant":false,"id":75203,"mutability":"mutable","name":"i","nameLocation":"12634:1:160","nodeType":"VariableDeclaration","scope":75280,"src":"12626:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75202,"name":"uint256","nodeType":"ElementaryTypeName","src":"12626:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75205,"initialValue":{"hexValue":"30","id":75204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12638:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12626:13:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12648:3:160","subExpression":{"id":75209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75203,"src":"12648:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75211,"nodeType":"ExpressionStatement","src":"12648:3:160"},"nodeType":"ForStatement","src":"12621:368:160"},{"assignments":[75282],"declarations":[{"constant":false,"id":75282,"mutability":"mutable","name":"sameStakeCount","nameLocation":"13064:14:160","nodeType":"VariableDeclaration","scope":75354,"src":"13056:22:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75281,"name":"uint256","nodeType":"ElementaryTypeName","src":"13056:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75284,"initialValue":{"hexValue":"31","id":75283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13081:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"VariableDeclarationStatement","src":"13056:26:160"},{"assignments":[75286],"declarations":[{"constant":false,"id":75286,"mutability":"mutable","name":"lastStake","nameLocation":"13100:9:160","nodeType":"VariableDeclaration","scope":75354,"src":"13092:17:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75285,"name":"uint256","nodeType":"ElementaryTypeName","src":"13092:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75292,"initialValue":{"baseExpression":{"id":75287,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"13112:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75291,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75288,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13119:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13135:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13119:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13112:25:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13092:45:160"},{"body":{"id":75316,"nodeType":"Block","src":"13212:123:160","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75304,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75184,"src":"13230:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75306,"indexExpression":{"id":75305,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"13237:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13230:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75307,"name":"lastStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75286,"src":"13243:9:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13230:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75311,"nodeType":"IfStatement","src":"13226:66:160","trueBody":{"id":75310,"nodeType":"Block","src":"13254:38:160","statements":[{"id":75309,"nodeType":"Break","src":"13272:5:160"}]}},{"expression":{"id":75314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75312,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"13305:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":75313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13323:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13305:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75315,"nodeType":"ExpressionStatement","src":"13305:19:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75297,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"13179:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75298,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13183:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13199:6:160","memberName":"length","nodeType":"MemberAccess","src":"13183:22:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13179:26:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75317,"initializationExpression":{"assignments":[75294],"declarations":[{"constant":false,"id":75294,"mutability":"mutable","name":"i","nameLocation":"13160:1:160","nodeType":"VariableDeclaration","scope":75317,"src":"13152:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75293,"name":"uint256","nodeType":"ElementaryTypeName","src":"13152:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75296,"initialValue":{"id":75295,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13164:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13152:25:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13207:3:160","subExpression":{"id":75301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"13207:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75303,"nodeType":"ExpressionStatement","src":"13207:3:160"},"nodeType":"ForStatement","src":"13147:188:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75318,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"13349:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":75319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13366:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13349:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75350,"nodeType":"IfStatement","src":"13345:316:160","trueBody":{"id":75349,"nodeType":"Block","src":"13369:292:160","statements":[{"assignments":[75322],"declarations":[{"constant":false,"id":75322,"mutability":"mutable","name":"randomIndex","nameLocation":"13480:11:160","nodeType":"VariableDeclaration","scope":75349,"src":"13472:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75321,"name":"uint256","nodeType":"ElementaryTypeName","src":"13472:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75334,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"arguments":[{"id":75328,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75161,"src":"13529:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":75326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13512:3:160","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":75327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13516:12:160","memberName":"encodePacked","nodeType":"MemberAccess","src":"13512:16:160","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":75329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13512:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":75325,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"13502:9:160","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13502:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":75324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13494:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75323,"name":"uint256","nodeType":"ElementaryTypeName","src":"13494:7:160","typeDescriptions":{}}},"id":75331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13494:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":75332,"name":"sameStakeCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75282,"src":"13537:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13494:57:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13472:79:160"},{"expression":{"id":75347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75335,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13565:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75339,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75336,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13581:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13597:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13581:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13565:34:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":75340,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13602:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75346,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75341,"name":"maxValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75163,"src":"13618:13:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75342,"name":"randomIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"13634:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13618:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":75344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13648:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13618:31:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13602:48:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13565:85:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75348,"nodeType":"ExpressionStatement","src":"13565:85:160"}]}},{"AST":{"nativeSrc":"13696:62:160","nodeType":"YulBlock","src":"13696:62:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"13717:15:160","nodeType":"YulIdentifier","src":"13717:15:160"},{"name":"maxValidators","nativeSrc":"13734:13:160","nodeType":"YulIdentifier","src":"13734:13:160"}],"functionName":{"name":"mstore","nativeSrc":"13710:6:160","nodeType":"YulIdentifier","src":"13710:6:160"},"nativeSrc":"13710:38:160","nodeType":"YulFunctionCall","src":"13710:38:160"},"nativeSrc":"13710:38:160","nodeType":"YulExpressionStatement","src":"13710:38:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":75181,"isOffset":false,"isSlot":false,"src":"13717:15:160","valueSize":1},{"declaration":75163,"isOffset":false,"isSlot":false,"src":"13734:13:160","valueSize":1}],"flags":["memory-safe"],"id":75351,"nodeType":"InlineAssembly","src":"13671:87:160"},{"expression":{"id":75352,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75181,"src":"13775:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":75168,"id":75353,"nodeType":"Return","src":"13768:22:160"}]},"baseFunctions":[73340],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"12164:14:160","parameters":{"id":75164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75161,"mutability":"mutable","name":"ts","nameLocation":"12186:2:160","nodeType":"VariableDeclaration","scope":75355,"src":"12179:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75160,"name":"uint48","nodeType":"ElementaryTypeName","src":"12179:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75163,"mutability":"mutable","name":"maxValidators","nameLocation":"12198:13:160","nodeType":"VariableDeclaration","scope":75355,"src":"12190:21:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75162,"name":"uint256","nodeType":"ElementaryTypeName","src":"12190:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12178:34:160"},"returnParameters":{"id":75168,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75167,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75355,"src":"12236:16:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75165,"name":"address","nodeType":"ElementaryTypeName","src":"12236:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75166,"nodeType":"ArrayTypeName","src":"12236:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12235:18:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75396,"nodeType":"FunctionDefinition","src":"13803:372:160","nodes":[],"body":{"id":75395,"nodeType":"Block","src":"13917:258:160","nodes":[],"statements":[{"assignments":[75368,75370],"declarations":[{"constant":false,"id":75368,"mutability":"mutable","name":"enabledTime","nameLocation":"13935:11:160","nodeType":"VariableDeclaration","scope":75395,"src":"13928:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75367,"name":"uint48","nodeType":"ElementaryTypeName","src":"13928:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75370,"mutability":"mutable","name":"disabledTime","nameLocation":"13955:12:160","nodeType":"VariableDeclaration","scope":75395,"src":"13948:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75369,"name":"uint48","nodeType":"ElementaryTypeName","src":"13948:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75377,"initialValue":{"arguments":[{"id":75375,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75357,"src":"14001:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75371,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"13971:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13971:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13982:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"13971:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13992:8:160","memberName":"getTimes","nodeType":"MemberAccess","referencedDeclaration":86233,"src":"13971:29:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (uint48,uint48)"}},"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13971:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint48_$_t_uint48_$","typeString":"tuple(uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"13927:83:160"},{"condition":{"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14024:44:160","subExpression":{"arguments":[{"id":75379,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75368,"src":"14038:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75380,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"14051:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75381,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75359,"src":"14065:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75378,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"14025:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14025:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75387,"nodeType":"IfStatement","src":"14020:83:160","trueBody":{"id":75386,"nodeType":"Block","src":"14070:33:160","statements":[{"expression":{"hexValue":"30","id":75384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14091:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":75366,"id":75385,"nodeType":"Return","src":"14084:8:160"}]}},{"expression":{"id":75393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75388,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75365,"src":"14113:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75390,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75357,"src":"14155:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75391,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75359,"src":"14165:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75389,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75754,"src":"14121:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14121:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14113:55:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75394,"nodeType":"ExpressionStatement","src":"14113:55:160"}]},"baseFunctions":[73350],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75362,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75359,"src":"13889:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":75363,"kind":"modifierInvocation","modifierName":{"id":75361,"name":"validTimestamp","nameLocations":["13874:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":76212,"src":"13874:14:160"},"nodeType":"ModifierInvocation","src":"13874:18:160"}],"name":"getOperatorStakeAt","nameLocation":"13812:18:160","parameters":{"id":75360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75357,"mutability":"mutable","name":"operator","nameLocation":"13839:8:160","nodeType":"VariableDeclaration","scope":75396,"src":"13831:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75356,"name":"address","nodeType":"ElementaryTypeName","src":"13831:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75359,"mutability":"mutable","name":"ts","nameLocation":"13856:2:160","nodeType":"VariableDeclaration","scope":75396,"src":"13849:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75358,"name":"uint48","nodeType":"ElementaryTypeName","src":"13849:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"13830:29:160"},"returnParameters":{"id":75366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75365,"mutability":"mutable","name":"stake","nameLocation":"13910:5:160","nodeType":"VariableDeclaration","scope":75396,"src":"13902:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75364,"name":"uint256","nodeType":"ElementaryTypeName","src":"13902:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13901:15:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75498,"nodeType":"FunctionDefinition","src":"14218:940:160","nodes":[],"body":{"id":75497,"nodeType":"Block","src":"14399:759:160","nodes":[],"statements":[{"assignments":[75412],"declarations":[{"constant":false,"id":75412,"mutability":"mutable","name":"$","nameLocation":"14425:1:160","nodeType":"VariableDeclaration","scope":75497,"src":"14409:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75411,"nodeType":"UserDefinedTypeName","pathNode":{"id":75410,"name":"Storage","nameLocations":["14409:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"14409:7:160"},"referencedDeclaration":73229,"src":"14409:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75415,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75413,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"14429:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14429:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"14409:30:160"},{"expression":{"id":75425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75416,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75405,"src":"14449:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75420,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14481:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14483:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14481:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14493:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"14481:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14481:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14467:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":75417,"name":"address","nodeType":"ElementaryTypeName","src":"14471:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75418,"nodeType":"ArrayTypeName","src":"14471:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":75424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14467:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"14449:53:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75426,"nodeType":"ExpressionStatement","src":"14449:53:160"},{"expression":{"id":75436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75427,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"14512:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75431,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14535:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14537:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14535:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14547:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"14535:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14535:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"14521:13:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75428,"name":"uint256","nodeType":"ElementaryTypeName","src":"14525:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75429,"nodeType":"ArrayTypeName","src":"14525:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14521:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"14512:44:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75437,"nodeType":"ExpressionStatement","src":"14512:44:160"},{"assignments":[75439],"declarations":[{"constant":false,"id":75439,"mutability":"mutable","name":"operatorIdx","nameLocation":"14575:11:160","nodeType":"VariableDeclaration","scope":75497,"src":"14567:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75438,"name":"uint256","nodeType":"ElementaryTypeName","src":"14567:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75441,"initialValue":{"hexValue":"30","id":75440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14589:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14567:23:160"},{"body":{"id":75494,"nodeType":"Block","src":"14648:369:160","statements":[{"assignments":[75455,75457,75459],"declarations":[{"constant":false,"id":75455,"mutability":"mutable","name":"operator","nameLocation":"14671:8:160","nodeType":"VariableDeclaration","scope":75494,"src":"14663:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75454,"name":"address","nodeType":"ElementaryTypeName","src":"14663:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75457,"mutability":"mutable","name":"enabled","nameLocation":"14688:7:160","nodeType":"VariableDeclaration","scope":75494,"src":"14681:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75456,"name":"uint48","nodeType":"ElementaryTypeName","src":"14681:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75459,"mutability":"mutable","name":"disabled","nameLocation":"14704:8:160","nodeType":"VariableDeclaration","scope":75494,"src":"14697:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75458,"name":"uint48","nodeType":"ElementaryTypeName","src":"14697:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75465,"initialValue":{"arguments":[{"id":75463,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"14740:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75460,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14716:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14718:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14716:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14728:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":86209,"src":"14716:23:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":75464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14716:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"14662:80:160"},{"condition":{"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14761:36:160","subExpression":{"arguments":[{"id":75467,"name":"enabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75457,"src":"14775:7:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75468,"name":"disabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75459,"src":"14784:8:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75469,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75398,"src":"14794:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75466,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"14762:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":75470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14762:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75474,"nodeType":"IfStatement","src":"14757:83:160","trueBody":{"id":75473,"nodeType":"Block","src":"14799:41:160","statements":[{"id":75472,"nodeType":"Continue","src":"14817:8:160"}]}},{"expression":{"id":75479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75475,"name":"activeOperators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75405,"src":"14854:15:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":75477,"indexExpression":{"id":75476,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"14870:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14854:28:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75478,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75455,"src":"14885:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14854:39:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75480,"nodeType":"ExpressionStatement","src":"14854:39:160"},{"expression":{"id":75488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75481,"name":"stakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"14907:6:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75483,"indexExpression":{"id":75482,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"14914:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14907:19:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75485,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75455,"src":"14963:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75486,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75398,"src":"14973:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75484,"name":"_collectOperatorStakeFromVaultsAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75754,"src":"14929:33:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint48_$returns$_t_uint256_$","typeString":"function (address,uint48) view returns (uint256)"}},"id":75487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14929:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14907:69:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75489,"nodeType":"ExpressionStatement","src":"14907:69:160"},{"expression":{"id":75492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75490,"name":"operatorIdx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75439,"src":"14990:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":75491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15005:1:160","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14990:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75493,"nodeType":"ExpressionStatement","src":"14990:16:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75445,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"14617:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75446,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75412,"src":"14621:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14623:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"14621:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14633:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"14621:18:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14621:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14617:24:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75495,"initializationExpression":{"assignments":[75443],"declarations":[{"constant":false,"id":75443,"mutability":"mutable","name":"i","nameLocation":"14614:1:160","nodeType":"VariableDeclaration","scope":75495,"src":"14606:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75442,"name":"uint256","nodeType":"ElementaryTypeName","src":"14606:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75444,"nodeType":"VariableDeclarationStatement","src":"14606:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"14643:3:160","subExpression":{"id":75451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75443,"src":"14645:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75453,"nodeType":"ExpressionStatement","src":"14643:3:160"},"nodeType":"ForStatement","src":"14601:416:160"},{"AST":{"nativeSrc":"15052:100:160","nodeType":"YulBlock","src":"15052:100:160","statements":[{"expression":{"arguments":[{"name":"activeOperators","nativeSrc":"15073:15:160","nodeType":"YulIdentifier","src":"15073:15:160"},{"name":"operatorIdx","nativeSrc":"15090:11:160","nodeType":"YulIdentifier","src":"15090:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15066:6:160","nodeType":"YulIdentifier","src":"15066:6:160"},"nativeSrc":"15066:36:160","nodeType":"YulFunctionCall","src":"15066:36:160"},"nativeSrc":"15066:36:160","nodeType":"YulExpressionStatement","src":"15066:36:160"},{"expression":{"arguments":[{"name":"stakes","nativeSrc":"15122:6:160","nodeType":"YulIdentifier","src":"15122:6:160"},{"name":"operatorIdx","nativeSrc":"15130:11:160","nodeType":"YulIdentifier","src":"15130:11:160"}],"functionName":{"name":"mstore","nativeSrc":"15115:6:160","nodeType":"YulIdentifier","src":"15115:6:160"},"nativeSrc":"15115:27:160","nodeType":"YulFunctionCall","src":"15115:27:160"},"nativeSrc":"15115:27:160","nodeType":"YulExpressionStatement","src":"15115:27:160"}]},"evmVersion":"osaka","externalReferences":[{"declaration":75405,"isOffset":false,"isSlot":false,"src":"15073:15:160","valueSize":1},{"declaration":75439,"isOffset":false,"isSlot":false,"src":"15090:11:160","valueSize":1},{"declaration":75439,"isOffset":false,"isSlot":false,"src":"15130:11:160","valueSize":1},{"declaration":75408,"isOffset":false,"isSlot":false,"src":"15122:6:160","valueSize":1}],"flags":["memory-safe"],"id":75496,"nodeType":"InlineAssembly","src":"15027:125:160"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":75401,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75398,"src":"14315:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"id":75402,"kind":"modifierInvocation","modifierName":{"id":75400,"name":"validTimestamp","nameLocations":["14300:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":76212,"src":"14300:14:160"},"nodeType":"ModifierInvocation","src":"14300:18:160"}],"name":"getActiveOperatorsStakeAt","nameLocation":"14227:25:160","parameters":{"id":75399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75398,"mutability":"mutable","name":"ts","nameLocation":"14260:2:160","nodeType":"VariableDeclaration","scope":75498,"src":"14253:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75397,"name":"uint48","nodeType":"ElementaryTypeName","src":"14253:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"14252:11:160"},"returnParameters":{"id":75409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75405,"mutability":"mutable","name":"activeOperators","nameLocation":"14353:15:160","nodeType":"VariableDeclaration","scope":75498,"src":"14336:32:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75403,"name":"address","nodeType":"ElementaryTypeName","src":"14336:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75404,"nodeType":"ArrayTypeName","src":"14336:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":75408,"mutability":"mutable","name":"stakes","nameLocation":"14387:6:160","nodeType":"VariableDeclaration","scope":75498,"src":"14370:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75406,"name":"uint256","nodeType":"ElementaryTypeName","src":"14370:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75407,"nodeType":"ArrayTypeName","src":"14370:9:160","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"14335:59:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75614,"nodeType":"FunctionDefinition","src":"15164:952:160","nodes":[],"body":{"id":75613,"nodeType":"Block","src":"15222:894:160","nodes":[],"statements":[{"assignments":[75507],"declarations":[{"constant":false,"id":75507,"mutability":"mutable","name":"$","nameLocation":"15248:1:160","nodeType":"VariableDeclaration","scope":75613,"src":"15232:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75506,"nodeType":"UserDefinedTypeName","pathNode":{"id":75505,"name":"Storage","nameLocations":["15232:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"15232:7:160"},"referencedDeclaration":73229,"src":"15232:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75510,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75508,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"15252:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15252:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15232:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75511,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15277:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15281:6:160","memberName":"sender","nodeType":"MemberAccess","src":"15277:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75513,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"15291:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15293:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"15291:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75515,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15303:18:160","memberName":"roleSlashRequester","nodeType":"MemberAccess","referencedDeclaration":85092,"src":"15291:30:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15277:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75521,"nodeType":"IfStatement","src":"15273:101:160","trueBody":{"id":75520,"nodeType":"Block","src":"15323:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75517,"name":"NotSlashRequester","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73125,"src":"15344:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15344:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75519,"nodeType":"RevertStatement","src":"15337:26:160"}]}},{"body":{"id":75611,"nodeType":"Block","src":"15422:688:160","statements":[{"assignments":[75534],"declarations":[{"constant":false,"id":75534,"mutability":"mutable","name":"slashData","nameLocation":"15455:9:160","nodeType":"VariableDeclaration","scope":75611,"src":"15436:28:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData"},"typeName":{"id":75533,"nodeType":"UserDefinedTypeName","pathNode":{"id":75532,"name":"SlashData","nameLocations":["15436:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73243,"src":"15436:9:160"},"referencedDeclaration":73243,"src":"15436:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"visibility":"internal"}],"id":75538,"initialValue":{"baseExpression":{"id":75535,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75502,"src":"15467:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":75537,"indexExpression":{"id":75536,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"15472:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15467:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15436:38:160"},{"condition":{"id":75545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15492:41:160","subExpression":{"arguments":[{"expression":{"id":75542,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"15514:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15524:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73236,"src":"15514:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75539,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"15493:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15495:9:160","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73225,"src":"15493:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15505:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"15493:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15493:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75550,"nodeType":"IfStatement","src":"15488:110:160","trueBody":{"id":75549,"nodeType":"Block","src":"15535:63:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75546,"name":"NotRegisteredOperator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"15560:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15560:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75548,"nodeType":"RevertStatement","src":"15553:30:160"}]}},{"body":{"id":75609,"nodeType":"Block","src":"15662:438:160","statements":[{"assignments":[75564],"declarations":[{"constant":false,"id":75564,"mutability":"mutable","name":"vaultData","nameLocation":"15704:9:160","nodeType":"VariableDeclaration","scope":75609,"src":"15680:33:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData"},"typeName":{"id":75563,"nodeType":"UserDefinedTypeName","pathNode":{"id":75562,"name":"VaultSlashData","nameLocations":["15680:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":73234,"src":"15680:14:160"},"referencedDeclaration":73234,"src":"15680:14:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_storage_ptr","typeString":"struct IMiddleware.VaultSlashData"}},"visibility":"internal"}],"id":75569,"initialValue":{"baseExpression":{"expression":{"id":75565,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"15716:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15726:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73242,"src":"15716:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73234_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":75568,"indexExpression":{"id":75567,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75552,"src":"15733:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15716:19:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"nodeType":"VariableDeclarationStatement","src":"15680:55:160"},{"condition":{"id":75576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15758:35:160","subExpression":{"arguments":[{"expression":{"id":75573,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75564,"src":"15777:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":75574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15787:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73231,"src":"15777:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":75570,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"15759:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15761:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"15759:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15768:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"15759:17:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15759:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75581,"nodeType":"IfStatement","src":"15754:109:160","trueBody":{"id":75580,"nodeType":"Block","src":"15795:68:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75577,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73110,"src":"15824:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15824:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75579,"nodeType":"RevertStatement","src":"15817:27:160"}]}},{"assignments":[75583],"declarations":[{"constant":false,"id":75583,"mutability":"mutable","name":"slasher","nameLocation":"15889:7:160","nodeType":"VariableDeclaration","scope":75609,"src":"15881:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75582,"name":"address","nodeType":"ElementaryTypeName","src":"15881:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":75590,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":75585,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75564,"src":"15906:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":75586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15916:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73231,"src":"15906:15:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75584,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"15899:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15899:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15923:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66252,"src":"15899:31:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15899:33:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15881:51:160"},{"expression":{"arguments":[{"expression":{"id":75595,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75507,"src":"16006:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16008:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"16006:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75597,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"16020:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16030:8:160","memberName":"operator","nodeType":"MemberAccess","referencedDeclaration":73236,"src":"16020:18:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":75599,"name":"vaultData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75564,"src":"16040:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_VaultSlashData_$73234_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata"}},"id":75600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16050:6:160","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":73233,"src":"16040:16:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75601,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"16058:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16068:2:160","memberName":"ts","nodeType":"MemberAccess","referencedDeclaration":73238,"src":"16058:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":75605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16082:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16072:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":75603,"name":"bytes","nodeType":"ElementaryTypeName","src":"16076:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":75606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16072:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":75592,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75583,"src":"15963:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75591,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"15950:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":75593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15950:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":75594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15993:12:160","memberName":"requestSlash","nodeType":"MemberAccess","referencedDeclaration":65813,"src":"15950:55:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256,uint48,bytes memory) external returns (uint256)"}},"id":75607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15950:135:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75608,"nodeType":"ExpressionStatement","src":"15950:135:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75554,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75552,"src":"15628:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":75555,"name":"slashData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75534,"src":"15632:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata"}},"id":75556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15642:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73242,"src":"15632:16:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_VaultSlashData_$73234_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.VaultSlashData calldata[] calldata"}},"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15649:6:160","memberName":"length","nodeType":"MemberAccess","src":"15632:23:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15628:27:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75610,"initializationExpression":{"assignments":[75552],"declarations":[{"constant":false,"id":75552,"mutability":"mutable","name":"j","nameLocation":"15625:1:160","nodeType":"VariableDeclaration","scope":75610,"src":"15617:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75551,"name":"uint256","nodeType":"ElementaryTypeName","src":"15617:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75553,"nodeType":"VariableDeclarationStatement","src":"15617:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15657:3:160","subExpression":{"id":75559,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75552,"src":"15659:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75561,"nodeType":"ExpressionStatement","src":"15657:3:160"},"nodeType":"ForStatement","src":"15612:488:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"15400:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75526,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75502,"src":"15404:4:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData calldata[] calldata"}},"id":75527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15409:6:160","memberName":"length","nodeType":"MemberAccess","src":"15404:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15400:15:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75612,"initializationExpression":{"assignments":[75523],"declarations":[{"constant":false,"id":75523,"mutability":"mutable","name":"i","nameLocation":"15397:1:160","nodeType":"VariableDeclaration","scope":75612,"src":"15389:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75522,"name":"uint256","nodeType":"ElementaryTypeName","src":"15389:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75524,"nodeType":"VariableDeclarationStatement","src":"15389:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"15417:3:160","subExpression":{"id":75529,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"15419:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75531,"nodeType":"ExpressionStatement","src":"15417:3:160"},"nodeType":"ForStatement","src":"15384:726:160"}]},"baseFunctions":[73357],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"15173:12:160","parameters":{"id":75503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75502,"mutability":"mutable","name":"data","nameLocation":"15207:4:160","nodeType":"VariableDeclaration","scope":75614,"src":"15186:25:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":75500,"nodeType":"UserDefinedTypeName","pathNode":{"id":75499,"name":"SlashData","nameLocations":["15186:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":73243,"src":"15186:9:160"},"referencedDeclaration":73243,"src":"15186:9:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":75501,"nodeType":"ArrayTypeName","src":"15186:11:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"15185:27:160"},"returnParameters":{"id":75504,"nodeType":"ParameterList","parameters":[],"src":"15222:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75683,"nodeType":"FunctionDefinition","src":"16122:528:160","nodes":[],"body":{"id":75682,"nodeType":"Block","src":"16189:461:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75621,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16203:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16207:6:160","memberName":"sender","nodeType":"MemberAccess","src":"16203:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75623,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"16217:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16217:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16228:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"16217:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16238:17:160","memberName":"roleSlashExecutor","nodeType":"MemberAccess","referencedDeclaration":85094,"src":"16217:38:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16203:52:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75632,"nodeType":"IfStatement","src":"16199:108:160","trueBody":{"id":75631,"nodeType":"Block","src":"16257:50:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75628,"name":"NotSlashExecutor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"16278:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16278:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75630,"nodeType":"RevertStatement","src":"16271:25:160"}]}},{"body":{"id":75680,"nodeType":"Block","src":"16358:286:160","statements":[{"assignments":[75645],"declarations":[{"constant":false,"id":75645,"mutability":"mutable","name":"slash","nameLocation":"16397:5:160","nodeType":"VariableDeclaration","scope":75680,"src":"16372:30:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier"},"typeName":{"id":75644,"nodeType":"UserDefinedTypeName","pathNode":{"id":75643,"name":"SlashIdentifier","nameLocations":["16372:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73248,"src":"16372:15:160"},"referencedDeclaration":73248,"src":"16372:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"visibility":"internal"}],"id":75649,"initialValue":{"baseExpression":{"id":75646,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75618,"src":"16405:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":75648,"indexExpression":{"id":75647,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"16413:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16405:10:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"nodeType":"VariableDeclarationStatement","src":"16372:43:160"},{"condition":{"id":75657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16434:40:160","subExpression":{"arguments":[{"expression":{"id":75654,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"16462:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":75655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16468:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73245,"src":"16462:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":75650,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"16435:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16435:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16446:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"16435:17:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16453:8:160","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":56291,"src":"16435:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,address) view returns (bool)"}},"id":75656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16435:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75662,"nodeType":"IfStatement","src":"16430:106:160","trueBody":{"id":75661,"nodeType":"Block","src":"16476:60:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75658,"name":"NotRegisteredVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73110,"src":"16501:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16501:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75660,"nodeType":"RevertStatement","src":"16494:27:160"}]}},{"expression":{"arguments":[{"expression":{"id":75672,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"16607:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":75673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16613:5:160","memberName":"index","nodeType":"MemberAccess","referencedDeclaration":73247,"src":"16607:11:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"hexValue":"30","id":75676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16630:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"16620:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":75674,"name":"bytes","nodeType":"ElementaryTypeName","src":"16624:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":75677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"expression":{"id":75665,"name":"slash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75645,"src":"16570:5:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata"}},"id":75666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16576:5:160","memberName":"vault","nodeType":"MemberAccess","referencedDeclaration":73245,"src":"16570:11:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75664,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"16563:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16563:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16583:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66252,"src":"16563:27:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16563:29:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75663,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"16550:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":75670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16550:43:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16594:12:160","memberName":"executeSlash","nodeType":"MemberAccess","referencedDeclaration":65823,"src":"16550:56:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,bytes memory) external returns (uint256)"}},"id":75678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16550:83:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75679,"nodeType":"ExpressionStatement","src":"16550:83:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75636,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"16333:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75637,"name":"slashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75618,"src":"16337:7:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier calldata[] calldata"}},"id":75638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16345:6:160","memberName":"length","nodeType":"MemberAccess","src":"16337:14:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16333:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75681,"initializationExpression":{"assignments":[75634],"declarations":[{"constant":false,"id":75634,"mutability":"mutable","name":"i","nameLocation":"16330:1:160","nodeType":"VariableDeclaration","scope":75681,"src":"16322:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75633,"name":"uint256","nodeType":"ElementaryTypeName","src":"16322:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75635,"nodeType":"VariableDeclarationStatement","src":"16322:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16353:3:160","subExpression":{"id":75640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75634,"src":"16355:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75642,"nodeType":"ExpressionStatement","src":"16353:3:160"},"nodeType":"ForStatement","src":"16317:327:160"}]},"baseFunctions":[73364],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"16131:12:160","parameters":{"id":75619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75618,"mutability":"mutable","name":"slashes","nameLocation":"16171:7:160","nodeType":"VariableDeclaration","scope":75683,"src":"16144:34:160","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":75616,"nodeType":"UserDefinedTypeName","pathNode":{"id":75615,"name":"SlashIdentifier","nameLocations":["16144:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":73248,"src":"16144:15:160"},"referencedDeclaration":73248,"src":"16144:15:160","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":75617,"nodeType":"ArrayTypeName","src":"16144:17:160","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"16143:36:160"},"returnParameters":{"id":75620,"nodeType":"ParameterList","parameters":[],"src":"16189:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75754,"nodeType":"FunctionDefinition","src":"16656:556:160","nodes":[],"body":{"id":75753,"nodeType":"Block","src":"16765:447:160","nodes":[],"statements":[{"assignments":[75694],"declarations":[{"constant":false,"id":75694,"mutability":"mutable","name":"$","nameLocation":"16791:1:160","nodeType":"VariableDeclaration","scope":75753,"src":"16775:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75693,"nodeType":"UserDefinedTypeName","pathNode":{"id":75692,"name":"Storage","nameLocations":["16775:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"16775:7:160"},"referencedDeclaration":73229,"src":"16775:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75697,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75695,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"16795:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16795:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"16775:30:160"},{"body":{"id":75751,"nodeType":"Block","src":"16859:347:160","statements":[{"assignments":[75711,75713,75715],"declarations":[{"constant":false,"id":75711,"mutability":"mutable","name":"vault","nameLocation":"16882:5:160","nodeType":"VariableDeclaration","scope":75751,"src":"16874:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75710,"name":"address","nodeType":"ElementaryTypeName","src":"16874:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75713,"mutability":"mutable","name":"vaultEnabledTime","nameLocation":"16896:16:160","nodeType":"VariableDeclaration","scope":75751,"src":"16889:23:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75712,"name":"uint48","nodeType":"ElementaryTypeName","src":"16889:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75715,"mutability":"mutable","name":"vaultDisabledTime","nameLocation":"16921:17:160","nodeType":"VariableDeclaration","scope":75751,"src":"16914:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75714,"name":"uint48","nodeType":"ElementaryTypeName","src":"16914:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75721,"initialValue":{"arguments":[{"id":75719,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"16963:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"expression":{"id":75716,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"16942:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16944:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"16942:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16951:11:160","memberName":"atWithTimes","nodeType":"MemberAccess","referencedDeclaration":86209,"src":"16942:20:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$_t_uint256_$returns$_t_address_$_t_uint48_$_t_uint48_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer,uint256) view returns (address,uint48,uint48)"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16942:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_uint48_$_t_uint48_$","typeString":"tuple(address,uint48,uint48)"}},"nodeType":"VariableDeclarationStatement","src":"16873:92:160"},{"condition":{"id":75727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16984:54:160","subExpression":{"arguments":[{"id":75723,"name":"vaultEnabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75713,"src":"16998:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75724,"name":"vaultDisabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75715,"src":"17016:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"id":75725,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"17035:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":75722,"name":"_wasActiveAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75783,"src":"16985:12:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint48_$_t_uint48_$_t_uint48_$returns$_t_bool_$","typeString":"function (uint48,uint48,uint48) pure returns (bool)"}},"id":75726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16985:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75730,"nodeType":"IfStatement","src":"16980:101:160","trueBody":{"id":75729,"nodeType":"Block","src":"17040:41:160","statements":[{"id":75728,"nodeType":"Continue","src":"17058:8:160"}]}},{"expression":{"id":75749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75731,"name":"stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75690,"src":"17095:5:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"expression":{"id":75740,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"17154:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17156:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"17154:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":75742,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75685,"src":"17168:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75743,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"17178:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"arguments":[{"hexValue":"30","id":75746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17192:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"17182:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":75744,"name":"bytes","nodeType":"ElementaryTypeName","src":"17186:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":75747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17182:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75734,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75711,"src":"17126:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75733,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"17119:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17119:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17133:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66240,"src":"17119:23:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17119:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75732,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"17104:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$64830_$","typeString":"type(contract IBaseDelegator)"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":75739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17146:7:160","memberName":"stakeAt","nodeType":"MemberAccess","referencedDeclaration":64791,"src":"17104:49:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint48_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint48,bytes memory) view external returns (uint256)"}},"id":75748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17104:91:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17095:100:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75750,"nodeType":"ExpressionStatement","src":"17095:100:160"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75701,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"16831:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":75702,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75694,"src":"16835:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16837:6:160","memberName":"vaults","nodeType":"MemberAccess","referencedDeclaration":73228,"src":"16835:8:160","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage","typeString":"struct EnumerableMap.AddressToUintMap storage ref"}},"id":75704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16844:6:160","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":56306,"src":"16835:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressToUintMap_$56191_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressToUintMap_$56191_storage_ptr_$","typeString":"function (struct EnumerableMap.AddressToUintMap storage pointer) view returns (uint256)"}},"id":75705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16835:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16831:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75752,"initializationExpression":{"assignments":[75699],"declarations":[{"constant":false,"id":75699,"mutability":"mutable","name":"i","nameLocation":"16828:1:160","nodeType":"VariableDeclaration","scope":75752,"src":"16820:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75698,"name":"uint256","nodeType":"ElementaryTypeName","src":"16820:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75700,"nodeType":"VariableDeclarationStatement","src":"16820:9:160"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":75708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16854:3:160","subExpression":{"id":75707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75699,"src":"16856:1:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75709,"nodeType":"ExpressionStatement","src":"16854:3:160"},"nodeType":"ForStatement","src":"16815:391:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_collectOperatorStakeFromVaultsAt","nameLocation":"16665:33:160","parameters":{"id":75688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75685,"mutability":"mutable","name":"operator","nameLocation":"16707:8:160","nodeType":"VariableDeclaration","scope":75754,"src":"16699:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75684,"name":"address","nodeType":"ElementaryTypeName","src":"16699:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75687,"mutability":"mutable","name":"ts","nameLocation":"16724:2:160","nodeType":"VariableDeclaration","scope":75754,"src":"16717:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75686,"name":"uint48","nodeType":"ElementaryTypeName","src":"16717:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"16698:29:160"},"returnParameters":{"id":75691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75690,"mutability":"mutable","name":"stake","nameLocation":"16758:5:160","nodeType":"VariableDeclaration","scope":75754,"src":"16750:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75689,"name":"uint256","nodeType":"ElementaryTypeName","src":"16750:7:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16749:15:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75783,"nodeType":"FunctionDefinition","src":"17218:208:160","nodes":[],"body":{"id":75782,"nodeType":"Block","src":"17320:106:160","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75765,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"17337:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":75766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17352:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17337:16:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75768,"name":"enabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75756,"src":"17357:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75769,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75760,"src":"17372:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17357:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17337:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75772,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75758,"src":"17379:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17395:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17379:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75775,"name":"disabledTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75758,"src":"17400:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":75776,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75760,"src":"17416:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"17400:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17379:39:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":75779,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17378:41:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17337:82:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":75764,"id":75781,"nodeType":"Return","src":"17330:89:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wasActiveAt","nameLocation":"17227:12:160","parameters":{"id":75761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75756,"mutability":"mutable","name":"enabledTime","nameLocation":"17247:11:160","nodeType":"VariableDeclaration","scope":75783,"src":"17240:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75755,"name":"uint48","nodeType":"ElementaryTypeName","src":"17240:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75758,"mutability":"mutable","name":"disabledTime","nameLocation":"17267:12:160","nodeType":"VariableDeclaration","scope":75783,"src":"17260:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75757,"name":"uint48","nodeType":"ElementaryTypeName","src":"17260:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":75760,"mutability":"mutable","name":"ts","nameLocation":"17288:2:160","nodeType":"VariableDeclaration","scope":75783,"src":"17281:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75759,"name":"uint48","nodeType":"ElementaryTypeName","src":"17281:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"17239:52:160"},"returnParameters":{"id":75764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75763,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75783,"src":"17314:4:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75762,"name":"bool","nodeType":"ElementaryTypeName","src":"17314:4:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17313:6:160"},"scope":76339,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75800,"nodeType":"FunctionDefinition","src":"17471:154:160","nodes":[],"body":{"id":75799,"nodeType":"Block","src":"17527:98:160","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75788,"name":"hook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75785,"src":"17541:4:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":75791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17557:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":75790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17549:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75789,"name":"address","nodeType":"ElementaryTypeName","src":"17549:7:160","typeDescriptions":{}}},"id":75792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17549:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17541:18:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75798,"nodeType":"IfStatement","src":"17537:82:160","trueBody":{"id":75797,"nodeType":"Block","src":"17561:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75794,"name":"UnsupportedDelegatorHook","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73080,"src":"17582:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17582:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75796,"nodeType":"RevertStatement","src":"17575:33:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_delegatorHookCheck","nameLocation":"17480:19:160","parameters":{"id":75786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75785,"mutability":"mutable","name":"hook","nameLocation":"17508:4:160","nodeType":"VariableDeclaration","scope":75800,"src":"17500:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75784,"name":"address","nodeType":"ElementaryTypeName","src":"17500:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17499:14:160"},"returnParameters":{"id":75787,"nodeType":"ParameterList","parameters":[],"src":"17527:0:160"},"scope":76339,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75888,"nodeType":"FunctionDefinition","src":"17631:2002:160","nodes":[],"body":{"id":75887,"nodeType":"Block","src":"17689:1944:160","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75807,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"17707:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17709:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"17707:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17723:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17707:17:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75811,"name":"EraDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73140,"src":"17726:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17726:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75806,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17699:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17699:62:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75814,"nodeType":"ExpressionStatement","src":"17699:62:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75816,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18096:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18098:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"18096:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18123:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":75819,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18127:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18129:11:160","memberName":"eraDuration","nodeType":"MemberAccess","referencedDeclaration":73194,"src":"18127:13:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18123:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18096:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75823,"name":"MinVaultEpochDurationLessThanTwoEras","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73143,"src":"18142:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18142:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18088:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18088:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75826,"nodeType":"ExpressionStatement","src":"18088:93:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75828,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18371:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18373:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"18371:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":75830,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18396:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18398:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"18396:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18371:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75833,"name":"OperatorGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73146,"src":"18421:48:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18421:50:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75827,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18363:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18363:109:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75836,"nodeType":"ExpressionStatement","src":"18363:109:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75838,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18659:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18661:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"18659:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":75840,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18681:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18683:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"18681:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18659:45:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75843,"name":"VaultGracePeriodLessThanMinVaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73149,"src":"18706:45:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18706:47:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75837,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18651:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18651:103:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75846,"nodeType":"ExpressionStatement","src":"18651:103:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75848,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"18834:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75849,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18836:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"18834:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18854:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18834:21:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75852,"name":"MinVetoDurationMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73152,"src":"18857:36:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18857:38:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18826:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18826:70:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75855,"nodeType":"ExpressionStatement","src":"18826:70:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75857,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19106:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19108:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"19106:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19133:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19106:28:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75861,"name":"MinSlashExecutionDelayMustBeGreaterThanZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73155,"src":"19136:43:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:45:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75856,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19098:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19098:84:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75864,"nodeType":"ExpressionStatement","src":"19098:84:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75866,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19213:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75867,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19215:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"19213:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":75868,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19233:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19235:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"19233:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19213:44:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":75871,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19261:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19263:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"19261:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19213:71:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75874,"name":"MinVetoAndSlashDelayTooLongForVaultEpoch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73158,"src":"19298:40:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19298:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19192:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19192:158:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75877,"nodeType":"ExpressionStatement","src":"19192:158:160"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75879,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75803,"src":"19555:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"19555:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"33","id":75881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19586:1:160","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"19555:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":75883,"name":"ResolverSetDelayMustBeAtLeastThree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73161,"src":"19589:34:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19589:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":75878,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19547:7:160","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":75885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19547:79:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75886,"nodeType":"ExpressionStatement","src":"19547:79:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStorage","nameLocation":"17640:16:160","parameters":{"id":75804,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75803,"mutability":"mutable","name":"$","nameLocation":"17673:1:160","nodeType":"VariableDeclaration","scope":75888,"src":"17657:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75802,"nodeType":"UserDefinedTypeName","pathNode":{"id":75801,"name":"Storage","nameLocations":["17657:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"17657:7:160"},"referencedDeclaration":73229,"src":"17657:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"17656:19:160"},"returnParameters":{"id":75805,"nodeType":"ParameterList","parameters":[],"src":"17689:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76155,"nodeType":"FunctionDefinition","src":"19681:2572:160","nodes":[],"body":{"id":76154,"nodeType":"Block","src":"19729:2524:160","nodes":[],"statements":[{"assignments":[75895],"declarations":[{"constant":false,"id":75895,"mutability":"mutable","name":"$","nameLocation":"19755:1:160","nodeType":"VariableDeclaration","scope":76154,"src":"19739:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":75894,"nodeType":"UserDefinedTypeName","pathNode":{"id":75893,"name":"Storage","nameLocations":["19739:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"19739:7:160"},"referencedDeclaration":73229,"src":"19739:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":75898,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":75896,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"19759:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":75897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19759:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"19739:30:160"},{"condition":{"id":75907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19784:54:160","subExpression":{"arguments":[{"id":75905,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"19831:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"id":75900,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"19795:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19797:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"19795:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":75902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19807:13:160","memberName":"vaultRegistry","nodeType":"MemberAccess","referencedDeclaration":85078,"src":"19795:25:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75899,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"19785:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$64656_$","typeString":"type(contract IRegistry)"}},"id":75903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$64656","typeString":"contract IRegistry"}},"id":75904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19822:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":64641,"src":"19785:45:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":75906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19785:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75912,"nodeType":"IfStatement","src":"19780:109:160","trueBody":{"id":75911,"nodeType":"Block","src":"19840:49:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75908,"name":"NonFactoryVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"19861:15:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75910,"nodeType":"RevertStatement","src":"19854:24:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":75920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75914,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"19921:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75913,"name":"IMigratableEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64532,"src":"19903:17:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMigratableEntity_$64532_$","typeString":"type(contract IMigratableEntity)"}},"id":75915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19903:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMigratableEntity_$64532","typeString":"contract IMigratableEntity"}},"id":75916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19929:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":64513,"src":"19903:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":75917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19903:35:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75918,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"19942:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75919,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19944:23:160","memberName":"allowedVaultImplVersion","nodeType":"MemberAccess","referencedDeclaration":73208,"src":"19942:25:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"19903:64:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75925,"nodeType":"IfStatement","src":"19899:128:160","trueBody":{"id":75924,"nodeType":"Block","src":"19969:58:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75921,"name":"IncompatibleVaultVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"19990:24:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19990:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75923,"nodeType":"RevertStatement","src":"19983:33:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75927,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20048:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75926,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20041:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20056:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":66228,"src":"20041:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20041:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":75931,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"20072:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20074:10:160","memberName":"collateral","nodeType":"MemberAccess","referencedDeclaration":73216,"src":"20072:12:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20041:43:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75938,"nodeType":"IfStatement","src":"20037:100:160","trueBody":{"id":75937,"nodeType":"Block","src":"20086:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75934,"name":"UnknownCollateral","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"20107:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20107:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75936,"nodeType":"RevertStatement","src":"20100:26:160"}]}},{"assignments":[75940],"declarations":[{"constant":false,"id":75940,"mutability":"mutable","name":"vaultEpochDuration","nameLocation":"20182:18:160","nodeType":"VariableDeclaration","scope":76154,"src":"20175:25:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":75939,"name":"uint48","nodeType":"ElementaryTypeName","src":"20175:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":75946,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75942,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20210:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75941,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20203:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20203:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20218:13:160","memberName":"epochDuration","nodeType":"MemberAccess","referencedDeclaration":66270,"src":"20203:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":75945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20203:30:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"20175:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":75950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75947,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"20247:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75948,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"20268:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75949,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20270:21:160","memberName":"minVaultEpochDuration","nodeType":"MemberAccess","referencedDeclaration":73196,"src":"20268:23:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20247:44:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75955,"nodeType":"IfStatement","src":"20243:107:160","trueBody":{"id":75954,"nodeType":"Block","src":"20293:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75951,"name":"VaultWrongEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"20314:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20314:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75953,"nodeType":"RevertStatement","src":"20307:32:160"}]}},{"condition":{"id":75961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20397:40:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75957,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20405:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75956,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20398:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20398:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20413:22:160","memberName":"isDelegatorInitialized","nodeType":"MemberAccess","referencedDeclaration":66246,"src":"20398:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20398:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75966,"nodeType":"IfStatement","src":"20393:103:160","trueBody":{"id":75965,"nodeType":"Block","src":"20439:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75962,"name":"DelegatorNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"20460:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":75963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20460:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":75964,"nodeType":"RevertStatement","src":"20453:32:160"}]}},{"assignments":[75969],"declarations":[{"constant":false,"id":75969,"mutability":"mutable","name":"delegator","nameLocation":"20521:9:160","nodeType":"VariableDeclaration","scope":76154,"src":"20506:24:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"},"typeName":{"id":75968,"nodeType":"UserDefinedTypeName","pathNode":{"id":75967,"name":"IBaseDelegator","nameLocations":["20506:14:160"],"nodeType":"IdentifierPath","referencedDeclaration":64830,"src":"20506:14:160"},"referencedDeclaration":64830,"src":"20506:14:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"visibility":"internal"}],"id":75977,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":75972,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20555:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75971,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20548:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":75973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20548:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20563:9:160","memberName":"delegator","nodeType":"MemberAccess","referencedDeclaration":66240,"src":"20548:24:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":75975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20548:26:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75970,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"20533:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$64830_$","typeString":"type(contract IBaseDelegator)"}},"id":75976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20533:42:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"nodeType":"VariableDeclarationStatement","src":"20506:69:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":75980,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"20615:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":75981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20617:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"20615:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":75978,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75969,"src":"20589:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":75979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20599:15:160","memberName":"maxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":64777,"src":"20589:25:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":75982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20589:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":75985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20637:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75984,"name":"uint256","nodeType":"ElementaryTypeName","src":"20637:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":75983,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20632:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":75986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20632:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":75987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20646:3:160","memberName":"max","nodeType":"MemberAccess","src":"20632:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20589:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76001,"nodeType":"IfStatement","src":"20585:158:160","trueBody":{"id":76000,"nodeType":"Block","src":"20651:92:160","statements":[{"expression":{"arguments":[{"id":75992,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74147,"src":"20694:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"arguments":[{"id":75995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20719:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75994,"name":"uint256","nodeType":"ElementaryTypeName","src":"20719:7:160","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":75993,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"20714:4:160","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":75996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20714:13:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":75997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20728:3:160","memberName":"max","nodeType":"MemberAccess","src":"20714:17:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":75989,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75969,"src":"20665:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":75991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20675:18:160","memberName":"setMaxNetworkLimit","nodeType":"MemberAccess","referencedDeclaration":64809,"src":"20665:28:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_uint256_$returns$__$","typeString":"function (uint96,uint256) external"}},"id":75998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20665:67:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75999,"nodeType":"ExpressionStatement","src":"20665:67:160"}]}},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76004,"name":"delegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75969,"src":"20787:9:160","typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}],"id":76003,"name":"IBaseDelegator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64830,"src":"20772:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IBaseDelegator_$64830_$","typeString":"type(contract IBaseDelegator)"}},"id":76005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20772:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IBaseDelegator_$64830","typeString":"contract IBaseDelegator"}},"id":76006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20798:4:160","memberName":"hook","nodeType":"MemberAccess","referencedDeclaration":64769,"src":"20772:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20772:32:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76002,"name":"_delegatorHookCheck","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75800,"src":"20752:19:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20752:53:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76009,"nodeType":"ExpressionStatement","src":"20752:53:160"},{"condition":{"id":76015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20851:38:160","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76011,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20859:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76010,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20852:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":76012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20852:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":76013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20867:20:160","memberName":"isSlasherInitialized","nodeType":"MemberAccess","referencedDeclaration":66258,"src":"20852:35:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20852:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76020,"nodeType":"IfStatement","src":"20847:99:160","trueBody":{"id":76019,"nodeType":"Block","src":"20891:55:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76016,"name":"SlasherNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"20912:21:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20912:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76018,"nodeType":"RevertStatement","src":"20905:30:160"}]}},{"assignments":[76022],"declarations":[{"constant":false,"id":76022,"mutability":"mutable","name":"slasher","nameLocation":"20964:7:160","nodeType":"VariableDeclaration","scope":76154,"src":"20956:15:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76021,"name":"address","nodeType":"ElementaryTypeName","src":"20956:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76028,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76024,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"20981:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76023,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"20974:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":76025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20974:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":76026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20989:7:160","memberName":"slasher","nodeType":"MemberAccess","referencedDeclaration":66252,"src":"20974:22:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20974:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20956:42:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76030,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21020:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76029,"name":"IEntity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64424,"src":"21012:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IEntity_$64424_$","typeString":"type(contract IEntity)"}},"id":76031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21012:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IEntity_$64424","typeString":"contract IEntity"}},"id":76032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21029:4:160","memberName":"TYPE","nodeType":"MemberAccess","referencedDeclaration":64417,"src":"21012:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21012:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76034,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21039:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76035,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21041:19:160","memberName":"vetoSlasherImplType","nodeType":"MemberAccess","referencedDeclaration":73210,"src":"21039:21:160","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"21012:48:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76041,"nodeType":"IfStatement","src":"21008:111:160","trueBody":{"id":76040,"nodeType":"Block","src":"21062:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76037,"name":"IncompatibleSlasherType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"21083:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21083:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76039,"nodeType":"RevertStatement","src":"21076:32:160"}]}},{"condition":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76043,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21146:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76042,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21133:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21133:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21155:12:160","memberName":"isBurnerHook","nodeType":"MemberAccess","referencedDeclaration":65510,"src":"21133:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21133:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76051,"nodeType":"IfStatement","src":"21129:98:160","trueBody":{"id":76050,"nodeType":"Block","src":"21171:56:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76047,"name":"BurnerHookNotSupported","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"21192:22:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21192:24:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76049,"nodeType":"RevertStatement","src":"21185:31:160"}]}},{"assignments":[76053],"declarations":[{"constant":false,"id":76053,"mutability":"mutable","name":"vetoDuration","nameLocation":"21244:12:160","nodeType":"VariableDeclaration","scope":76154,"src":"21237:19:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76052,"name":"uint48","nodeType":"ElementaryTypeName","src":"21237:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76059,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76055,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21272:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76054,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21259:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21259:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21281:12:160","memberName":"vetoDuration","nodeType":"MemberAccess","referencedDeclaration":65745,"src":"21259:34:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint48_$","typeString":"function () view external returns (uint48)"}},"id":76058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21259:36:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"21237:58:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76060,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"21309:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76061,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21324:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21326:15:160","memberName":"minVetoDuration","nodeType":"MemberAccess","referencedDeclaration":73202,"src":"21324:17:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21309:32:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76068,"nodeType":"IfStatement","src":"21305:92:160","trueBody":{"id":76067,"nodeType":"Block","src":"21343:54:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76064,"name":"VetoDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73098,"src":"21364:20:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21364:22:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76066,"nodeType":"RevertStatement","src":"21357:29:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76069,"name":"vetoDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"21411:12:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"id":76070,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21426:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76071,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21428:22:160","memberName":"minSlashExecutionDelay","nodeType":"MemberAccess","referencedDeclaration":73204,"src":"21426:24:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21411:39:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":76073,"name":"vaultEpochDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75940,"src":"21453:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"21411:60:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76079,"nodeType":"IfStatement","src":"21407:119:160","trueBody":{"id":76078,"nodeType":"Block","src":"21473:53:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76075,"name":"VetoDurationTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"21494:19:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21494:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76077,"nodeType":"RevertStatement","src":"21487:28:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76081,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21553:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76080,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21540:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21540:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21562:22:160","memberName":"resolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":65775,"src":"21540:44:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":76084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21540:46:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":76085,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21589:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21591:25:160","memberName":"maxResolverSetEpochsDelay","nodeType":"MemberAccess","referencedDeclaration":73206,"src":"21589:27:160","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21540:76:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76092,"nodeType":"IfStatement","src":"21536:139:160","trueBody":{"id":76091,"nodeType":"Block","src":"21618:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76088,"name":"ResolverSetDelayTooLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73119,"src":"21639:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21639:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76090,"nodeType":"RevertStatement","src":"21632:32:160"}]}},{"assignments":[76094],"declarations":[{"constant":false,"id":76094,"mutability":"mutable","name":"resolver","nameLocation":"21693:8:160","nodeType":"VariableDeclaration","scope":76154,"src":"21685:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76093,"name":"address","nodeType":"ElementaryTypeName","src":"21685:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76106,"initialValue":{"arguments":[{"expression":{"id":76099,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21735:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21737:10:160","memberName":"subnetwork","nodeType":"MemberAccess","referencedDeclaration":73212,"src":"21735:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"30","id":76103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21759:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21749:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76101,"name":"bytes","nodeType":"ElementaryTypeName","src":"21753:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21749:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76096,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21717:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76095,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21704:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21704:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21726:8:160","memberName":"resolver","nodeType":"MemberAccess","referencedDeclaration":65797,"src":"21704:30:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,bytes memory) view external returns (address)"}},"id":76105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21704:58:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21685:77:160"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76107,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"21776:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21796:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21788:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76108,"name":"address","nodeType":"ElementaryTypeName","src":"21788:7:160","typeDescriptions":{}}},"id":76111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21788:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21776:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76128,"name":"resolver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76094,"src":"21928:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76129,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21940:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21942:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"21940:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21952:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":85096,"src":"21940:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21928:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76137,"nodeType":"IfStatement","src":"21924:147:160","trueBody":{"id":76136,"nodeType":"Block","src":"21966:105:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76133,"name":"ResolverMismatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"22042:16:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22042:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76135,"nodeType":"RevertStatement","src":"22035:25:160"}]}},"id":76138,"nodeType":"IfStatement","src":"21772:299:160","trueBody":{"id":76127,"nodeType":"Block","src":"21800:118:160","statements":[{"expression":{"arguments":[{"id":76117,"name":"NETWORK_IDENTIFIER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74147,"src":"21848:18:160","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"expression":{"expression":{"id":76118,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75895,"src":"21868:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21870:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"21868:11:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21880:12:160","memberName":"vetoResolver","nodeType":"MemberAccess","referencedDeclaration":85096,"src":"21868:24:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":76123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21904:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"21894:9:160","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":76121,"name":"bytes","nodeType":"ElementaryTypeName","src":"21898:5:160","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":76124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21894:12:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":76114,"name":"slasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76022,"src":"21827:7:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76113,"name":"IVetoSlasher","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65842,"src":"21814:12:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVetoSlasher_$65842_$","typeString":"type(contract IVetoSlasher)"}},"id":76115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21814:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVetoSlasher_$65842","typeString":"contract IVetoSlasher"}},"id":76116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21836:11:160","memberName":"setResolver","nodeType":"MemberAccess","referencedDeclaration":65841,"src":"21814:33:160","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint96_$_t_address_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint96,address,bytes memory) external"}},"id":76125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21814:93:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76126,"nodeType":"ExpressionStatement","src":"21814:93:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76140,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"22164:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76139,"name":"IVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66180,"src":"22157:6:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IVault_$66180_$","typeString":"type(contract IVault)"}},"id":76141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22157:14:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IVault_$66180","typeString":"contract IVault"}},"id":76142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22172:6:160","memberName":"burner","nodeType":"MemberAccess","referencedDeclaration":66234,"src":"22157:21:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22157:23:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22192:1:160","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22184:7:160","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76144,"name":"address","nodeType":"ElementaryTypeName","src":"22184:7:160","typeDescriptions":{}}},"id":76147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22184:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22157:37:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76153,"nodeType":"IfStatement","src":"22153:94:160","trueBody":{"id":76152,"nodeType":"Block","src":"22196:51:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76149,"name":"UnsupportedBurner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73083,"src":"22217:17:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22217:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76151,"nodeType":"RevertStatement","src":"22210:26:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateVault","nameLocation":"19690:14:160","parameters":{"id":75891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75890,"mutability":"mutable","name":"_vault","nameLocation":"19713:6:160","nodeType":"VariableDeclaration","scope":76155,"src":"19705:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75889,"name":"address","nodeType":"ElementaryTypeName","src":"19705:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19704:16:160"},"returnParameters":{"id":75892,"nodeType":"ParameterList","parameters":[],"src":"19729:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76202,"nodeType":"FunctionDefinition","src":"22259:482:160","nodes":[],"body":{"id":76201,"nodeType":"Block","src":"22338:403:160","nodes":[],"statements":[{"condition":{"id":76171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22352:72:160","subExpression":{"arguments":[{"id":76169,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"22415:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76163,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"22363:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22363:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22374:9:160","memberName":"symbiotic","nodeType":"MemberAccess","referencedDeclaration":73222,"src":"22363:20:160","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage","typeString":"struct Gear.SymbioticContracts storage ref"}},"id":76166,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22384:20:160","memberName":"stakerRewardsFactory","nodeType":"MemberAccess","referencedDeclaration":85088,"src":"22363:41:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76162,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64656,"src":"22353:9:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$64656_$","typeString":"type(contract IRegistry)"}},"id":76167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22353:52:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$64656","typeString":"contract IRegistry"}},"id":76168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22406:8:160","memberName":"isEntity","nodeType":"MemberAccess","referencedDeclaration":64641,"src":"22353:61:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":76170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22353:71:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76176,"nodeType":"IfStatement","src":"22348:135:160","trueBody":{"id":76175,"nodeType":"Block","src":"22426:57:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76172,"name":"NonFactoryStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73131,"src":"22447:23:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22447:25:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76174,"nodeType":"RevertStatement","src":"22440:32:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76178,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"22519:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76177,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"22497:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71316_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":76179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71316","typeString":"contract IDefaultStakerRewards"}},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22529:5:160","memberName":"VAULT","nodeType":"MemberAccess","referencedDeclaration":71251,"src":"22497:37:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:39:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76182,"name":"_vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"22540:6:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22497:49:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76188,"nodeType":"IfStatement","src":"22493:114:160","trueBody":{"id":76187,"nodeType":"Block","src":"22548:59:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76184,"name":"InvalidStakerRewardsVault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73134,"src":"22569:25:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22569:27:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76186,"nodeType":"RevertStatement","src":"22562:34:160"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76190,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"22643:8:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76189,"name":"IDefaultStakerRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71316,"src":"22621:21:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IDefaultStakerRewards_$71316_$","typeString":"type(contract IDefaultStakerRewards)"}},"id":76191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22621:31:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IDefaultStakerRewards_$71316","typeString":"contract IDefaultStakerRewards"}},"id":76192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22653:7:160","memberName":"version","nodeType":"MemberAccess","referencedDeclaration":71368,"src":"22621:39:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint64_$","typeString":"function () view external returns (uint64)"}},"id":76193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22621:41:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"32","id":76194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22666:1:160","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"22621:46:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76200,"nodeType":"IfStatement","src":"22617:118:160","trueBody":{"id":76199,"nodeType":"Block","src":"22669:66:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76196,"name":"IncompatibleStakerRewardsVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73107,"src":"22690:32:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22690:34:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76198,"nodeType":"RevertStatement","src":"22683:41:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validateStakerRewards","nameLocation":"22268:22:160","parameters":{"id":76160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76157,"mutability":"mutable","name":"_vault","nameLocation":"22299:6:160","nodeType":"VariableDeclaration","scope":76202,"src":"22291:14:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76156,"name":"address","nodeType":"ElementaryTypeName","src":"22291:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76159,"mutability":"mutable","name":"_rewards","nameLocation":"22315:8:160","nodeType":"VariableDeclaration","scope":76202,"src":"22307:16:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76158,"name":"address","nodeType":"ElementaryTypeName","src":"22307:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22290:34:160"},"returnParameters":{"id":76161,"nodeType":"ParameterList","parameters":[],"src":"22338:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76212,"nodeType":"ModifierDefinition","src":"22878:82:160","nodes":[],"body":{"id":76211,"nodeType":"Block","src":"22913:47:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76207,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76204,"src":"22939:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint48","typeString":"uint48"}],"id":76206,"name":"_validTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76259,"src":"22923:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint48_$returns$__$","typeString":"function (uint48) view"}},"id":76208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22923:19:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76209,"nodeType":"ExpressionStatement","src":"22923:19:160"},{"id":76210,"nodeType":"PlaceholderStatement","src":"22952:1:160"}]},"name":"validTimestamp","nameLocation":"22887:14:160","parameters":{"id":76205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76204,"mutability":"mutable","name":"ts","nameLocation":"22909:2:160","nodeType":"VariableDeclaration","scope":76212,"src":"22902:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76203,"name":"uint48","nodeType":"ElementaryTypeName","src":"22902:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22901:11:160"},"virtual":false,"visibility":"internal"},{"id":76259,"nodeType":"FunctionDefinition","src":"22966:408:160","nodes":[],"body":{"id":76258,"nodeType":"Block","src":"23016:358:160","nodes":[],"statements":[{"assignments":[76219],"declarations":[{"constant":false,"id":76219,"mutability":"mutable","name":"$","nameLocation":"23042:1:160","nodeType":"VariableDeclaration","scope":76258,"src":"23026:17:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76218,"nodeType":"UserDefinedTypeName","pathNode":{"id":76217,"name":"Storage","nameLocations":["23026:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"23026:7:160"},"referencedDeclaration":73229,"src":"23026:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":76222,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76220,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"23046:8:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":76221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23046:10:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23026:30:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76223,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76214,"src":"23070:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76224,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"23076:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":76225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23081:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"23076:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23076:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23070:22:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76232,"nodeType":"IfStatement","src":"23066:80:160","trueBody":{"id":76231,"nodeType":"Block","src":"23094:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76228,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"23115:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23115:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76230,"nodeType":"RevertStatement","src":"23108:27:160"}]}},{"assignments":[76234],"declarations":[{"constant":false,"id":76234,"mutability":"mutable","name":"gracePeriod","nameLocation":"23163:11:160","nodeType":"VariableDeclaration","scope":76258,"src":"23156:18:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76233,"name":"uint48","nodeType":"ElementaryTypeName","src":"23156:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"id":76245,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76235,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23177:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23179:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"23177:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76237,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23201:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23203:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"23201:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23177:42:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":76242,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23246:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23248:16:160","memberName":"vaultGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73200,"src":"23246:18:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"23177:87:160","trueExpression":{"expression":{"id":76240,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"23222:1:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":76241,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23224:19:160","memberName":"operatorGracePeriod","nodeType":"MemberAccess","referencedDeclaration":73198,"src":"23222:21:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"VariableDeclarationStatement","src":"23156:108:160"},{"condition":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76246,"name":"ts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76214,"src":"23278:2:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":76247,"name":"gracePeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"23283:11:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23278:16:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76249,"name":"Time","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59667,"src":"23298:4:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Time_$59667_$","typeString":"type(library Time)"}},"id":76250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23303:9:160","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":59415,"src":"23298:14:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint48_$","typeString":"function () view returns (uint48)"}},"id":76251,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23298:16:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"23278:36:160","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76257,"nodeType":"IfStatement","src":"23274:94:160","trueBody":{"id":76256,"nodeType":"Block","src":"23316:52:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76253,"name":"IncorrectTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"23337:18:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23337:20:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76255,"nodeType":"RevertStatement","src":"23330:27:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_validTimestamp","nameLocation":"22975:15:160","parameters":{"id":76215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76214,"mutability":"mutable","name":"ts","nameLocation":"22998:2:160","nodeType":"VariableDeclaration","scope":76259,"src":"22991:9:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":76213,"name":"uint48","nodeType":"ElementaryTypeName","src":"22991:6:160","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"22990:11:160"},"returnParameters":{"id":76216,"nodeType":"ParameterList","parameters":[],"src":"23016:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76272,"nodeType":"FunctionDefinition","src":"23380:201:160","nodes":[],"body":{"id":76271,"nodeType":"Block","src":"23450:131:160","nodes":[],"statements":[{"assignments":[76266],"declarations":[{"constant":false,"id":76266,"mutability":"mutable","name":"slot","nameLocation":"23468:4:160","nodeType":"VariableDeclaration","scope":76271,"src":"23460:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23460:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76269,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76267,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76284,"src":"23475:15:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":76268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23475:17:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23460:32:160"},{"AST":{"nativeSrc":"23528:47:160","nodeType":"YulBlock","src":"23528:47:160","statements":[{"nativeSrc":"23542:23:160","nodeType":"YulAssignment","src":"23542:23:160","value":{"name":"slot","nativeSrc":"23561:4:160","nodeType":"YulIdentifier","src":"23561:4:160"},"variableNames":[{"name":"middleware.slot","nativeSrc":"23542:15:160","nodeType":"YulIdentifier","src":"23542:15:160"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":76263,"isOffset":false,"isSlot":true,"src":"23542:15:160","suffix":"slot","valueSize":1},{"declaration":76266,"isOffset":false,"isSlot":false,"src":"23561:4:160","valueSize":1}],"flags":["memory-safe"],"id":76270,"nodeType":"InlineAssembly","src":"23503:72:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"23389:8:160","parameters":{"id":76260,"nodeType":"ParameterList","parameters":[],"src":"23397:2:160"},"returnParameters":{"id":76264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76263,"mutability":"mutable","name":"middleware","nameLocation":"23438:10:160","nodeType":"VariableDeclaration","scope":76272,"src":"23422:26:160","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":76262,"nodeType":"UserDefinedTypeName","pathNode":{"id":76261,"name":"Storage","nameLocations":["23422:7:160"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"23422:7:160"},"referencedDeclaration":73229,"src":"23422:7:160","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"23421:28:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76284,"nodeType":"FunctionDefinition","src":"23587:128:160","nodes":[],"body":{"id":76283,"nodeType":"Block","src":"23645:70:160","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":76279,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"23689:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76277,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"23662:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":76278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23674:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"23662:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":76280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23662:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":76281,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23703:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"23662:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76276,"id":76282,"nodeType":"Return","src":"23655:53:160"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"23596:15:160","parameters":{"id":76273,"nodeType":"ParameterList","parameters":[],"src":"23611:2:160"},"returnParameters":{"id":76276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76275,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76284,"src":"23636:7:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23636:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"23635:9:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76308,"nodeType":"FunctionDefinition","src":"23721:200:160","nodes":[],"body":{"id":76307,"nodeType":"Block","src":"23789:132:160","nodes":[],"statements":[{"assignments":[76292],"declarations":[{"constant":false,"id":76292,"mutability":"mutable","name":"slot","nameLocation":"23807:4:160","nodeType":"VariableDeclaration","scope":76307,"src":"23799:12:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76291,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23799:7:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76297,"initialValue":{"arguments":[{"id":76295,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76286,"src":"23841:9:160","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":76293,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"23814:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":76294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23829:11:160","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"23814:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23814:37:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23799:52:160"},{"expression":{"id":76305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":76301,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74141,"src":"23888:12:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76298,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"23861:11:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":76300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23873:14:160","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"23861:26:160","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":76302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23861:40:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":76303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23902:5:160","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"23861:46:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76304,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"23910:4:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"23861:53:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76306,"nodeType":"ExpressionStatement","src":"23861:53:160"}]},"implemented":true,"kind":"function","modifiers":[{"id":76289,"kind":"modifierInvocation","modifierName":{"id":76288,"name":"onlyOwner","nameLocations":["23779:9:160"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"23779:9:160"},"nodeType":"ModifierInvocation","src":"23779:9:160"}],"name":"_setStorageSlot","nameLocation":"23730:15:160","parameters":{"id":76287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76286,"mutability":"mutable","name":"namespace","nameLocation":"23760:9:160","nodeType":"VariableDeclaration","scope":76308,"src":"23746:23:160","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76285,"name":"string","nodeType":"ElementaryTypeName","src":"23746:6:160","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23745:25:160"},"returnParameters":{"id":76290,"nodeType":"ParameterList","parameters":[],"src":"23789:0:160"},"scope":76339,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76318,"nodeType":"ModifierDefinition","src":"23927:81:160","nodes":[],"body":{"id":76317,"nodeType":"Block","src":"23962:46:160","nodes":[],"statements":[{"expression":{"arguments":[{"id":76313,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76310,"src":"23984:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76312,"name":"_vaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"23972:11:160","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23972:18:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76315,"nodeType":"ExpressionStatement","src":"23972:18:160"},{"id":76316,"nodeType":"PlaceholderStatement","src":"24000:1:160"}]},"name":"vaultOwner","nameLocation":"23936:10:160","parameters":{"id":76311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76310,"mutability":"mutable","name":"vault","nameLocation":"23955:5:160","nodeType":"VariableDeclaration","scope":76318,"src":"23947:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76309,"name":"address","nodeType":"ElementaryTypeName","src":"23947:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23946:15:160"},"virtual":false,"visibility":"internal"},{"id":76338,"nodeType":"FunctionDefinition","src":"24014:181:160","nodes":[],"body":{"id":76337,"nodeType":"Block","src":"24064:131:160","nodes":[],"statements":[{"condition":{"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24078:62:160","subExpression":{"arguments":[{"id":76327,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74144,"src":"24109:18:160","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76328,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24129:3:160","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24133:6:160","memberName":"sender","nodeType":"MemberAccess","src":"24129:10:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":76324,"name":"vault","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76320,"src":"24094:5:160","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76323,"name":"IAccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43863,"src":"24079:14:160","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAccessControl_$43863_$","typeString":"type(contract IAccessControl)"}},"id":76325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24079:21:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAccessControl_$43863","typeString":"contract IAccessControl"}},"id":76326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24101:7:160","memberName":"hasRole","nodeType":"MemberAccess","referencedDeclaration":43830,"src":"24079:29:160","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":76330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24079:61:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76336,"nodeType":"IfStatement","src":"24074:115:160","trueBody":{"id":76335,"nodeType":"Block","src":"24142:47:160","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76332,"name":"NotVaultOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"24163:13:160","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24163:15:160","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":76334,"nodeType":"RevertStatement","src":"24156:22:160"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_vaultOwner","nameLocation":"24023:11:160","parameters":{"id":76321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76320,"mutability":"mutable","name":"vault","nameLocation":"24043:5:160","nodeType":"VariableDeclaration","scope":76338,"src":"24035:13:160","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76319,"name":"address","nodeType":"ElementaryTypeName","src":"24035:7:160","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24034:15:160"},"returnParameters":{"id":76322,"nodeType":"ParameterList","parameters":[],"src":"24064:0:160"},"scope":76339,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":74112,"name":"IMiddleware","nameLocations":["2364:11:160"],"nodeType":"IdentifierPath","referencedDeclaration":73432,"src":"2364:11:160"},"id":74113,"nodeType":"InheritanceSpecifier","src":"2364:11:160"},{"baseName":{"id":74114,"name":"OwnableUpgradeable","nameLocations":["2377:18:160"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"2377:18:160"},"id":74115,"nodeType":"InheritanceSpecifier","src":"2377:18:160"},{"baseName":{"id":74116,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["2397:35:160"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"2397:35:160"},"id":74117,"nodeType":"InheritanceSpecifier","src":"2397:35:160"},{"baseName":{"id":74118,"name":"UUPSUpgradeable","nameLocations":["2434:15:160"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"2434:15:160"},"id":74119,"nodeType":"InheritanceSpecifier","src":"2434:15:160"}],"canonicalName":"Middleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[76339,45567,44157,43267,41646,42808,41914,73432],"name":"Middleware","nameLocation":"2350:10:160","scope":76340,"usedErrors":[41482,41487,41663,41666,43199,44751,44764,45424,45429,46696,48098,53204,55115,73053,73056,73059,73062,73065,73068,73071,73074,73077,73080,73083,73086,73089,73092,73095,73098,73101,73104,73107,73110,73113,73116,73119,73122,73125,73128,73131,73134,73137,73140,73143,73146,73149,73152,73155,73158,73161,85985,85987,85989],"usedEvents":[41493,41671,44105]}],"license":"UNLICENSED"},"id":160} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Mirror.json b/ethexe/ethereum/abi/Mirror.json index ea9ecf0db6f..cf519e873a6 100644 --- a/ethexe/ethereum/abi/Mirror.json +++ b/ethexe/ethereum/abi/Mirror.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyCallFailed","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008657601f611be338819003918201601f19168301916001600160401b0383118484101761008a5780849260209460405283398101031261008657516001600160a01b038116810361008657608052604051611b44908161009f823960805181818161022e015281816105a5015281816113900152818161145201526114f50152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b6100166114e0565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d5761007661156d565b60015415801590610149575b1561013a576001600160801b03341661009a8161143a565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461084857806336a52a181461081b57806342129d00146106f95780635ce6c327146106d6578063701da98e146106b9578063704ed5421461052a5780637a8e0cdd1461049457806391d5a64c146104395780639ce110d714610410578063affed0e0146103f2578063e43f343314610387578063e4bbb5a8146102605763f887ea4014610219575061000e565b3461025d578060031936011261025d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461025d57606036600319011261025d576004356001600160a01b03811690819003610383576024356001600160a01b038116919082900361037f576044359081151580920361037b576102b361138e565b600354906001600160a01b03821661036c5760ff8260a01c1661035d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b03841661034e576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5580f35b638778dcd360e01b8652600486fd5b6325f368db60e11b8552600485fd5b63f20d240560e01b8552600485fd5b8380fd5b8280fd5b5080fd5b503461025d578060031936011261025d576103a06114e0565b60025460ff8116156103e3576103cc90476001600160801b03169060081c6001600160a01b0316611743565b156103d45780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b503461025d578060031936011261025d576020600154604051908152f35b503461025d578060031936011261025d576003546040516001600160a01b039091168152602090f35b503461025d57602036600319011261025d576104536114e0565b61045b61156d565b610463611588565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b50604036600319011261025d576024356001600160401b038111610383576104e17fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9136906004016112de565b6104ec9291926114e0565b6104f461156d565b6104fc611588565b6001600160801b033416906105108261143a565b610524604051928392339660043585611360565b0390a280f35b503461025d57602036600319011261025d576004356001600160801b038116809103610383576105586114e0565b61056061156d565b80610594575b60207f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c05423666791604051908152a180f35b60405163088f50cf60e41b815282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa908115610669578391610674575b50606460209260405194859384926323b872dd60e01b8452336004850152602484015287604484015260018060a01b03165af190811561066957839161063a575b50610566576303a25d1960e31b8252600482fd5b61065c915060203d602011610662575b61065481836113cf565b8101906114c8565b5f610626565b503d61064a565b6040513d85823e3d90fd5b90506020813d6020116106b1575b8161068f602093836113cf565b8101031261037f5751906001600160a01b038216820361037f579060646105e5565b3d9150610682565b503461025d578060031936011261025d5760209054604051908152f35b503461025d578060031936011261025d57602060ff600254166040519015158152f35b50604036600319011261025d576004356001600160401b038111610383576107259036906004016112de565b919060243580151580910361037f5761073c6114e0565b61074461156d565b60015415801590610807575b156107f8576001600160801b033416916107698361143a565b6001543060601b85528060145260348520945f1982146107e45750916107cb6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611340565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610750565b503461025d578060031936011261025d5760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610ee6576001600160401b0360043511610ee6576004353603610100600319820112610ee65761087f61138e565b61088d60043560040161130b565b306001600160a01b03909116036112cf576108ac60a46004350161131f565b6112b4575b60043560e401356022198201811215610ee6576001600160401b03600482813501013511610ee657600481813501013560051b3603602482600435010113610ee6576004803582010135600581901b8190046020149015171561012657610921600482813501013560051b6115a1565b5f93845b6004848135010135861015610efe57600586901b600435850190810160240135969036036101021901871215610ee65760e06023196004358701890136030112610ee6576040519160c083018381106001600160401b03821117610eea57604052600435860188016024810135845260440135906001600160a01b0382168203610ee65760208401918252606460043588018a0101356001600160401b038111610ee65760209060048b8a8235010101010136601f82011215610ee6576109f3903690602081359101611492565b6040850190815291608460043589018b0101356001600160801b0381168103610ee65760608601908152604060a3196004358b018d0136030112610ee65760405195604087018781106001600160401b03821117610eea576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610ee657602088019182526080810188905260e46004358c018e01013580151596878203610ee657600199602098610b21958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113cf565b51902086820152019660a4600435870182010135610b545760206004610b4d928882350101010161160d565b0194610925565b610b6660e4600435880183010161131f565b15610db7576001600160f81b0319610b8660c460043589018401016115f8565b5f1a60f81b161586826060925f14610d2f575f9250610bbf60606004610bc693869582350101010160206004878d8235010101016115c6565b3691611492565b886001600160801b03610bf46080600488610be860448335880183010161130b565b9582350101010161132c565b16602083519301916207a120f1610c0961140b565b5015610c16575b50610b4d565b610c43610c2b6044600435890184010161130b565b610c3d60846004358a0185010161132c565b90611743565b15610cc0575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610c7e60846004358a0185010161132c565b60a060046001600160e01b0319610c9c60c483358e018901016115f8565b16956001600160801b038551941684528b823501010101356020820152a25f610c10565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610cf36044600435890184010161130b565b610d0560846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c49565b5f928392610db291610d95610d516004358401860160648101906024016115c6565b610d6360c460043587018901016115f8565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611340565b9063ffffffff60e01b16606483015203601f1981018352826113cf565b610bc6565b610dcc610c2b6044600435890184010161130b565b15610e77575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e0a6004358801830160648101906024016115c6565b610e1c60846004358b0186010161132c565b60a060046001600160e01b0319610e3a60c483358f018a01016115f8565b16966001600160801b03610e5b604051978897606089526060890191611340565b941660208601528c8235010101013560408301520390a2610b4d565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610eaa6044600435890184010161130b565b610ebc60846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610dd2565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610ee65760043501916004830135916001600160401b038311610ee6576060830236036024850113610ee6578260051b908382046020148415171561012657610f6a82959493926115a1565b915f955f965b858810156110a757610fa8949596976001916004606083028b01019061100a611001602080850135938c816060604089019e8f61130b565b980197610fb48961132c565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152610ff46064826113cf565b519020910152019961130b565b610c3d8461132c565b1561105e576110397fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261132c565b604080519283526001600160801b0391909116602083015290a15b0196959493610f70565b6110887f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261132c565b604080519283526001600160801b0391909116602083015290a1611054565b50832091604460043501916110bb8361131f565b156112815750916020926110d360646004350161130b565b916110dc61156d565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111279183911c6001600160a01b0316611743565b15611234575b50505b8254602460043501359384809203611203575b505061115c61115660043560040161130b565b9461131f565b61116a60646004350161130b565b61117860846004350161132c565b9061118760a46004350161131f565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a81526111f860ba826113cf565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611143565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061112d565b906001600160a01b0361129860043560640161130b565b166112a557602093611130565b6304c3c7a160e41b5f5260045ffd5b6112ca6112c560846004350161132c565b61143a565b6108b1565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610ee6578235916001600160401b038311610ee65760208381860195010111610ee657565b356001600160a01b0381168103610ee65790565b358015158103610ee65790565b356001600160801b0381168103610ee65790565b908060209392818452848401375f828201840152601f01601f1916010190565b92604092611387916001600160801b03939796978652606060208701526060860191611340565b9416910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036113c057565b6375f48d7160e11b5f5260045ffd5b90601f801991011681019081106001600160401b03821117610eea57604052565b6001600160401b038111610eea57601f01601f191660200190565b3d15611435573d9061141c826113f0565b9161142a60405193846113cf565b82523d5f602084013e565b606090565b6001600160801b03168061144b5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af161147b61140b565b501561148357565b6308eb200360e41b5f5260045ffd5b92919261149e826113f0565b916114ac60405193846113cf565b829481845281830111610ee6578281602093845f960137010152565b90816020910312610ee657518015158103610ee65790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611562575f91611543575b5061153457565b63d93c066560e01b5f5260045ffd5b61155c915060203d6020116106625761065481836113cf565b5f61152d565b6040513d5f823e3d90fd5b60ff6002541661157957565b630d304b8160e31b5f5260045ffd5b6001541561159257565b631a2efd3560e31b5f5260045ffd5b6040519190601f01601f191682016001600160401b03811183821017610ee657604052565b903590601e1981360301821215610ee657018035906001600160401b038211610ee657602001918136038313610ee657565b356001600160e01b031981168103610ee65790565b61161681611770565b1561161e5750565b61162a60c0820161131f565b611697575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361169261165f6020840161130b565b61166c60408501856115c6565b61167b6060879593950161132c565b9060405194859460018060a01b0316973585611360565b0390a2565b602081015f806116a68361130b565b816116b460408701876115c6565b9190826040519384928337810182815203926207a120f16116d361140b565b50156116df575061162f565b6117097f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161130b565b6117156060840161132c565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611692565b906001600160801b0316908161175a575050600190565b5f8080938193611388f161176c61140b565b5090565b61177d60408201826115c6565b90916001600160a01b03806117946020840161130b565b16149081611b26575b5080611b1d575b15611b175781358060f81c90600182101580611b0c575b15611b045760f31c611fe016600181018310611b04576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611ada575b80611ab0575b80611a86575b80611a5c575b80611a32575b80611a08575b806119de575b806119b4575b8061198a575b80611960575b80611936575b8061190c575b806118e2575b156118d9578190035f190191826001611861826115a1565b938701018337602185013594604181013591600181036118885750505090919250a1600190565b6002810361189957505050a2600190565b600381979593969497145f146118b557505090919293a3600190565b6004146118c8575b505050505050600190565b6061013594a45f80808080806118bd565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611849565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611843565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f384141561183d565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611837565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611831565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c684141561182b565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611825565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177384141561181f565b507f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667841415611819565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611813565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497884141561180d565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611807565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611801565b505050505f90565b5060048211156117bb565b50505f90565b508015156117a4565b6001600160801b0391506060611b3c910161132c565b16155f61179d56","sourceMap":"576:19832:161:-:0;;;;;;;;;;;;;-1:-1:-1;;576:19832:161;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;1938:16;;576:19832;;;;;;;;1938:16;576:19832;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;576:19832:161;;;;;;-1:-1:-1;576:19832:161;;;;;-1:-1:-1;576:19832:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b6100166114e0565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d5761007661156d565b60015415801590610149575b1561013a576001600160801b03341661009a8161143a565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461084857806336a52a181461081b57806342129d00146106f95780635ce6c327146106d6578063701da98e146106b9578063704ed5421461052a5780637a8e0cdd1461049457806391d5a64c146104395780639ce110d714610410578063affed0e0146103f2578063e43f343314610387578063e4bbb5a8146102605763f887ea4014610219575061000e565b3461025d578060031936011261025d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461025d57606036600319011261025d576004356001600160a01b03811690819003610383576024356001600160a01b038116919082900361037f576044359081151580920361037b576102b361138e565b600354906001600160a01b03821661036c5760ff8260a01c1661035d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b03841661034e576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5580f35b638778dcd360e01b8652600486fd5b6325f368db60e11b8552600485fd5b63f20d240560e01b8552600485fd5b8380fd5b8280fd5b5080fd5b503461025d578060031936011261025d576103a06114e0565b60025460ff8116156103e3576103cc90476001600160801b03169060081c6001600160a01b0316611743565b156103d45780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b503461025d578060031936011261025d576020600154604051908152f35b503461025d578060031936011261025d576003546040516001600160a01b039091168152602090f35b503461025d57602036600319011261025d576104536114e0565b61045b61156d565b610463611588565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b50604036600319011261025d576024356001600160401b038111610383576104e17fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9136906004016112de565b6104ec9291926114e0565b6104f461156d565b6104fc611588565b6001600160801b033416906105108261143a565b610524604051928392339660043585611360565b0390a280f35b503461025d57602036600319011261025d576004356001600160801b038116809103610383576105586114e0565b61056061156d565b80610594575b60207f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c05423666791604051908152a180f35b60405163088f50cf60e41b815282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa908115610669578391610674575b50606460209260405194859384926323b872dd60e01b8452336004850152602484015287604484015260018060a01b03165af190811561066957839161063a575b50610566576303a25d1960e31b8252600482fd5b61065c915060203d602011610662575b61065481836113cf565b8101906114c8565b5f610626565b503d61064a565b6040513d85823e3d90fd5b90506020813d6020116106b1575b8161068f602093836113cf565b8101031261037f5751906001600160a01b038216820361037f579060646105e5565b3d9150610682565b503461025d578060031936011261025d5760209054604051908152f35b503461025d578060031936011261025d57602060ff600254166040519015158152f35b50604036600319011261025d576004356001600160401b038111610383576107259036906004016112de565b919060243580151580910361037f5761073c6114e0565b61074461156d565b60015415801590610807575b156107f8576001600160801b033416916107698361143a565b6001543060601b85528060145260348520945f1982146107e45750916107cb6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611340565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610750565b503461025d578060031936011261025d5760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610ee6576001600160401b0360043511610ee6576004353603610100600319820112610ee65761087f61138e565b61088d60043560040161130b565b306001600160a01b03909116036112cf576108ac60a46004350161131f565b6112b4575b60043560e401356022198201811215610ee6576001600160401b03600482813501013511610ee657600481813501013560051b3603602482600435010113610ee6576004803582010135600581901b8190046020149015171561012657610921600482813501013560051b6115a1565b5f93845b6004848135010135861015610efe57600586901b600435850190810160240135969036036101021901871215610ee65760e06023196004358701890136030112610ee6576040519160c083018381106001600160401b03821117610eea57604052600435860188016024810135845260440135906001600160a01b0382168203610ee65760208401918252606460043588018a0101356001600160401b038111610ee65760209060048b8a8235010101010136601f82011215610ee6576109f3903690602081359101611492565b6040850190815291608460043589018b0101356001600160801b0381168103610ee65760608601908152604060a3196004358b018d0136030112610ee65760405195604087018781106001600160401b03821117610eea576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610ee657602088019182526080810188905260e46004358c018e01013580151596878203610ee657600199602098610b21958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113cf565b51902086820152019660a4600435870182010135610b545760206004610b4d928882350101010161160d565b0194610925565b610b6660e4600435880183010161131f565b15610db7576001600160f81b0319610b8660c460043589018401016115f8565b5f1a60f81b161586826060925f14610d2f575f9250610bbf60606004610bc693869582350101010160206004878d8235010101016115c6565b3691611492565b886001600160801b03610bf46080600488610be860448335880183010161130b565b9582350101010161132c565b16602083519301916207a120f1610c0961140b565b5015610c16575b50610b4d565b610c43610c2b6044600435890184010161130b565b610c3d60846004358a0185010161132c565b90611743565b15610cc0575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610c7e60846004358a0185010161132c565b60a060046001600160e01b0319610c9c60c483358e018901016115f8565b16956001600160801b038551941684528b823501010101356020820152a25f610c10565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610cf36044600435890184010161130b565b610d0560846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c49565b5f928392610db291610d95610d516004358401860160648101906024016115c6565b610d6360c460043587018901016115f8565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611340565b9063ffffffff60e01b16606483015203601f1981018352826113cf565b610bc6565b610dcc610c2b6044600435890184010161130b565b15610e77575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e0a6004358801830160648101906024016115c6565b610e1c60846004358b0186010161132c565b60a060046001600160e01b0319610e3a60c483358f018a01016115f8565b16966001600160801b03610e5b604051978897606089526060890191611340565b941660208601528c8235010101013560408301520390a2610b4d565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610eaa6044600435890184010161130b565b610ebc60846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610dd2565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610ee65760043501916004830135916001600160401b038311610ee6576060830236036024850113610ee6578260051b908382046020148415171561012657610f6a82959493926115a1565b915f955f965b858810156110a757610fa8949596976001916004606083028b01019061100a611001602080850135938c816060604089019e8f61130b565b980197610fb48961132c565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152610ff46064826113cf565b519020910152019961130b565b610c3d8461132c565b1561105e576110397fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261132c565b604080519283526001600160801b0391909116602083015290a15b0196959493610f70565b6110887f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261132c565b604080519283526001600160801b0391909116602083015290a1611054565b50832091604460043501916110bb8361131f565b156112815750916020926110d360646004350161130b565b916110dc61156d565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111279183911c6001600160a01b0316611743565b15611234575b50505b8254602460043501359384809203611203575b505061115c61115660043560040161130b565b9461131f565b61116a60646004350161130b565b61117860846004350161132c565b9061118760a46004350161131f565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a81526111f860ba826113cf565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611143565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061112d565b906001600160a01b0361129860043560640161130b565b166112a557602093611130565b6304c3c7a160e41b5f5260045ffd5b6112ca6112c560846004350161132c565b61143a565b6108b1565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610ee6578235916001600160401b038311610ee65760208381860195010111610ee657565b356001600160a01b0381168103610ee65790565b358015158103610ee65790565b356001600160801b0381168103610ee65790565b908060209392818452848401375f828201840152601f01601f1916010190565b92604092611387916001600160801b03939796978652606060208701526060860191611340565b9416910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036113c057565b6375f48d7160e11b5f5260045ffd5b90601f801991011681019081106001600160401b03821117610eea57604052565b6001600160401b038111610eea57601f01601f191660200190565b3d15611435573d9061141c826113f0565b9161142a60405193846113cf565b82523d5f602084013e565b606090565b6001600160801b03168061144b5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af161147b61140b565b501561148357565b6308eb200360e41b5f5260045ffd5b92919261149e826113f0565b916114ac60405193846113cf565b829481845281830111610ee6578281602093845f960137010152565b90816020910312610ee657518015158103610ee65790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611562575f91611543575b5061153457565b63d93c066560e01b5f5260045ffd5b61155c915060203d6020116106625761065481836113cf565b5f61152d565b6040513d5f823e3d90fd5b60ff6002541661157957565b630d304b8160e31b5f5260045ffd5b6001541561159257565b631a2efd3560e31b5f5260045ffd5b6040519190601f01601f191682016001600160401b03811183821017610ee657604052565b903590601e1981360301821215610ee657018035906001600160401b038211610ee657602001918136038313610ee657565b356001600160e01b031981168103610ee65790565b61161681611770565b1561161e5750565b61162a60c0820161131f565b611697575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361169261165f6020840161130b565b61166c60408501856115c6565b61167b6060879593950161132c565b9060405194859460018060a01b0316973585611360565b0390a2565b602081015f806116a68361130b565b816116b460408701876115c6565b9190826040519384928337810182815203926207a120f16116d361140b565b50156116df575061162f565b6117097f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161130b565b6117156060840161132c565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611692565b906001600160801b0316908161175a575050600190565b5f8080938193611388f161176c61140b565b5090565b61177d60408201826115c6565b90916001600160a01b03806117946020840161130b565b16149081611b26575b5080611b1d575b15611b175781358060f81c90600182101580611b0c575b15611b045760f31c611fe016600181018310611b04576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611ada575b80611ab0575b80611a86575b80611a5c575b80611a32575b80611a08575b806119de575b806119b4575b8061198a575b80611960575b80611936575b8061190c575b806118e2575b156118d9578190035f190191826001611861826115a1565b938701018337602185013594604181013591600181036118885750505090919250a1600190565b6002810361189957505050a2600190565b600381979593969497145f146118b557505090919293a3600190565b6004146118c8575b505050505050600190565b6061013594a45f80808080806118bd565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611849565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611843565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f384141561183d565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611837565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611831565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c684141561182b565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611825565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177384141561181f565b507f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667841415611819565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611813565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497884141561180d565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611807565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611801565b505050505f90565b5060048211156117bb565b50505f90565b508015156117a4565b6001600160801b0391506060611b3c910161132c565b16155f61179d56","sourceMap":"576:19832:161:-:0;;;;;;;;;-1:-1:-1;3499:69:161;;:::i;:::-;19429:9;:13;;:37;;;-1:-1:-1;19425:975:161;;;19536:33;576:19832;;;-1:-1:-1;;;;;19429:9:161;576:19832;;;19536:33;576:19832;19425:975;576:19832;19591:7;576:19832;;;;19590:8;:35;;;19425:975;19586:814;;;2811:67;;:::i;:::-;2621:5;576:19832;2621:9;;;:38;;;19586:814;576:19832;;;-1:-1:-1;;;;;19429:9:161;576:19832;8542:6;;;:::i;:::-;2621:5;576:19832;8612:154;;;;19441:1;8612:154;;;;;19441:1;8612:154;576:19832;;;;;;;2621:5;576:19832;2621:5;576:19832;8798:70;576:19832;;;;;;;;;;;;;;;;;;19441:1;576:19832;;;;19441:1;576:19832;;;;;;;;;;;;;;;;;;;;20041:88;20186:14;;8612:154;576:19832;;;8827:10;;8798:70;;;;19441:1;20216:115;576:19832;19441:1;20216:115;576:19832;;;;19441:1;576:19832;;;;;19441:1;576:19832;;;;;19441:1;576:19832;;19441:1;576:19832;2621:38;-1:-1:-1;19591:7:161;576:19832;-1:-1:-1;;;;;576:19832:161;2634:10;:25;2621:38;;19586:814;20368:21;;;19441:1;20368:21;576:19832;19441:1;20368:21;19590:35;576:19832;19621:4;576:19832;19602:23;;19590:35;;19429:37;576:19832;;19446:20;19429:37;;576:19832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1026:31;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;-1:-1:-1;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;3322:63;;:::i;:::-;5831:11;576:19832;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;811:66:53;576:19832:161;;-1:-1:-1;;;;;576:19832:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;5831:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;576:19832:161;;811:66:53;-1:-1:-1;;;811:66:53;;576:19832:161;811:66:53;;576:19832:161;-1:-1:-1;;;576:19832:161;;;;;;-1:-1:-1;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3499:69;;:::i;:::-;3199:6;576:19832;;;;;;;8245:37;;7997:21;-1:-1:-1;;;;;576:19832:161;;;;-1:-1:-1;;;;;576:19832:161;8245:37;:::i;:::-;576:19832;;;;;;-1:-1:-1;;;576:19832:161;;;;;;-1:-1:-1;;;576:19832:161;;;;;;;;;;;;;;;;;;;1328:20;576:19832;;;;;;;;;;;;;;;;;;;;1671:26;576:19832;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;-1:-1:-1;;576:19832:161;;;;3499:69;;:::i;:::-;2811:67;;:::i;:::-;2080:83;;:::i;:::-;576:19832;;;;;;5216:46;576:19832;5251:10;5216:46;;576:19832;;;-1:-1:-1;576:19832:161;;-1:-1:-1;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;4960:64;576:19832;;;;;;:::i;:::-;3499:69;;;;;:::i;:::-;2811:67;;:::i;:::-;2080:83;;:::i;:::-;-1:-1:-1;;;;;4899:9:161;576:19832;4937:6;;;;:::i;:::-;4960:64;576:19832;;4995:10;;;;576:19832;;;4960:64;;:::i;:::-;;;;576:19832;;;;;;;;;-1:-1:-1;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;3499:69;;:::i;:::-;2811:67;;:::i;:::-;3961:10;3957:163;;576:19832;;5397:39;576:19832;;;;;;5397:39;576:19832;;3957:163;576:19832;;-1:-1:-1;;;19028:33:161;;576:19832;;4009:6;-1:-1:-1;;;;;576:19832:161;;;;;;;19028:33;;;;;;;;;;;3957:163;576:19832;4002:54;576:19832;;;;;;;;;;;;4002:54;;4030:10;576:19832;4002:54;;576:19832;;;;;;;;;;;;;;;;4002:54;;;;;;;;;;;3957:163;576:19832;3957:163;576:19832;-1:-1:-1;;;576:19832:161;;;;;4002:54;;;;576:19832;4002:54;576:19832;4002:54;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;576:19832;;;;;;;;;19028:33;;;576:19832;19028:33;;576:19832;19028:33;;;;;;576:19832;19028:33;;;:::i;:::-;;;576:19832;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;19028:33;4002:54;19028:33;;;;;-1:-1:-1;19028:33:161;;576:19832;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1423:18;576:19832;;;;;;;;;;;-1:-1:-1;576:19832:161;;-1:-1:-1;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3499:69;;:::i;:::-;2811:67;;:::i;:::-;2621:5;576:19832;2621:9;;;:38;;;576:19832;;;;-1:-1:-1;;;;;8504:9:161;576:19832;8542:6;;;;:::i;:::-;2621:5;576:19832;8612:154;;;;;;;;;;;576:19832;;;;;;;;;;;;;2621:5;8798:70;576:19832;;2621:5;576:19832;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;8612:154;576:19832;;;8827:10;;8798:70;;;;576:19832;;;;;;;-1:-1:-1;;;576:19832:161;;;;;;;;;-1:-1:-1;;;576:19832:161;;;;;2621:38;-1:-1:-1;2648:11:161;576:19832;-1:-1:-1;;;;;576:19832:161;2634:10;:25;2621:38;;576:19832;;;;;;;;;;;;;1576:24;576:19832;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;-1:-1:-1;576:19832:161;;-1:-1:-1;;576:19832:161;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;-1:-1:-1;;576:19832:161;;;;;3322:63;;:::i;:::-;6524:19;576:19832;;;;6524:19;:::i;:::-;6555:4;-1:-1:-1;;;;;576:19832:161;;;6524:36;576:19832;;6689:38;;576:19832;;6689:38;;:::i;:::-;6685:113;;576:19832;;;6896:20;;576:19832;-1:-1:-1;;576:19832:161;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9331:35;576:19832;;;;;;;;;9331:35;:::i;:::-;576:19832;;;9442:3;576:19832;;;;;;;9425:15;;;;;576:19832;;;;;;;;;;;;;;;;;;-1:-1:-1;;576:19832:161;;;;;;;-1:-1:-1;;576:19832:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;-1:-1:-1;;576:19832:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8821:273:169;576:19832:161;;;;6689:38;576:19832;;;;;;;8920:15:169;;576:19832:161;;;;;;;;;;;;;;;8821:273:169;;;;;;576:19832:161;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;8821:273:169;;;;;;;;;;:::i;:::-;576:19832:161;8798:306:169;;4093:83:22;;;;576:19832:161;;;;;;;;;;;6689:38;;576:19832;;9945:7;576:19832;;;;;;;;9945:7;:::i;:::-;576:19832;9410:13;;;9871:162;15430:13;576:19832;;;;;;;;15430:13;:::i;:::-;576:19832;;;-1:-1:-1;;;;;;15481:26:161;576:19832;;;;;;;;15481:26;:::i;:::-;576:19832;15481:29;576:19832;;;15481:34;15530:20;;576:19832;15565:433;;;;;576:19832;;;15613:16;576:19832;;;;;;;;;;;;;;;;;;;;;;15613:16;:::i;:::-;576:19832;;;:::i;:::-;;-1:-1:-1;;;;;16077:14:161;576:19832;;;16030:20;576:19832;;;;;;;;16030:20;:::i;:::-;576:19832;;;;;;;16077:14;:::i;:::-;576:19832;;16030:71;;;;;16061:7;16030:71;;;:::i;:::-;;16120:8;16116:474;;15565:433;15426:1523;9871:162;;16116:474;16171:52;16186:20;576:19832;;;;;;;;16186:20;:::i;:::-;16208:14;576:19832;;;;;;;;16208:14;:::i;:::-;16171:52;;:::i;:::-;16245:16;16241:125;;16116:474;16490:85;576:19832;16506:14;576:19832;;;;;;;;16506:14;:::i;:::-;6689:38;576:19832;-1:-1:-1;;;;;;16548:26:161;576:19832;;;;;;;;16548:26;:::i;:::-;576:19832;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;16490:85;16116:474;;;16241:125;16290:57;16310:20;576:19832;;;;;;;;16310:20;:::i;:::-;16332:14;576:19832;;;;;;;;16332:14;:::i;:::-;576:19832;;;-1:-1:-1;;;;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;16290:57;16241:125;;15565:433;576:19832;;;;15830:153;;576:19832;15921:16;576:19832;;;;;;;;;;;;15921:16;:::i;:::-;15939:26;576:19832;;;;;;;;15939:26;:::i;:::-;576:19832;;;;;15874:32;;;;;;15830:153;;;;576:19832;;;;;;;15830:153;;;576:19832;;;;;;;;;;:::i;:::-;;;;;;;;;;15830:153;576:19832;;15830:153;;;;;;:::i;:::-;15565:433;;15426:1523;16643:52;16658:20;576:19832;;;;;;;;16658:20;:::i;16643:52::-;16713:16;16709:117;;15426:1523;16845:93;16851:16;576:19832;;;;;;;;;;;;16851:16;:::i;:::-;16869:14;576:19832;;;;;;;;16869:14;:::i;:::-;6689:38;576:19832;-1:-1:-1;;;;;;16911:26:161;576:19832;;;;;;;;16911:26;:::i;:::-;576:19832;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16845:93;;;9871:162;;16709:117;16754:57;16774:20;576:19832;;;;;;;;16774:20;:::i;:::-;16796:14;576:19832;;;;;;;;16796:14;:::i;:::-;576:19832;;;-1:-1:-1;;;;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;16754:57;16709:117;;576:19832;;;;;;;;;;;;;;;;9425:15;;;;576:19832;9425:15;576:19832;;;;;;;1083:131:25;;576:19832:161;7011:23;576:19832;;7011:23;576:19832;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17276:33;;;;;;;:::i;:::-;17319:18;576:19832;17353:13;576:19832;17348:628;17383:3;17368:13;;;;;;17516:17;576:19832;;;;;;;;;;;;;;17723:46;17738:17;576:19832;;;;;17516:17;;;576:19832;;17516:17;;;;;:::i;:::-;17535:11;;;;;;:::i;:::-;576:19832;;9258:50:169;;;;576:19832:161;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;9258:50:169;;;;;;:::i;:::-;576:19832:161;9248:61:169;;4093:83:22;;;576:19832:161;17738:17;;:::i;:::-;17757:11;;;:::i;17723:46::-;17757:11;;;17849;17819:42;17849:11;;:::i;:::-;576:19832;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;17819:42;17783:183;576:19832;17353:13;;;;;;17783:183;17939:11;17905:46;17939:11;;:::i;:::-;576:19832;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;17905:46;17783:183;;17368:13;;;1083:131:25;576:19832:161;;;;7092:18;;;;;:::i;:::-;;;;576:19832;;;;7140:21;9258:50:169;576:19832:161;;7140:21;;:::i;:::-;2811:67;;;:::i;:::-;18242:13;576:19832;;-1:-1:-1;;;;;;576:19832:161;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;-1:-1:-1;;576:19832:161;7997:21;-1:-1:-1;;;;;576:19832:161;;8245:37;;576:19832;;;-1:-1:-1;;;;;576:19832:161;8245:37;:::i;:::-;18443:8;18439:200;;7088:183;;;;576:19832;;7349:24;576:19832;;7349:24;576:19832;7336:37;;;;;7332:110;;7088:183;576:19832;;7628:18;7557:19;576:19832;;;;7557:19;:::i;:::-;7628:18;;:::i;:::-;7660:21;9258:50:169;576:19832:161;;7660:21;;:::i;:::-;7695:26;;576:19832;;7695:26;;:::i;:::-;576:19832;7735:38;6689;576:19832;;6689:38;7735;:::i;:::-;576:19832;;;9672:279:169;;;;576:19832:161;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;;;;;;;;;;;9672:279:169;;;;;;:::i;:::-;576:19832:161;9649:312:169;;576:19832:161;;;;;;7332:110;576:19832;18856:23;576:19832;;;;;;18856:23;7332:110;;;;18439:200;576:19832;;;-1:-1:-1;;;;;576:19832:161;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;18573:55;;;18439:200;;;;7088:183;576:19832;-1:-1:-1;;;;;7201:21:161;576:19832;;9258:50:169;7201:21:161;;:::i;:::-;576:19832;;;;7088:183;;;576:19832;;;;;;;;;6685:113;6760:26;;;576:19832;;6760:26;;:::i;:::-;;:::i;:::-;6685:113;;576:19832;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;576:19832:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;576:19832:161;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;576:19832:161;;;;;;;;-1:-1:-1;;576:19832:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;3391:102::-;3460:6;-1:-1:-1;;;;;576:19832:161;3446:10;:20;576:19832;;3391:102::o;576:19832::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;:::o;:::-;-1:-1:-1;;;;;576:19832:161;;;;;;-1:-1:-1;;576:19832:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;576:19832:161;;;;:::o;:::-;;;:::o;4248:215::-;-1:-1:-1;;;;;576:19832:161;4312:10;4308:149;;4248:215;:::o;4308:149::-;4321:1;4356:6;;;;;:29;;;;:::i;:::-;;576:19832;;;4248:215::o;576:19832::-;;;;4321:1;576:19832;;4321:1;576:19832;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;576:19832:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;3574:108::-;576:19832;;-1:-1:-1;;;3633:24:161;;;576:19832;3633:24;576:19832;3641:6;-1:-1:-1;;;;;576:19832:161;3633:24;;;;;;;-1:-1:-1;3633:24:161;;;3574:108;3632:25;576:19832;;3574:108::o;576:19832::-;;;;-1:-1:-1;576:19832:161;3633:24;-1:-1:-1;576:19832:161;3633:24;;;;;;;;;;;;;;:::i;:::-;;;;;576:19832;;;;;;;;;2884:89;576:19832;2942:6;576:19832;;;;2884:89::o;576:19832::-;;;;-1:-1:-1;576:19832:161;;-1:-1:-1;576:19832:161;2169:107;2234:5;576:19832;2234:9;576:19832;;2169:107::o;576:19832::-;;;;-1:-1:-1;576:19832:161;;-1:-1:-1;576:19832:161;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;576:19832:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;576:19832:161;;;;;;;:::o;10205:657::-;10291:36;;;:::i;:::-;10290:37;10286:570;;10205:657;:::o;10286:570::-;10347:13;;;;;:::i;:::-;10343:407;;10286:570;10769:76;;10790:20;;;;;:::i;:::-;10812:16;;;;;;:::i;:::-;10830:14;;;;;;;;:::i;:::-;576:19832;10812:16;576:19832;;;;;;;;;;;;10769:76;;:::i;:::-;;;;10205:657::o;10343:407::-;10398:20;;;-1:-1:-1;10398:20:161;;;;:::i;:::-;10438:16;;;;;;;:::i;:::-;576:19832;;;10438:16;576:19832;;;;;;;;;;;10398:57;;10429:7;10398:57;;;:::i;:::-;;10478:8;10474:262;;10343:407;;;10474:262;10651:20;10620:68;10651:20;;:::i;:::-;10673:14;;;;;:::i;:::-;10438:16;576:19832;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;-1:-1:-1;;;;;576:19832:161;;;;;;;;;10620:68;576:19832;19114:253;;-1:-1:-1;;;;;576:19832:161;19211:10;;19207:133;;19349:11;;19356:4;19114:253;:::o;19207:133::-;576:19832;19255:46;;;;;19277:5;19255:46;;;:::i;:::-;;19315:14;:::o;10982:4292::-;11108:16;;;;;;:::i;:::-;576:19832;;-1:-1:-1;;;;;576:19832:161;11703:20;;;;;:::i;:::-;576:19832;11703:38;:61;;;;10982:4292;11703:83;;;;10982:4292;11701:86;11697:129;;11866:212;;;;;12094:17;12110:1;12094:17;;;:38;;;10982:4292;12092:41;12088:84;;833:42;;;;12110:1;576:19832;;12313:37;;12307:83;;12110:1;12480:95;;;13146:31;13156:21;13146:31;;;:90;;;10982:4292;13146:147;;;10982:4292;13146:204;;;10982:4292;13146:265;;;10982:4292;13146:331;;;10982:4292;13146:373;;;10982:4292;13146:425;;;10982:4292;13146:465;;;10982:4292;13146:515;;;10982:4292;13146:562;;;10982:4292;13146:633;;;10982:4292;13146:687;;;10982:4292;13146:738;;;10982:4292;13131:763;13127:806;;833:42;;;-1:-1:-1;;833:42:161;;;12110:1;14103:21;833:42;14103:21;:::i;:::-;14134:117;;;;;;14434:216;;;;;;;;;;12110:1;14664:17;;12110:1;;14697:83;;;;;;;;12110:1;10982:4292;:::o;14660:586::-;14816:1;14800:17;;14816:1;;14833:91;;;;12110:1;10982:4292;:::o;14796:450::-;14960:1;14944:17;;;;;;;;14940:306;14960:1;;;14977:99;;;;;;;12110:1;10982:4292;:::o;14940:306::-;15112:1;15096:17;15092:154;;14940:306;;;;;;;12110:1;10982:4292;:::o;15092:154::-;14434:216;;;15129:107;;15092:154;;;;;;;;13127:806;13910:12;;;;;576:19832;13910:12;:::o;13146:738::-;13849:35;13859:25;13849:35;;;13146:738;;:687;13795:38;13805:28;13795:38;;;13146:687;;:633;13724:55;13734:45;13724:55;;;13146:633;;:562;13677:31;13687:21;13677:31;;;13146:562;;:515;13627:34;13637:24;13627:34;;;13146:515;;:465;13587:24;13597:14;13587:24;;;13146:465;;:425;13535:36;13545:26;13535:36;;;13146:425;;:373;13493:26;13503:16;13493:26;;;13146:373;;:331;13427:50;13437:40;13427:50;;;13146:331;;:265;13366:45;13376:35;13366:45;;;13146:265;;:204;13309:41;13319:31;13309:41;;;13146:204;;:147;13252:41;13262:31;13252:41;;;13146:147;;:90;13193:43;13203:33;13193:43;;;13146:90;;12307:83;12367:12;;;;576:19832;12367:12;:::o;12094:38::-;12115:17;12131:1;12115:17;;;12094:38;;11697:129;11803:12;;576:19832;11803:12;:::o;11703:83::-;11768:18;;;;11703:83;;:61;-1:-1:-1;;;;;11745:14:161;;;;;;;:::i;:::-;576:19832;11745:19;11703:61;;","linkReferences":{},"immutableReferences":{"76368":[{"start":558,"length":32},{"start":1445,"length":32},{"start":5008,"length":32},{"start":5202,"length":32},{"start":5365,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool)":"e4bbb5a8","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"Reverts when the Router is paused and pause-protected Mirror call is attempted.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts. NOTE: It's event for USERS: it informs about failed message call from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts. NOTE: It's event for USERS: it informs about failed reply call from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance. NOTE: It's event for USERS: it informs about failed value claim.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable router address.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events: https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"The bool flag indicates whether to process arbitrary calls as `sendMessage` payload.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the router contract, which is the sole authority.\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"router()\":{\"notice\":\"forge-lint: disable-next-item(screaming-snake-case-immutable)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x59b2c459562d95a574b7d578ae7780798034c66d6c8504dcc9d04ad68da2b25a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://314f3f21da1fb9b985d282d07816b37f03706a12e0cc74f461fffd3ddd3a0e35\",\"dweb:/ipfs/QmXjkU3LXfPzQY7fyyqytxrAjosWBZsMmRvvc62noRAqjp\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xb69ad2881333c466b4c115dce8795ed1f21b52b00fbc929b5d0c76ee336f253b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://25f1d70354c1b804b0de6c779690401a9043037e26ee8bf0d55bc1bdd0c1a876\",\"dweb:/ipfs/QmS9DmLZHTSovhwyHykzCQf73yie2NBFN5qTEDdBiuAGpg\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a\",\"dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808\",\"dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f\"]},\"src/Mirror.sol\":{\"keccak256\":\"0x112457ded8e0abf9eeb76da10593fd4052d9e3f016087c16118b0f74fb9ed7be\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://e24db4dca86259503523ac86c556d8031aefa218d8080b39b8b5b45adafa76b9\",\"dweb:/ipfs/QmYEwxoBdq3c3A7cPED4Ef1cYEkzxkbXZ8CYhKNBxNGoVv\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"ReplyCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Minimal constructor that only sets the immutable router address."}},"version":1},"userdoc":{"kind":"user","methods":{"router()":{"notice":"forge-lint: disable-next-item(screaming-snake-case-immutable)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x59b2c459562d95a574b7d578ae7780798034c66d6c8504dcc9d04ad68da2b25a","urls":["bzz-raw://314f3f21da1fb9b985d282d07816b37f03706a12e0cc74f461fffd3ddd3a0e35","dweb:/ipfs/QmXjkU3LXfPzQY7fyyqytxrAjosWBZsMmRvvc62noRAqjp"],"license":"UNLICENSED"},"src/IMirror.sol":{"keccak256":"0xb69ad2881333c466b4c115dce8795ed1f21b52b00fbc929b5d0c76ee336f253b","urls":["bzz-raw://25f1d70354c1b804b0de6c779690401a9043037e26ee8bf0d55bc1bdd0c1a876","dweb:/ipfs/QmS9DmLZHTSovhwyHykzCQf73yie2NBFN5qTEDdBiuAGpg"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa","urls":["bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a","dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd","urls":["bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808","dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0x112457ded8e0abf9eeb76da10593fd4052d9e3f016087c16118b0f74fb9ed7be","urls":["bzz-raw://e24db4dca86259503523ac86c556d8031aefa218d8080b39b8b5b45adafa76b9","dweb:/ipfs/QmYEwxoBdq3c3A7cPED4Ef1cYEkzxkbXZ8CYhKNBxNGoVv"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":76371,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":76374,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":76377,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":76380,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":76383,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":76386,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":77696,"exportedSymbols":{"ERC1967Utils":[45025],"Gear":[82248],"Hashes":[40807],"ICallbacks":[73043],"IMirror":[73658],"IRouter":[74052],"IWrappedVara":[74063],"Memory":[40581],"Mirror":[77695],"StorageSlot":[48413]},"nodeType":"SourceUnit","src":"39:20370:161","nodes":[{"id":76341,"nodeType":"PragmaDirective","src":"39:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":76343,"nodeType":"ImportDirective","src":"65:44:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"./ICallbacks.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":73044,"symbolAliases":[{"foreign":{"id":76342,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73043,"src":"73:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76345,"nodeType":"ImportDirective","src":"110:38:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":76344,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"118:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76347,"nodeType":"ImportDirective","src":"149:38:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":76346,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"157:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76349,"nodeType":"ImportDirective","src":"188:48:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"./IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":74064,"symbolAliases":[{"foreign":{"id":76348,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"196:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76351,"nodeType":"ImportDirective","src":"237:42:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":82249,"symbolAliases":[{"foreign":{"id":76350,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"245:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76353,"nodeType":"ImportDirective","src":"280:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":45026,"symbolAliases":[{"foreign":{"id":76352,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"288:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76355,"nodeType":"ImportDirective","src":"365:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":76354,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"373:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76357,"nodeType":"ImportDirective","src":"440:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":40582,"symbolAliases":[{"foreign":{"id":76356,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"448:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76359,"nodeType":"ImportDirective","src":"501:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":77696,"sourceUnit":40808,"symbolAliases":[{"foreign":{"id":76358,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"509:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77695,"nodeType":"ContractDefinition","src":"576:19832:161","nodes":[{"id":76365,"nodeType":"VariableDeclaration","src":"790:85:161","nodes":[],"constant":true,"documentation":{"id":76362,"nodeType":"StructuredDocumentation","src":"609:176:161","text":"@dev Special address to which Sails contract sends messages so that Mirror can decode events:\n https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"816:14:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76363,"name":"address","nodeType":"ElementaryTypeName","src":"790:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":76364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"833:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":76368,"nodeType":"VariableDeclaration","src":"1026:31:161","nodes":[],"baseFunctions":[73586],"constant":false,"documentation":{"id":76366,"nodeType":"StructuredDocumentation","src":"882:139:161","text":"forge-lint: disable-next-item(screaming-snake-case-immutable)\n @dev Address of the router contract, which is the sole authority."},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"1051:6:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76367,"name":"address","nodeType":"ElementaryTypeName","src":"1026:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76371,"nodeType":"VariableDeclaration","src":"1107:24:161","nodes":[],"baseFunctions":[73591],"constant":false,"documentation":{"id":76369,"nodeType":"StructuredDocumentation","src":"1064:38:161","text":"@dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"1122:9:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1107:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76374,"nodeType":"VariableDeclaration","src":"1328:20:161","nodes":[],"baseFunctions":[73596],"constant":false,"documentation":{"id":76372,"nodeType":"StructuredDocumentation","src":"1138:185:161","text":"@dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"1343:5:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76377,"nodeType":"VariableDeclaration","src":"1423:18:161","nodes":[],"baseFunctions":[73601],"constant":false,"documentation":{"id":76375,"nodeType":"StructuredDocumentation","src":"1355:63:161","text":"@dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"1435:6:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76376,"name":"bool","nodeType":"ElementaryTypeName","src":"1423:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76380,"nodeType":"VariableDeclaration","src":"1576:24:161","nodes":[],"baseFunctions":[73606],"constant":false,"documentation":{"id":76378,"nodeType":"StructuredDocumentation","src":"1496:75:161","text":"@dev The address of the inheritor, which is set by the program on exit."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"1591:9:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76379,"name":"address","nodeType":"ElementaryTypeName","src":"1576:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76383,"nodeType":"VariableDeclaration","src":"1671:26:161","nodes":[],"baseFunctions":[73611],"constant":false,"documentation":{"id":76381,"nodeType":"StructuredDocumentation","src":"1607:59:161","text":"@dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"1686:11:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76382,"name":"address","nodeType":"ElementaryTypeName","src":"1671:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76386,"nodeType":"VariableDeclaration","src":"1802:12:161","nodes":[],"constant":false,"documentation":{"id":76384,"nodeType":"StructuredDocumentation","src":"1704:93:161","text":"@dev The bool flag indicates whether to process arbitrary calls as `sendMessage` payload."},"mutability":"mutable","name":"isSmall","nameLocation":"1807:7:161","scope":77695,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76385,"name":"bool","nodeType":"ElementaryTypeName","src":"1802:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":76397,"nodeType":"FunctionDefinition","src":"1899:62:161","nodes":[],"body":{"id":76396,"nodeType":"Block","src":"1928:33:161","nodes":[],"statements":[{"expression":{"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76392,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"1938:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76393,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76389,"src":"1947:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1938:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76395,"nodeType":"ExpressionStatement","src":"1938:16:161"}]},"documentation":{"id":76387,"nodeType":"StructuredDocumentation","src":"1821:73:161","text":"@dev Minimal constructor that only sets the immutable router address."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76389,"mutability":"mutable","name":"_router","nameLocation":"1919:7:161","nodeType":"VariableDeclaration","scope":76397,"src":"1911:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76388,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1910:17:161"},"returnParameters":{"id":76391,"nodeType":"ParameterList","parameters":[],"src":"1928:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76405,"nodeType":"ModifierDefinition","src":"2080:83:161","nodes":[],"body":{"id":76404,"nodeType":"Block","src":"2112:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76400,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76417,"src":"2122:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76402,"nodeType":"ExpressionStatement","src":"2122:23:161"},{"id":76403,"nodeType":"PlaceholderStatement","src":"2155:1:161"}]},"documentation":{"id":76398,"nodeType":"StructuredDocumentation","src":"1967:108:161","text":"@dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"2089:20:161","parameters":{"id":76399,"nodeType":"ParameterList","parameters":[],"src":"2109:2:161"},"virtual":false,"visibility":"internal"},{"id":76417,"nodeType":"FunctionDefinition","src":"2169:107:161","nodes":[],"body":{"id":76416,"nodeType":"Block","src":"2216:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76409,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"2234:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2242:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2234:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76412,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73552,"src":"2245:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2245:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76408,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2226:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2226:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76415,"nodeType":"ExpressionStatement","src":"2226:43:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"2178:21:161","parameters":{"id":76406,"nodeType":"ParameterList","parameters":[],"src":"2199:2:161"},"returnParameters":{"id":76407,"nodeType":"ParameterList","parameters":[],"src":"2216:0:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76425,"nodeType":"ModifierDefinition","src":"2428:109:161","nodes":[],"body":{"id":76424,"nodeType":"Block","src":"2473:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76420,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76442,"src":"2483:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2483:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76422,"nodeType":"ExpressionStatement","src":"2483:36:161"},{"id":76423,"nodeType":"PlaceholderStatement","src":"2529:1:161"}]},"documentation":{"id":76418,"nodeType":"StructuredDocumentation","src":"2282:141:161","text":"@dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"2437:33:161","parameters":{"id":76419,"nodeType":"ParameterList","parameters":[],"src":"2470:2:161"},"virtual":false,"visibility":"internal"},{"id":76442,"nodeType":"FunctionDefinition","src":"2543:172:161","nodes":[],"body":{"id":76441,"nodeType":"Block","src":"2603:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76429,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"2621:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2629:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2621:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76432,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2634:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2638:6:161","memberName":"sender","nodeType":"MemberAccess","src":"2634:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76434,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"2648:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2634:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2621:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76437,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73554,"src":"2661:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2661:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76428,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2613:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2613:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76440,"nodeType":"ExpressionStatement","src":"2613:95:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"2552:34:161","parameters":{"id":76426,"nodeType":"ParameterList","parameters":[],"src":"2586:2:161"},"returnParameters":{"id":76427,"nodeType":"ParameterList","parameters":[],"src":"2603:0:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76450,"nodeType":"ModifierDefinition","src":"2811:67:161","nodes":[],"body":{"id":76449,"nodeType":"Block","src":"2835:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76445,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76461,"src":"2845:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2845:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76447,"nodeType":"ExpressionStatement","src":"2845:15:161"},{"id":76448,"nodeType":"PlaceholderStatement","src":"2870:1:161"}]},"documentation":{"id":76443,"nodeType":"StructuredDocumentation","src":"2721:85:161","text":"@dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"2820:12:161","parameters":{"id":76444,"nodeType":"ParameterList","parameters":[],"src":"2832:2:161"},"virtual":false,"visibility":"internal"},{"id":76461,"nodeType":"FunctionDefinition","src":"2884:89:161","nodes":[],"body":{"id":76460,"nodeType":"Block","src":"2923:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2941:7:161","subExpression":{"id":76454,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"2942:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76456,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73556,"src":"2950:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2950:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76453,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2933:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2933:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76459,"nodeType":"ExpressionStatement","src":"2933:33:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"2893:13:161","parameters":{"id":76451,"nodeType":"ParameterList","parameters":[],"src":"2906:2:161"},"returnParameters":{"id":76452,"nodeType":"ParameterList","parameters":[],"src":"2923:0:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76469,"nodeType":"ModifierDefinition","src":"3069:67:161","nodes":[],"body":{"id":76468,"nodeType":"Block","src":"3093:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76464,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76479,"src":"3103:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3103:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76466,"nodeType":"ExpressionStatement","src":"3103:15:161"},{"id":76467,"nodeType":"PlaceholderStatement","src":"3128:1:161"}]},"documentation":{"id":76462,"nodeType":"StructuredDocumentation","src":"2979:85:161","text":"@dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"3078:12:161","parameters":{"id":76463,"nodeType":"ParameterList","parameters":[],"src":"3090:2:161"},"virtual":false,"visibility":"internal"},{"id":76479,"nodeType":"FunctionDefinition","src":"3142:91:161","nodes":[],"body":{"id":76478,"nodeType":"Block","src":"3181:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76473,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"3199:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76474,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73558,"src":"3207:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3207:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76472,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3191:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76477,"nodeType":"ExpressionStatement","src":"3191:35:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"3151:13:161","parameters":{"id":76470,"nodeType":"ParameterList","parameters":[],"src":"3164:2:161"},"returnParameters":{"id":76471,"nodeType":"ParameterList","parameters":[],"src":"3181:0:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76487,"nodeType":"ModifierDefinition","src":"3322:63:161","nodes":[],"body":{"id":76486,"nodeType":"Block","src":"3344:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76482,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76500,"src":"3354:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3354:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76484,"nodeType":"ExpressionStatement","src":"3354:13:161"},{"id":76485,"nodeType":"PlaceholderStatement","src":"3377:1:161"}]},"documentation":{"id":76480,"nodeType":"StructuredDocumentation","src":"3239:78:161","text":"@dev Functions marked with this modifier can only be called by the router."},"name":"onlyRouter","nameLocation":"3331:10:161","parameters":{"id":76481,"nodeType":"ParameterList","parameters":[],"src":"3341:2:161"},"virtual":false,"visibility":"internal"},{"id":76500,"nodeType":"FunctionDefinition","src":"3391:102:161","nodes":[],"body":{"id":76499,"nodeType":"Block","src":"3428:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76491,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3446:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3450:6:161","memberName":"sender","nodeType":"MemberAccess","src":"3446:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76493,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"3460:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3446:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76495,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"3468:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3468:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76490,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3438:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3438:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76498,"nodeType":"ExpressionStatement","src":"3438:48:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"3400:11:161","parameters":{"id":76488,"nodeType":"ParameterList","parameters":[],"src":"3411:2:161"},"returnParameters":{"id":76489,"nodeType":"ParameterList","parameters":[],"src":"3428:0:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76507,"nodeType":"ModifierDefinition","src":"3499:69:161","nodes":[],"body":{"id":76506,"nodeType":"Block","src":"3524:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76502,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76522,"src":"3534:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3534:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76504,"nodeType":"ExpressionStatement","src":"3534:16:161"},{"id":76505,"nodeType":"PlaceholderStatement","src":"3560:1:161"}]},"name":"whenNotPaused","nameLocation":"3508:13:161","parameters":{"id":76501,"nodeType":"ParameterList","parameters":[],"src":"3521:2:161"},"virtual":false,"visibility":"internal"},{"id":76522,"nodeType":"FunctionDefinition","src":"3574:108:161","nodes":[],"body":{"id":76521,"nodeType":"Block","src":"3614:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3632:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76512,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"3641:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76511,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"3633:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74052_$","typeString":"type(contract IRouter)"}},"id":76513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3649:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":73936,"src":"3633:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76517,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73581,"src":"3659:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3659:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76510,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3624:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3624:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76520,"nodeType":"ExpressionStatement","src":"3624:51:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"3583:14:161","parameters":{"id":76508,"nodeType":"ParameterList","parameters":[],"src":"3597:2:161"},"returnParameters":{"id":76509,"nodeType":"ParameterList","parameters":[],"src":"3614:0:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76533,"nodeType":"ModifierDefinition","src":"3803:89:161","nodes":[],"body":{"id":76532,"nodeType":"Block","src":"3842:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76528,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76525,"src":"3868:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76527,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76562,"src":"3852:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3852:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76530,"nodeType":"ExpressionStatement","src":"3852:22:161"},{"id":76531,"nodeType":"PlaceholderStatement","src":"3884:1:161"}]},"documentation":{"id":76523,"nodeType":"StructuredDocumentation","src":"3688:110:161","text":"@dev Non-zero Vara value must be transferred from source to router in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"3812:14:161","parameters":{"id":76526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76525,"mutability":"mutable","name":"value","nameLocation":"3835:5:161","nodeType":"VariableDeclaration","scope":76533,"src":"3827:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76524,"name":"uint128","nodeType":"ElementaryTypeName","src":"3827:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3826:15:161"},"virtual":false,"visibility":"internal"},{"id":76562,"nodeType":"FunctionDefinition","src":"3898:228:161","nodes":[],"body":{"id":76561,"nodeType":"Block","src":"3947:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76538,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"3961:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3970:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3961:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76560,"nodeType":"IfStatement","src":"3957:163:161","trueBody":{"id":76559,"nodeType":"Block","src":"3973:147:161","statements":[{"assignments":[76542],"declarations":[{"constant":false,"id":76542,"mutability":"mutable","name":"success","nameLocation":"3992:7:161","nodeType":"VariableDeclaration","scope":76559,"src":"3987:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76541,"name":"bool","nodeType":"ElementaryTypeName","src":"3987:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76552,"initialValue":{"arguments":[{"expression":{"id":76547,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4030:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4034:6:161","memberName":"sender","nodeType":"MemberAccess","src":"4030:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76549,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"4042:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76550,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76535,"src":"4050:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":76544,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"4009:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76543,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77606,"src":"4002:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$74063_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":76545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4002:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":76546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4017:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46159,"src":"4002:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4002:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"3987:69:161"},{"expression":{"arguments":[{"id":76554,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76542,"src":"4078:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76555,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"4087:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4087:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76553,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4070:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4070:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76558,"nodeType":"ExpressionStatement","src":"4070:39:161"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"3907:15:161","parameters":{"id":76536,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76535,"mutability":"mutable","name":"value","nameLocation":"3931:5:161","nodeType":"VariableDeclaration","scope":76562,"src":"3923:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76534,"name":"uint128","nodeType":"ElementaryTypeName","src":"3923:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"3922:15:161"},"returnParameters":{"id":76537,"nodeType":"ParameterList","parameters":[],"src":"3947:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76589,"nodeType":"FunctionDefinition","src":"4248:215:161","nodes":[],"body":{"id":76588,"nodeType":"Block","src":"4298:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76568,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76565,"src":"4312:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4321:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4312:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76587,"nodeType":"IfStatement","src":"4308:149:161","trueBody":{"id":76586,"nodeType":"Block","src":"4324:133:161","statements":[{"assignments":[76572,null],"declarations":[{"constant":false,"id":76572,"mutability":"mutable","name":"success","nameLocation":"4344:7:161","nodeType":"VariableDeclaration","scope":76586,"src":"4339:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76571,"name":"bool","nodeType":"ElementaryTypeName","src":"4339:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":76579,"initialValue":{"arguments":[{"hexValue":"","id":76577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4382:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":76573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"4356:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4363:4:161","memberName":"call","nodeType":"MemberAccess","src":"4356:11:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":76576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":76575,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76565,"src":"4375:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"4356:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4356:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4338:47:161"},{"expression":{"arguments":[{"id":76581,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76572,"src":"4407:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76582,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"4416:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4416:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76580,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4399:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4399:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76585,"nodeType":"ExpressionStatement","src":"4399:47:161"}]}}]},"documentation":{"id":76563,"nodeType":"StructuredDocumentation","src":"4132:111:161","text":"@dev Non-zero Ether value must be transferred from source to router in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"4257:16:161","parameters":{"id":76566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76565,"mutability":"mutable","name":"value","nameLocation":"4282:5:161","nodeType":"VariableDeclaration","scope":76589,"src":"4274:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76564,"name":"uint128","nodeType":"ElementaryTypeName","src":"4274:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"4273:15:161"},"returnParameters":{"id":76567,"nodeType":"ParameterList","parameters":[],"src":"4298:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76606,"nodeType":"FunctionDefinition","src":"4515:170:161","nodes":[],"body":{"id":76605,"nodeType":"Block","src":"4627:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76601,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76591,"src":"4657:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":76602,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76593,"src":"4667:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76600,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76938,"src":"4644:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4644:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76599,"id":76604,"nodeType":"Return","src":"4637:41:161"}]},"baseFunctions":[73620],"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":76596,"kind":"modifierInvocation","modifierName":{"id":76595,"name":"whenNotPaused","nameLocations":["4595:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76507,"src":"4595:13:161"},"nodeType":"ModifierInvocation","src":"4595:13:161"}],"name":"sendMessage","nameLocation":"4524:11:161","parameters":{"id":76594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76591,"mutability":"mutable","name":"_payload","nameLocation":"4551:8:161","nodeType":"VariableDeclaration","scope":76606,"src":"4536:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76590,"name":"bytes","nodeType":"ElementaryTypeName","src":"4536:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76593,"mutability":"mutable","name":"_callReply","nameLocation":"4566:10:161","nodeType":"VariableDeclaration","scope":76606,"src":"4561:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76592,"name":"bool","nodeType":"ElementaryTypeName","src":"4561:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4535:42:161"},"returnParameters":{"id":76599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76598,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76606,"src":"4618:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4618:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4617:9:161"},"scope":77695,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76640,"nodeType":"FunctionDefinition","src":"4691:340:161","nodes":[],"body":{"id":76639,"nodeType":"Block","src":"4864:167:161","nodes":[],"statements":[{"assignments":[76620],"declarations":[{"constant":false,"id":76620,"mutability":"mutable","name":"_value","nameLocation":"4882:6:161","nodeType":"VariableDeclaration","scope":76639,"src":"4874:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76619,"name":"uint128","nodeType":"ElementaryTypeName","src":"4874:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76626,"initialValue":{"arguments":[{"expression":{"id":76623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4899:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4903:5:161","memberName":"value","nodeType":"MemberAccess","src":"4899:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4891:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76621,"name":"uint128","nodeType":"ElementaryTypeName","src":"4891:7:161","typeDescriptions":{}}},"id":76625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4891:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"4874:35:161"},{"expression":{"arguments":[{"id":76628,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76620,"src":"4937:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76627,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"4920:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4920:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76630,"nodeType":"ExpressionStatement","src":"4920:24:161"},{"eventCall":{"arguments":[{"id":76632,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76608,"src":"4983:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76633,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4995:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4999:6:161","memberName":"sender","nodeType":"MemberAccess","src":"4995:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76635,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76610,"src":"5007:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":76636,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76620,"src":"5017:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76631,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73465,"src":"4960:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":76637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4960:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76638,"nodeType":"EmitStatement","src":"4955:69:161"}]},"baseFunctions":[73627],"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":76613,"kind":"modifierInvocation","modifierName":{"id":76612,"name":"whenNotPaused","nameLocations":["4796:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76507,"src":"4796:13:161"},"nodeType":"ModifierInvocation","src":"4796:13:161"},{"id":76615,"kind":"modifierInvocation","modifierName":{"id":76614,"name":"onlyIfActive","nameLocations":["4818:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76450,"src":"4818:12:161"},"nodeType":"ModifierInvocation","src":"4818:12:161"},{"id":76617,"kind":"modifierInvocation","modifierName":{"id":76616,"name":"onlyAfterInitMessage","nameLocations":["4839:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":76405,"src":"4839:20:161"},"nodeType":"ModifierInvocation","src":"4839:20:161"}],"name":"sendReply","nameLocation":"4700:9:161","parameters":{"id":76611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76608,"mutability":"mutable","name":"_repliedTo","nameLocation":"4718:10:161","nodeType":"VariableDeclaration","scope":76640,"src":"4710:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76607,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4710:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76610,"mutability":"mutable","name":"_payload","nameLocation":"4745:8:161","nodeType":"VariableDeclaration","scope":76640,"src":"4730:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76609,"name":"bytes","nodeType":"ElementaryTypeName","src":"4730:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4709:45:161"},"returnParameters":{"id":76618,"nodeType":"ParameterList","parameters":[],"src":"4864:0:161"},"scope":77695,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76658,"nodeType":"FunctionDefinition","src":"5104:165:161","nodes":[],"body":{"id":76657,"nodeType":"Block","src":"5201:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":76652,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76642,"src":"5239:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76653,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5251:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5255:6:161","memberName":"sender","nodeType":"MemberAccess","src":"5251:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76651,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73472,"src":"5216:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5216:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76656,"nodeType":"EmitStatement","src":"5211:51:161"}]},"baseFunctions":[73632],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":76645,"kind":"modifierInvocation","modifierName":{"id":76644,"name":"whenNotPaused","nameLocations":["5153:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76507,"src":"5153:13:161"},"nodeType":"ModifierInvocation","src":"5153:13:161"},{"id":76647,"kind":"modifierInvocation","modifierName":{"id":76646,"name":"onlyIfActive","nameLocations":["5167:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76450,"src":"5167:12:161"},"nodeType":"ModifierInvocation","src":"5167:12:161"},{"id":76649,"kind":"modifierInvocation","modifierName":{"id":76648,"name":"onlyAfterInitMessage","nameLocations":["5180:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":76405,"src":"5180:20:161"},"nodeType":"ModifierInvocation","src":"5180:20:161"}],"name":"claimValue","nameLocation":"5113:10:161","parameters":{"id":76643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76642,"mutability":"mutable","name":"_claimedId","nameLocation":"5132:10:161","nodeType":"VariableDeclaration","scope":76658,"src":"5124:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5124:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5123:20:161"},"returnParameters":{"id":76650,"nodeType":"ParameterList","parameters":[],"src":"5201:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76675,"nodeType":"FunctionDefinition","src":"5275:168:161","nodes":[],"body":{"id":76674,"nodeType":"Block","src":"5382:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":76671,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76660,"src":"5429:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76670,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73482,"src":"5397:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5397:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76673,"nodeType":"EmitStatement","src":"5392:44:161"}]},"baseFunctions":[73637],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":76663,"kind":"modifierInvocation","modifierName":{"id":76662,"name":"whenNotPaused","nameLocations":["5332:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76507,"src":"5332:13:161"},"nodeType":"ModifierInvocation","src":"5332:13:161"},{"id":76665,"kind":"modifierInvocation","modifierName":{"id":76664,"name":"onlyIfActive","nameLocations":["5346:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76450,"src":"5346:12:161"},"nodeType":"ModifierInvocation","src":"5346:12:161"},{"arguments":[{"id":76667,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76660,"src":"5374:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":76668,"kind":"modifierInvocation","modifierName":{"id":76666,"name":"retrievingVara","nameLocations":["5359:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":76533,"src":"5359:14:161"},"nodeType":"ModifierInvocation","src":"5359:22:161"}],"name":"executableBalanceTopUp","nameLocation":"5284:22:161","parameters":{"id":76661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76660,"mutability":"mutable","name":"_value","nameLocation":"5315:6:161","nodeType":"VariableDeclaration","scope":76675,"src":"5307:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76659,"name":"uint128","nodeType":"ElementaryTypeName","src":"5307:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5306:16:161"},"returnParameters":{"id":76669,"nodeType":"ParameterList","parameters":[],"src":"5382:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76692,"nodeType":"FunctionDefinition","src":"5449:208:161","nodes":[],"body":{"id":76691,"nodeType":"Block","src":"5514:143:161","nodes":[],"statements":[{"assignments":[null,76681],"declarations":[null,{"constant":false,"id":76681,"mutability":"mutable","name":"success","nameLocation":"5532:7:161","nodeType":"VariableDeclaration","scope":76691,"src":"5527:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76680,"name":"bool","nodeType":"ElementaryTypeName","src":"5527:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76684,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76682,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76890,"src":"5543:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5543:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"5524:52:161"},{"expression":{"arguments":[{"id":76686,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76681,"src":"5594:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76687,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"5603:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5603:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76685,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5586:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5586:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76690,"nodeType":"ExpressionStatement","src":"5586:64:161"}]},"baseFunctions":[73640],"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":76678,"kind":"modifierInvocation","modifierName":{"id":76677,"name":"whenNotPaused","nameLocations":["5500:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76507,"src":"5500:13:161"},"nodeType":"ModifierInvocation","src":"5500:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"5458:30:161","parameters":{"id":76676,"nodeType":"ParameterList","parameters":[],"src":"5488:2:161"},"returnParameters":{"id":76679,"nodeType":"ParameterList","parameters":[],"src":"5514:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76759,"nodeType":"FunctionDefinition","src":"5715:558:161","nodes":[],"body":{"id":76758,"nodeType":"Block","src":"5813:460:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76704,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"5831:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5854:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5846:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76705,"name":"address","nodeType":"ElementaryTypeName","src":"5846:7:161","typeDescriptions":{}}},"id":76708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5846:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5831:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76710,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"5858:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5858:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5823:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5823:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76713,"nodeType":"ExpressionStatement","src":"5823:59:161"},{"expression":{"arguments":[{"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5901:8:161","subExpression":{"id":76715,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"5902:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76717,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"5911:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5911:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76714,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5893:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5893:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76720,"nodeType":"ExpressionStatement","src":"5893:38:161"},{"assignments":[76725],"declarations":[{"constant":false,"id":76725,"mutability":"mutable","name":"implementationSlot","nameLocation":"5974:18:161","nodeType":"VariableDeclaration","scope":76758,"src":"5942:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":76724,"nodeType":"UserDefinedTypeName","pathNode":{"id":76723,"name":"StorageSlot.AddressSlot","nameLocations":["5942:11:161","5954:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48295,"src":"5942:23:161"},"referencedDeclaration":48295,"src":"5942:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":76731,"initialValue":{"arguments":[{"expression":{"id":76728,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"6034:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":76729,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6047:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":44746,"src":"6034:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76726,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"6007:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":76727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6019:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48324,"src":"6007:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48295_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":76730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6007:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"5942:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76733,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76725,"src":"6086:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":76734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6105:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48294,"src":"6086:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6122:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6114:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76735,"name":"address","nodeType":"ElementaryTypeName","src":"6114:7:161","typeDescriptions":{}}},"id":76738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6114:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6086:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76740,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"6126:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6126:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76732,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6078:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6078:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76743,"nodeType":"ExpressionStatement","src":"6078:73:161"},{"expression":{"id":76746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76744,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"6162:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76745,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76694,"src":"6176:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6162:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76747,"nodeType":"ExpressionStatement","src":"6162:26:161"},{"expression":{"id":76750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76748,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"6198:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76749,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"6208:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6198:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76751,"nodeType":"ExpressionStatement","src":"6198:18:161"},{"expression":{"id":76756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76752,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76725,"src":"6226:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":76754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6245:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48294,"src":"6226:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76755,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76696,"src":"6253:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6226:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76757,"nodeType":"ExpressionStatement","src":"6226:40:161"}]},"baseFunctions":[73649],"functionSelector":"e4bbb5a8","implemented":true,"kind":"function","modifiers":[{"id":76701,"kind":"modifierInvocation","modifierName":{"id":76700,"name":"onlyRouter","nameLocations":["5802:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":76487,"src":"5802:10:161"},"nodeType":"ModifierInvocation","src":"5802:10:161"}],"name":"initialize","nameLocation":"5724:10:161","parameters":{"id":76699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76694,"mutability":"mutable","name":"_initializer","nameLocation":"5743:12:161","nodeType":"VariableDeclaration","scope":76759,"src":"5735:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76693,"name":"address","nodeType":"ElementaryTypeName","src":"5735:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76696,"mutability":"mutable","name":"_abiInterface","nameLocation":"5765:13:161","nodeType":"VariableDeclaration","scope":76759,"src":"5757:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76695,"name":"address","nodeType":"ElementaryTypeName","src":"5757:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76698,"mutability":"mutable","name":"_isSmall","nameLocation":"5785:8:161","nodeType":"VariableDeclaration","scope":76759,"src":"5780:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76697,"name":"bool","nodeType":"ElementaryTypeName","src":"5780:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5734:60:161"},"returnParameters":{"id":76702,"nodeType":"ParameterList","parameters":[],"src":"5813:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76858,"nodeType":"FunctionDefinition","src":"6279:1572:161","nodes":[],"body":{"id":76857,"nodeType":"Block","src":"6436:1415:161","nodes":[],"statements":[{"documentation":"@dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76770,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"6524:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6536:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":81295,"src":"6524:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":76774,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6555:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$77695","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$77695","typeString":"contract Mirror"}],"id":76773,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6547:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76772,"name":"address","nodeType":"ElementaryTypeName","src":"6547:7:161","typeDescriptions":{}}},"id":76775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6547:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6524:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76777,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"6562:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6562:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6516:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6516:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76780,"nodeType":"ExpressionStatement","src":"6516:63:161"},{"condition":{"expression":{"id":76781,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"6689:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6701:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":81306,"src":"6689:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":76789,"nodeType":"IfStatement","src":"6685:113:161","trueBody":{"id":76788,"nodeType":"Block","src":"6729:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":76784,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"6760:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6772:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":81304,"src":"6760:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76783,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"6743:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6743:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76787,"nodeType":"ExpressionStatement","src":"6743:44:161"}]}},{"assignments":[76792],"declarations":[{"constant":false,"id":76792,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"6861:18:161","nodeType":"VariableDeclaration","scope":76857,"src":"6853:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76791,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6853:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send all outgoing messages.","id":76797,"initialValue":{"arguments":[{"expression":{"id":76794,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"6896:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6908:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":81314,"src":"6896:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$81274_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$81274_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":76793,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77034,"src":"6882:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$81274_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":76796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6882:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6853:64:161"},{"assignments":[76800],"declarations":[{"constant":false,"id":76800,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"6980:15:161","nodeType":"VariableDeclaration","scope":76857,"src":"6972:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6972:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send value for each claim.","id":76805,"initialValue":{"arguments":[{"expression":{"id":76802,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7011:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7023:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":81310,"src":"7011:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$81351_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$81351_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":76801,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77539,"src":"6998:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$81351_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":76804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6998:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6972:63:161"},{"condition":{"expression":{"id":76806,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7092:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7104:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":81299,"src":"7092:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Set inheritor if exited.","falseBody":{"id":76826,"nodeType":"Block","src":"7179:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76815,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7201:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7213:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":81301,"src":"7201:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7234:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76818,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7226:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76817,"name":"address","nodeType":"ElementaryTypeName","src":"7226:7:161","typeDescriptions":{}}},"id":76820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7226:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7201:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76822,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73576,"src":"7238:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7238:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76814,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7193:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7193:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76825,"nodeType":"ExpressionStatement","src":"7193:67:161"}]},"id":76827,"nodeType":"IfStatement","src":"7088:183:161","trueBody":{"id":76813,"nodeType":"Block","src":"7112:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":76809,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7140:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7152:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":81301,"src":"7140:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76808,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77571,"src":"7126:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7126:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76812,"nodeType":"ExpressionStatement","src":"7126:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76828,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"7336:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76829,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7349:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7361:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":81297,"src":"7349:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7336:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Update the state hash if changed.","id":76838,"nodeType":"IfStatement","src":"7332:110:161","trueBody":{"id":76837,"nodeType":"Block","src":"7375:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":76833,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7406:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7418:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":81297,"src":"7406:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76832,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77585,"src":"7389:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":76835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7389:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76836,"nodeType":"ExpressionStatement","src":"7389:42:161"}]}},{"documentation":"@dev Return hash of performed state transition.","expression":{"arguments":[{"expression":{"id":76841,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7557:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7569:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":81295,"src":"7557:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76843,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7590:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7602:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":81297,"src":"7590:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76845,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7628:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7640:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":81299,"src":"7628:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":76847,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7660:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7672:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":81301,"src":"7660:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76849,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7695:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7707:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":81304,"src":"7695:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":76851,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76762,"src":"7735:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7747:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":81306,"src":"7735:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":76853,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76800,"src":"7787:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76854,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76792,"src":"7816:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76839,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"7519:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":76840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7524:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":81577,"src":"7519:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":76855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7519:325:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76768,"id":76856,"nodeType":"Return","src":"7512:332:161"}]},"baseFunctions":[73657],"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":76765,"kind":"modifierInvocation","modifierName":{"id":76764,"name":"onlyRouter","nameLocations":["6395:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":76487,"src":"6395:10:161"},"nodeType":"ModifierInvocation","src":"6395:10:161"}],"name":"performStateTransition","nameLocation":"6288:22:161","parameters":{"id":76763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76762,"mutability":"mutable","name":"_transition","nameLocation":"6341:11:161","nodeType":"VariableDeclaration","scope":76858,"src":"6311:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":76761,"nodeType":"UserDefinedTypeName","pathNode":{"id":76760,"name":"Gear.StateTransition","nameLocations":["6311:4:161","6316:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":81315,"src":"6311:20:161"},"referencedDeclaration":81315,"src":"6311:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"6310:43:161"},"returnParameters":{"id":76768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76858,"src":"6423:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76766,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6423:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6422:9:161"},"scope":77695,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76890,"nodeType":"FunctionDefinition","src":"7881:409:161","nodes":[],"body":{"id":76889,"nodeType":"Block","src":"7969:321:161","nodes":[],"statements":[{"assignments":[76868],"declarations":[{"constant":false,"id":76868,"mutability":"mutable","name":"balance","nameLocation":"7987:7:161","nodeType":"VariableDeclaration","scope":76889,"src":"7979:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76867,"name":"uint256","nodeType":"ElementaryTypeName","src":"7979:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76874,"initialValue":{"expression":{"arguments":[{"id":76871,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8005:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$77695","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$77695","typeString":"contract Mirror"}],"id":76870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7997:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76869,"name":"address","nodeType":"ElementaryTypeName","src":"7997:7:161","typeDescriptions":{}}},"id":76872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7997:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8011:7:161","memberName":"balance","nodeType":"MemberAccess","src":"7997:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7979:39:161"},{"assignments":[76876],"declarations":[{"constant":false,"id":76876,"mutability":"mutable","name":"balance128","nameLocation":"8186:10:161","nodeType":"VariableDeclaration","scope":76889,"src":"8178:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76875,"name":"uint128","nodeType":"ElementaryTypeName","src":"8178:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76881,"initialValue":{"arguments":[{"id":76879,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76868,"src":"8207:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8199:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76877,"name":"uint128","nodeType":"ElementaryTypeName","src":"8199:7:161","typeDescriptions":{}}},"id":76880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8199:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"8178:37:161"},{"expression":{"components":[{"id":76882,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"8233:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":76884,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76380,"src":"8260:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76885,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"8271:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76883,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"8245:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":76886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8245:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76887,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8232:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":76866,"id":76888,"nodeType":"Return","src":"8225:58:161"}]},"implemented":true,"kind":"function","modifiers":[{"id":76861,"kind":"modifierInvocation","modifierName":{"id":76860,"name":"onlyIfExited","nameLocations":["7932:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76469,"src":"7932:12:161"},"nodeType":"ModifierInvocation","src":"7932:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"7890:31:161","parameters":{"id":76859,"nodeType":"ParameterList","parameters":[],"src":"7921:2:161"},"returnParameters":{"id":76866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76863,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76890,"src":"7954:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76862,"name":"uint128","nodeType":"ElementaryTypeName","src":"7954:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76865,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76890,"src":"7963:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76864,"name":"bool","nodeType":"ElementaryTypeName","src":"7963:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7953:15:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76938,"nodeType":"FunctionDefinition","src":"8296:599:161","nodes":[],"body":{"id":76937,"nodeType":"Block","src":"8469:426:161","nodes":[],"statements":[{"assignments":[76904],"declarations":[{"constant":false,"id":76904,"mutability":"mutable","name":"_value","nameLocation":"8487:6:161","nodeType":"VariableDeclaration","scope":76937,"src":"8479:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76903,"name":"uint128","nodeType":"ElementaryTypeName","src":"8479:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76910,"initialValue":{"arguments":[{"expression":{"id":76907,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8504:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8508:5:161","memberName":"value","nodeType":"MemberAccess","src":"8504:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8496:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76905,"name":"uint128","nodeType":"ElementaryTypeName","src":"8496:7:161","typeDescriptions":{}}},"id":76909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8496:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"8479:35:161"},{"expression":{"arguments":[{"id":76912,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76904,"src":"8542:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76911,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76589,"src":"8525:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8525:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76914,"nodeType":"ExpressionStatement","src":"8525:24:161"},{"assignments":[76916],"declarations":[{"constant":false,"id":76916,"mutability":"mutable","name":"_nonce","nameLocation":"8568:6:161","nodeType":"VariableDeclaration","scope":76937,"src":"8560:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76915,"name":"uint256","nodeType":"ElementaryTypeName","src":"8560:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76918,"initialValue":{"id":76917,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"8577:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8560:22:161"},{"assignments":[76920],"declarations":[{"constant":false,"id":76920,"mutability":"mutable","name":"id","nameLocation":"8600:2:161","nodeType":"VariableDeclaration","scope":76937,"src":"8592:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76919,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8592:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76921,"nodeType":"VariableDeclarationStatement","src":"8592:10:161"},{"AST":{"nativeSrc":"8637:129:161","nodeType":"YulBlock","src":"8637:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"8658:4:161","nodeType":"YulLiteral","src":"8658:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"8668:2:161","nodeType":"YulLiteral","src":"8668:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"8672:7:161","nodeType":"YulIdentifier","src":"8672:7:161"},"nativeSrc":"8672:9:161","nodeType":"YulFunctionCall","src":"8672:9:161"}],"functionName":{"name":"shl","nativeSrc":"8664:3:161","nodeType":"YulIdentifier","src":"8664:3:161"},"nativeSrc":"8664:18:161","nodeType":"YulFunctionCall","src":"8664:18:161"}],"functionName":{"name":"mstore","nativeSrc":"8651:6:161","nodeType":"YulIdentifier","src":"8651:6:161"},"nativeSrc":"8651:32:161","nodeType":"YulFunctionCall","src":"8651:32:161"},"nativeSrc":"8651:32:161","nodeType":"YulExpressionStatement","src":"8651:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"8703:4:161","nodeType":"YulLiteral","src":"8703:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"8709:6:161","nodeType":"YulIdentifier","src":"8709:6:161"}],"functionName":{"name":"mstore","nativeSrc":"8696:6:161","nodeType":"YulIdentifier","src":"8696:6:161"},"nativeSrc":"8696:20:161","nodeType":"YulFunctionCall","src":"8696:20:161"},"nativeSrc":"8696:20:161","nodeType":"YulExpressionStatement","src":"8696:20:161"},{"nativeSrc":"8729:27:161","nodeType":"YulAssignment","src":"8729:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"8745:4:161","nodeType":"YulLiteral","src":"8745:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"8751:4:161","nodeType":"YulLiteral","src":"8751:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"8735:9:161","nodeType":"YulIdentifier","src":"8735:9:161"},"nativeSrc":"8735:21:161","nodeType":"YulFunctionCall","src":"8735:21:161"},"variableNames":[{"name":"id","nativeSrc":"8729:2:161","nodeType":"YulIdentifier","src":"8729:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":76916,"isOffset":false,"isSlot":false,"src":"8709:6:161","valueSize":1},{"declaration":76920,"isOffset":false,"isSlot":false,"src":"8729:2:161","valueSize":1}],"flags":["memory-safe"],"id":76922,"nodeType":"InlineAssembly","src":"8612:154:161"},{"expression":{"id":76924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8775:7:161","subExpression":{"id":76923,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"8775:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76925,"nodeType":"ExpressionStatement","src":"8775:7:161"},{"eventCall":{"arguments":[{"id":76927,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76920,"src":"8823:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76928,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8827:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8831:6:161","memberName":"sender","nodeType":"MemberAccess","src":"8827:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76930,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"8839:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":76931,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76904,"src":"8849:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":76932,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76894,"src":"8857:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76926,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73454,"src":"8798:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":76933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8798:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76934,"nodeType":"EmitStatement","src":"8793:75:161"},{"expression":{"id":76935,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76920,"src":"8886:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76902,"id":76936,"nodeType":"Return","src":"8879:9:161"}]},"implemented":true,"kind":"function","modifiers":[{"id":76897,"kind":"modifierInvocation","modifierName":{"id":76896,"name":"onlyIfActive","nameLocations":["8384:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76450,"src":"8384:12:161"},"nodeType":"ModifierInvocation","src":"8384:12:161"},{"id":76899,"kind":"modifierInvocation","modifierName":{"id":76898,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["8405:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":76425,"src":"8405:33:161"},"nodeType":"ModifierInvocation","src":"8405:33:161"}],"name":"_sendMessage","nameLocation":"8305:12:161","parameters":{"id":76895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76892,"mutability":"mutable","name":"_payload","nameLocation":"8333:8:161","nodeType":"VariableDeclaration","scope":76938,"src":"8318:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76891,"name":"bytes","nodeType":"ElementaryTypeName","src":"8318:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76894,"mutability":"mutable","name":"_callReply","nameLocation":"8348:10:161","nodeType":"VariableDeclaration","scope":76938,"src":"8343:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76893,"name":"bool","nodeType":"ElementaryTypeName","src":"8343:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8317:42:161"},"returnParameters":{"id":76902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76901,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76938,"src":"8456:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8456:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8455:9:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77034,"nodeType":"FunctionDefinition","src":"9103:1043:161","nodes":[],"body":{"id":77033,"nodeType":"Block","src":"9187:959:161","nodes":[],"statements":[{"assignments":[76948],"declarations":[{"constant":false,"id":76948,"mutability":"mutable","name":"messagesLen","nameLocation":"9205:11:161","nodeType":"VariableDeclaration","scope":77033,"src":"9197:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76947,"name":"uint256","nodeType":"ElementaryTypeName","src":"9197:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76951,"initialValue":{"expression":{"id":76949,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"9219:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$81274_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":76950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9229:6:161","memberName":"length","nodeType":"MemberAccess","src":"9219:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9197:38:161"},{"assignments":[76953],"declarations":[{"constant":false,"id":76953,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"9253:18:161","nodeType":"VariableDeclaration","scope":77033,"src":"9245:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76952,"name":"uint256","nodeType":"ElementaryTypeName","src":"9245:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76957,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76954,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"9274:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":76955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9288:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9274:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9245:45:161"},{"assignments":[76959],"declarations":[{"constant":false,"id":76959,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"9308:20:161","nodeType":"VariableDeclaration","scope":77033,"src":"9300:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76958,"name":"uint256","nodeType":"ElementaryTypeName","src":"9300:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76964,"initialValue":{"arguments":[{"id":76962,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"9347:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76960,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"9331:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":76961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9338:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"9331:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":76963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9331:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9300:66:161"},{"assignments":[76966],"declarations":[{"constant":false,"id":76966,"mutability":"mutable","name":"offset","nameLocation":"9384:6:161","nodeType":"VariableDeclaration","scope":77033,"src":"9376:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76965,"name":"uint256","nodeType":"ElementaryTypeName","src":"9376:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76968,"initialValue":{"hexValue":"30","id":76967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9393:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9376:18:161"},{"body":{"id":77024,"nodeType":"Block","src":"9447:596:161","statements":[{"assignments":[76983],"declarations":[{"constant":false,"id":76983,"mutability":"mutable","name":"message","nameLocation":"9483:7:161","nodeType":"VariableDeclaration","scope":77024,"src":"9461:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":76982,"nodeType":"UserDefinedTypeName","pathNode":{"id":76981,"name":"Gear.Message","nameLocations":["9461:4:161","9466:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":81274,"src":"9461:12:161"},"referencedDeclaration":81274,"src":"9461:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":76987,"initialValue":{"baseExpression":{"id":76984,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"9493:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$81274_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":76986,"indexExpression":{"id":76985,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76970,"src":"9503:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9493:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"9461:44:161"},{"assignments":[76989],"declarations":[{"constant":false,"id":76989,"mutability":"mutable","name":"messageHash","nameLocation":"9573:11:161","nodeType":"VariableDeclaration","scope":77024,"src":"9565:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76988,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9565:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76994,"initialValue":{"arguments":[{"id":76992,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76983,"src":"9604:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":76990,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"9587:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":76991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9592:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":81520,"src":"9587:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$81274_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":76993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9587:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9565:47:161"},{"expression":{"arguments":[{"id":76998,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76959,"src":"9714:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76999,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"9736:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77000,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76989,"src":"9744:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76995,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"9688:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9695:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"9688:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":77001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9688:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77002,"nodeType":"ExpressionStatement","src":"9688:68:161"},{"id":77007,"nodeType":"UncheckedBlock","src":"9770:55:161","statements":[{"expression":{"id":77005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77003,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76966,"src":"9798:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":77004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9808:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"9798:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77006,"nodeType":"ExpressionStatement","src":"9798:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":77008,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76983,"src":"9875:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9883:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"9875:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9896:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":81290,"src":"9875:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9902:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9875:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77022,"nodeType":"Block","src":"9974:59:161","statements":[{"expression":{"arguments":[{"id":77019,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76983,"src":"10010:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":77018,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77427,"src":"9992:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$81274_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":77020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9992:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77021,"nodeType":"ExpressionStatement","src":"9992:26:161"}]},"id":77023,"nodeType":"IfStatement","src":"9871:162:161","trueBody":{"id":77017,"nodeType":"Block","src":"9905:63:161","statements":[{"expression":{"arguments":[{"id":77014,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76983,"src":"9945:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":77013,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77088,"src":"9923:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$81274_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":77015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9923:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77016,"nodeType":"ExpressionStatement","src":"9923:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76973,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76970,"src":"9425:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76974,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"9429:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9425:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77025,"initializationExpression":{"assignments":[76970],"declarations":[{"constant":false,"id":76970,"mutability":"mutable","name":"i","nameLocation":"9418:1:161","nodeType":"VariableDeclaration","scope":77025,"src":"9410:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76969,"name":"uint256","nodeType":"ElementaryTypeName","src":"9410:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76972,"initialValue":{"hexValue":"30","id":76971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9422:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9410:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9442:3:161","subExpression":{"id":76976,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76970,"src":"9442:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76978,"nodeType":"ExpressionStatement","src":"9442:3:161"},"nodeType":"ForStatement","src":"9405:638:161"},{"expression":{"arguments":[{"id":77028,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76959,"src":"10095:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":77029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10117:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":77030,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76953,"src":"10120:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77026,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"10060:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":77027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10067:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"10060:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":77031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10060:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76946,"id":77032,"nodeType":"Return","src":"10053:86:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"9112:13:161","parameters":{"id":76943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76942,"mutability":"mutable","name":"_messages","nameLocation":"9150:9:161","nodeType":"VariableDeclaration","scope":77034,"src":"9126:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$81274_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":76940,"nodeType":"UserDefinedTypeName","pathNode":{"id":76939,"name":"Gear.Message","nameLocations":["9126:4:161","9131:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":81274,"src":"9126:12:161"},"referencedDeclaration":81274,"src":"9126:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_storage_ptr","typeString":"struct Gear.Message"}},"id":76941,"nodeType":"ArrayTypeName","src":"9126:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$81274_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"9125:35:161"},"returnParameters":{"id":76946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77034,"src":"9178:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76944,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9178:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9177:9:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77088,"nodeType":"FunctionDefinition","src":"10205:657:161","nodes":[],"body":{"id":77087,"nodeType":"Block","src":"10276:586:161","nodes":[],"statements":[{"condition":{"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10290:37:161","subExpression":{"arguments":[{"id":77042,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10318:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":77041,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77296,"src":"10291:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$81274_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":77043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10291:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77086,"nodeType":"IfStatement","src":"10286:570:161","trueBody":{"id":77085,"nodeType":"Block","src":"10329:527:161","statements":[{"condition":{"expression":{"id":77045,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10347:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10356:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":81273,"src":"10347:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77073,"nodeType":"IfStatement","src":"10343:407:161","trueBody":{"id":77072,"nodeType":"Block","src":"10362:388:161","statements":[{"assignments":[77048,null],"declarations":[{"constant":false,"id":77048,"mutability":"mutable","name":"success","nameLocation":"10386:7:161","nodeType":"VariableDeclaration","scope":77072,"src":"10381:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77047,"name":"bool","nodeType":"ElementaryTypeName","src":"10381:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77057,"initialValue":{"arguments":[{"expression":{"id":77054,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10438:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10447:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":81266,"src":"10438:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":77049,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10398:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10407:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"10398:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10419:4:161","memberName":"call","nodeType":"MemberAccess","src":"10398:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":77052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10429:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"10398:39:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10398:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"10380:75:161"},{"condition":{"id":77059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10478:8:161","subExpression":{"id":77058,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77048,"src":"10479:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77071,"nodeType":"IfStatement","src":"10474:262:161","trueBody":{"id":77070,"nodeType":"Block","src":"10488:248:161","statements":[{"documentation":"@dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":77061,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10638:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10647:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81262,"src":"10638:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77063,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10651:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10660:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"10651:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77065,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10673:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10682:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"10673:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77060,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73502,"src":"10620:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":77067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10620:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77068,"nodeType":"EmitStatement","src":"10615:73:161"},{"functionReturnParameters":77040,"id":77069,"nodeType":"Return","src":"10711:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":77075,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10777:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10786:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81262,"src":"10777:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77077,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10790:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10799:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"10790:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77079,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10812:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10821:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":81266,"src":"10812:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":77081,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"10830:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10839:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"10830:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77074,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73493,"src":"10769:7:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10769:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77084,"nodeType":"EmitStatement","src":"10764:81:161"}]}}]},"documentation":{"id":77035,"nodeType":"StructuredDocumentation","src":"10152:48:161","text":"@dev Value never sent since goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"10214:21:161","parameters":{"id":77039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77038,"mutability":"mutable","name":"_message","nameLocation":"10258:8:161","nodeType":"VariableDeclaration","scope":77088,"src":"10236:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77037,"nodeType":"UserDefinedTypeName","pathNode":{"id":77036,"name":"Gear.Message","nameLocations":["10236:4:161","10241:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":81274,"src":"10236:12:161"},"referencedDeclaration":81274,"src":"10236:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"10235:32:161"},"returnParameters":{"id":77040,"nodeType":"ParameterList","parameters":[],"src":"10276:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77296,"nodeType":"FunctionDefinition","src":"10982:4292:161","nodes":[],"body":{"id":77295,"nodeType":"Block","src":"11073:4201:161","nodes":[],"statements":[{"assignments":[77098],"declarations":[{"constant":false,"id":77098,"mutability":"mutable","name":"payload","nameLocation":"11098:7:161","nodeType":"VariableDeclaration","scope":77295,"src":"11083:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77097,"name":"bytes","nodeType":"ElementaryTypeName","src":"11083:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":77101,"initialValue":{"expression":{"id":77099,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77092,"src":"11108:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11117:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":81266,"src":"11108:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"11083:41:161"},{"condition":{"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"11701:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77102,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77092,"src":"11703:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11712:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"11703:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77104,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76365,"src":"11727:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11703:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77106,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77092,"src":"11745:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11754:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"11745:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77108,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11763:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11745:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11703:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77111,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"11768:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11776:6:161","memberName":"length","nodeType":"MemberAccess","src":"11768:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11785:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11768:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11703:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77116,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11702:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77121,"nodeType":"IfStatement","src":"11697:129:161","trueBody":{"id":77120,"nodeType":"Block","src":"11789:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11810:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77096,"id":77119,"nodeType":"Return","src":"11803:12:161"}]}},{"assignments":[77123],"declarations":[{"constant":false,"id":77123,"mutability":"mutable","name":"topicsLength","nameLocation":"11844:12:161","nodeType":"VariableDeclaration","scope":77295,"src":"11836:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77122,"name":"uint256","nodeType":"ElementaryTypeName","src":"11836:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77124,"nodeType":"VariableDeclarationStatement","src":"11836:20:161"},{"AST":{"nativeSrc":"11891:187:161","nodeType":"YulBlock","src":"11891:187:161","statements":[{"nativeSrc":"12014:54:161","nodeType":"YulAssignment","src":"12014:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"12034:3:161","nodeType":"YulLiteral","src":"12034:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"12052:14:161","nodeType":"YulIdentifier","src":"12052:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"12039:12:161","nodeType":"YulIdentifier","src":"12039:12:161"},"nativeSrc":"12039:28:161","nodeType":"YulFunctionCall","src":"12039:28:161"}],"functionName":{"name":"shr","nativeSrc":"12030:3:161","nodeType":"YulIdentifier","src":"12030:3:161"},"nativeSrc":"12030:38:161","nodeType":"YulFunctionCall","src":"12030:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"12014:12:161","nodeType":"YulIdentifier","src":"12014:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77098,"isOffset":true,"isSlot":false,"src":"12052:14:161","suffix":"offset","valueSize":1},{"declaration":77123,"isOffset":false,"isSlot":false,"src":"12014:12:161","valueSize":1}],"flags":["memory-safe"],"id":77125,"nodeType":"InlineAssembly","src":"11866:212:161"},{"condition":{"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12092:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77126,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"12094:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":77127,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12110:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12094:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77129,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"12115:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":77130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12115:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12094:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77133,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12093:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77138,"nodeType":"IfStatement","src":"12088:84:161","trueBody":{"id":77137,"nodeType":"Block","src":"12135:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12156:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77096,"id":77136,"nodeType":"Return","src":"12149:12:161"}]}},{"assignments":[77140],"declarations":[{"constant":false,"id":77140,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"12190:19:161","nodeType":"VariableDeclaration","scope":77295,"src":"12182:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77139,"name":"uint256","nodeType":"ElementaryTypeName","src":"12182:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77141,"nodeType":"VariableDeclarationStatement","src":"12182:27:161"},{"id":77150,"nodeType":"UncheckedBlock","src":"12219:78:161","statements":[{"expression":{"id":77148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77142,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77140,"src":"12243:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":77143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12265:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77144,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"12269:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12284:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12269:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12265:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12243:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77149,"nodeType":"ExpressionStatement","src":"12243:43:161"}]},{"condition":{"id":77156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12311:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77151,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"12313:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12321:6:161","memberName":"length","nodeType":"MemberAccess","src":"12313:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":77153,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77140,"src":"12331:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12313:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12312:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77160,"nodeType":"IfStatement","src":"12307:83:161","trueBody":{"id":77159,"nodeType":"Block","src":"12353:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77157,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12374:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77096,"id":77158,"nodeType":"Return","src":"12367:12:161"}]}},{"assignments":[77162],"declarations":[{"constant":false,"id":77162,"mutability":"mutable","name":"topic1","nameLocation":"12464:6:161","nodeType":"VariableDeclaration","scope":77295,"src":"12456:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77161,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12456:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77163,"nodeType":"VariableDeclarationStatement","src":"12456:14:161"},{"AST":{"nativeSrc":"12505:70:161","nodeType":"YulBlock","src":"12505:70:161","statements":[{"nativeSrc":"12519:46:161","nodeType":"YulAssignment","src":"12519:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"12546:14:161","nodeType":"YulIdentifier","src":"12546:14:161"},{"kind":"number","nativeSrc":"12562:1:161","nodeType":"YulLiteral","src":"12562:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"12542:3:161","nodeType":"YulIdentifier","src":"12542:3:161"},"nativeSrc":"12542:22:161","nodeType":"YulFunctionCall","src":"12542:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"12529:12:161","nodeType":"YulIdentifier","src":"12529:12:161"},"nativeSrc":"12529:36:161","nodeType":"YulFunctionCall","src":"12529:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"12519:6:161","nodeType":"YulIdentifier","src":"12519:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77098,"isOffset":true,"isSlot":false,"src":"12546:14:161","suffix":"offset","valueSize":1},{"declaration":77162,"isOffset":false,"isSlot":false,"src":"12519:6:161","valueSize":1}],"flags":["memory-safe"],"id":77164,"nodeType":"InlineAssembly","src":"12480:95:161"},{"condition":{"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"13131:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77165,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13146:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77166,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73441,"src":"13156:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77167,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13169:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13156:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13146:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77169,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13193:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77170,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73454,"src":"13203:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13228:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13203:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13193:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77174,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13252:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77175,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73465,"src":"13262:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13285:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13262:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13252:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77179,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13309:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77180,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73472,"src":"13319:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13342:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13319:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13309:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77184,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13366:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77185,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73477,"src":"13376:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13403:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13376:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13366:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77189,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13427:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77190,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73482,"src":"13437:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13469:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13437:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13427:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77194,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13493:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77195,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73493,"src":"13503:7:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13511:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13503:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13493:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77199,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13535:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77200,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73502,"src":"13545:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":77201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13563:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13545:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13535:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77204,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13587:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77205,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"13597:5:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":77206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13603:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13597:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13587:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77209,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13627:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77210,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73522,"src":"13637:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":77211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13653:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13637:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13627:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77214,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13677:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77215,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13687:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13700:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13687:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13677:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77219,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13724:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77220,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"13734:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13771:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13734:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13724:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77224,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13795:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77225,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"13805:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13825:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13805:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13795:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77229,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77162,"src":"13849:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77230,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"13859:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13876:8:161","memberName":"selector","nodeType":"MemberAccess","src":"13859:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13849:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13146:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77234,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13132:762:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":77239,"nodeType":"IfStatement","src":"13127:806:161","trueBody":{"id":77238,"nodeType":"Block","src":"13896:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13917:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77096,"id":77237,"nodeType":"Return","src":"13910:12:161"}]}},{"assignments":[77241],"declarations":[{"constant":false,"id":77241,"mutability":"mutable","name":"size","nameLocation":"13984:4:161","nodeType":"VariableDeclaration","scope":77295,"src":"13976:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77240,"name":"uint256","nodeType":"ElementaryTypeName","src":"13976:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77242,"nodeType":"VariableDeclarationStatement","src":"13976:12:161"},{"id":77250,"nodeType":"UncheckedBlock","src":"13998:78:161","statements":[{"expression":{"id":77248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77243,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77241,"src":"14022:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77244,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"14029:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14037:6:161","memberName":"length","nodeType":"MemberAccess","src":"14029:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":77246,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77140,"src":"14046:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14029:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14022:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77249,"nodeType":"ExpressionStatement","src":"14022:43:161"}]},{"assignments":[77252],"declarations":[{"constant":false,"id":77252,"mutability":"mutable","name":"memPtr","nameLocation":"14094:6:161","nodeType":"VariableDeclaration","scope":77295,"src":"14086:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77251,"name":"uint256","nodeType":"ElementaryTypeName","src":"14086:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77257,"initialValue":{"arguments":[{"id":77255,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77241,"src":"14119:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77253,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"14103:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14110:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"14103:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14103:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14086:38:161"},{"AST":{"nativeSrc":"14159:92:161","nodeType":"YulBlock","src":"14159:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"14186:6:161","nodeType":"YulIdentifier","src":"14186:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"14198:14:161","nodeType":"YulIdentifier","src":"14198:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"14214:19:161","nodeType":"YulIdentifier","src":"14214:19:161"}],"functionName":{"name":"add","nativeSrc":"14194:3:161","nodeType":"YulIdentifier","src":"14194:3:161"},"nativeSrc":"14194:40:161","nodeType":"YulFunctionCall","src":"14194:40:161"},{"name":"size","nativeSrc":"14236:4:161","nodeType":"YulIdentifier","src":"14236:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"14173:12:161","nodeType":"YulIdentifier","src":"14173:12:161"},"nativeSrc":"14173:68:161","nodeType":"YulFunctionCall","src":"14173:68:161"},"nativeSrc":"14173:68:161","nodeType":"YulExpressionStatement","src":"14173:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77252,"isOffset":false,"isSlot":false,"src":"14186:6:161","valueSize":1},{"declaration":77098,"isOffset":true,"isSlot":false,"src":"14198:14:161","suffix":"offset","valueSize":1},{"declaration":77241,"isOffset":false,"isSlot":false,"src":"14236:4:161","valueSize":1},{"declaration":77140,"isOffset":false,"isSlot":false,"src":"14214:19:161","valueSize":1}],"flags":["memory-safe"],"id":77258,"nodeType":"InlineAssembly","src":"14134:117:161"},{"assignments":[77260],"declarations":[{"constant":false,"id":77260,"mutability":"mutable","name":"topic2","nameLocation":"14370:6:161","nodeType":"VariableDeclaration","scope":77295,"src":"14362:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14362:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77261,"nodeType":"VariableDeclarationStatement","src":"14362:14:161"},{"assignments":[77263],"declarations":[{"constant":false,"id":77263,"mutability":"mutable","name":"topic3","nameLocation":"14394:6:161","nodeType":"VariableDeclaration","scope":77295,"src":"14386:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14386:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77264,"nodeType":"VariableDeclarationStatement","src":"14386:14:161"},{"assignments":[77266],"declarations":[{"constant":false,"id":77266,"mutability":"mutable","name":"topic4","nameLocation":"14418:6:161","nodeType":"VariableDeclaration","scope":77295,"src":"14410:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14410:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77267,"nodeType":"VariableDeclarationStatement","src":"14410:14:161"},{"AST":{"nativeSrc":"14459:191:161","nodeType":"YulBlock","src":"14459:191:161","statements":[{"nativeSrc":"14473:47:161","nodeType":"YulAssignment","src":"14473:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"14500:14:161","nodeType":"YulIdentifier","src":"14500:14:161"},{"kind":"number","nativeSrc":"14516:2:161","nodeType":"YulLiteral","src":"14516:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"14496:3:161","nodeType":"YulIdentifier","src":"14496:3:161"},"nativeSrc":"14496:23:161","nodeType":"YulFunctionCall","src":"14496:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"14483:12:161","nodeType":"YulIdentifier","src":"14483:12:161"},"nativeSrc":"14483:37:161","nodeType":"YulFunctionCall","src":"14483:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"14473:6:161","nodeType":"YulIdentifier","src":"14473:6:161"}]},{"nativeSrc":"14533:47:161","nodeType":"YulAssignment","src":"14533:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"14560:14:161","nodeType":"YulIdentifier","src":"14560:14:161"},{"kind":"number","nativeSrc":"14576:2:161","nodeType":"YulLiteral","src":"14576:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"14556:3:161","nodeType":"YulIdentifier","src":"14556:3:161"},"nativeSrc":"14556:23:161","nodeType":"YulFunctionCall","src":"14556:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"14543:12:161","nodeType":"YulIdentifier","src":"14543:12:161"},"nativeSrc":"14543:37:161","nodeType":"YulFunctionCall","src":"14543:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"14533:6:161","nodeType":"YulIdentifier","src":"14533:6:161"}]},{"nativeSrc":"14593:47:161","nodeType":"YulAssignment","src":"14593:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"14620:14:161","nodeType":"YulIdentifier","src":"14620:14:161"},{"kind":"number","nativeSrc":"14636:2:161","nodeType":"YulLiteral","src":"14636:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"14616:3:161","nodeType":"YulIdentifier","src":"14616:3:161"},"nativeSrc":"14616:23:161","nodeType":"YulFunctionCall","src":"14616:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"14603:12:161","nodeType":"YulIdentifier","src":"14603:12:161"},"nativeSrc":"14603:37:161","nodeType":"YulFunctionCall","src":"14603:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"14593:6:161","nodeType":"YulIdentifier","src":"14593:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77098,"isOffset":true,"isSlot":false,"src":"14500:14:161","suffix":"offset","valueSize":1},{"declaration":77098,"isOffset":true,"isSlot":false,"src":"14560:14:161","suffix":"offset","valueSize":1},{"declaration":77098,"isOffset":true,"isSlot":false,"src":"14620:14:161","suffix":"offset","valueSize":1},{"declaration":77260,"isOffset":false,"isSlot":false,"src":"14473:6:161","valueSize":1},{"declaration":77263,"isOffset":false,"isSlot":false,"src":"14533:6:161","valueSize":1},{"declaration":77266,"isOffset":false,"isSlot":false,"src":"14593:6:161","valueSize":1}],"flags":["memory-safe"],"id":77268,"nodeType":"InlineAssembly","src":"14434:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77269,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"14664:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":77270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14680:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14664:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77274,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"14800:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":77275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14816:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14800:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77279,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"14944:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":77280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14960:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14944:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77284,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77123,"src":"15096:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":77285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15112:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"15096:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77289,"nodeType":"IfStatement","src":"15092:154:161","trueBody":{"id":77288,"nodeType":"Block","src":"15115:131:161","statements":[{"AST":{"nativeSrc":"15154:82:161","nodeType":"YulBlock","src":"15154:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"15177:6:161","nodeType":"YulIdentifier","src":"15177:6:161"},{"name":"size","nativeSrc":"15185:4:161","nodeType":"YulIdentifier","src":"15185:4:161"},{"name":"topic1","nativeSrc":"15191:6:161","nodeType":"YulIdentifier","src":"15191:6:161"},{"name":"topic2","nativeSrc":"15199:6:161","nodeType":"YulIdentifier","src":"15199:6:161"},{"name":"topic3","nativeSrc":"15207:6:161","nodeType":"YulIdentifier","src":"15207:6:161"},{"name":"topic4","nativeSrc":"15215:6:161","nodeType":"YulIdentifier","src":"15215:6:161"}],"functionName":{"name":"log4","nativeSrc":"15172:4:161","nodeType":"YulIdentifier","src":"15172:4:161"},"nativeSrc":"15172:50:161","nodeType":"YulFunctionCall","src":"15172:50:161"},"nativeSrc":"15172:50:161","nodeType":"YulExpressionStatement","src":"15172:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77252,"isOffset":false,"isSlot":false,"src":"15177:6:161","valueSize":1},{"declaration":77241,"isOffset":false,"isSlot":false,"src":"15185:4:161","valueSize":1},{"declaration":77162,"isOffset":false,"isSlot":false,"src":"15191:6:161","valueSize":1},{"declaration":77260,"isOffset":false,"isSlot":false,"src":"15199:6:161","valueSize":1},{"declaration":77263,"isOffset":false,"isSlot":false,"src":"15207:6:161","valueSize":1},{"declaration":77266,"isOffset":false,"isSlot":false,"src":"15215:6:161","valueSize":1}],"flags":["memory-safe"],"id":77287,"nodeType":"InlineAssembly","src":"15129:107:161"}]}},"id":77290,"nodeType":"IfStatement","src":"14940:306:161","trueBody":{"id":77283,"nodeType":"Block","src":"14963:123:161","statements":[{"AST":{"nativeSrc":"15002:74:161","nodeType":"YulBlock","src":"15002:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"15025:6:161","nodeType":"YulIdentifier","src":"15025:6:161"},{"name":"size","nativeSrc":"15033:4:161","nodeType":"YulIdentifier","src":"15033:4:161"},{"name":"topic1","nativeSrc":"15039:6:161","nodeType":"YulIdentifier","src":"15039:6:161"},{"name":"topic2","nativeSrc":"15047:6:161","nodeType":"YulIdentifier","src":"15047:6:161"},{"name":"topic3","nativeSrc":"15055:6:161","nodeType":"YulIdentifier","src":"15055:6:161"}],"functionName":{"name":"log3","nativeSrc":"15020:4:161","nodeType":"YulIdentifier","src":"15020:4:161"},"nativeSrc":"15020:42:161","nodeType":"YulFunctionCall","src":"15020:42:161"},"nativeSrc":"15020:42:161","nodeType":"YulExpressionStatement","src":"15020:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77252,"isOffset":false,"isSlot":false,"src":"15025:6:161","valueSize":1},{"declaration":77241,"isOffset":false,"isSlot":false,"src":"15033:4:161","valueSize":1},{"declaration":77162,"isOffset":false,"isSlot":false,"src":"15039:6:161","valueSize":1},{"declaration":77260,"isOffset":false,"isSlot":false,"src":"15047:6:161","valueSize":1},{"declaration":77263,"isOffset":false,"isSlot":false,"src":"15055:6:161","valueSize":1}],"flags":["memory-safe"],"id":77282,"nodeType":"InlineAssembly","src":"14977:99:161"}]}},"id":77291,"nodeType":"IfStatement","src":"14796:450:161","trueBody":{"id":77278,"nodeType":"Block","src":"14819:115:161","statements":[{"AST":{"nativeSrc":"14858:66:161","nodeType":"YulBlock","src":"14858:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"14881:6:161","nodeType":"YulIdentifier","src":"14881:6:161"},{"name":"size","nativeSrc":"14889:4:161","nodeType":"YulIdentifier","src":"14889:4:161"},{"name":"topic1","nativeSrc":"14895:6:161","nodeType":"YulIdentifier","src":"14895:6:161"},{"name":"topic2","nativeSrc":"14903:6:161","nodeType":"YulIdentifier","src":"14903:6:161"}],"functionName":{"name":"log2","nativeSrc":"14876:4:161","nodeType":"YulIdentifier","src":"14876:4:161"},"nativeSrc":"14876:34:161","nodeType":"YulFunctionCall","src":"14876:34:161"},"nativeSrc":"14876:34:161","nodeType":"YulExpressionStatement","src":"14876:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77252,"isOffset":false,"isSlot":false,"src":"14881:6:161","valueSize":1},{"declaration":77241,"isOffset":false,"isSlot":false,"src":"14889:4:161","valueSize":1},{"declaration":77162,"isOffset":false,"isSlot":false,"src":"14895:6:161","valueSize":1},{"declaration":77260,"isOffset":false,"isSlot":false,"src":"14903:6:161","valueSize":1}],"flags":["memory-safe"],"id":77277,"nodeType":"InlineAssembly","src":"14833:91:161"}]}},"id":77292,"nodeType":"IfStatement","src":"14660:586:161","trueBody":{"id":77273,"nodeType":"Block","src":"14683:107:161","statements":[{"AST":{"nativeSrc":"14722:58:161","nodeType":"YulBlock","src":"14722:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"14745:6:161","nodeType":"YulIdentifier","src":"14745:6:161"},{"name":"size","nativeSrc":"14753:4:161","nodeType":"YulIdentifier","src":"14753:4:161"},{"name":"topic1","nativeSrc":"14759:6:161","nodeType":"YulIdentifier","src":"14759:6:161"}],"functionName":{"name":"log1","nativeSrc":"14740:4:161","nodeType":"YulIdentifier","src":"14740:4:161"},"nativeSrc":"14740:26:161","nodeType":"YulFunctionCall","src":"14740:26:161"},"nativeSrc":"14740:26:161","nodeType":"YulExpressionStatement","src":"14740:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77252,"isOffset":false,"isSlot":false,"src":"14745:6:161","valueSize":1},{"declaration":77241,"isOffset":false,"isSlot":false,"src":"14753:4:161","valueSize":1},{"declaration":77162,"isOffset":false,"isSlot":false,"src":"14759:6:161","valueSize":1}],"flags":["memory-safe"],"id":77272,"nodeType":"InlineAssembly","src":"14697:83:161"}]}},{"expression":{"hexValue":"74727565","id":77293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15263:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":77096,"id":77294,"nodeType":"Return","src":"15256:11:161"}]},"documentation":{"id":77089,"nodeType":"StructuredDocumentation","src":"10868:109:161","text":"@dev Tries to parse and emit Sails Event. Returns `true` in case of success and `false` in case of error."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"10991:26:161","parameters":{"id":77093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77092,"mutability":"mutable","name":"_message","nameLocation":"11040:8:161","nodeType":"VariableDeclaration","scope":77296,"src":"11018:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77091,"nodeType":"UserDefinedTypeName","pathNode":{"id":77090,"name":"Gear.Message","nameLocations":["11018:4:161","11023:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":81274,"src":"11018:12:161"},"referencedDeclaration":81274,"src":"11018:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"11017:32:161"},"returnParameters":{"id":77096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77095,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77296,"src":"11067:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77094,"name":"bool","nodeType":"ElementaryTypeName","src":"11067:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11066:6:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77427,"nodeType":"FunctionDefinition","src":"15349:1606:161","nodes":[],"body":{"id":77426,"nodeType":"Block","src":"15416:1539:161","nodes":[],"statements":[{"condition":{"expression":{"id":77303,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"15430:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15439:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":81273,"src":"15430:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77424,"nodeType":"Block","src":"16606:343:161","statements":[{"assignments":[77392],"declarations":[{"constant":false,"id":77392,"mutability":"mutable","name":"transferSuccess","nameLocation":"16625:15:161","nodeType":"VariableDeclaration","scope":77424,"src":"16620:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77391,"name":"bool","nodeType":"ElementaryTypeName","src":"16620:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77399,"initialValue":{"arguments":[{"expression":{"id":77394,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16658:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16667:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"16658:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77396,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16680:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16689:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16680:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77393,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"16643:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16643:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16620:75:161"},{"condition":{"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16713:16:161","subExpression":{"id":77400,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77392,"src":"16714:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77410,"nodeType":"IfStatement","src":"16709:117:161","trueBody":{"id":77409,"nodeType":"Block","src":"16731:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77403,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16774:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16783:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"16774:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77405,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16796:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16805:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16796:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77402,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"16754:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16754:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77408,"nodeType":"EmitStatement","src":"16749:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":77412,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16851:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16860:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":81266,"src":"16851:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":77414,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16869:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16878:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16869:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":77416,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16885:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16894:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"16885:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16907:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":81290,"src":"16885:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":77419,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16911:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"16911:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16933:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":81292,"src":"16911:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":77411,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"16845:5:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":77422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16845:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77423,"nodeType":"EmitStatement","src":"16840:98:161"}]},"id":77425,"nodeType":"IfStatement","src":"15426:1523:161","trueBody":{"id":77390,"nodeType":"Block","src":"15445:1155:161","statements":[{"assignments":[77306],"declarations":[{"constant":false,"id":77306,"mutability":"mutable","name":"isSuccessReply","nameLocation":"15464:14:161","nodeType":"VariableDeclaration","scope":77390,"src":"15459:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77305,"name":"bool","nodeType":"ElementaryTypeName","src":"15459:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77314,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":77313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":77307,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"15481:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15490:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"15481:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15503:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":81292,"src":"15481:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":77311,"indexExpression":{"hexValue":"30","id":77310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15508:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15481:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15514:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15481:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"15459:56:161"},{"assignments":[77316],"declarations":[{"constant":false,"id":77316,"mutability":"mutable","name":"payload","nameLocation":"15543:7:161","nodeType":"VariableDeclaration","scope":77390,"src":"15530:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":77315,"name":"bytes","nodeType":"ElementaryTypeName","src":"15530:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":77317,"nodeType":"VariableDeclarationStatement","src":"15530:20:161"},{"condition":{"id":77318,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"15569:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77341,"nodeType":"Block","src":"15650:348:161","statements":[{"expression":{"id":77339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77325,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77316,"src":"15820:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":77328,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73043,"src":"15874:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73043_$","typeString":"type(contract ICallbacks)"}},"id":77329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15885:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73042,"src":"15874:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":77330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15898:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15874:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":77331,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"15908:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15917:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81262,"src":"15908:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77333,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"15921:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15930:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":81266,"src":"15921:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":77335,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"15939:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15948:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"15939:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15961:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":81292,"src":"15939:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15830:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":77327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15834:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"15830:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":77338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"15820:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":77340,"nodeType":"ExpressionStatement","src":"15820:163:161"}]},"id":77342,"nodeType":"IfStatement","src":"15565:433:161","trueBody":{"id":77324,"nodeType":"Block","src":"15585:59:161","statements":[{"expression":{"id":77322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77319,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77316,"src":"15603:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77320,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"15613:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15622:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":81266,"src":"15613:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"15603:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":77323,"nodeType":"ExpressionStatement","src":"15603:26:161"}]}},{"assignments":[77344,null],"declarations":[{"constant":false,"id":77344,"mutability":"mutable","name":"success","nameLocation":"16018:7:161","nodeType":"VariableDeclaration","scope":77390,"src":"16013:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77343,"name":"bool","nodeType":"ElementaryTypeName","src":"16013:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77354,"initialValue":{"arguments":[{"id":77352,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77316,"src":"16093:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":77345,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16030:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16039:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"16030:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16051:4:161","memberName":"call","nodeType":"MemberAccess","src":"16030:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":77348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16061:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":77349,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16077:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16086:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16077:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"16030:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16030:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"16012:89:161"},{"condition":{"id":77356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16120:8:161","subExpression":{"id":77355,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77344,"src":"16121:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77389,"nodeType":"IfStatement","src":"16116:474:161","trueBody":{"id":77388,"nodeType":"Block","src":"16130:460:161","statements":[{"assignments":[77358],"declarations":[{"constant":false,"id":77358,"mutability":"mutable","name":"transferSuccess","nameLocation":"16153:15:161","nodeType":"VariableDeclaration","scope":77388,"src":"16148:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77357,"name":"bool","nodeType":"ElementaryTypeName","src":"16148:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77365,"initialValue":{"arguments":[{"expression":{"id":77360,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16186:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16195:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"16186:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77362,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16208:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16217:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16208:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77359,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"16171:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16171:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"16148:75:161"},{"condition":{"id":77367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"16245:16:161","subExpression":{"id":77366,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77358,"src":"16246:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77376,"nodeType":"IfStatement","src":"16241:125:161","trueBody":{"id":77375,"nodeType":"Block","src":"16263:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77369,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16310:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16319:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81264,"src":"16310:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77371,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16332:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16341:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16332:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77368,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"16290:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16290:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77374,"nodeType":"EmitStatement","src":"16285:62:161"}]}},{"documentation":"@dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":77378,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16506:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16515:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81268,"src":"16506:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":77380,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16522:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16531:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"16522:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16544:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":81290,"src":"16522:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":77383,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77300,"src":"16548:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16557:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":81271,"src":"16548:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$81293_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16570:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":81292,"src":"16548:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":77377,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73522,"src":"16490:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":77386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16490:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77387,"nodeType":"EmitStatement","src":"16485:90:161"}]}}]}}]},"documentation":{"id":77297,"nodeType":"StructuredDocumentation","src":"15280:64:161","text":"@dev Non-zero value always sent since never goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"15358:17:161","parameters":{"id":77301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77300,"mutability":"mutable","name":"_message","nameLocation":"15398:8:161","nodeType":"VariableDeclaration","scope":77427,"src":"15376:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77299,"nodeType":"UserDefinedTypeName","pathNode":{"id":77298,"name":"Gear.Message","nameLocations":["15376:4:161","15381:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":81274,"src":"15376:12:161"},"referencedDeclaration":81274,"src":"15376:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$81274_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"15375:32:161"},"returnParameters":{"id":77302,"nodeType":"ParameterList","parameters":[],"src":"15416:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77539,"nodeType":"FunctionDefinition","src":"17058:1017:161","nodes":[],"body":{"id":77538,"nodeType":"Block","src":"17142:933:161","nodes":[],"statements":[{"assignments":[77437],"declarations":[{"constant":false,"id":77437,"mutability":"mutable","name":"claimsLen","nameLocation":"17160:9:161","nodeType":"VariableDeclaration","scope":77538,"src":"17152:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77436,"name":"uint256","nodeType":"ElementaryTypeName","src":"17152:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77440,"initialValue":{"expression":{"id":77438,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77431,"src":"17172:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$81351_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":77439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17180:6:161","memberName":"length","nodeType":"MemberAccess","src":"17172:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17152:34:161"},{"assignments":[77442],"declarations":[{"constant":false,"id":77442,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"17204:16:161","nodeType":"VariableDeclaration","scope":77538,"src":"17196:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77441,"name":"uint256","nodeType":"ElementaryTypeName","src":"17196:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77446,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77443,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77437,"src":"17223:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77444,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17235:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"17223:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17196:41:161"},{"assignments":[77448],"declarations":[{"constant":false,"id":77448,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"17255:18:161","nodeType":"VariableDeclaration","scope":77538,"src":"17247:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77447,"name":"uint256","nodeType":"ElementaryTypeName","src":"17247:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77453,"initialValue":{"arguments":[{"id":77451,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77442,"src":"17292:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77449,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"17276:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17283:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"17276:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17276:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17247:62:161"},{"assignments":[77455],"declarations":[{"constant":false,"id":77455,"mutability":"mutable","name":"offset","nameLocation":"17327:6:161","nodeType":"VariableDeclaration","scope":77538,"src":"17319:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77454,"name":"uint256","nodeType":"ElementaryTypeName","src":"17319:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77457,"initialValue":{"hexValue":"30","id":77456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17336:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17319:18:161"},{"body":{"id":77529,"nodeType":"Block","src":"17388:588:161","statements":[{"assignments":[77472],"declarations":[{"constant":false,"id":77472,"mutability":"mutable","name":"claim","nameLocation":"17427:5:161","nodeType":"VariableDeclaration","scope":77529,"src":"17402:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":77471,"nodeType":"UserDefinedTypeName","pathNode":{"id":77470,"name":"Gear.ValueClaim","nameLocations":["17402:4:161","17407:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":81351,"src":"17402:15:161"},"referencedDeclaration":81351,"src":"17402:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":77476,"initialValue":{"baseExpression":{"id":77473,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77431,"src":"17435:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$81351_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":77475,"indexExpression":{"id":77474,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77459,"src":"17443:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17435:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"17402:43:161"},{"assignments":[77478],"declarations":[{"constant":false,"id":77478,"mutability":"mutable","name":"claimHash","nameLocation":"17467:9:161","nodeType":"VariableDeclaration","scope":77529,"src":"17459:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17459:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77488,"initialValue":{"arguments":[{"expression":{"id":77481,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17499:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17505:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":81346,"src":"17499:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77483,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17516:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17522:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81348,"src":"17516:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77485,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17535:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17541:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81350,"src":"17535:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":77479,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"17479:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":77480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17484:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":81541,"src":"17479:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":77487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17479:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17459:88:161"},{"expression":{"arguments":[{"id":77492,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77448,"src":"17587:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77493,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77455,"src":"17607:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77494,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77478,"src":"17615:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77489,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"17561:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17568:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"17561:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":77495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17561:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77496,"nodeType":"ExpressionStatement","src":"17561:64:161"},{"id":77501,"nodeType":"UncheckedBlock","src":"17639:55:161","statements":[{"expression":{"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77497,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77455,"src":"17667:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":77498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17677:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"17667:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77500,"nodeType":"ExpressionStatement","src":"17667:12:161"}]},{"assignments":[77503],"declarations":[{"constant":false,"id":77503,"mutability":"mutable","name":"success","nameLocation":"17713:7:161","nodeType":"VariableDeclaration","scope":77529,"src":"17708:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77502,"name":"bool","nodeType":"ElementaryTypeName","src":"17708:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77510,"initialValue":{"arguments":[{"expression":{"id":77505,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17738:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17744:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":81348,"src":"17738:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77507,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17757:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17763:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81350,"src":"17757:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77504,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"17723:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17723:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17708:61:161"},{"condition":{"id":77511,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77503,"src":"17787:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77527,"nodeType":"Block","src":"17882:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77521,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17922:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17928:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":81346,"src":"17922:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77523,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17939:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17945:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81350,"src":"17939:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77520,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"17905:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17905:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77526,"nodeType":"EmitStatement","src":"17900:51:161"}]},"id":77528,"nodeType":"IfStatement","src":"17783:183:161","trueBody":{"id":77519,"nodeType":"Block","src":"17796:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77513,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17832:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17838:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":81346,"src":"17832:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77515,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77472,"src":"17849:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17855:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":81350,"src":"17849:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77512,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"17819:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17819:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77518,"nodeType":"EmitStatement","src":"17814:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77462,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77459,"src":"17368:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77463,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77437,"src":"17372:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17368:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77530,"initializationExpression":{"assignments":[77459],"declarations":[{"constant":false,"id":77459,"mutability":"mutable","name":"i","nameLocation":"17361:1:161","nodeType":"VariableDeclaration","scope":77530,"src":"17353:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77458,"name":"uint256","nodeType":"ElementaryTypeName","src":"17353:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77461,"initialValue":{"hexValue":"30","id":77460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17365:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17353:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17383:3:161","subExpression":{"id":77465,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77459,"src":"17383:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77467,"nodeType":"ExpressionStatement","src":"17383:3:161"},"nodeType":"ForStatement","src":"17348:628:161"},{"expression":{"arguments":[{"id":77533,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77448,"src":"18028:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":77534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18048:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":77535,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77442,"src":"18051:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77531,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"17993:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":77532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18000:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"17993:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":77536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17993:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77435,"id":77537,"nodeType":"Return","src":"17986:82:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"17067:12:161","parameters":{"id":77432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77431,"mutability":"mutable","name":"_claims","nameLocation":"17107:7:161","nodeType":"VariableDeclaration","scope":77539,"src":"17080:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$81351_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":77429,"nodeType":"UserDefinedTypeName","pathNode":{"id":77428,"name":"Gear.ValueClaim","nameLocations":["17080:4:161","17085:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":81351,"src":"17080:15:161"},"referencedDeclaration":81351,"src":"17080:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$81351_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":77430,"nodeType":"ArrayTypeName","src":"17080:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$81351_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"17079:36:161"},"returnParameters":{"id":77435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77434,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77539,"src":"17133:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17133:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17132:9:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77571,"nodeType":"FunctionDefinition","src":"18136:509:161","nodes":[],"body":{"id":77570,"nodeType":"Block","src":"18200:445:161","nodes":[],"statements":[{"documentation":"@dev Set inheritor.","expression":{"id":77548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77546,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"18242:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18251:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18242:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77549,"nodeType":"ExpressionStatement","src":"18242:13:161"},{"expression":{"id":77552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77550,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76380,"src":"18265:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77551,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77541,"src":"18277:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18265:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77553,"nodeType":"ExpressionStatement","src":"18265:22:161"},{"assignments":[77555,77557],"declarations":[{"constant":false,"id":77555,"mutability":"mutable","name":"value","nameLocation":"18373:5:161","nodeType":"VariableDeclaration","scope":77570,"src":"18365:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77554,"name":"uint128","nodeType":"ElementaryTypeName","src":"18365:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77557,"mutability":"mutable","name":"success","nameLocation":"18385:7:161","nodeType":"VariableDeclaration","scope":77570,"src":"18380:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77556,"name":"bool","nodeType":"ElementaryTypeName","src":"18380:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":"@dev Transfer all available balance to the inheritor.","id":77560,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77558,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76890,"src":"18396:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18396:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"18364:65:161"},{"condition":{"id":77562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18443:8:161","subExpression":{"id":77561,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77557,"src":"18444:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77569,"nodeType":"IfStatement","src":"18439:200:161","trueBody":{"id":77568,"nodeType":"Block","src":"18453:186:161","statements":[{"documentation":"@dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":77564,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77541,"src":"18610:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77565,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77555,"src":"18622:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77563,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"18573:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18573:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77567,"nodeType":"EmitStatement","src":"18568:60:161"}]}}]},"implemented":true,"kind":"function","modifiers":[{"id":77544,"kind":"modifierInvocation","modifierName":{"id":77543,"name":"onlyIfActive","nameLocations":["18187:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76450,"src":"18187:12:161"},"nodeType":"ModifierInvocation","src":"18187:12:161"}],"name":"_setInheritor","nameLocation":"18145:13:161","parameters":{"id":77542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77541,"mutability":"mutable","name":"_inheritor","nameLocation":"18167:10:161","nodeType":"VariableDeclaration","scope":77571,"src":"18159:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77540,"name":"address","nodeType":"ElementaryTypeName","src":"18159:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18158:20:161"},"returnParameters":{"id":77545,"nodeType":"ParameterList","parameters":[],"src":"18200:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77585,"nodeType":"FunctionDefinition","src":"18651:235:161","nodes":[],"body":{"id":77584,"nodeType":"Block","src":"18705:181:161","nodes":[],"statements":[{"documentation":"@dev Set state hash.","expression":{"id":77578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77576,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"18748:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77577,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77573,"src":"18760:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18748:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77579,"nodeType":"ExpressionStatement","src":"18748:22:161"},{"documentation":"@dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":77581,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"18869:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77580,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73441,"src":"18856:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18856:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77583,"nodeType":"EmitStatement","src":"18851:28:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"18660:16:161","parameters":{"id":77574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77573,"mutability":"mutable","name":"_stateHash","nameLocation":"18685:10:161","nodeType":"VariableDeclaration","scope":77585,"src":"18677:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18677:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18676:20:161"},"returnParameters":{"id":77575,"nodeType":"ParameterList","parameters":[],"src":"18705:0:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77606,"nodeType":"FunctionDefinition","src":"18926:182:161","nodes":[],"body":{"id":77605,"nodeType":"Block","src":"18998:110:161","nodes":[],"statements":[{"assignments":[77594],"declarations":[{"constant":false,"id":77594,"mutability":"mutable","name":"wvaraAddr","nameLocation":"19016:9:161","nodeType":"VariableDeclaration","scope":77605,"src":"19008:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77593,"name":"address","nodeType":"ElementaryTypeName","src":"19008:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77600,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77596,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77587,"src":"19036:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77595,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"19028:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74052_$","typeString":"type(contract IRouter)"}},"id":77597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19028:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":77598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19048:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73877,"src":"19028:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19028:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19008:53:161"},{"expression":{"arguments":[{"id":77602,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77594,"src":"19091:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77601,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"19078:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$74063_$","typeString":"type(contract IWrappedVara)"}},"id":77603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19078:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"functionReturnParameters":77592,"id":77604,"nodeType":"Return","src":"19071:30:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"18935:6:161","parameters":{"id":77588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77587,"mutability":"mutable","name":"routerAddr","nameLocation":"18950:10:161","nodeType":"VariableDeclaration","scope":77606,"src":"18942:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77586,"name":"address","nodeType":"ElementaryTypeName","src":"18942:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18941:20:161"},"returnParameters":{"id":77592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77591,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77606,"src":"18984:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"},"typeName":{"id":77590,"nodeType":"UserDefinedTypeName","pathNode":{"id":77589,"name":"IWrappedVara","nameLocations":["18984:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":74063,"src":"18984:12:161"},"referencedDeclaration":74063,"src":"18984:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"18983:14:161"},"scope":77695,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77635,"nodeType":"FunctionDefinition","src":"19114:253:161","nodes":[],"body":{"id":77634,"nodeType":"Block","src":"19197:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77615,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77610,"src":"19211:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19220:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19211:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77631,"nodeType":"IfStatement","src":"19207:133:161","trueBody":{"id":77630,"nodeType":"Block","src":"19223:117:161","statements":[{"assignments":[77619,null],"declarations":[{"constant":false,"id":77619,"mutability":"mutable","name":"success","nameLocation":"19243:7:161","nodeType":"VariableDeclaration","scope":77630,"src":"19238:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77618,"name":"bool","nodeType":"ElementaryTypeName","src":"19238:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77627,"initialValue":{"arguments":[{"hexValue":"","id":77625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19298:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77620,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77608,"src":"19255:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19267:4:161","memberName":"call","nodeType":"MemberAccess","src":"19255:16:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":77622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19277:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":77623,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77610,"src":"19291:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"19255:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19255:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"19237:64:161"},{"expression":{"id":77628,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77619,"src":"19322:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77614,"id":77629,"nodeType":"Return","src":"19315:14:161"}]}},{"expression":{"hexValue":"74727565","id":77632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19356:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":77614,"id":77633,"nodeType":"Return","src":"19349:11:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"19123:14:161","parameters":{"id":77611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77608,"mutability":"mutable","name":"destination","nameLocation":"19146:11:161","nodeType":"VariableDeclaration","scope":77635,"src":"19138:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77607,"name":"address","nodeType":"ElementaryTypeName","src":"19138:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77610,"mutability":"mutable","name":"value","nameLocation":"19167:5:161","nodeType":"VariableDeclaration","scope":77635,"src":"19159:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77609,"name":"uint128","nodeType":"ElementaryTypeName","src":"19159:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"19137:36:161"},"returnParameters":{"id":77614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77613,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77635,"src":"19191:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77612,"name":"bool","nodeType":"ElementaryTypeName","src":"19191:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19190:6:161"},"scope":77695,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77694,"nodeType":"FunctionDefinition","src":"19373:1033:161","nodes":[],"body":{"id":77693,"nodeType":"Block","src":"19415:991:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77640,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19429:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19433:5:161","memberName":"value","nodeType":"MemberAccess","src":"19429:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19441:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19429:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":77644,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19446:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19450:4:161","memberName":"data","nodeType":"MemberAccess","src":"19446:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19455:6:161","memberName":"length","nodeType":"MemberAccess","src":"19446:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77647,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19465:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19446:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19429:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19590:8:161","subExpression":{"id":77663,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"19591:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":77665,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19602:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19606:4:161","memberName":"data","nodeType":"MemberAccess","src":"19602:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19611:6:161","memberName":"length","nodeType":"MemberAccess","src":"19602:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":77668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19621:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"19602:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19590:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77690,"nodeType":"Block","src":"20347:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77687,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73578,"src":"20368:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20368:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77689,"nodeType":"RevertStatement","src":"20361:28:161"}]},"id":77691,"nodeType":"IfStatement","src":"19586:814:161","trueBody":{"id":77686,"nodeType":"Block","src":"19627:714:161","statements":[{"assignments":[77672],"declarations":[{"constant":false,"id":77672,"mutability":"mutable","name":"callReply","nameLocation":"20017:9:161","nodeType":"VariableDeclaration","scope":77686,"src":"20009:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77671,"name":"uint256","nodeType":"ElementaryTypeName","src":"20009:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77673,"nodeType":"VariableDeclarationStatement","src":"20009:17:161"},{"AST":{"nativeSrc":"20066:63:161","nodeType":"YulBlock","src":"20066:63:161","statements":[{"nativeSrc":"20084:31:161","nodeType":"YulAssignment","src":"20084:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"20110:4:161","nodeType":"YulLiteral","src":"20110:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"20097:12:161","nodeType":"YulIdentifier","src":"20097:12:161"},"nativeSrc":"20097:18:161","nodeType":"YulFunctionCall","src":"20097:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"20084:9:161","nodeType":"YulIdentifier","src":"20084:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77672,"isOffset":false,"isSlot":false,"src":"20084:9:161","valueSize":1}],"flags":["memory-safe"],"id":77674,"nodeType":"InlineAssembly","src":"20041:88:161"},{"assignments":[77676],"declarations":[{"constant":false,"id":77676,"mutability":"mutable","name":"messageId","nameLocation":"20151:9:161","nodeType":"VariableDeclaration","scope":77686,"src":"20143:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20143:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77684,"initialValue":{"arguments":[{"expression":{"id":77678,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20176:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20180:4:161","memberName":"data","nodeType":"MemberAccess","src":"20176:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77680,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77672,"src":"20186:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20199:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20186:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77677,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76938,"src":"20163:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20163:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"20143:58:161"},{"AST":{"nativeSrc":"20241:90:161","nodeType":"YulBlock","src":"20241:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"20266:4:161","nodeType":"YulLiteral","src":"20266:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"20272:9:161","nodeType":"YulIdentifier","src":"20272:9:161"}],"functionName":{"name":"mstore","nativeSrc":"20259:6:161","nodeType":"YulIdentifier","src":"20259:6:161"},"nativeSrc":"20259:23:161","nodeType":"YulFunctionCall","src":"20259:23:161"},"nativeSrc":"20259:23:161","nodeType":"YulExpressionStatement","src":"20259:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"20306:4:161","nodeType":"YulLiteral","src":"20306:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"20312:4:161","nodeType":"YulLiteral","src":"20312:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"20299:6:161","nodeType":"YulIdentifier","src":"20299:6:161"},"nativeSrc":"20299:18:161","nodeType":"YulFunctionCall","src":"20299:18:161"},"nativeSrc":"20299:18:161","nodeType":"YulExpressionStatement","src":"20299:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77676,"isOffset":false,"isSlot":false,"src":"20272:9:161","valueSize":1}],"flags":["memory-safe"],"id":77685,"nodeType":"InlineAssembly","src":"20216:115:161"}]}},"id":77692,"nodeType":"IfStatement","src":"19425:975:161","trueBody":{"id":77662,"nodeType":"Block","src":"19468:112:161","statements":[{"assignments":[77651],"declarations":[{"constant":false,"id":77651,"mutability":"mutable","name":"value","nameLocation":"19490:5:161","nodeType":"VariableDeclaration","scope":77662,"src":"19482:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77650,"name":"uint128","nodeType":"ElementaryTypeName","src":"19482:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77657,"initialValue":{"arguments":[{"expression":{"id":77654,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19506:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19510:5:161","memberName":"value","nodeType":"MemberAccess","src":"19506:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19498:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77652,"name":"uint128","nodeType":"ElementaryTypeName","src":"19498:7:161","typeDescriptions":{}}},"id":77656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19498:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"19482:34:161"},{"eventCall":{"arguments":[{"id":77659,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77651,"src":"19563:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77658,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73477,"src":"19536:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19536:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77661,"nodeType":"EmitStatement","src":"19531:38:161"}]}}]},"implemented":true,"kind":"fallback","modifiers":[{"id":77638,"kind":"modifierInvocation","modifierName":{"id":77637,"name":"whenNotPaused","nameLocations":["19401:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76507,"src":"19401:13:161"},"nodeType":"ModifierInvocation","src":"19401:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77636,"nodeType":"ParameterList","parameters":[],"src":"19381:2:161"},"returnParameters":{"id":77639,"nodeType":"ParameterList","parameters":[],"src":"19415:0:161"},"scope":77695,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":76360,"name":"IMirror","nameLocations":["595:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":73658,"src":"595:7:161"},"id":76361,"nodeType":"InheritanceSpecifier","src":"595:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77695,73658],"name":"Mirror","nameLocation":"585:6:161","scope":77696,"usedErrors":[73552,73554,73556,73558,73560,73562,73564,73566,73568,73570,73572,73574,73576,73578,73581],"usedEvents":[73441,73454,73465,73472,73477,73482,73493,73502,73513,73522,73529,73536,73543,73550]}],"license":"UNLICENSED"},"id":161} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DebugEvent","inputs":[{"name":"topic0","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":true},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyCallFailed","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008657601f611be338819003918201601f19168301916001600160401b0383118484101761008a5780849260209460405283398101031261008657516001600160a01b038116810361008657608052604051611b44908161009f823960805181818161022e015281816105a5015281816113900152818161145201526114f50152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b6100166114e0565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d5761007661156d565b60015415801590610149575b1561013a576001600160801b03341661009a8161143a565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461084857806336a52a181461081b57806342129d00146106f95780635ce6c327146106d6578063701da98e146106b9578063704ed5421461052a5780637a8e0cdd1461049457806391d5a64c146104395780639ce110d714610410578063affed0e0146103f2578063e43f343314610387578063e4bbb5a8146102605763f887ea4014610219575061000e565b3461025d578060031936011261025d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461025d57606036600319011261025d576004356001600160a01b03811690819003610383576024356001600160a01b038116919082900361037f576044359081151580920361037b576102b361138e565b600354906001600160a01b03821661036c5760ff8260a01c1661035d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b03841661034e576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5580f35b638778dcd360e01b8652600486fd5b6325f368db60e11b8552600485fd5b63f20d240560e01b8552600485fd5b8380fd5b8280fd5b5080fd5b503461025d578060031936011261025d576103a06114e0565b60025460ff8116156103e3576103cc90476001600160801b03169060081c6001600160a01b0316611743565b156103d45780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b503461025d578060031936011261025d576020600154604051908152f35b503461025d578060031936011261025d576003546040516001600160a01b039091168152602090f35b503461025d57602036600319011261025d576104536114e0565b61045b61156d565b610463611588565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b50604036600319011261025d576024356001600160401b038111610383576104e17fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9136906004016112de565b6104ec9291926114e0565b6104f461156d565b6104fc611588565b6001600160801b033416906105108261143a565b610524604051928392339660043585611360565b0390a280f35b503461025d57602036600319011261025d576004356001600160801b038116809103610383576105586114e0565b61056061156d565b80610594575b60207f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c05423666791604051908152a180f35b60405163088f50cf60e41b815282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa908115610669578391610674575b50606460209260405194859384926323b872dd60e01b8452336004850152602484015287604484015260018060a01b03165af190811561066957839161063a575b50610566576303a25d1960e31b8252600482fd5b61065c915060203d602011610662575b61065481836113cf565b8101906114c8565b5f610626565b503d61064a565b6040513d85823e3d90fd5b90506020813d6020116106b1575b8161068f602093836113cf565b8101031261037f5751906001600160a01b038216820361037f579060646105e5565b3d9150610682565b503461025d578060031936011261025d5760209054604051908152f35b503461025d578060031936011261025d57602060ff600254166040519015158152f35b50604036600319011261025d576004356001600160401b038111610383576107259036906004016112de565b919060243580151580910361037f5761073c6114e0565b61074461156d565b60015415801590610807575b156107f8576001600160801b033416916107698361143a565b6001543060601b85528060145260348520945f1982146107e45750916107cb6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611340565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610750565b503461025d578060031936011261025d5760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610ee6576001600160401b0360043511610ee6576004353603610100600319820112610ee65761087f61138e565b61088d60043560040161130b565b306001600160a01b03909116036112cf576108ac60a46004350161131f565b6112b4575b60043560e401356022198201811215610ee6576001600160401b03600482813501013511610ee657600481813501013560051b3603602482600435010113610ee6576004803582010135600581901b8190046020149015171561012657610921600482813501013560051b6115a1565b5f93845b6004848135010135861015610efe57600586901b600435850190810160240135969036036101021901871215610ee65760e06023196004358701890136030112610ee6576040519160c083018381106001600160401b03821117610eea57604052600435860188016024810135845260440135906001600160a01b0382168203610ee65760208401918252606460043588018a0101356001600160401b038111610ee65760209060048b8a8235010101010136601f82011215610ee6576109f3903690602081359101611492565b6040850190815291608460043589018b0101356001600160801b0381168103610ee65760608601908152604060a3196004358b018d0136030112610ee65760405195604087018781106001600160401b03821117610eea576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610ee657602088019182526080810188905260e46004358c018e01013580151596878203610ee657600199602098610b21958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113cf565b51902086820152019660a4600435870182010135610b545760206004610b4d928882350101010161160d565b0194610925565b610b6660e4600435880183010161131f565b15610db7576001600160f81b0319610b8660c460043589018401016115f8565b5f1a60f81b161586826060925f14610d2f575f9250610bbf60606004610bc693869582350101010160206004878d8235010101016115c6565b3691611492565b886001600160801b03610bf46080600488610be860448335880183010161130b565b9582350101010161132c565b16602083519301916207a120f1610c0961140b565b5015610c16575b50610b4d565b610c43610c2b6044600435890184010161130b565b610c3d60846004358a0185010161132c565b90611743565b15610cc0575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610c7e60846004358a0185010161132c565b60a060046001600160e01b0319610c9c60c483358e018901016115f8565b16956001600160801b038551941684528b823501010101356020820152a25f610c10565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610cf36044600435890184010161130b565b610d0560846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c49565b5f928392610db291610d95610d516004358401860160648101906024016115c6565b610d6360c460043587018901016115f8565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611340565b9063ffffffff60e01b16606483015203601f1981018352826113cf565b610bc6565b610dcc610c2b6044600435890184010161130b565b15610e77575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e0a6004358801830160648101906024016115c6565b610e1c60846004358b0186010161132c565b60a060046001600160e01b0319610e3a60c483358f018a01016115f8565b16966001600160801b03610e5b604051978897606089526060890191611340565b941660208601528c8235010101013560408301520390a2610b4d565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610eaa6044600435890184010161130b565b610ebc60846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610dd2565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610ee65760043501916004830135916001600160401b038311610ee6576060830236036024850113610ee6578260051b908382046020148415171561012657610f6a82959493926115a1565b915f955f965b858810156110a757610fa8949596976001916004606083028b01019061100a611001602080850135938c816060604089019e8f61130b565b980197610fb48961132c565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152610ff46064826113cf565b519020910152019961130b565b610c3d8461132c565b1561105e576110397fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261132c565b604080519283526001600160801b0391909116602083015290a15b0196959493610f70565b6110887f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261132c565b604080519283526001600160801b0391909116602083015290a1611054565b50832091604460043501916110bb8361131f565b156112815750916020926110d360646004350161130b565b916110dc61156d565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111279183911c6001600160a01b0316611743565b15611234575b50505b8254602460043501359384809203611203575b505061115c61115660043560040161130b565b9461131f565b61116a60646004350161130b565b61117860846004350161132c565b9061118760a46004350161131f565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a81526111f860ba826113cf565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611143565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061112d565b906001600160a01b0361129860043560640161130b565b166112a557602093611130565b6304c3c7a160e41b5f5260045ffd5b6112ca6112c560846004350161132c565b61143a565b6108b1565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610ee6578235916001600160401b038311610ee65760208381860195010111610ee657565b356001600160a01b0381168103610ee65790565b358015158103610ee65790565b356001600160801b0381168103610ee65790565b908060209392818452848401375f828201840152601f01601f1916010190565b92604092611387916001600160801b03939796978652606060208701526060860191611340565b9416910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036113c057565b6375f48d7160e11b5f5260045ffd5b90601f801991011681019081106001600160401b03821117610eea57604052565b6001600160401b038111610eea57601f01601f191660200190565b3d15611435573d9061141c826113f0565b9161142a60405193846113cf565b82523d5f602084013e565b606090565b6001600160801b03168061144b5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af161147b61140b565b501561148357565b6308eb200360e41b5f5260045ffd5b92919261149e826113f0565b916114ac60405193846113cf565b829481845281830111610ee6578281602093845f960137010152565b90816020910312610ee657518015158103610ee65790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611562575f91611543575b5061153457565b63d93c066560e01b5f5260045ffd5b61155c915060203d6020116106625761065481836113cf565b5f61152d565b6040513d5f823e3d90fd5b60ff6002541661157957565b630d304b8160e31b5f5260045ffd5b6001541561159257565b631a2efd3560e31b5f5260045ffd5b6040519190601f01601f191682016001600160401b03811183821017610ee657604052565b903590601e1981360301821215610ee657018035906001600160401b038211610ee657602001918136038313610ee657565b356001600160e01b031981168103610ee65790565b61161681611770565b1561161e5750565b61162a60c0820161131f565b611697575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361169261165f6020840161130b565b61166c60408501856115c6565b61167b6060879593950161132c565b9060405194859460018060a01b0316973585611360565b0390a2565b602081015f806116a68361130b565b816116b460408701876115c6565b9190826040519384928337810182815203926207a120f16116d361140b565b50156116df575061162f565b6117097f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161130b565b6117156060840161132c565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611692565b906001600160801b0316908161175a575050600190565b5f8080938193611388f161176c61140b565b5090565b61177d60408201826115c6565b90916001600160a01b03806117946020840161130b565b16149081611b26575b5080611b1d575b15611b175781358060f81c90600182101580611b0c575b15611b045760f31c611fe016600181018310611b04576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611ada575b80611ab0575b80611a86575b80611a5c575b80611a32575b80611a08575b806119de575b806119b4575b8061198a575b80611960575b80611936575b8061190c575b806118e2575b156118d9578190035f190191826001611861826115a1565b938701018337602185013594604181013591600181036118885750505090919250a1600190565b6002810361189957505050a2600190565b600381979593969497145f146118b557505090919293a3600190565b6004146118c8575b505050505050600190565b6061013594a45f80808080806118bd565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611849565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611843565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f384141561183d565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611837565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611831565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c684141561182b565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611825565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177384141561181f565b507f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667841415611819565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611813565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497884141561180d565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611807565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611801565b505050505f90565b5060048211156117bb565b50505f90565b508015156117a4565b6001600160801b0391506060611b3c910161132c565b16155f61179d56","sourceMap":"586:22148:161:-:0;;;;;;;;;;;;;-1:-1:-1;;586:22148:161;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;3152:16;;586:22148;;;;;;;;3152:16;586:22148;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;586:22148:161;;;;;;-1:-1:-1;586:22148:161;;;;;-1:-1:-1;586:22148:161","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b6100166114e0565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d5761007661156d565b60015415801590610149575b1561013a576001600160801b03341661009a8161143a565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461084857806336a52a181461081b57806342129d00146106f95780635ce6c327146106d6578063701da98e146106b9578063704ed5421461052a5780637a8e0cdd1461049457806391d5a64c146104395780639ce110d714610410578063affed0e0146103f2578063e43f343314610387578063e4bbb5a8146102605763f887ea4014610219575061000e565b3461025d578060031936011261025d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461025d57606036600319011261025d576004356001600160a01b03811690819003610383576024356001600160a01b038116919082900361037f576044359081151580920361037b576102b361138e565b600354906001600160a01b03821661036c5760ff8260a01c1661035d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b03841661034e576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5580f35b638778dcd360e01b8652600486fd5b6325f368db60e11b8552600485fd5b63f20d240560e01b8552600485fd5b8380fd5b8280fd5b5080fd5b503461025d578060031936011261025d576103a06114e0565b60025460ff8116156103e3576103cc90476001600160801b03169060081c6001600160a01b0316611743565b156103d45780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b503461025d578060031936011261025d576020600154604051908152f35b503461025d578060031936011261025d576003546040516001600160a01b039091168152602090f35b503461025d57602036600319011261025d576104536114e0565b61045b61156d565b610463611588565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b50604036600319011261025d576024356001600160401b038111610383576104e17fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f9136906004016112de565b6104ec9291926114e0565b6104f461156d565b6104fc611588565b6001600160801b033416906105108261143a565b610524604051928392339660043585611360565b0390a280f35b503461025d57602036600319011261025d576004356001600160801b038116809103610383576105586114e0565b61056061156d565b80610594575b60207f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c05423666791604051908152a180f35b60405163088f50cf60e41b815282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa908115610669578391610674575b50606460209260405194859384926323b872dd60e01b8452336004850152602484015287604484015260018060a01b03165af190811561066957839161063a575b50610566576303a25d1960e31b8252600482fd5b61065c915060203d602011610662575b61065481836113cf565b8101906114c8565b5f610626565b503d61064a565b6040513d85823e3d90fd5b90506020813d6020116106b1575b8161068f602093836113cf565b8101031261037f5751906001600160a01b038216820361037f579060646105e5565b3d9150610682565b503461025d578060031936011261025d5760209054604051908152f35b503461025d578060031936011261025d57602060ff600254166040519015158152f35b50604036600319011261025d576004356001600160401b038111610383576107259036906004016112de565b919060243580151580910361037f5761073c6114e0565b61074461156d565b60015415801590610807575b156107f8576001600160801b033416916107698361143a565b6001543060601b85528060145260348520945f1982146107e45750916107cb6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611340565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610750565b503461025d578060031936011261025d5760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610ee6576001600160401b0360043511610ee6576004353603610100600319820112610ee65761087f61138e565b61088d60043560040161130b565b306001600160a01b03909116036112cf576108ac60a46004350161131f565b6112b4575b60043560e401356022198201811215610ee6576001600160401b03600482813501013511610ee657600481813501013560051b3603602482600435010113610ee6576004803582010135600581901b8190046020149015171561012657610921600482813501013560051b6115a1565b5f93845b6004848135010135861015610efe57600586901b600435850190810160240135969036036101021901871215610ee65760e06023196004358701890136030112610ee6576040519160c083018381106001600160401b03821117610eea57604052600435860188016024810135845260440135906001600160a01b0382168203610ee65760208401918252606460043588018a0101356001600160401b038111610ee65760209060048b8a8235010101010136601f82011215610ee6576109f3903690602081359101611492565b6040850190815291608460043589018b0101356001600160801b0381168103610ee65760608601908152604060a3196004358b018d0136030112610ee65760405195604087018781106001600160401b03821117610eea576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610ee657602088019182526080810188905260e46004358c018e01013580151596878203610ee657600199602098610b21958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b6088820152030160158101845201826113cf565b51902086820152019660a4600435870182010135610b545760206004610b4d928882350101010161160d565b0194610925565b610b6660e4600435880183010161131f565b15610db7576001600160f81b0319610b8660c460043589018401016115f8565b5f1a60f81b161586826060925f14610d2f575f9250610bbf60606004610bc693869582350101010160206004878d8235010101016115c6565b3691611492565b886001600160801b03610bf46080600488610be860448335880183010161130b565b9582350101010161132c565b16602083519301916207a120f1610c0961140b565b5015610c16575b50610b4d565b610c43610c2b6044600435890184010161130b565b610c3d60846004358a0185010161132c565b90611743565b15610cc0575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610c7e60846004358a0185010161132c565b60a060046001600160e01b0319610c9c60c483358e018901016115f8565b16956001600160801b038551941684528b823501010101356020820152a25f610c10565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610cf36044600435890184010161130b565b610d0560846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c49565b5f928392610db291610d95610d516004358401860160648101906024016115c6565b610d6360c460043587018901016115f8565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611340565b9063ffffffff60e01b16606483015203601f1981018352826113cf565b610bc6565b610dcc610c2b6044600435890184010161130b565b15610e77575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e0a6004358801830160648101906024016115c6565b610e1c60846004358b0186010161132c565b60a060046001600160e01b0319610e3a60c483358f018a01016115f8565b16966001600160801b03610e5b604051978897606089526060890191611340565b941660208601528c8235010101013560408301520390a2610b4d565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610eaa6044600435890184010161130b565b610ebc60846004358a0185010161132c565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610dd2565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209060c460043501359060221901811215610ee65760043501916004830135916001600160401b038311610ee6576060830236036024850113610ee6578260051b908382046020148415171561012657610f6a82959493926115a1565b915f955f965b858810156110a757610fa8949596976001916004606083028b01019061100a611001602080850135938c816060604089019e8f61130b565b980197610fb48961132c565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152610ff46064826113cf565b519020910152019961130b565b610c3d8461132c565b1561105e576110397fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd657839261132c565b604080519283526001600160801b0391909116602083015290a15b0196959493610f70565b6110887f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed9261132c565b604080519283526001600160801b0391909116602083015290a1611054565b50832091604460043501916110bb8361131f565b156112815750916020926110d360646004350161130b565b916110dc61156d565b600280546001600160a81b031916600885811b610100600160a81b031691909117600117918290555f9491476001600160801b0316916111279183911c6001600160a01b0316611743565b15611234575b50505b8254602460043501359384809203611203575b505061115c61115660043560040161130b565b9461131f565b61116a60646004350161130b565b61117860846004350161132c565b9061118760a46004350161131f565b9260405196898801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a81526111f860ba826113cf565b519020604051908152f35b557f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093085604051858152a18286611143565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061112d565b906001600160a01b0361129860043560640161130b565b166112a557602093611130565b6304c3c7a160e41b5f5260045ffd5b6112ca6112c560846004350161132c565b61143a565b6108b1565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610ee6578235916001600160401b038311610ee65760208381860195010111610ee657565b356001600160a01b0381168103610ee65790565b358015158103610ee65790565b356001600160801b0381168103610ee65790565b908060209392818452848401375f828201840152601f01601f1916010190565b92604092611387916001600160801b03939796978652606060208701526060860191611340565b9416910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036113c057565b6375f48d7160e11b5f5260045ffd5b90601f801991011681019081106001600160401b03821117610eea57604052565b6001600160401b038111610eea57601f01601f191660200190565b3d15611435573d9061141c826113f0565b9161142a60405193846113cf565b82523d5f602084013e565b606090565b6001600160801b03168061144b5750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af161147b61140b565b501561148357565b6308eb200360e41b5f5260045ffd5b92919261149e826113f0565b916114ac60405193846113cf565b829481845281830111610ee6578281602093845f960137010152565b90816020910312610ee657518015158103610ee65790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115611562575f91611543575b5061153457565b63d93c066560e01b5f5260045ffd5b61155c915060203d6020116106625761065481836113cf565b5f61152d565b6040513d5f823e3d90fd5b60ff6002541661157957565b630d304b8160e31b5f5260045ffd5b6001541561159257565b631a2efd3560e31b5f5260045ffd5b6040519190601f01601f191682016001600160401b03811183821017610ee657604052565b903590601e1981360301821215610ee657018035906001600160401b038211610ee657602001918136038313610ee657565b356001600160e01b031981168103610ee65790565b61161681611770565b1561161e5750565b61162a60c0820161131f565b611697575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177361169261165f6020840161130b565b61166c60408501856115c6565b61167b6060879593950161132c565b9060405194859460018060a01b0316973585611360565b0390a2565b602081015f806116a68361130b565b816116b460408701876115c6565b9190826040519384928337810182815203926207a120f16116d361140b565b50156116df575061162f565b6117097f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f89161130b565b6117156060840161132c565b60408051943585526001600160801b0390911660208501526001600160a01b03909116929081908101611692565b906001600160801b0316908161175a575050600190565b5f8080938193611388f161176c61140b565b5090565b61177d60408201826115c6565b90916001600160a01b03806117946020840161130b565b16149081611b26575b5080611b1d575b15611b175781358060f81c90600182101580611b0c575b15611b045760f31c611fe016600181018310611b04576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611ada575b80611ab0575b80611a86575b80611a5c575b80611a32575b80611a08575b806119de575b806119b4575b8061198a575b80611960575b80611936575b8061190c575b806118e2575b156118d9578190035f190191826001611861826115a1565b938701018337602185013594604181013591600181036118885750505090919250a1600190565b6002810361189957505050a2600190565b600381979593969497145f146118b557505090919293a3600190565b6004146118c8575b505050505050600190565b6061013594a45f80808080806118bd565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611849565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a841415611843565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f384141561183d565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd65783841415611837565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611831565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c684141561182b565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f8841415611825565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f801177384141561181f565b507f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667841415611819565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa1826206841415611813565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497884141561180d565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f841415611807565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611801565b505050505f90565b5060048211156117bb565b50505f90565b508015156117a4565b6001600160801b0391506060611b3c910161132c565b16155f61179d56","sourceMap":"586:22148:161:-:0;;;;;;;;;-1:-1:-1;4713:69:161;;:::i;:::-;21755:9;:13;;:37;;;-1:-1:-1;21751:975:161;;;21862:33;586:22148;;;-1:-1:-1;;;;;21755:9:161;586:22148;;;21862:33;586:22148;21751:975;586:22148;21917:7;586:22148;;;;21916:8;:35;;;21751:975;21912:814;;;4025:67;;:::i;:::-;3835:5;586:22148;3835:9;;;:38;;;21912:814;586:22148;;;-1:-1:-1;;;;;21755:9:161;586:22148;10868:6;;;:::i;:::-;3835:5;586:22148;10938:154;;;;21767:1;10938:154;;;;;21767:1;10938:154;586:22148;;;;;;;3835:5;586:22148;3835:5;586:22148;11124:70;586:22148;;;;;;;;;;;;;;;;;;21767:1;586:22148;;;;21767:1;586:22148;;;;;;;;;;;;;;;;;;;;22367:88;22512:14;;10938:154;586:22148;;;11153:10;;11124:70;;;;21767:1;22542:115;586:22148;21767:1;22542:115;586:22148;;;;21767:1;586:22148;;;;;21767:1;586:22148;;;;;21767:1;586:22148;;21767:1;586:22148;3835:38;-1:-1:-1;21917:7:161;586:22148;-1:-1:-1;;;;;586:22148:161;3848:10;:25;3835:38;;21912:814;22694:21;;;21767:1;22694:21;586:22148;21767:1;22694:21;21916:35;586:22148;21947:4;586:22148;21928:23;;21916:35;;21755:37;586:22148;;21772:20;21755:37;;586:22148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:31;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;-1:-1:-1;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;4536:63;;:::i;:::-;7045:11;586:22148;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;811:66:53;586:22148:161;;-1:-1:-1;;;;;586:22148:161;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;7045:11:161;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;586:22148:161;;811:66:53;-1:-1:-1;;;811:66:53;;586:22148:161;811:66:53;;586:22148:161;-1:-1:-1;;;586:22148:161;;;;;;-1:-1:-1;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4713:69;;:::i;:::-;4413:6;586:22148;;;;;;;10571:37;;10323:21;-1:-1:-1;;;;;586:22148:161;;;;-1:-1:-1;;;;;586:22148:161;10571:37;:::i;:::-;586:22148;;;;;;-1:-1:-1;;;586:22148:161;;;;;;-1:-1:-1;;;586:22148:161;;;;;;;;;;;;;;;;;;;1338:20;586:22148;;;;;;;;;;;;;;;;;;;;1681:26;586:22148;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;-1:-1:-1;;586:22148:161;;;;4713:69;;:::i;:::-;4025:67;;:::i;:::-;3294:83;;:::i;:::-;586:22148;;;;;;6430:46;586:22148;6465:10;6430:46;;586:22148;;;-1:-1:-1;586:22148:161;;-1:-1:-1;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;6174:64;586:22148;;;;;;:::i;:::-;4713:69;;;;;:::i;:::-;4025:67;;:::i;:::-;3294:83;;:::i;:::-;-1:-1:-1;;;;;6113:9:161;586:22148;6151:6;;;;:::i;:::-;6174:64;586:22148;;6209:10;;;;586:22148;;;6174:64;;:::i;:::-;;;;586:22148;;;;;;;;;-1:-1:-1;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;4713:69;;:::i;:::-;4025:67;;:::i;:::-;5175:10;5171:163;;586:22148;;6611:39;586:22148;;;;;;6611:39;586:22148;;5171:163;586:22148;;-1:-1:-1;;;21354:33:161;;586:22148;;5223:6;-1:-1:-1;;;;;586:22148:161;;;;;;;21354:33;;;;;;;;;;;5171:163;586:22148;5216:54;586:22148;;;;;;;;;;;;5216:54;;5244:10;586:22148;5216:54;;586:22148;;;;;;;;;;;;;;;;5216:54;;;;;;;;;;;5171:163;586:22148;5171:163;586:22148;-1:-1:-1;;;586:22148:161;;;;;5216:54;;;;586:22148;5216:54;586:22148;5216:54;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;586:22148;;;;;;;;;21354:33;;;586:22148;21354:33;;586:22148;21354:33;;;;;;586:22148;21354:33;;;:::i;:::-;;;586:22148;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;21354:33;5216:54;21354:33;;;;;-1:-1:-1;21354:33:161;;586:22148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1433:18;586:22148;;;;;;;;;;;-1:-1:-1;586:22148:161;;-1:-1:-1;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4713:69;;:::i;:::-;4025:67;;:::i;:::-;3835:5;586:22148;3835:9;;;:38;;;586:22148;;;;-1:-1:-1;;;;;10830:9:161;586:22148;10868:6;;;;:::i;:::-;3835:5;586:22148;10938:154;;;;;;;;;;;586:22148;;;;;;;;;;;;;3835:5;11124:70;586:22148;;3835:5;586:22148;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;10938:154;586:22148;;;11153:10;;11124:70;;;;586:22148;;;;;;;-1:-1:-1;;;586:22148:161;;;;;;;;;-1:-1:-1;;;586:22148:161;;;;;3835:38;-1:-1:-1;3862:11:161;586:22148;-1:-1:-1;;;;;586:22148:161;3848:10;:25;3835:38;;586:22148;;;;;;;;;;;;;1586:24;586:22148;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;-1:-1:-1;586:22148:161;;-1:-1:-1;;586:22148:161;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;-1:-1:-1;;586:22148:161;;;;;4536:63;;:::i;:::-;7815:19;586:22148;;;;7815:19;:::i;:::-;7846:4;-1:-1:-1;;;;;586:22148:161;;;7815:36;586:22148;;8132:38;;586:22148;;8132:38;;:::i;:::-;8128:113;;586:22148;;;8489:20;;586:22148;-1:-1:-1;;586:22148:161;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11657:35;586:22148;;;;;;;;;11657:35;:::i;:::-;586:22148;;;11768:3;586:22148;;;;;;;11751:15;;;;;586:22148;;;;;;;;;;;;;;;;;;-1:-1:-1;;586:22148:161;;;;;;;-1:-1:-1;;586:22148:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;-1:-1:-1;;586:22148:161;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8821:273:171;586:22148:161;;;;8132:38;586:22148;;;;;;;8920:15:171;;586:22148:161;;;;;;;;;;;;;;;8821:273:171;;;;;;586:22148:161;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;8821:273:171;;;;;;;;;;:::i;:::-;586:22148:161;8798:306:171;;4093:83:22;;;;586:22148:161;;;;;;;;;;;8132:38;;586:22148;;12271:7;586:22148;;;;;;;;12271:7;:::i;:::-;586:22148;11736:13;;;12197:162;17756:13;586:22148;;;;;;;;17756:13;:::i;:::-;586:22148;;;-1:-1:-1;;;;;;17807:26:161;586:22148;;;;;;;;17807:26;:::i;:::-;586:22148;17807:29;586:22148;;;17807:34;17856:20;;586:22148;17891:433;;;;;586:22148;;;17939:16;586:22148;;;;;;;;;;;;;;;;;;;;;;17939:16;:::i;:::-;586:22148;;;:::i;:::-;;-1:-1:-1;;;;;18403:14:161;586:22148;;;18356:20;586:22148;;;;;;;;18356:20;:::i;:::-;586:22148;;;;;;;18403:14;:::i;:::-;586:22148;;18356:71;;;;;18387:7;18356:71;;;:::i;:::-;;18446:8;18442:474;;17891:433;17752:1523;12197:162;;18442:474;18497:52;18512:20;586:22148;;;;;;;;18512:20;:::i;:::-;18534:14;586:22148;;;;;;;;18534:14;:::i;:::-;18497:52;;:::i;:::-;18571:16;18567:125;;18442:474;18816:85;586:22148;18832:14;586:22148;;;;;;;;18832:14;:::i;:::-;8132:38;586:22148;-1:-1:-1;;;;;;18874:26:161;586:22148;;;;;;;;18874:26;:::i;:::-;586:22148;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;18816:85;18442:474;;;18567:125;18616:57;18636:20;586:22148;;;;;;;;18636:20;:::i;:::-;18658:14;586:22148;;;;;;;;18658:14;:::i;:::-;586:22148;;;-1:-1:-1;;;;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;18616:57;18567:125;;17891:433;586:22148;;;;18156:153;;586:22148;18247:16;586:22148;;;;;;;;;;;;18247:16;:::i;:::-;18265:26;586:22148;;;;;;;;18265:26;:::i;:::-;586:22148;;;;;18200:32;;;;;;18156:153;;;;586:22148;;;;;;;18156:153;;;586:22148;;;;;;;;;;:::i;:::-;;;;;;;;;;18156:153;586:22148;;18156:153;;;;;;:::i;:::-;17891:433;;17752:1523;18969:52;18984:20;586:22148;;;;;;;;18984:20;:::i;18969:52::-;19039:16;19035:117;;17752:1523;19171:93;19177:16;586:22148;;;;;;;;;;;;19177:16;:::i;:::-;19195:14;586:22148;;;;;;;;19195:14;:::i;:::-;8132:38;586:22148;-1:-1:-1;;;;;;19237:26:161;586:22148;;;;;;;;19237:26;:::i;:::-;586:22148;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19171:93;;;12197:162;;19035:117;19080:57;19100:20;586:22148;;;;;;;;19100:20;:::i;:::-;19122:14;586:22148;;;;;;;;19122:14;:::i;:::-;586:22148;;;-1:-1:-1;;;;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;19080:57;19035:117;;586:22148;;;;;;;;;;;;;;;;11751:15;;;;586:22148;11751:15;586:22148;;;;;;;1083:131:25;;586:22148:161;8752:23;586:22148;;8752:23;586:22148;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19602:33;;;;;;;:::i;:::-;19645:18;586:22148;19679:13;586:22148;19674:628;19709:3;19694:13;;;;;;19842:17;586:22148;;;;;;;;;;;;;;20049:46;20064:17;586:22148;;;;;19842:17;;;586:22148;;19842:17;;;;;:::i;:::-;19861:11;;;;;;:::i;:::-;586:22148;;9258:50:171;;;;586:22148:161;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;9258:50:171;;;;;;:::i;:::-;586:22148:161;9248:61:171;;4093:83:22;;;586:22148:161;20064:17;;:::i;:::-;20083:11;;;:::i;20049:46::-;20083:11;;;20175;20145:42;20175:11;;:::i;:::-;586:22148;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;20145:42;20109:183;586:22148;19679:13;;;;;;20109:183;20265:11;20231:46;20265:11;;:::i;:::-;586:22148;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;20231:46;20109:183;;19694:13;;;1083:131:25;586:22148:161;;;;8981:18;;;;;:::i;:::-;;;;586:22148;;;;9029:21;9258:50:171;586:22148:161;;9029:21;;:::i;:::-;4025:67;;;:::i;:::-;20568:13;586:22148;;-1:-1:-1;;;;;;586:22148:161;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;-1:-1:-1;;586:22148:161;10323:21;-1:-1:-1;;;;;586:22148:161;;10571:37;;586:22148;;;-1:-1:-1;;;;;586:22148:161;10571:37;:::i;:::-;20769:8;20765:200;;8977:183;;;;586:22148;;9391:24;586:22148;;9391:24;586:22148;9378:37;;;;;9374:110;;8977:183;586:22148;;9845:18;9774:19;586:22148;;;;9774:19;:::i;:::-;9845:18;;:::i;:::-;9877:21;9258:50:171;586:22148:161;;9877:21;;:::i;:::-;9912:26;;586:22148;;9912:26;;:::i;:::-;586:22148;9952:38;8132;586:22148;;8132:38;9952;:::i;:::-;586:22148;;;9672:279:171;;;;586:22148:161;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;;;;;;;;;;;9672:279:171;;;;;;:::i;:::-;586:22148:161;9649:312:171;;586:22148:161;;;;;;9374:110;586:22148;21182:23;586:22148;;;;;;21182:23;9374:110;;;;20765:200;586:22148;;;-1:-1:-1;;;;;586:22148:161;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;20899:55;;;20765:200;;;;8977:183;586:22148;-1:-1:-1;;;;;9090:21:161;586:22148;;9258:50:171;9090:21:161;;:::i;:::-;586:22148;;;;8977:183;;;586:22148;;;;;;;;;8128:113;8203:26;;;586:22148;;8203:26;;:::i;:::-;;:::i;:::-;8128:113;;586:22148;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;586:22148:161;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;586:22148:161;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;586:22148:161;;;;;;;;-1:-1:-1;;586:22148:161;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;4605:102::-;4674:6;-1:-1:-1;;;;;586:22148:161;4660:10;:20;586:22148;;4605:102::o;586:22148::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;:::o;:::-;-1:-1:-1;;;;;586:22148:161;;;;;;-1:-1:-1;;586:22148:161;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;586:22148:161;;;;:::o;:::-;;;:::o;5462:215::-;-1:-1:-1;;;;;586:22148:161;5526:10;5522:149;;5462:215;:::o;5522:149::-;5535:1;5570:6;;;;;:29;;;;:::i;:::-;;586:22148;;;5462:215::o;586:22148::-;;;;5535:1;586:22148;;5535:1;586:22148;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;586:22148:161;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;4788:108::-;586:22148;;-1:-1:-1;;;4847:24:161;;;586:22148;4847:24;586:22148;4855:6;-1:-1:-1;;;;;586:22148:161;4847:24;;;;;;;-1:-1:-1;4847:24:161;;;4788:108;4846:25;586:22148;;4788:108::o;586:22148::-;;;;-1:-1:-1;586:22148:161;4847:24;-1:-1:-1;586:22148:161;4847:24;;;;;;;;;;;;;;:::i;:::-;;;;;586:22148;;;;;;;;;4098:89;586:22148;4156:6;586:22148;;;;4098:89::o;586:22148::-;;;;-1:-1:-1;586:22148:161;;-1:-1:-1;586:22148:161;3383:107;3448:5;586:22148;3448:9;586:22148;;3383:107::o;586:22148::-;;;;-1:-1:-1;586:22148:161;;-1:-1:-1;586:22148:161;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;586:22148:161:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;586:22148:161;;;;;;;:::o;12531:657::-;12617:36;;;:::i;:::-;12616:37;12612:570;;12531:657;:::o;12612:570::-;12673:13;;;;;:::i;:::-;12669:407;;12612:570;13095:76;;13116:20;;;;;:::i;:::-;13138:16;;;;;;:::i;:::-;13156:14;;;;;;;;:::i;:::-;586:22148;13138:16;586:22148;;;;;;;;;;;;13095:76;;:::i;:::-;;;;12531:657::o;12669:407::-;12724:20;;;-1:-1:-1;12724:20:161;;;;:::i;:::-;12764:16;;;;;;;:::i;:::-;586:22148;;;12764:16;586:22148;;;;;;;;;;;12724:57;;12755:7;12724:57;;;:::i;:::-;;12804:8;12800:262;;12669:407;;;12800:262;12977:20;12946:68;12977:20;;:::i;:::-;12999:14;;;;;:::i;:::-;12764:16;586:22148;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;-1:-1:-1;;;;;586:22148:161;;;;;;;;;12946:68;586:22148;21440:253;;-1:-1:-1;;;;;586:22148:161;21537:10;;21533:133;;21675:11;;21682:4;21440:253;:::o;21533:133::-;586:22148;21581:46;;;;;21603:5;21581:46;;;:::i;:::-;;21641:14;:::o;13308:4292::-;13434:16;;;;;;:::i;:::-;586:22148;;-1:-1:-1;;;;;586:22148:161;14029:20;;;;;:::i;:::-;586:22148;14029:38;:61;;;;13308:4292;14029:83;;;;13308:4292;14027:86;14023:129;;14192:212;;;;;14420:17;14436:1;14420:17;;;:38;;;13308:4292;14418:41;14414:84;;843:42;;;;14436:1;586:22148;;14639:37;;14633:83;;14436:1;14806:95;;;15472:31;15482:21;15472:31;;;:90;;;13308:4292;15472:147;;;13308:4292;15472:204;;;13308:4292;15472:265;;;13308:4292;15472:331;;;13308:4292;15472:373;;;13308:4292;15472:425;;;13308:4292;15472:465;;;13308:4292;15472:515;;;13308:4292;15472:562;;;13308:4292;15472:633;;;13308:4292;15472:687;;;13308:4292;15472:738;;;13308:4292;15457:763;15453:806;;843:42;;;-1:-1:-1;;843:42:161;;;14436:1;16429:21;843:42;16429:21;:::i;:::-;16460:117;;;;;;16760:216;;;;;;;;;;14436:1;16990:17;;14436:1;;17023:83;;;;;;;;14436:1;13308:4292;:::o;16986:586::-;17142:1;17126:17;;17142:1;;17159:91;;;;14436:1;13308:4292;:::o;17122:450::-;17286:1;17270:17;;;;;;;;17266:306;17286:1;;;17303:99;;;;;;;14436:1;13308:4292;:::o;17266:306::-;17438:1;17422:17;17418:154;;17266:306;;;;;;;14436:1;13308:4292;:::o;17418:154::-;16760:216;;;17455:107;;17418:154;;;;;;;;15453:806;16236:12;;;;;586:22148;16236:12;:::o;15472:738::-;16175:35;16185:25;16175:35;;;15472:738;;:687;16121:38;16131:28;16121:38;;;15472:687;;:633;16050:55;16060:45;16050:55;;;15472:633;;:562;16003:31;16013:21;16003:31;;;15472:562;;:515;15953:34;15963:24;15953:34;;;15472:515;;:465;15913:24;15923:14;15913:24;;;15472:465;;:425;15861:36;15871:26;15861:36;;;15472:425;;:373;15819:26;15829:16;15819:26;;;15472:373;;:331;15753:50;15763:40;15753:50;;;15472:331;;:265;15692:45;15702:35;15692:45;;;15472:265;;:204;15635:41;15645:31;15635:41;;;15472:204;;:147;15578:41;15588:31;15578:41;;;15472:147;;:90;15519:43;15529:33;15519:43;;;15472:90;;14633:83;14693:12;;;;586:22148;14693:12;:::o;14420:38::-;14441:17;14457:1;14441:17;;;14420:38;;14023:129;14129:12;;586:22148;14129:12;:::o;14029:83::-;14094:18;;;;14029:83;;:61;-1:-1:-1;;;;;14071:14:161;;;;;;;:::i;:::-;586:22148;14071:19;14029:61;;","linkReferences":{},"immutableReferences":{"76368":[{"start":558,"length":32},{"start":1445,"length":32},{"start":5008,"length":32},{"start":5202,"length":32},{"start":5365,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool)":"e4bbb5a8","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic0\",\"type\":\"uint256\"}],\"name\":\"DebugEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"Reverts when the Router is paused and pause-protected Mirror call is attempted.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts. NOTE: It's event for USERS: it informs about failed message call from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts. NOTE: It's event for USERS: it informs about failed reply call from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance. NOTE: It's event for USERS: it informs about failed value claim.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable router address.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events: https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"The bool flag indicates whether to process arbitrary calls as `sendMessage` payload.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the router contract, which is the sole authority.\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"router()\":{\"notice\":\"forge-lint: disable-next-item(screaming-snake-case-immutable)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Mirror.sol\":\"Mirror\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x59b2c459562d95a574b7d578ae7780798034c66d6c8504dcc9d04ad68da2b25a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://314f3f21da1fb9b985d282d07816b37f03706a12e0cc74f461fffd3ddd3a0e35\",\"dweb:/ipfs/QmXjkU3LXfPzQY7fyyqytxrAjosWBZsMmRvvc62noRAqjp\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852\",\"dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808\",\"dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f\"]},\"src/Mirror.sol\":{\"keccak256\":\"0xec87bf3741c83d9f7853a55d6c08b7aaf1e87508ce4bae87bdf87d05ac0afacd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://054fb6a6ad4f02f9ad321b6ad53e8cd2c816ef52326cf5e8c71f7f4d44c0de83\",\"dweb:/ipfs/QmR9yu5hSGpQwGBCu96m6tkDdjczRDFuTnd2JZbzKngQSZ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"inputs":[{"internalType":"uint256","name":"topic0","type":"uint256","indexed":true}],"type":"event","name":"DebugEvent","anonymous":true},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"ReplyCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Minimal constructor that only sets the immutable router address."}},"version":1},"userdoc":{"kind":"user","methods":{"router()":{"notice":"forge-lint: disable-next-item(screaming-snake-case-immutable)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Mirror.sol":"Mirror"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x59b2c459562d95a574b7d578ae7780798034c66d6c8504dcc9d04ad68da2b25a","urls":["bzz-raw://314f3f21da1fb9b985d282d07816b37f03706a12e0cc74f461fffd3ddd3a0e35","dweb:/ipfs/QmXjkU3LXfPzQY7fyyqytxrAjosWBZsMmRvvc62noRAqjp"],"license":"UNLICENSED"},"src/IMirror.sol":{"keccak256":"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0","urls":["bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852","dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd","urls":["bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808","dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f"],"license":"UNLICENSED"},"src/Mirror.sol":{"keccak256":"0xec87bf3741c83d9f7853a55d6c08b7aaf1e87508ce4bae87bdf87d05ac0afacd","urls":["bzz-raw://054fb6a6ad4f02f9ad321b6ad53e8cd2c816ef52326cf5e8c71f7f4d44c0de83","dweb:/ipfs/QmR9yu5hSGpQwGBCu96m6tkDdjczRDFuTnd2JZbzKngQSZ"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":76371,"contract":"src/Mirror.sol:Mirror","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":76374,"contract":"src/Mirror.sol:Mirror","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":76377,"contract":"src/Mirror.sol:Mirror","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":76380,"contract":"src/Mirror.sol:Mirror","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":76383,"contract":"src/Mirror.sol:Mirror","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":76386,"contract":"src/Mirror.sol:Mirror","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/Mirror.sol","id":77747,"exportedSymbols":{"ERC1967Utils":[45025],"Gear":[85973],"Hashes":[40807],"ICallbacks":[73043],"IMirror":[73658],"IRouter":[74052],"IWrappedVara":[74063],"Memory":[40581],"Mirror":[77746],"StorageSlot":[48413]},"nodeType":"SourceUnit","src":"39:22696:161","nodes":[{"id":76341,"nodeType":"PragmaDirective","src":"39:24:161","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":76343,"nodeType":"ImportDirective","src":"65:84:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":45026,"symbolAliases":[{"foreign":{"id":76342,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"73:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76345,"nodeType":"ImportDirective","src":"150:74:161","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":76344,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"158:11:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76347,"nodeType":"ImportDirective","src":"225:60:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":40582,"symbolAliases":[{"foreign":{"id":76346,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"233:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76349,"nodeType":"ImportDirective","src":"286:73:161","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":40808,"symbolAliases":[{"foreign":{"id":76348,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"294:6:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76351,"nodeType":"ImportDirective","src":"360:46:161","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":73044,"symbolAliases":[{"foreign":{"id":76350,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73043,"src":"368:10:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76353,"nodeType":"ImportDirective","src":"407:40:161","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":76352,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"415:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76355,"nodeType":"ImportDirective","src":"448:40:161","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":76354,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"456:7:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76357,"nodeType":"ImportDirective","src":"489:50:161","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":74064,"symbolAliases":[{"foreign":{"id":76356,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"497:12:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76359,"nodeType":"ImportDirective","src":"540:44:161","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":77747,"sourceUnit":85974,"symbolAliases":[{"foreign":{"id":76358,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"548:4:161","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77746,"nodeType":"ContractDefinition","src":"586:22148:161","nodes":[{"id":76365,"nodeType":"VariableDeclaration","src":"800:85:161","nodes":[],"constant":true,"documentation":{"id":76362,"nodeType":"StructuredDocumentation","src":"619:176:161","text":"@dev Special address to which Sails contract sends messages so that Mirror can decode events:\n https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"826:14:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76363,"name":"address","nodeType":"ElementaryTypeName","src":"800:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":76364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"843:42:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":76368,"nodeType":"VariableDeclaration","src":"1036:31:161","nodes":[],"baseFunctions":[73586],"constant":false,"documentation":{"id":76366,"nodeType":"StructuredDocumentation","src":"892:139:161","text":"forge-lint: disable-next-item(screaming-snake-case-immutable)\n @dev Address of the router contract, which is the sole authority."},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"1061:6:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76367,"name":"address","nodeType":"ElementaryTypeName","src":"1036:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76371,"nodeType":"VariableDeclaration","src":"1117:24:161","nodes":[],"baseFunctions":[73591],"constant":false,"documentation":{"id":76369,"nodeType":"StructuredDocumentation","src":"1074:38:161","text":"@dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"1132:9:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76370,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1117:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76374,"nodeType":"VariableDeclaration","src":"1338:20:161","nodes":[],"baseFunctions":[73596],"constant":false,"documentation":{"id":76372,"nodeType":"StructuredDocumentation","src":"1148:185:161","text":"@dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"1353:5:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76373,"name":"uint256","nodeType":"ElementaryTypeName","src":"1338:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76377,"nodeType":"VariableDeclaration","src":"1433:18:161","nodes":[],"baseFunctions":[73601],"constant":false,"documentation":{"id":76375,"nodeType":"StructuredDocumentation","src":"1365:63:161","text":"@dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"1445:6:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76376,"name":"bool","nodeType":"ElementaryTypeName","src":"1433:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76380,"nodeType":"VariableDeclaration","src":"1586:24:161","nodes":[],"baseFunctions":[73606],"constant":false,"documentation":{"id":76378,"nodeType":"StructuredDocumentation","src":"1506:75:161","text":"@dev The address of the inheritor, which is set by the program on exit."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"1601:9:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76379,"name":"address","nodeType":"ElementaryTypeName","src":"1586:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76383,"nodeType":"VariableDeclaration","src":"1681:26:161","nodes":[],"baseFunctions":[73611],"constant":false,"documentation":{"id":76381,"nodeType":"StructuredDocumentation","src":"1617:59:161","text":"@dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"1696:11:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76382,"name":"address","nodeType":"ElementaryTypeName","src":"1681:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76386,"nodeType":"VariableDeclaration","src":"1812:12:161","nodes":[],"constant":false,"documentation":{"id":76384,"nodeType":"StructuredDocumentation","src":"1714:93:161","text":"@dev The bool flag indicates whether to process arbitrary calls as `sendMessage` payload."},"mutability":"mutable","name":"isSmall","nameLocation":"1817:7:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76385,"name":"bool","nodeType":"ElementaryTypeName","src":"1812:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":76389,"nodeType":"VariableDeclaration","src":"1831:77:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID","nameLocation":"1857:47:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1831:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":76388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1907:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":76392,"nodeType":"VariableDeclaration","src":"1914:76:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID","nameLocation":"1940:46:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76390,"name":"uint256","nodeType":"ElementaryTypeName","src":"1914:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":76391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1989:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":76395,"nodeType":"VariableDeclaration","src":"1997:76:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER","nameLocation":"2023:46:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76393,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33","id":76394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2072:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"id":76398,"nodeType":"VariableDeclaration","src":"2079:75:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER","nameLocation":"2105:45:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76396,"name":"uint256","nodeType":"ElementaryTypeName","src":"2079:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34","id":76397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2153:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"internal"},{"id":76401,"nodeType":"VariableDeclaration","src":"2161:75:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES","nameLocation":"2187:45:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76399,"name":"uint256","nodeType":"ElementaryTypeName","src":"2161:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35","id":76400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2235:1:161","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"internal"},{"id":76404,"nodeType":"VariableDeclaration","src":"2242:74:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES","nameLocation":"2268:44:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76402,"name":"uint256","nodeType":"ElementaryTypeName","src":"2242:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36","id":76403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2315:1:161","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"internal"},{"id":76407,"nodeType":"VariableDeclaration","src":"2323:74:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES","nameLocation":"2349:44:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76405,"name":"uint256","nodeType":"ElementaryTypeName","src":"2323:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":76406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2396:1:161","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"internal"},{"id":76410,"nodeType":"VariableDeclaration","src":"2403:73:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES","nameLocation":"2429:43:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76408,"name":"uint256","nodeType":"ElementaryTypeName","src":"2403:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38","id":76409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2475:1:161","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"visibility":"internal"},{"id":76413,"nodeType":"VariableDeclaration","src":"2483:75:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR","nameLocation":"2509:45:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76411,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39","id":76412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2557:1:161","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"visibility":"internal"},{"id":76416,"nodeType":"VariableDeclaration","src":"2564:75:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR","nameLocation":"2590:44:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76414,"name":"uint256","nodeType":"ElementaryTypeName","src":"2564:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":76415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2637:2:161","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":76419,"nodeType":"VariableDeclaration","src":"2646:80:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH","nameLocation":"2672:49:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76417,"name":"uint256","nodeType":"ElementaryTypeName","src":"2646:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131","id":76418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2724:2:161","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"visibility":"internal"},{"id":76422,"nodeType":"VariableDeclaration","src":"2732:79:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH","nameLocation":"2758:48:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76420,"name":"uint256","nodeType":"ElementaryTypeName","src":"2732:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132","id":76421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2809:2:161","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":76425,"nodeType":"VariableDeclaration","src":"2818:74:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH","nameLocation":"2844:43:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76423,"name":"uint256","nodeType":"ElementaryTypeName","src":"2818:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133","id":76424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2890:2:161","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"visibility":"internal"},{"id":76428,"nodeType":"VariableDeclaration","src":"2898:73:161","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH","nameLocation":"2924:42:161","scope":77746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76426,"name":"uint256","nodeType":"ElementaryTypeName","src":"2898:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3134","id":76427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2969:2:161","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"visibility":"internal"},{"id":76432,"nodeType":"EventDefinition","src":"2978:51:161","nodes":[],"anonymous":true,"eventSelector":"e6fc1df15bb41e2a123ea1d440db6747be3ed04da67b92ac280ad10a97b799d8","name":"DebugEvent","nameLocation":"2984:10:161","parameters":{"id":76431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76430,"indexed":true,"mutability":"mutable","name":"topic0","nameLocation":"3011:6:161","nodeType":"VariableDeclaration","scope":76432,"src":"2995:22:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76429,"name":"uint256","nodeType":"ElementaryTypeName","src":"2995:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2994:24:161"}},{"id":76443,"nodeType":"FunctionDefinition","src":"3113:62:161","nodes":[],"body":{"id":76442,"nodeType":"Block","src":"3142:33:161","nodes":[],"statements":[{"expression":{"id":76440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76438,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"3152:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76439,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76435,"src":"3161:7:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3152:16:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76441,"nodeType":"ExpressionStatement","src":"3152:16:161"}]},"documentation":{"id":76433,"nodeType":"StructuredDocumentation","src":"3035:73:161","text":"@dev Minimal constructor that only sets the immutable router address."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76435,"mutability":"mutable","name":"_router","nameLocation":"3133:7:161","nodeType":"VariableDeclaration","scope":76443,"src":"3125:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76434,"name":"address","nodeType":"ElementaryTypeName","src":"3125:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3124:17:161"},"returnParameters":{"id":76437,"nodeType":"ParameterList","parameters":[],"src":"3142:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76451,"nodeType":"ModifierDefinition","src":"3294:83:161","nodes":[],"body":{"id":76450,"nodeType":"Block","src":"3326:51:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76446,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"3336:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3336:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76448,"nodeType":"ExpressionStatement","src":"3336:23:161"},{"id":76449,"nodeType":"PlaceholderStatement","src":"3369:1:161"}]},"documentation":{"id":76444,"nodeType":"StructuredDocumentation","src":"3181:108:161","text":"@dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"3303:20:161","parameters":{"id":76445,"nodeType":"ParameterList","parameters":[],"src":"3323:2:161"},"virtual":false,"visibility":"internal"},{"id":76463,"nodeType":"FunctionDefinition","src":"3383:107:161","nodes":[],"body":{"id":76462,"nodeType":"Block","src":"3430:60:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76455,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"3448:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3456:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3448:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76458,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73552,"src":"3459:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76454,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3440:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:43:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76461,"nodeType":"ExpressionStatement","src":"3440:43:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"3392:21:161","parameters":{"id":76452,"nodeType":"ParameterList","parameters":[],"src":"3413:2:161"},"returnParameters":{"id":76453,"nodeType":"ParameterList","parameters":[],"src":"3430:0:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76471,"nodeType":"ModifierDefinition","src":"3642:109:161","nodes":[],"body":{"id":76470,"nodeType":"Block","src":"3687:64:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76466,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76488,"src":"3697:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3697:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76468,"nodeType":"ExpressionStatement","src":"3697:36:161"},{"id":76469,"nodeType":"PlaceholderStatement","src":"3743:1:161"}]},"documentation":{"id":76464,"nodeType":"StructuredDocumentation","src":"3496:141:161","text":"@dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"3651:33:161","parameters":{"id":76465,"nodeType":"ParameterList","parameters":[],"src":"3684:2:161"},"virtual":false,"visibility":"internal"},{"id":76488,"nodeType":"FunctionDefinition","src":"3757:172:161","nodes":[],"body":{"id":76487,"nodeType":"Block","src":"3817:112:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":76482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76475,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"3835:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":76476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3843:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3835:9:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76478,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3848:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3852:6:161","memberName":"sender","nodeType":"MemberAccess","src":"3848:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76480,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"3862:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3848:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3835:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76483,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73554,"src":"3875:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3875:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3827:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:95:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76486,"nodeType":"ExpressionStatement","src":"3827:95:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"3766:34:161","parameters":{"id":76472,"nodeType":"ParameterList","parameters":[],"src":"3800:2:161"},"returnParameters":{"id":76473,"nodeType":"ParameterList","parameters":[],"src":"3817:0:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76496,"nodeType":"ModifierDefinition","src":"4025:67:161","nodes":[],"body":{"id":76495,"nodeType":"Block","src":"4049:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76491,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76507,"src":"4059:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76493,"nodeType":"ExpressionStatement","src":"4059:15:161"},{"id":76494,"nodeType":"PlaceholderStatement","src":"4084:1:161"}]},"documentation":{"id":76489,"nodeType":"StructuredDocumentation","src":"3935:85:161","text":"@dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"4034:12:161","parameters":{"id":76490,"nodeType":"ParameterList","parameters":[],"src":"4046:2:161"},"virtual":false,"visibility":"internal"},{"id":76507,"nodeType":"FunctionDefinition","src":"4098:89:161","nodes":[],"body":{"id":76506,"nodeType":"Block","src":"4137:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4155:7:161","subExpression":{"id":76500,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"4156:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76502,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73556,"src":"4164:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4164:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4147:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4147:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76505,"nodeType":"ExpressionStatement","src":"4147:33:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"4107:13:161","parameters":{"id":76497,"nodeType":"ParameterList","parameters":[],"src":"4120:2:161"},"returnParameters":{"id":76498,"nodeType":"ParameterList","parameters":[],"src":"4137:0:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76515,"nodeType":"ModifierDefinition","src":"4283:67:161","nodes":[],"body":{"id":76514,"nodeType":"Block","src":"4307:43:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76510,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76525,"src":"4317:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4317:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76512,"nodeType":"ExpressionStatement","src":"4317:15:161"},{"id":76513,"nodeType":"PlaceholderStatement","src":"4342:1:161"}]},"documentation":{"id":76508,"nodeType":"StructuredDocumentation","src":"4193:85:161","text":"@dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"4292:12:161","parameters":{"id":76509,"nodeType":"ParameterList","parameters":[],"src":"4304:2:161"},"virtual":false,"visibility":"internal"},{"id":76525,"nodeType":"FunctionDefinition","src":"4356:91:161","nodes":[],"body":{"id":76524,"nodeType":"Block","src":"4395:52:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76519,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"4413:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76520,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73558,"src":"4421:16:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4421:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76518,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4405:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4405:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76523,"nodeType":"ExpressionStatement","src":"4405:35:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"4365:13:161","parameters":{"id":76516,"nodeType":"ParameterList","parameters":[],"src":"4378:2:161"},"returnParameters":{"id":76517,"nodeType":"ParameterList","parameters":[],"src":"4395:0:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76533,"nodeType":"ModifierDefinition","src":"4536:63:161","nodes":[],"body":{"id":76532,"nodeType":"Block","src":"4558:41:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76528,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76546,"src":"4568:11:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4568:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76530,"nodeType":"ExpressionStatement","src":"4568:13:161"},{"id":76531,"nodeType":"PlaceholderStatement","src":"4591:1:161"}]},"documentation":{"id":76526,"nodeType":"StructuredDocumentation","src":"4453:78:161","text":"@dev Functions marked with this modifier can only be called by the router."},"name":"onlyRouter","nameLocation":"4545:10:161","parameters":{"id":76527,"nodeType":"ParameterList","parameters":[],"src":"4555:2:161"},"virtual":false,"visibility":"internal"},{"id":76546,"nodeType":"FunctionDefinition","src":"4605:102:161","nodes":[],"body":{"id":76545,"nodeType":"Block","src":"4642:65:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76537,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4660:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4664:6:161","memberName":"sender","nodeType":"MemberAccess","src":"4660:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76539,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"4674:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4660:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76541,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"4682:15:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4682:17:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4652:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4652:48:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76544,"nodeType":"ExpressionStatement","src":"4652:48:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"4614:11:161","parameters":{"id":76534,"nodeType":"ParameterList","parameters":[],"src":"4625:2:161"},"returnParameters":{"id":76535,"nodeType":"ParameterList","parameters":[],"src":"4642:0:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76553,"nodeType":"ModifierDefinition","src":"4713:69:161","nodes":[],"body":{"id":76552,"nodeType":"Block","src":"4738:44:161","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76548,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"4748:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4748:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76550,"nodeType":"ExpressionStatement","src":"4748:16:161"},{"id":76551,"nodeType":"PlaceholderStatement","src":"4774:1:161"}]},"name":"whenNotPaused","nameLocation":"4722:13:161","parameters":{"id":76547,"nodeType":"ParameterList","parameters":[],"src":"4735:2:161"},"virtual":false,"visibility":"internal"},{"id":76568,"nodeType":"FunctionDefinition","src":"4788:108:161","nodes":[],"body":{"id":76567,"nodeType":"Block","src":"4828:68:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4846:25:161","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76558,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"4855:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76557,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"4847:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74052_$","typeString":"type(contract IRouter)"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":76560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4863:6:161","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":73936,"src":"4847:22:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4847:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76563,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73581,"src":"4873:13:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4873:15:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4838:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4838:51:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76566,"nodeType":"ExpressionStatement","src":"4838:51:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"4797:14:161","parameters":{"id":76554,"nodeType":"ParameterList","parameters":[],"src":"4811:2:161"},"returnParameters":{"id":76555,"nodeType":"ParameterList","parameters":[],"src":"4828:0:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":76579,"nodeType":"ModifierDefinition","src":"5017:89:161","nodes":[],"body":{"id":76578,"nodeType":"Block","src":"5056:50:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76574,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"5082:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76573,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76608,"src":"5066:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5066:22:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76576,"nodeType":"ExpressionStatement","src":"5066:22:161"},{"id":76577,"nodeType":"PlaceholderStatement","src":"5098:1:161"}]},"documentation":{"id":76569,"nodeType":"StructuredDocumentation","src":"4902:110:161","text":"@dev Non-zero Vara value must be transferred from source to router in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"5026:14:161","parameters":{"id":76572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76571,"mutability":"mutable","name":"value","nameLocation":"5049:5:161","nodeType":"VariableDeclaration","scope":76579,"src":"5041:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76570,"name":"uint128","nodeType":"ElementaryTypeName","src":"5041:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5040:15:161"},"virtual":false,"visibility":"internal"},{"id":76608,"nodeType":"FunctionDefinition","src":"5112:228:161","nodes":[],"body":{"id":76607,"nodeType":"Block","src":"5161:179:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76584,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76581,"src":"5175:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5184:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5175:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76606,"nodeType":"IfStatement","src":"5171:163:161","trueBody":{"id":76605,"nodeType":"Block","src":"5187:147:161","statements":[{"assignments":[76588],"declarations":[{"constant":false,"id":76588,"mutability":"mutable","name":"success","nameLocation":"5206:7:161","nodeType":"VariableDeclaration","scope":76605,"src":"5201:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76587,"name":"bool","nodeType":"ElementaryTypeName","src":"5201:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76598,"initialValue":{"arguments":[{"expression":{"id":76593,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5244:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5248:6:161","memberName":"sender","nodeType":"MemberAccess","src":"5244:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76595,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"5256:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76596,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76581,"src":"5264:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":76590,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"5223:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76589,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77657,"src":"5216:6:161","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$74063_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":76591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5216:14:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":76592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5231:12:161","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46159,"src":"5216:27:161","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":76597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5216:54:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5201:69:161"},{"expression":{"arguments":[{"id":76600,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76588,"src":"5292:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76601,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"5301:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5301:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76599,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5284:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5284:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76604,"nodeType":"ExpressionStatement","src":"5284:39:161"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"5121:15:161","parameters":{"id":76582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76581,"mutability":"mutable","name":"value","nameLocation":"5145:5:161","nodeType":"VariableDeclaration","scope":76608,"src":"5137:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76580,"name":"uint128","nodeType":"ElementaryTypeName","src":"5137:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5136:15:161"},"returnParameters":{"id":76583,"nodeType":"ParameterList","parameters":[],"src":"5161:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76635,"nodeType":"FunctionDefinition","src":"5462:215:161","nodes":[],"body":{"id":76634,"nodeType":"Block","src":"5512:165:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":76616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76611,"src":"5526:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5535:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5526:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76633,"nodeType":"IfStatement","src":"5522:149:161","trueBody":{"id":76632,"nodeType":"Block","src":"5538:133:161","statements":[{"assignments":[76618,null],"declarations":[{"constant":false,"id":76618,"mutability":"mutable","name":"success","nameLocation":"5558:7:161","nodeType":"VariableDeclaration","scope":76632,"src":"5553:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76617,"name":"bool","nodeType":"ElementaryTypeName","src":"5553:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":76625,"initialValue":{"arguments":[{"hexValue":"","id":76623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5596:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":76619,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76368,"src":"5570:6:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5577:4:161","memberName":"call","nodeType":"MemberAccess","src":"5570:11:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":76622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":76621,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76611,"src":"5589:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5570:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":76624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5570:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5552:47:161"},{"expression":{"arguments":[{"id":76627,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76618,"src":"5621:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76628,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"5630:27:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5630:29:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5613:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5613:47:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76631,"nodeType":"ExpressionStatement","src":"5613:47:161"}]}}]},"documentation":{"id":76609,"nodeType":"StructuredDocumentation","src":"5346:111:161","text":"@dev Non-zero Ether value must be transferred from source to router in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"5471:16:161","parameters":{"id":76612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76611,"mutability":"mutable","name":"value","nameLocation":"5496:5:161","nodeType":"VariableDeclaration","scope":76635,"src":"5488:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76610,"name":"uint128","nodeType":"ElementaryTypeName","src":"5488:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5487:15:161"},"returnParameters":{"id":76613,"nodeType":"ParameterList","parameters":[],"src":"5512:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76652,"nodeType":"FunctionDefinition","src":"5729:170:161","nodes":[],"body":{"id":76651,"nodeType":"Block","src":"5841:58:161","nodes":[],"statements":[{"expression":{"arguments":[{"id":76647,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76637,"src":"5871:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":76648,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76639,"src":"5881:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76646,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76989,"src":"5858:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":76649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5858:34:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76645,"id":76650,"nodeType":"Return","src":"5851:41:161"}]},"baseFunctions":[73620],"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":76642,"kind":"modifierInvocation","modifierName":{"id":76641,"name":"whenNotPaused","nameLocations":["5809:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76553,"src":"5809:13:161"},"nodeType":"ModifierInvocation","src":"5809:13:161"}],"name":"sendMessage","nameLocation":"5738:11:161","parameters":{"id":76640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76637,"mutability":"mutable","name":"_payload","nameLocation":"5765:8:161","nodeType":"VariableDeclaration","scope":76652,"src":"5750:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76636,"name":"bytes","nodeType":"ElementaryTypeName","src":"5750:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76639,"mutability":"mutable","name":"_callReply","nameLocation":"5780:10:161","nodeType":"VariableDeclaration","scope":76652,"src":"5775:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76638,"name":"bool","nodeType":"ElementaryTypeName","src":"5775:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5749:42:161"},"returnParameters":{"id":76645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76644,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76652,"src":"5832:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76643,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5832:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5831:9:161"},"scope":77746,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76686,"nodeType":"FunctionDefinition","src":"5905:340:161","nodes":[],"body":{"id":76685,"nodeType":"Block","src":"6078:167:161","nodes":[],"statements":[{"assignments":[76666],"declarations":[{"constant":false,"id":76666,"mutability":"mutable","name":"_value","nameLocation":"6096:6:161","nodeType":"VariableDeclaration","scope":76685,"src":"6088:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76665,"name":"uint128","nodeType":"ElementaryTypeName","src":"6088:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76672,"initialValue":{"arguments":[{"expression":{"id":76669,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6113:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6117:5:161","memberName":"value","nodeType":"MemberAccess","src":"6113:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6105:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76667,"name":"uint128","nodeType":"ElementaryTypeName","src":"6105:7:161","typeDescriptions":{}}},"id":76671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6105:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"6088:35:161"},{"expression":{"arguments":[{"id":76674,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76666,"src":"6151:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76673,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76635,"src":"6134:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6134:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76676,"nodeType":"ExpressionStatement","src":"6134:24:161"},{"eventCall":{"arguments":[{"id":76678,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76654,"src":"6197:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76679,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6209:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6213:6:161","memberName":"sender","nodeType":"MemberAccess","src":"6209:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76681,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76656,"src":"6221:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":76682,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76666,"src":"6231:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76677,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73465,"src":"6174:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":76683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6174:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76684,"nodeType":"EmitStatement","src":"6169:69:161"}]},"baseFunctions":[73627],"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":76659,"kind":"modifierInvocation","modifierName":{"id":76658,"name":"whenNotPaused","nameLocations":["6010:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76553,"src":"6010:13:161"},"nodeType":"ModifierInvocation","src":"6010:13:161"},{"id":76661,"kind":"modifierInvocation","modifierName":{"id":76660,"name":"onlyIfActive","nameLocations":["6032:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76496,"src":"6032:12:161"},"nodeType":"ModifierInvocation","src":"6032:12:161"},{"id":76663,"kind":"modifierInvocation","modifierName":{"id":76662,"name":"onlyAfterInitMessage","nameLocations":["6053:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":76451,"src":"6053:20:161"},"nodeType":"ModifierInvocation","src":"6053:20:161"}],"name":"sendReply","nameLocation":"5914:9:161","parameters":{"id":76657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76654,"mutability":"mutable","name":"_repliedTo","nameLocation":"5932:10:161","nodeType":"VariableDeclaration","scope":76686,"src":"5924:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76653,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5924:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76656,"mutability":"mutable","name":"_payload","nameLocation":"5959:8:161","nodeType":"VariableDeclaration","scope":76686,"src":"5944:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76655,"name":"bytes","nodeType":"ElementaryTypeName","src":"5944:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5923:45:161"},"returnParameters":{"id":76664,"nodeType":"ParameterList","parameters":[],"src":"6078:0:161"},"scope":77746,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76704,"nodeType":"FunctionDefinition","src":"6318:165:161","nodes":[],"body":{"id":76703,"nodeType":"Block","src":"6415:68:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":76698,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76688,"src":"6453:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76699,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6465:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6469:6:161","memberName":"sender","nodeType":"MemberAccess","src":"6465:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76697,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73472,"src":"6430:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6430:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76702,"nodeType":"EmitStatement","src":"6425:51:161"}]},"baseFunctions":[73632],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":76691,"kind":"modifierInvocation","modifierName":{"id":76690,"name":"whenNotPaused","nameLocations":["6367:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76553,"src":"6367:13:161"},"nodeType":"ModifierInvocation","src":"6367:13:161"},{"id":76693,"kind":"modifierInvocation","modifierName":{"id":76692,"name":"onlyIfActive","nameLocations":["6381:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76496,"src":"6381:12:161"},"nodeType":"ModifierInvocation","src":"6381:12:161"},{"id":76695,"kind":"modifierInvocation","modifierName":{"id":76694,"name":"onlyAfterInitMessage","nameLocations":["6394:20:161"],"nodeType":"IdentifierPath","referencedDeclaration":76451,"src":"6394:20:161"},"nodeType":"ModifierInvocation","src":"6394:20:161"}],"name":"claimValue","nameLocation":"6327:10:161","parameters":{"id":76689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76688,"mutability":"mutable","name":"_claimedId","nameLocation":"6346:10:161","nodeType":"VariableDeclaration","scope":76704,"src":"6338:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6338:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6337:20:161"},"returnParameters":{"id":76696,"nodeType":"ParameterList","parameters":[],"src":"6415:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76721,"nodeType":"FunctionDefinition","src":"6489:168:161","nodes":[],"body":{"id":76720,"nodeType":"Block","src":"6596:61:161","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":76717,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76706,"src":"6643:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76716,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73482,"src":"6611:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6611:39:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76719,"nodeType":"EmitStatement","src":"6606:44:161"}]},"baseFunctions":[73637],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":76709,"kind":"modifierInvocation","modifierName":{"id":76708,"name":"whenNotPaused","nameLocations":["6546:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76553,"src":"6546:13:161"},"nodeType":"ModifierInvocation","src":"6546:13:161"},{"id":76711,"kind":"modifierInvocation","modifierName":{"id":76710,"name":"onlyIfActive","nameLocations":["6560:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76496,"src":"6560:12:161"},"nodeType":"ModifierInvocation","src":"6560:12:161"},{"arguments":[{"id":76713,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76706,"src":"6588:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":76714,"kind":"modifierInvocation","modifierName":{"id":76712,"name":"retrievingVara","nameLocations":["6573:14:161"],"nodeType":"IdentifierPath","referencedDeclaration":76579,"src":"6573:14:161"},"nodeType":"ModifierInvocation","src":"6573:22:161"}],"name":"executableBalanceTopUp","nameLocation":"6498:22:161","parameters":{"id":76707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76706,"mutability":"mutable","name":"_value","nameLocation":"6529:6:161","nodeType":"VariableDeclaration","scope":76721,"src":"6521:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76705,"name":"uint128","nodeType":"ElementaryTypeName","src":"6521:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6520:16:161"},"returnParameters":{"id":76715,"nodeType":"ParameterList","parameters":[],"src":"6596:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76738,"nodeType":"FunctionDefinition","src":"6663:208:161","nodes":[],"body":{"id":76737,"nodeType":"Block","src":"6728:143:161","nodes":[],"statements":[{"assignments":[null,76727],"declarations":[null,{"constant":false,"id":76727,"mutability":"mutable","name":"success","nameLocation":"6746:7:161","nodeType":"VariableDeclaration","scope":76737,"src":"6741:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76726,"name":"bool","nodeType":"ElementaryTypeName","src":"6741:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":76730,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":76728,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76941,"src":"6757:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":76729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6757:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"6738:52:161"},{"expression":{"arguments":[{"id":76732,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"6808:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76733,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"6817:44:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6817:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6800:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6800:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76736,"nodeType":"ExpressionStatement","src":"6800:64:161"}]},"baseFunctions":[73640],"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":76724,"kind":"modifierInvocation","modifierName":{"id":76723,"name":"whenNotPaused","nameLocations":["6714:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76553,"src":"6714:13:161"},"nodeType":"ModifierInvocation","src":"6714:13:161"}],"name":"transferLockedValueToInheritor","nameLocation":"6672:30:161","parameters":{"id":76722,"nodeType":"ParameterList","parameters":[],"src":"6702:2:161"},"returnParameters":{"id":76725,"nodeType":"ParameterList","parameters":[],"src":"6728:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":76805,"nodeType":"FunctionDefinition","src":"6929:558:161","nodes":[],"body":{"id":76804,"nodeType":"Block","src":"7027:460:161","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76750,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"7045:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7068:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7060:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76751,"name":"address","nodeType":"ElementaryTypeName","src":"7060:7:161","typeDescriptions":{}}},"id":76754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7060:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7045:25:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76756,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"7072:21:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7072:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76749,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7037:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7037:59:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76759,"nodeType":"ExpressionStatement","src":"7037:59:161"},{"expression":{"arguments":[{"id":76762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7115:8:161","subExpression":{"id":76761,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"7116:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76763,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"7125:17:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7125:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76760,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7107:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7107:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76766,"nodeType":"ExpressionStatement","src":"7107:38:161"},{"assignments":[76771],"declarations":[{"constant":false,"id":76771,"mutability":"mutable","name":"implementationSlot","nameLocation":"7188:18:161","nodeType":"VariableDeclaration","scope":76804,"src":"7156:50:161","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":76770,"nodeType":"UserDefinedTypeName","pathNode":{"id":76769,"name":"StorageSlot.AddressSlot","nameLocations":["7156:11:161","7168:11:161"],"nodeType":"IdentifierPath","referencedDeclaration":48295,"src":"7156:23:161"},"referencedDeclaration":48295,"src":"7156:23:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":76777,"initialValue":{"arguments":[{"expression":{"id":76774,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"7248:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":76775,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7261:19:161","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":44746,"src":"7248:32:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76772,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7221:11:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":76773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7233:14:161","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48324,"src":"7221:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48295_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7221:60:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7156:125:161"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76779,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"7300:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":76780,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7319:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48294,"src":"7300:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7336:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7328:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76781,"name":"address","nodeType":"ElementaryTypeName","src":"7328:7:161","typeDescriptions":{}}},"id":76784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7328:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7300:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76786,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"7340:22:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7340:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76778,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7292:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7292:73:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76789,"nodeType":"ExpressionStatement","src":"7292:73:161"},{"expression":{"id":76792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76790,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76383,"src":"7376:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76791,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76740,"src":"7390:12:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7376:26:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76793,"nodeType":"ExpressionStatement","src":"7376:26:161"},{"expression":{"id":76796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76794,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"7412:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76795,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76744,"src":"7422:8:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7412:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76797,"nodeType":"ExpressionStatement","src":"7412:18:161"},{"expression":{"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":76798,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"7440:18:161","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":76800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7459:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48294,"src":"7440:24:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76801,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76742,"src":"7467:13:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7440:40:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76803,"nodeType":"ExpressionStatement","src":"7440:40:161"}]},"baseFunctions":[73649],"functionSelector":"e4bbb5a8","implemented":true,"kind":"function","modifiers":[{"id":76747,"kind":"modifierInvocation","modifierName":{"id":76746,"name":"onlyRouter","nameLocations":["7016:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":76533,"src":"7016:10:161"},"nodeType":"ModifierInvocation","src":"7016:10:161"}],"name":"initialize","nameLocation":"6938:10:161","parameters":{"id":76745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76740,"mutability":"mutable","name":"_initializer","nameLocation":"6957:12:161","nodeType":"VariableDeclaration","scope":76805,"src":"6949:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76739,"name":"address","nodeType":"ElementaryTypeName","src":"6949:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76742,"mutability":"mutable","name":"_abiInterface","nameLocation":"6979:13:161","nodeType":"VariableDeclaration","scope":76805,"src":"6971:21:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76741,"name":"address","nodeType":"ElementaryTypeName","src":"6971:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76744,"mutability":"mutable","name":"_isSmall","nameLocation":"6999:8:161","nodeType":"VariableDeclaration","scope":76805,"src":"6994:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76743,"name":"bool","nodeType":"ElementaryTypeName","src":"6994:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6948:60:161"},"returnParameters":{"id":76748,"nodeType":"ParameterList","parameters":[],"src":"7027:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76909,"nodeType":"FunctionDefinition","src":"7493:2684:161","nodes":[],"body":{"id":76908,"nodeType":"Block","src":"7650:2527:161","nodes":[],"statements":[{"documentation":"@dev Verify that the transition belongs to this contract.","expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76816,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"7815:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7827:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"7815:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":76820,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7846:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$77746","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$77746","typeString":"contract Mirror"}],"id":76819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7838:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76818,"name":"address","nodeType":"ElementaryTypeName","src":"7838:7:161","typeDescriptions":{}}},"id":76821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7838:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7815:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76823,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"7853:14:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7853:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7807:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7807:63:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76826,"nodeType":"ExpressionStatement","src":"7807:63:161"},{"condition":{"expression":{"id":76827,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"8132:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8144:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85031,"src":"8132:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Transfer value to router if valueToReceive is non-zero and has negative sign.","id":76835,"nodeType":"IfStatement","src":"8128:113:161","trueBody":{"id":76834,"nodeType":"Block","src":"8172:69:161","statements":[{"expression":{"arguments":[{"expression":{"id":76830,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"8203:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8215:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"8203:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76829,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76635,"src":"8186:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8186:44:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76833,"nodeType":"ExpressionStatement","src":"8186:44:161"}]}},{"assignments":[76838],"declarations":[{"constant":false,"id":76838,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"8454:18:161","nodeType":"VariableDeclaration","scope":76908,"src":"8446:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8446:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send all outgoing messages.","id":76843,"initialValue":{"arguments":[{"expression":{"id":76840,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"8489:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8501:8:161","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":85039,"src":"8489:20:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":76839,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77085,"src":"8475:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8475:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8446:64:161"},{"assignments":[76846],"declarations":[{"constant":false,"id":76846,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"8721:15:161","nodeType":"VariableDeclaration","scope":76908,"src":"8713:23:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76845,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8713:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Send value for each claim.","id":76851,"initialValue":{"arguments":[{"expression":{"id":76848,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"8752:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8764:11:161","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":85035,"src":"8752:23:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":76847,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77590,"src":"8739:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":76850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8739:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8713:63:161"},{"condition":{"expression":{"id":76852,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"8981:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8993:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":85024,"src":"8981:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Set inheritor if exited.","falseBody":{"id":76872,"nodeType":"Block","src":"9068:92:161","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76861,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9090:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9102:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85026,"src":"9090:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":76865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9123:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":76864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9115:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76863,"name":"address","nodeType":"ElementaryTypeName","src":"9115:7:161","typeDescriptions":{}}},"id":76866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9115:10:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9090:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":76868,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73576,"src":"9127:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9127:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":76860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9082:7:161","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":76870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9082:67:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76871,"nodeType":"ExpressionStatement","src":"9082:67:161"}]},"id":76873,"nodeType":"IfStatement","src":"8977:183:161","trueBody":{"id":76859,"nodeType":"Block","src":"9001:61:161","statements":[{"expression":{"arguments":[{"expression":{"id":76855,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9029:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9041:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85026,"src":"9029:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76854,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77622,"src":"9015:13:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9015:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76858,"nodeType":"ExpressionStatement","src":"9015:36:161"}]}},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":76877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76874,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"9378:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":76875,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9391:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9403:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85022,"src":"9391:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9378:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":"@dev Update the state hash if changed.","id":76884,"nodeType":"IfStatement","src":"9374:110:161","trueBody":{"id":76883,"nodeType":"Block","src":"9417:67:161","statements":[{"expression":{"arguments":[{"expression":{"id":76879,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9448:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9460:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85022,"src":"9448:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76878,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77636,"src":"9431:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":76881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9431:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76882,"nodeType":"ExpressionStatement","src":"9431:42:161"}]}},{"assignments":[76887],"declarations":[{"constant":false,"id":76887,"mutability":"mutable","name":"_stateTransitionHash","nameLocation":"9713:20:161","nodeType":"VariableDeclaration","scope":76908,"src":"9705:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76886,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9705:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"documentation":"@dev Return hash of performed state transition.","id":76905,"initialValue":{"arguments":[{"expression":{"id":76890,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9774:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9786:7:161","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"9774:19:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76892,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9807:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9819:12:161","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85022,"src":"9807:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76894,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9845:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9857:6:161","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":85024,"src":"9845:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":76896,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9877:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9889:9:161","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85026,"src":"9877:21:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":76898,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9912:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9924:14:161","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"9912:26:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":76900,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76808,"src":"9952:11:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":76901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9964:26:161","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85031,"src":"9952:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":76902,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76846,"src":"10004:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76903,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76838,"src":"10033:18:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":76888,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9736:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9741:19:161","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":85302,"src":"9736:24:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":76904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9736:325:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9705:356:161"},{"expression":{"id":76906,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76887,"src":"10150:20:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76814,"id":76907,"nodeType":"Return","src":"10143:27:161"}]},"baseFunctions":[73657],"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":76811,"kind":"modifierInvocation","modifierName":{"id":76810,"name":"onlyRouter","nameLocations":["7609:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":76533,"src":"7609:10:161"},"nodeType":"ModifierInvocation","src":"7609:10:161"}],"name":"performStateTransition","nameLocation":"7502:22:161","parameters":{"id":76809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76808,"mutability":"mutable","name":"_transition","nameLocation":"7555:11:161","nodeType":"VariableDeclaration","scope":76909,"src":"7525:41:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":76807,"nodeType":"UserDefinedTypeName","pathNode":{"id":76806,"name":"Gear.StateTransition","nameLocations":["7525:4:161","7530:15:161"],"nodeType":"IdentifierPath","referencedDeclaration":85040,"src":"7525:20:161"},"referencedDeclaration":85040,"src":"7525:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"7524:43:161"},"returnParameters":{"id":76814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76909,"src":"7637:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7637:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7636:9:161"},"scope":77746,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76941,"nodeType":"FunctionDefinition","src":"10207:409:161","nodes":[],"body":{"id":76940,"nodeType":"Block","src":"10295:321:161","nodes":[],"statements":[{"assignments":[76919],"declarations":[{"constant":false,"id":76919,"mutability":"mutable","name":"balance","nameLocation":"10313:7:161","nodeType":"VariableDeclaration","scope":76940,"src":"10305:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76918,"name":"uint256","nodeType":"ElementaryTypeName","src":"10305:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76925,"initialValue":{"expression":{"arguments":[{"id":76922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10331:4:161","typeDescriptions":{"typeIdentifier":"t_contract$_Mirror_$77746","typeString":"contract Mirror"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Mirror_$77746","typeString":"contract Mirror"}],"id":76921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10323:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76920,"name":"address","nodeType":"ElementaryTypeName","src":"10323:7:161","typeDescriptions":{}}},"id":76923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10323:13:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10337:7:161","memberName":"balance","nodeType":"MemberAccess","src":"10323:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10305:39:161"},{"assignments":[76927],"declarations":[{"constant":false,"id":76927,"mutability":"mutable","name":"balance128","nameLocation":"10512:10:161","nodeType":"VariableDeclaration","scope":76940,"src":"10504:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76926,"name":"uint128","nodeType":"ElementaryTypeName","src":"10504:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76932,"initialValue":{"arguments":[{"id":76930,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76919,"src":"10533:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10525:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76928,"name":"uint128","nodeType":"ElementaryTypeName","src":"10525:7:161","typeDescriptions":{}}},"id":76931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10525:16:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10504:37:161"},{"expression":{"components":[{"id":76933,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76927,"src":"10559:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":76935,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76380,"src":"10586:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76936,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76927,"src":"10597:10:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76934,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77686,"src":"10571:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":76937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10571:37:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":76938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10558:51:161","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":76917,"id":76939,"nodeType":"Return","src":"10551:58:161"}]},"implemented":true,"kind":"function","modifiers":[{"id":76912,"kind":"modifierInvocation","modifierName":{"id":76911,"name":"onlyIfExited","nameLocations":["10258:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76515,"src":"10258:12:161"},"nodeType":"ModifierInvocation","src":"10258:12:161"}],"name":"_transferLockedValueToInheritor","nameLocation":"10216:31:161","parameters":{"id":76910,"nodeType":"ParameterList","parameters":[],"src":"10247:2:161"},"returnParameters":{"id":76917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76914,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76941,"src":"10280:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76913,"name":"uint128","nodeType":"ElementaryTypeName","src":"10280:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":76916,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76941,"src":"10289:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76915,"name":"bool","nodeType":"ElementaryTypeName","src":"10289:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10279:15:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":76989,"nodeType":"FunctionDefinition","src":"10622:599:161","nodes":[],"body":{"id":76988,"nodeType":"Block","src":"10795:426:161","nodes":[],"statements":[{"assignments":[76955],"declarations":[{"constant":false,"id":76955,"mutability":"mutable","name":"_value","nameLocation":"10813:6:161","nodeType":"VariableDeclaration","scope":76988,"src":"10805:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":76954,"name":"uint128","nodeType":"ElementaryTypeName","src":"10805:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":76961,"initialValue":{"arguments":[{"expression":{"id":76958,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10830:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10834:5:161","memberName":"value","nodeType":"MemberAccess","src":"10830:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10822:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":76956,"name":"uint128","nodeType":"ElementaryTypeName","src":"10822:7:161","typeDescriptions":{}}},"id":76960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10822:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10805:35:161"},{"expression":{"arguments":[{"id":76963,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76955,"src":"10868:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":76962,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76635,"src":"10851:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10851:24:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76965,"nodeType":"ExpressionStatement","src":"10851:24:161"},{"assignments":[76967],"declarations":[{"constant":false,"id":76967,"mutability":"mutable","name":"_nonce","nameLocation":"10894:6:161","nodeType":"VariableDeclaration","scope":76988,"src":"10886:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76966,"name":"uint256","nodeType":"ElementaryTypeName","src":"10886:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76969,"initialValue":{"id":76968,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"10903:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10886:22:161"},{"assignments":[76971],"declarations":[{"constant":false,"id":76971,"mutability":"mutable","name":"id","nameLocation":"10926:2:161","nodeType":"VariableDeclaration","scope":76988,"src":"10918:10:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76970,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10918:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":76972,"nodeType":"VariableDeclarationStatement","src":"10918:10:161"},{"AST":{"nativeSrc":"10963:129:161","nodeType":"YulBlock","src":"10963:129:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10984:4:161","nodeType":"YulLiteral","src":"10984:4:161","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"10994:2:161","nodeType":"YulLiteral","src":"10994:2:161","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"10998:7:161","nodeType":"YulIdentifier","src":"10998:7:161"},"nativeSrc":"10998:9:161","nodeType":"YulFunctionCall","src":"10998:9:161"}],"functionName":{"name":"shl","nativeSrc":"10990:3:161","nodeType":"YulIdentifier","src":"10990:3:161"},"nativeSrc":"10990:18:161","nodeType":"YulFunctionCall","src":"10990:18:161"}],"functionName":{"name":"mstore","nativeSrc":"10977:6:161","nodeType":"YulIdentifier","src":"10977:6:161"},"nativeSrc":"10977:32:161","nodeType":"YulFunctionCall","src":"10977:32:161"},"nativeSrc":"10977:32:161","nodeType":"YulExpressionStatement","src":"10977:32:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11029:4:161","nodeType":"YulLiteral","src":"11029:4:161","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"11035:6:161","nodeType":"YulIdentifier","src":"11035:6:161"}],"functionName":{"name":"mstore","nativeSrc":"11022:6:161","nodeType":"YulIdentifier","src":"11022:6:161"},"nativeSrc":"11022:20:161","nodeType":"YulFunctionCall","src":"11022:20:161"},"nativeSrc":"11022:20:161","nodeType":"YulExpressionStatement","src":"11022:20:161"},{"nativeSrc":"11055:27:161","nodeType":"YulAssignment","src":"11055:27:161","value":{"arguments":[{"kind":"number","nativeSrc":"11071:4:161","nodeType":"YulLiteral","src":"11071:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11077:4:161","nodeType":"YulLiteral","src":"11077:4:161","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"11061:9:161","nodeType":"YulIdentifier","src":"11061:9:161"},"nativeSrc":"11061:21:161","nodeType":"YulFunctionCall","src":"11061:21:161"},"variableNames":[{"name":"id","nativeSrc":"11055:2:161","nodeType":"YulIdentifier","src":"11055:2:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":76967,"isOffset":false,"isSlot":false,"src":"11035:6:161","valueSize":1},{"declaration":76971,"isOffset":false,"isSlot":false,"src":"11055:2:161","valueSize":1}],"flags":["memory-safe"],"id":76973,"nodeType":"InlineAssembly","src":"10938:154:161"},{"expression":{"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11101:7:161","subExpression":{"id":76974,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76374,"src":"11101:5:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76976,"nodeType":"ExpressionStatement","src":"11101:7:161"},{"eventCall":{"arguments":[{"id":76978,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76971,"src":"11149:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76979,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11153:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11157:6:161","memberName":"sender","nodeType":"MemberAccess","src":"11153:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76981,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76943,"src":"11165:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":76982,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76955,"src":"11175:6:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":76983,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76945,"src":"11183:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":76977,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73454,"src":"11124:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":76984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11124:70:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76985,"nodeType":"EmitStatement","src":"11119:75:161"},{"expression":{"id":76986,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76971,"src":"11212:2:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76953,"id":76987,"nodeType":"Return","src":"11205:9:161"}]},"implemented":true,"kind":"function","modifiers":[{"id":76948,"kind":"modifierInvocation","modifierName":{"id":76947,"name":"onlyIfActive","nameLocations":["10710:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76496,"src":"10710:12:161"},"nodeType":"ModifierInvocation","src":"10710:12:161"},{"id":76950,"kind":"modifierInvocation","modifierName":{"id":76949,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["10731:33:161"],"nodeType":"IdentifierPath","referencedDeclaration":76471,"src":"10731:33:161"},"nodeType":"ModifierInvocation","src":"10731:33:161"}],"name":"_sendMessage","nameLocation":"10631:12:161","parameters":{"id":76946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76943,"mutability":"mutable","name":"_payload","nameLocation":"10659:8:161","nodeType":"VariableDeclaration","scope":76989,"src":"10644:23:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":76942,"name":"bytes","nodeType":"ElementaryTypeName","src":"10644:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76945,"mutability":"mutable","name":"_callReply","nameLocation":"10674:10:161","nodeType":"VariableDeclaration","scope":76989,"src":"10669:15:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76944,"name":"bool","nodeType":"ElementaryTypeName","src":"10669:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10643:42:161"},"returnParameters":{"id":76953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76989,"src":"10782:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76951,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10782:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10781:9:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77085,"nodeType":"FunctionDefinition","src":"11429:1043:161","nodes":[],"body":{"id":77084,"nodeType":"Block","src":"11513:959:161","nodes":[],"statements":[{"assignments":[76999],"declarations":[{"constant":false,"id":76999,"mutability":"mutable","name":"messagesLen","nameLocation":"11531:11:161","nodeType":"VariableDeclaration","scope":77084,"src":"11523:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76998,"name":"uint256","nodeType":"ElementaryTypeName","src":"11523:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77002,"initialValue":{"expression":{"id":77000,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76993,"src":"11545:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11555:6:161","memberName":"length","nodeType":"MemberAccess","src":"11545:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11523:38:161"},{"assignments":[77004],"declarations":[{"constant":false,"id":77004,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"11579:18:161","nodeType":"VariableDeclaration","scope":77084,"src":"11571:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77003,"name":"uint256","nodeType":"ElementaryTypeName","src":"11571:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77008,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77005,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76999,"src":"11600:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11614:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11600:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11571:45:161"},{"assignments":[77010],"declarations":[{"constant":false,"id":77010,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"11634:20:161","nodeType":"VariableDeclaration","scope":77084,"src":"11626:28:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77009,"name":"uint256","nodeType":"ElementaryTypeName","src":"11626:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77015,"initialValue":{"arguments":[{"id":77013,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77004,"src":"11673:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77011,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"11657:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11664:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"11657:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11657:35:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11626:66:161"},{"assignments":[77017],"declarations":[{"constant":false,"id":77017,"mutability":"mutable","name":"offset","nameLocation":"11710:6:161","nodeType":"VariableDeclaration","scope":77084,"src":"11702:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77016,"name":"uint256","nodeType":"ElementaryTypeName","src":"11702:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77019,"initialValue":{"hexValue":"30","id":77018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11719:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11702:18:161"},{"body":{"id":77075,"nodeType":"Block","src":"11773:596:161","statements":[{"assignments":[77034],"declarations":[{"constant":false,"id":77034,"mutability":"mutable","name":"message","nameLocation":"11809:7:161","nodeType":"VariableDeclaration","scope":77075,"src":"11787:29:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77033,"nodeType":"UserDefinedTypeName","pathNode":{"id":77032,"name":"Gear.Message","nameLocations":["11787:4:161","11792:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"11787:12:161"},"referencedDeclaration":84999,"src":"11787:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":77038,"initialValue":{"baseExpression":{"id":77035,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76993,"src":"11819:9:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":77037,"indexExpression":{"id":77036,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"11829:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11819:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"11787:44:161"},{"assignments":[77040],"declarations":[{"constant":false,"id":77040,"mutability":"mutable","name":"messageHash","nameLocation":"11899:11:161","nodeType":"VariableDeclaration","scope":77075,"src":"11891:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77039,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11891:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77045,"initialValue":{"arguments":[{"id":77043,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77034,"src":"11930:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":77041,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"11913:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":77042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11918:11:161","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":85245,"src":"11913:16:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$84999_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11913:25:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11891:47:161"},{"expression":{"arguments":[{"id":77049,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77010,"src":"12040:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77050,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77017,"src":"12062:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77051,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77040,"src":"12070:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77046,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"12014:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12021:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"12014:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":77052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12014:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77053,"nodeType":"ExpressionStatement","src":"12014:68:161"},{"id":77058,"nodeType":"UncheckedBlock","src":"12096:55:161","statements":[{"expression":{"id":77056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77054,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77017,"src":"12124:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":77055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12134:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12124:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77057,"nodeType":"ExpressionStatement","src":"12124:12:161"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":77059,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77034,"src":"12201:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12209:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"12201:20:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12222:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85015,"src":"12201:23:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12228:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12201:28:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77073,"nodeType":"Block","src":"12300:59:161","statements":[{"expression":{"arguments":[{"id":77070,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77034,"src":"12336:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":77069,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77478,"src":"12318:17:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$84999_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":77071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12318:26:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77072,"nodeType":"ExpressionStatement","src":"12318:26:161"}]},"id":77074,"nodeType":"IfStatement","src":"12197:162:161","trueBody":{"id":77068,"nodeType":"Block","src":"12231:63:161","statements":[{"expression":{"arguments":[{"id":77065,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77034,"src":"12271:7:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":77064,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77139,"src":"12249:21:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$84999_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":77066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12249:30:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77067,"nodeType":"ExpressionStatement","src":"12249:30:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77024,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"11751:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77025,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76999,"src":"11755:11:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11751:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77076,"initializationExpression":{"assignments":[77021],"declarations":[{"constant":false,"id":77021,"mutability":"mutable","name":"i","nameLocation":"11744:1:161","nodeType":"VariableDeclaration","scope":77076,"src":"11736:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77020,"name":"uint256","nodeType":"ElementaryTypeName","src":"11736:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77023,"initialValue":{"hexValue":"30","id":77022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11748:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11736:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11768:3:161","subExpression":{"id":77027,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"11768:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77029,"nodeType":"ExpressionStatement","src":"11768:3:161"},"nodeType":"ForStatement","src":"11731:638:161"},{"expression":{"arguments":[{"id":77079,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77010,"src":"12421:20:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":77080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12443:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":77081,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77004,"src":"12446:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77077,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"12386:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":77078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12393:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"12386:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":77082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12386:79:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":76997,"id":77083,"nodeType":"Return","src":"12379:86:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"11438:13:161","parameters":{"id":76994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76993,"mutability":"mutable","name":"_messages","nameLocation":"11476:9:161","nodeType":"VariableDeclaration","scope":77085,"src":"11452:33:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":76991,"nodeType":"UserDefinedTypeName","pathNode":{"id":76990,"name":"Gear.Message","nameLocations":["11452:4:161","11457:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"11452:12:161"},"referencedDeclaration":84999,"src":"11452:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"id":76992,"nodeType":"ArrayTypeName","src":"11452:14:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"11451:35:161"},"returnParameters":{"id":76997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76996,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77085,"src":"11504:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76995,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11504:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11503:9:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77139,"nodeType":"FunctionDefinition","src":"12531:657:161","nodes":[],"body":{"id":77138,"nodeType":"Block","src":"12602:586:161","nodes":[],"statements":[{"condition":{"id":77095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12616:37:161","subExpression":{"arguments":[{"id":77093,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12644:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":77092,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77347,"src":"12617:26:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$84999_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":77094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12617:36:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77137,"nodeType":"IfStatement","src":"12612:570:161","trueBody":{"id":77136,"nodeType":"Block","src":"12655:527:161","statements":[{"condition":{"expression":{"id":77096,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12673:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12682:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":84998,"src":"12673:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77124,"nodeType":"IfStatement","src":"12669:407:161","trueBody":{"id":77123,"nodeType":"Block","src":"12688:388:161","statements":[{"assignments":[77099,null],"declarations":[{"constant":false,"id":77099,"mutability":"mutable","name":"success","nameLocation":"12712:7:161","nodeType":"VariableDeclaration","scope":77123,"src":"12707:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77098,"name":"bool","nodeType":"ElementaryTypeName","src":"12707:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77108,"initialValue":{"arguments":[{"expression":{"id":77105,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12764:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12773:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"12764:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":77100,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12724:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12733:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"12724:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12745:4:161","memberName":"call","nodeType":"MemberAccess","src":"12724:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":77103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12755:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"12724:39:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12724:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12706:75:161"},{"condition":{"id":77110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12804:8:161","subExpression":{"id":77109,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"12805:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77122,"nodeType":"IfStatement","src":"12800:262:161","trueBody":{"id":77121,"nodeType":"Block","src":"12814:248:161","statements":[{"documentation":"@dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":77112,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12964:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12973:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84987,"src":"12964:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77114,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12977:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12986:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"12977:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77116,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"12999:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13008:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"12999:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77111,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73502,"src":"12946:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":77118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12946:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77119,"nodeType":"EmitStatement","src":"12941:73:161"},{"functionReturnParameters":77091,"id":77120,"nodeType":"Return","src":"13037:7:161"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":77126,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"13103:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13112:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84987,"src":"13103:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77128,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"13116:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13125:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"13116:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77130,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"13138:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13147:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"13138:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":77132,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77089,"src":"13156:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13165:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"13156:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77125,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73493,"src":"13095:7:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13095:76:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77135,"nodeType":"EmitStatement","src":"13090:81:161"}]}}]},"documentation":{"id":77086,"nodeType":"StructuredDocumentation","src":"12478:48:161","text":"@dev Value never sent since goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"12540:21:161","parameters":{"id":77090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77089,"mutability":"mutable","name":"_message","nameLocation":"12584:8:161","nodeType":"VariableDeclaration","scope":77139,"src":"12562:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77088,"nodeType":"UserDefinedTypeName","pathNode":{"id":77087,"name":"Gear.Message","nameLocations":["12562:4:161","12567:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"12562:12:161"},"referencedDeclaration":84999,"src":"12562:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"12561:32:161"},"returnParameters":{"id":77091,"nodeType":"ParameterList","parameters":[],"src":"12602:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77347,"nodeType":"FunctionDefinition","src":"13308:4292:161","nodes":[],"body":{"id":77346,"nodeType":"Block","src":"13399:4201:161","nodes":[],"statements":[{"assignments":[77149],"declarations":[{"constant":false,"id":77149,"mutability":"mutable","name":"payload","nameLocation":"13424:7:161","nodeType":"VariableDeclaration","scope":77346,"src":"13409:22:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":77148,"name":"bytes","nodeType":"ElementaryTypeName","src":"13409:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":77152,"initialValue":{"expression":{"id":77150,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77143,"src":"13434:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13443:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"13434:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"13409:41:161"},{"condition":{"id":77168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14027:86:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77153,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77143,"src":"14029:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14038:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"14029:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":77155,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76365,"src":"14053:14:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14029:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77157,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77143,"src":"14071:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14080:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"14071:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14089:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14071:19:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14029:61:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77162,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"14094:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14102:6:161","memberName":"length","nodeType":"MemberAccess","src":"14094:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14111:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14094:18:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14029:83:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14028:85:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77172,"nodeType":"IfStatement","src":"14023:129:161","trueBody":{"id":77171,"nodeType":"Block","src":"14115:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14136:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77147,"id":77170,"nodeType":"Return","src":"14129:12:161"}]}},{"assignments":[77174],"declarations":[{"constant":false,"id":77174,"mutability":"mutable","name":"topicsLength","nameLocation":"14170:12:161","nodeType":"VariableDeclaration","scope":77346,"src":"14162:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77173,"name":"uint256","nodeType":"ElementaryTypeName","src":"14162:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77175,"nodeType":"VariableDeclarationStatement","src":"14162:20:161"},{"AST":{"nativeSrc":"14217:187:161","nodeType":"YulBlock","src":"14217:187:161","statements":[{"nativeSrc":"14340:54:161","nodeType":"YulAssignment","src":"14340:54:161","value":{"arguments":[{"kind":"number","nativeSrc":"14360:3:161","nodeType":"YulLiteral","src":"14360:3:161","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"14378:14:161","nodeType":"YulIdentifier","src":"14378:14:161"}],"functionName":{"name":"calldataload","nativeSrc":"14365:12:161","nodeType":"YulIdentifier","src":"14365:12:161"},"nativeSrc":"14365:28:161","nodeType":"YulFunctionCall","src":"14365:28:161"}],"functionName":{"name":"shr","nativeSrc":"14356:3:161","nodeType":"YulIdentifier","src":"14356:3:161"},"nativeSrc":"14356:38:161","nodeType":"YulFunctionCall","src":"14356:38:161"},"variableNames":[{"name":"topicsLength","nativeSrc":"14340:12:161","nodeType":"YulIdentifier","src":"14340:12:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77149,"isOffset":true,"isSlot":false,"src":"14378:14:161","suffix":"offset","valueSize":1},{"declaration":77174,"isOffset":false,"isSlot":false,"src":"14340:12:161","valueSize":1}],"flags":["memory-safe"],"id":77176,"nodeType":"InlineAssembly","src":"14192:212:161"},{"condition":{"id":77185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14418:41:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77177,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"14420:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":77178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14436:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14420:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77180,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"14441:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":77181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14457:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14441:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14420:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14419:40:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77189,"nodeType":"IfStatement","src":"14414:84:161","trueBody":{"id":77188,"nodeType":"Block","src":"14461:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14482:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77147,"id":77187,"nodeType":"Return","src":"14475:12:161"}]}},{"assignments":[77191],"declarations":[{"constant":false,"id":77191,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"14516:19:161","nodeType":"VariableDeclaration","scope":77346,"src":"14508:27:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77190,"name":"uint256","nodeType":"ElementaryTypeName","src":"14508:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77192,"nodeType":"VariableDeclarationStatement","src":"14508:27:161"},{"id":77201,"nodeType":"UncheckedBlock","src":"14545:78:161","statements":[{"expression":{"id":77199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77193,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77191,"src":"14569:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":77194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14591:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77195,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"14595:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14610:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14595:17:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14591:21:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14569:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77200,"nodeType":"ExpressionStatement","src":"14569:43:161"}]},{"condition":{"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14637:40:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77202,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"14639:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14647:6:161","memberName":"length","nodeType":"MemberAccess","src":"14639:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":77204,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77191,"src":"14657:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14639:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77206,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14638:39:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77211,"nodeType":"IfStatement","src":"14633:83:161","trueBody":{"id":77210,"nodeType":"Block","src":"14679:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14700:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77147,"id":77209,"nodeType":"Return","src":"14693:12:161"}]}},{"assignments":[77213],"declarations":[{"constant":false,"id":77213,"mutability":"mutable","name":"topic1","nameLocation":"14790:6:161","nodeType":"VariableDeclaration","scope":77346,"src":"14782:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14782:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77214,"nodeType":"VariableDeclarationStatement","src":"14782:14:161"},{"AST":{"nativeSrc":"14831:70:161","nodeType":"YulBlock","src":"14831:70:161","statements":[{"nativeSrc":"14845:46:161","nodeType":"YulAssignment","src":"14845:46:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"14872:14:161","nodeType":"YulIdentifier","src":"14872:14:161"},{"kind":"number","nativeSrc":"14888:1:161","nodeType":"YulLiteral","src":"14888:1:161","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14868:3:161","nodeType":"YulIdentifier","src":"14868:3:161"},"nativeSrc":"14868:22:161","nodeType":"YulFunctionCall","src":"14868:22:161"}],"functionName":{"name":"calldataload","nativeSrc":"14855:12:161","nodeType":"YulIdentifier","src":"14855:12:161"},"nativeSrc":"14855:36:161","nodeType":"YulFunctionCall","src":"14855:36:161"},"variableNames":[{"name":"topic1","nativeSrc":"14845:6:161","nodeType":"YulIdentifier","src":"14845:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77149,"isOffset":true,"isSlot":false,"src":"14872:14:161","suffix":"offset","valueSize":1},{"declaration":77213,"isOffset":false,"isSlot":false,"src":"14845:6:161","valueSize":1}],"flags":["memory-safe"],"id":77215,"nodeType":"InlineAssembly","src":"14806:95:161"},{"condition":{"id":77286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15457:763:161","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77216,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15472:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77217,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73441,"src":"15482:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15495:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15482:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15472:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77220,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15519:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77221,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73454,"src":"15529:24:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":77222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15554:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15529:33:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15519:43:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:90:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77225,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15578:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77226,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73465,"src":"15588:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15611:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15588:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15578:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:147:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77230,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15635:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77231,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73472,"src":"15645:22:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":77232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15668:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15645:31:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15635:41:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:204:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77235,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15692:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77236,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73477,"src":"15702:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15729:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15702:35:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15692:45:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:265:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77240,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15753:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77241,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73482,"src":"15763:31:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15795:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15763:40:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15753:50:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:331:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77245,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15819:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77246,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73493,"src":"15829:7:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":77247,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15837:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15829:16:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15819:26:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:373:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77250,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15861:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77251,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73502,"src":"15871:17:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":77252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15889:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15871:26:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15861:36:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:425:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77255,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15913:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77256,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"15923:5:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":77257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15929:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15923:14:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15913:24:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:465:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77260,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"15953:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77261,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73522,"src":"15963:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":77262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15979:8:161","memberName":"selector","nodeType":"MemberAccess","src":"15963:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15953:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:515:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77265,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"16003:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77266,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"16013:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16026:8:161","memberName":"selector","nodeType":"MemberAccess","src":"16013:21:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16003:31:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:562:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77270,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"16050:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77271,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"16060:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16097:8:161","memberName":"selector","nodeType":"MemberAccess","src":"16060:45:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16050:55:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:633:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77275,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"16121:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77276,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"16131:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16151:8:161","memberName":"selector","nodeType":"MemberAccess","src":"16131:28:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16121:38:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:687:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":77283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77280,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77213,"src":"16175:6:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":77281,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"16185:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16202:8:161","memberName":"selector","nodeType":"MemberAccess","src":"16185:25:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16175:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15472:738:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":77285,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15458:762:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":77290,"nodeType":"IfStatement","src":"15453:806:161","trueBody":{"id":77289,"nodeType":"Block","src":"16222:37:161","statements":[{"expression":{"hexValue":"66616c7365","id":77287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16243:5:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":77147,"id":77288,"nodeType":"Return","src":"16236:12:161"}]}},{"assignments":[77292],"declarations":[{"constant":false,"id":77292,"mutability":"mutable","name":"size","nameLocation":"16310:4:161","nodeType":"VariableDeclaration","scope":77346,"src":"16302:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77291,"name":"uint256","nodeType":"ElementaryTypeName","src":"16302:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77293,"nodeType":"VariableDeclarationStatement","src":"16302:12:161"},{"id":77301,"nodeType":"UncheckedBlock","src":"16324:78:161","statements":[{"expression":{"id":77299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77294,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"16348:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77295,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"16355:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16363:6:161","memberName":"length","nodeType":"MemberAccess","src":"16355:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":77297,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77191,"src":"16372:19:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16355:36:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16348:43:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77300,"nodeType":"ExpressionStatement","src":"16348:43:161"}]},{"assignments":[77303],"declarations":[{"constant":false,"id":77303,"mutability":"mutable","name":"memPtr","nameLocation":"16420:6:161","nodeType":"VariableDeclaration","scope":77346,"src":"16412:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77302,"name":"uint256","nodeType":"ElementaryTypeName","src":"16412:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77308,"initialValue":{"arguments":[{"id":77306,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"16445:4:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77304,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"16429:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16436:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"16429:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16429:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16412:38:161"},{"AST":{"nativeSrc":"16485:92:161","nodeType":"YulBlock","src":"16485:92:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"16512:6:161","nodeType":"YulIdentifier","src":"16512:6:161"},{"arguments":[{"name":"payload.offset","nativeSrc":"16524:14:161","nodeType":"YulIdentifier","src":"16524:14:161"},{"name":"topicsLengthInBytes","nativeSrc":"16540:19:161","nodeType":"YulIdentifier","src":"16540:19:161"}],"functionName":{"name":"add","nativeSrc":"16520:3:161","nodeType":"YulIdentifier","src":"16520:3:161"},"nativeSrc":"16520:40:161","nodeType":"YulFunctionCall","src":"16520:40:161"},{"name":"size","nativeSrc":"16562:4:161","nodeType":"YulIdentifier","src":"16562:4:161"}],"functionName":{"name":"calldatacopy","nativeSrc":"16499:12:161","nodeType":"YulIdentifier","src":"16499:12:161"},"nativeSrc":"16499:68:161","nodeType":"YulFunctionCall","src":"16499:68:161"},"nativeSrc":"16499:68:161","nodeType":"YulExpressionStatement","src":"16499:68:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77303,"isOffset":false,"isSlot":false,"src":"16512:6:161","valueSize":1},{"declaration":77149,"isOffset":true,"isSlot":false,"src":"16524:14:161","suffix":"offset","valueSize":1},{"declaration":77292,"isOffset":false,"isSlot":false,"src":"16562:4:161","valueSize":1},{"declaration":77191,"isOffset":false,"isSlot":false,"src":"16540:19:161","valueSize":1}],"flags":["memory-safe"],"id":77309,"nodeType":"InlineAssembly","src":"16460:117:161"},{"assignments":[77311],"declarations":[{"constant":false,"id":77311,"mutability":"mutable","name":"topic2","nameLocation":"16696:6:161","nodeType":"VariableDeclaration","scope":77346,"src":"16688:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77310,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16688:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77312,"nodeType":"VariableDeclarationStatement","src":"16688:14:161"},{"assignments":[77314],"declarations":[{"constant":false,"id":77314,"mutability":"mutable","name":"topic3","nameLocation":"16720:6:161","nodeType":"VariableDeclaration","scope":77346,"src":"16712:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77313,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16712:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77315,"nodeType":"VariableDeclarationStatement","src":"16712:14:161"},{"assignments":[77317],"declarations":[{"constant":false,"id":77317,"mutability":"mutable","name":"topic4","nameLocation":"16744:6:161","nodeType":"VariableDeclaration","scope":77346,"src":"16736:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16736:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77318,"nodeType":"VariableDeclarationStatement","src":"16736:14:161"},{"AST":{"nativeSrc":"16785:191:161","nodeType":"YulBlock","src":"16785:191:161","statements":[{"nativeSrc":"16799:47:161","nodeType":"YulAssignment","src":"16799:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"16826:14:161","nodeType":"YulIdentifier","src":"16826:14:161"},{"kind":"number","nativeSrc":"16842:2:161","nodeType":"YulLiteral","src":"16842:2:161","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"16822:3:161","nodeType":"YulIdentifier","src":"16822:3:161"},"nativeSrc":"16822:23:161","nodeType":"YulFunctionCall","src":"16822:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"16809:12:161","nodeType":"YulIdentifier","src":"16809:12:161"},"nativeSrc":"16809:37:161","nodeType":"YulFunctionCall","src":"16809:37:161"},"variableNames":[{"name":"topic2","nativeSrc":"16799:6:161","nodeType":"YulIdentifier","src":"16799:6:161"}]},{"nativeSrc":"16859:47:161","nodeType":"YulAssignment","src":"16859:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"16886:14:161","nodeType":"YulIdentifier","src":"16886:14:161"},{"kind":"number","nativeSrc":"16902:2:161","nodeType":"YulLiteral","src":"16902:2:161","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"16882:3:161","nodeType":"YulIdentifier","src":"16882:3:161"},"nativeSrc":"16882:23:161","nodeType":"YulFunctionCall","src":"16882:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"16869:12:161","nodeType":"YulIdentifier","src":"16869:12:161"},"nativeSrc":"16869:37:161","nodeType":"YulFunctionCall","src":"16869:37:161"},"variableNames":[{"name":"topic3","nativeSrc":"16859:6:161","nodeType":"YulIdentifier","src":"16859:6:161"}]},{"nativeSrc":"16919:47:161","nodeType":"YulAssignment","src":"16919:47:161","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"16946:14:161","nodeType":"YulIdentifier","src":"16946:14:161"},{"kind":"number","nativeSrc":"16962:2:161","nodeType":"YulLiteral","src":"16962:2:161","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"16942:3:161","nodeType":"YulIdentifier","src":"16942:3:161"},"nativeSrc":"16942:23:161","nodeType":"YulFunctionCall","src":"16942:23:161"}],"functionName":{"name":"calldataload","nativeSrc":"16929:12:161","nodeType":"YulIdentifier","src":"16929:12:161"},"nativeSrc":"16929:37:161","nodeType":"YulFunctionCall","src":"16929:37:161"},"variableNames":[{"name":"topic4","nativeSrc":"16919:6:161","nodeType":"YulIdentifier","src":"16919:6:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77149,"isOffset":true,"isSlot":false,"src":"16826:14:161","suffix":"offset","valueSize":1},{"declaration":77149,"isOffset":true,"isSlot":false,"src":"16886:14:161","suffix":"offset","valueSize":1},{"declaration":77149,"isOffset":true,"isSlot":false,"src":"16946:14:161","suffix":"offset","valueSize":1},{"declaration":77311,"isOffset":false,"isSlot":false,"src":"16799:6:161","valueSize":1},{"declaration":77314,"isOffset":false,"isSlot":false,"src":"16859:6:161","valueSize":1},{"declaration":77317,"isOffset":false,"isSlot":false,"src":"16919:6:161","valueSize":1}],"flags":["memory-safe"],"id":77319,"nodeType":"InlineAssembly","src":"16760:216:161"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77320,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"16990:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":77321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17006:1:161","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16990:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77325,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"17126:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":77326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17142:1:161","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17126:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77330,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"17270:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":77331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17286:1:161","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"17270:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77335,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77174,"src":"17422:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":77336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17438:1:161","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"17422:17:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77340,"nodeType":"IfStatement","src":"17418:154:161","trueBody":{"id":77339,"nodeType":"Block","src":"17441:131:161","statements":[{"AST":{"nativeSrc":"17480:82:161","nodeType":"YulBlock","src":"17480:82:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17503:6:161","nodeType":"YulIdentifier","src":"17503:6:161"},{"name":"size","nativeSrc":"17511:4:161","nodeType":"YulIdentifier","src":"17511:4:161"},{"name":"topic1","nativeSrc":"17517:6:161","nodeType":"YulIdentifier","src":"17517:6:161"},{"name":"topic2","nativeSrc":"17525:6:161","nodeType":"YulIdentifier","src":"17525:6:161"},{"name":"topic3","nativeSrc":"17533:6:161","nodeType":"YulIdentifier","src":"17533:6:161"},{"name":"topic4","nativeSrc":"17541:6:161","nodeType":"YulIdentifier","src":"17541:6:161"}],"functionName":{"name":"log4","nativeSrc":"17498:4:161","nodeType":"YulIdentifier","src":"17498:4:161"},"nativeSrc":"17498:50:161","nodeType":"YulFunctionCall","src":"17498:50:161"},"nativeSrc":"17498:50:161","nodeType":"YulExpressionStatement","src":"17498:50:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77303,"isOffset":false,"isSlot":false,"src":"17503:6:161","valueSize":1},{"declaration":77292,"isOffset":false,"isSlot":false,"src":"17511:4:161","valueSize":1},{"declaration":77213,"isOffset":false,"isSlot":false,"src":"17517:6:161","valueSize":1},{"declaration":77311,"isOffset":false,"isSlot":false,"src":"17525:6:161","valueSize":1},{"declaration":77314,"isOffset":false,"isSlot":false,"src":"17533:6:161","valueSize":1},{"declaration":77317,"isOffset":false,"isSlot":false,"src":"17541:6:161","valueSize":1}],"flags":["memory-safe"],"id":77338,"nodeType":"InlineAssembly","src":"17455:107:161"}]}},"id":77341,"nodeType":"IfStatement","src":"17266:306:161","trueBody":{"id":77334,"nodeType":"Block","src":"17289:123:161","statements":[{"AST":{"nativeSrc":"17328:74:161","nodeType":"YulBlock","src":"17328:74:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17351:6:161","nodeType":"YulIdentifier","src":"17351:6:161"},{"name":"size","nativeSrc":"17359:4:161","nodeType":"YulIdentifier","src":"17359:4:161"},{"name":"topic1","nativeSrc":"17365:6:161","nodeType":"YulIdentifier","src":"17365:6:161"},{"name":"topic2","nativeSrc":"17373:6:161","nodeType":"YulIdentifier","src":"17373:6:161"},{"name":"topic3","nativeSrc":"17381:6:161","nodeType":"YulIdentifier","src":"17381:6:161"}],"functionName":{"name":"log3","nativeSrc":"17346:4:161","nodeType":"YulIdentifier","src":"17346:4:161"},"nativeSrc":"17346:42:161","nodeType":"YulFunctionCall","src":"17346:42:161"},"nativeSrc":"17346:42:161","nodeType":"YulExpressionStatement","src":"17346:42:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77303,"isOffset":false,"isSlot":false,"src":"17351:6:161","valueSize":1},{"declaration":77292,"isOffset":false,"isSlot":false,"src":"17359:4:161","valueSize":1},{"declaration":77213,"isOffset":false,"isSlot":false,"src":"17365:6:161","valueSize":1},{"declaration":77311,"isOffset":false,"isSlot":false,"src":"17373:6:161","valueSize":1},{"declaration":77314,"isOffset":false,"isSlot":false,"src":"17381:6:161","valueSize":1}],"flags":["memory-safe"],"id":77333,"nodeType":"InlineAssembly","src":"17303:99:161"}]}},"id":77342,"nodeType":"IfStatement","src":"17122:450:161","trueBody":{"id":77329,"nodeType":"Block","src":"17145:115:161","statements":[{"AST":{"nativeSrc":"17184:66:161","nodeType":"YulBlock","src":"17184:66:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17207:6:161","nodeType":"YulIdentifier","src":"17207:6:161"},{"name":"size","nativeSrc":"17215:4:161","nodeType":"YulIdentifier","src":"17215:4:161"},{"name":"topic1","nativeSrc":"17221:6:161","nodeType":"YulIdentifier","src":"17221:6:161"},{"name":"topic2","nativeSrc":"17229:6:161","nodeType":"YulIdentifier","src":"17229:6:161"}],"functionName":{"name":"log2","nativeSrc":"17202:4:161","nodeType":"YulIdentifier","src":"17202:4:161"},"nativeSrc":"17202:34:161","nodeType":"YulFunctionCall","src":"17202:34:161"},"nativeSrc":"17202:34:161","nodeType":"YulExpressionStatement","src":"17202:34:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77303,"isOffset":false,"isSlot":false,"src":"17207:6:161","valueSize":1},{"declaration":77292,"isOffset":false,"isSlot":false,"src":"17215:4:161","valueSize":1},{"declaration":77213,"isOffset":false,"isSlot":false,"src":"17221:6:161","valueSize":1},{"declaration":77311,"isOffset":false,"isSlot":false,"src":"17229:6:161","valueSize":1}],"flags":["memory-safe"],"id":77328,"nodeType":"InlineAssembly","src":"17159:91:161"}]}},"id":77343,"nodeType":"IfStatement","src":"16986:586:161","trueBody":{"id":77324,"nodeType":"Block","src":"17009:107:161","statements":[{"AST":{"nativeSrc":"17048:58:161","nodeType":"YulBlock","src":"17048:58:161","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17071:6:161","nodeType":"YulIdentifier","src":"17071:6:161"},{"name":"size","nativeSrc":"17079:4:161","nodeType":"YulIdentifier","src":"17079:4:161"},{"name":"topic1","nativeSrc":"17085:6:161","nodeType":"YulIdentifier","src":"17085:6:161"}],"functionName":{"name":"log1","nativeSrc":"17066:4:161","nodeType":"YulIdentifier","src":"17066:4:161"},"nativeSrc":"17066:26:161","nodeType":"YulFunctionCall","src":"17066:26:161"},"nativeSrc":"17066:26:161","nodeType":"YulExpressionStatement","src":"17066:26:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77303,"isOffset":false,"isSlot":false,"src":"17071:6:161","valueSize":1},{"declaration":77292,"isOffset":false,"isSlot":false,"src":"17079:4:161","valueSize":1},{"declaration":77213,"isOffset":false,"isSlot":false,"src":"17085:6:161","valueSize":1}],"flags":["memory-safe"],"id":77323,"nodeType":"InlineAssembly","src":"17023:83:161"}]}},{"expression":{"hexValue":"74727565","id":77344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17589:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":77147,"id":77345,"nodeType":"Return","src":"17582:11:161"}]},"documentation":{"id":77140,"nodeType":"StructuredDocumentation","src":"13194:109:161","text":"@dev Tries to parse and emit Sails Event. Returns `true` in case of success and `false` in case of error."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"13317:26:161","parameters":{"id":77144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77143,"mutability":"mutable","name":"_message","nameLocation":"13366:8:161","nodeType":"VariableDeclaration","scope":77347,"src":"13344:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77142,"nodeType":"UserDefinedTypeName","pathNode":{"id":77141,"name":"Gear.Message","nameLocations":["13344:4:161","13349:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"13344:12:161"},"referencedDeclaration":84999,"src":"13344:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"13343:32:161"},"returnParameters":{"id":77147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77146,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77347,"src":"13393:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77145,"name":"bool","nodeType":"ElementaryTypeName","src":"13393:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13392:6:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77478,"nodeType":"FunctionDefinition","src":"17675:1606:161","nodes":[],"body":{"id":77477,"nodeType":"Block","src":"17742:1539:161","nodes":[],"statements":[{"condition":{"expression":{"id":77354,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"17756:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17765:4:161","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":84998,"src":"17756:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77475,"nodeType":"Block","src":"18932:343:161","statements":[{"assignments":[77443],"declarations":[{"constant":false,"id":77443,"mutability":"mutable","name":"transferSuccess","nameLocation":"18951:15:161","nodeType":"VariableDeclaration","scope":77475,"src":"18946:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77442,"name":"bool","nodeType":"ElementaryTypeName","src":"18946:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77450,"initialValue":{"arguments":[{"expression":{"id":77445,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18984:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18993:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18984:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77447,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19006:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19015:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"19006:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77444,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77686,"src":"18969:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18969:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18946:75:161"},{"condition":{"id":77452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19039:16:161","subExpression":{"id":77451,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77443,"src":"19040:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77461,"nodeType":"IfStatement","src":"19035:117:161","trueBody":{"id":77460,"nodeType":"Block","src":"19057:95:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77454,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19100:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19109:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"19100:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77456,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19122:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19131:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"19122:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77453,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"19080:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19080:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77459,"nodeType":"EmitStatement","src":"19075:62:161"}]}},{"eventCall":{"arguments":[{"expression":{"id":77463,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19177:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19186:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"19177:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":77465,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19195:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19204:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"19195:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":77467,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19211:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19220:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"19211:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19233:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85015,"src":"19211:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":77470,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"19237:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19246:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"19237:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19259:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"19237:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":77462,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"19171:5:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":77473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19171:93:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77474,"nodeType":"EmitStatement","src":"19166:98:161"}]},"id":77476,"nodeType":"IfStatement","src":"17752:1523:161","trueBody":{"id":77441,"nodeType":"Block","src":"17771:1155:161","statements":[{"assignments":[77357],"declarations":[{"constant":false,"id":77357,"mutability":"mutable","name":"isSuccessReply","nameLocation":"17790:14:161","nodeType":"VariableDeclaration","scope":77441,"src":"17785:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77356,"name":"bool","nodeType":"ElementaryTypeName","src":"17785:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77365,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":77364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":77358,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"17807:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17816:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"17807:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17829:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"17807:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":77362,"indexExpression":{"hexValue":"30","id":77361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17834:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17807:29:161","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17840:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17807:34:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17785:56:161"},{"assignments":[77367],"declarations":[{"constant":false,"id":77367,"mutability":"mutable","name":"payload","nameLocation":"17869:7:161","nodeType":"VariableDeclaration","scope":77441,"src":"17856:20:161","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":77366,"name":"bytes","nodeType":"ElementaryTypeName","src":"17856:5:161","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":77368,"nodeType":"VariableDeclarationStatement","src":"17856:20:161"},{"condition":{"id":77369,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17895:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77392,"nodeType":"Block","src":"17976:348:161","statements":[{"expression":{"id":77390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77376,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77367,"src":"18146:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":77379,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73043,"src":"18200:10:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73043_$","typeString":"type(contract ICallbacks)"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18211:12:161","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73042,"src":"18200:23:161","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":77381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18224:8:161","memberName":"selector","nodeType":"MemberAccess","src":"18200:32:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":77382,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18234:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18243:2:161","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84987,"src":"18234:11:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77384,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18247:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18256:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"18247:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":77386,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18265:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18274:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"18265:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18287:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"18265:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18156:3:161","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":77378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18160:18:161","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"18156:22:161","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":77389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18156:153:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"18146:163:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":77391,"nodeType":"ExpressionStatement","src":"18146:163:161"}]},"id":77393,"nodeType":"IfStatement","src":"17891:433:161","trueBody":{"id":77375,"nodeType":"Block","src":"17911:59:161","statements":[{"expression":{"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77370,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77367,"src":"17929:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77371,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"17939:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17948:7:161","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"17939:16:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"17929:26:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":77374,"nodeType":"ExpressionStatement","src":"17929:26:161"}]}},{"assignments":[77395,null],"declarations":[{"constant":false,"id":77395,"mutability":"mutable","name":"success","nameLocation":"18344:7:161","nodeType":"VariableDeclaration","scope":77441,"src":"18339:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77394,"name":"bool","nodeType":"ElementaryTypeName","src":"18339:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77405,"initialValue":{"arguments":[{"id":77403,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77367,"src":"18419:7:161","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":77396,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18356:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18365:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18356:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18377:4:161","memberName":"call","nodeType":"MemberAccess","src":"18356:25:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":77399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18387:7:161","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":77400,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18403:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18412:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18403:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"18356:62:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18356:71:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"18338:89:161"},{"condition":{"id":77407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18446:8:161","subExpression":{"id":77406,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77395,"src":"18447:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77440,"nodeType":"IfStatement","src":"18442:474:161","trueBody":{"id":77439,"nodeType":"Block","src":"18456:460:161","statements":[{"assignments":[77409],"declarations":[{"constant":false,"id":77409,"mutability":"mutable","name":"transferSuccess","nameLocation":"18479:15:161","nodeType":"VariableDeclaration","scope":77439,"src":"18474:20:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77408,"name":"bool","nodeType":"ElementaryTypeName","src":"18474:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77416,"initialValue":{"arguments":[{"expression":{"id":77411,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18512:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18521:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18512:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77413,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18534:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18543:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18534:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77410,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77686,"src":"18497:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18497:52:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18474:75:161"},{"condition":{"id":77418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18571:16:161","subExpression":{"id":77417,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77409,"src":"18572:15:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77427,"nodeType":"IfStatement","src":"18567:125:161","trueBody":{"id":77426,"nodeType":"Block","src":"18589:103:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77420,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18636:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18645:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18636:20:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77422,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18658:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18667:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18658:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77419,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"18616:19:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18616:57:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77425,"nodeType":"EmitStatement","src":"18611:62:161"}]}},{"documentation":"@dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":77429,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18832:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18841:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18832:14:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":77431,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18848:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18857:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"18848:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18870:2:161","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85015,"src":"18848:24:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":77434,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77351,"src":"18874:8:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":77435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18883:12:161","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"18874:21:161","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":77436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18896:4:161","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"18874:26:161","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":77428,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73522,"src":"18816:15:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18816:85:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77438,"nodeType":"EmitStatement","src":"18811:90:161"}]}}]}}]},"documentation":{"id":77348,"nodeType":"StructuredDocumentation","src":"17606:64:161","text":"@dev Non-zero value always sent since never goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"17684:17:161","parameters":{"id":77352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77351,"mutability":"mutable","name":"_message","nameLocation":"17724:8:161","nodeType":"VariableDeclaration","scope":77478,"src":"17702:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":77350,"nodeType":"UserDefinedTypeName","pathNode":{"id":77349,"name":"Gear.Message","nameLocations":["17702:4:161","17707:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"17702:12:161"},"referencedDeclaration":84999,"src":"17702:12:161","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"17701:32:161"},"returnParameters":{"id":77353,"nodeType":"ParameterList","parameters":[],"src":"17742:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77590,"nodeType":"FunctionDefinition","src":"19384:1017:161","nodes":[],"body":{"id":77589,"nodeType":"Block","src":"19468:933:161","nodes":[],"statements":[{"assignments":[77488],"declarations":[{"constant":false,"id":77488,"mutability":"mutable","name":"claimsLen","nameLocation":"19486:9:161","nodeType":"VariableDeclaration","scope":77589,"src":"19478:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77487,"name":"uint256","nodeType":"ElementaryTypeName","src":"19478:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77491,"initialValue":{"expression":{"id":77489,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77482,"src":"19498:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":77490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19506:6:161","memberName":"length","nodeType":"MemberAccess","src":"19498:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19478:34:161"},{"assignments":[77493],"declarations":[{"constant":false,"id":77493,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"19530:16:161","nodeType":"VariableDeclaration","scope":77589,"src":"19522:24:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77492,"name":"uint256","nodeType":"ElementaryTypeName","src":"19522:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77497,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77494,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77488,"src":"19549:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":77495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19561:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19549:14:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19522:41:161"},{"assignments":[77499],"declarations":[{"constant":false,"id":77499,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"19581:18:161","nodeType":"VariableDeclaration","scope":77589,"src":"19573:26:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77498,"name":"uint256","nodeType":"ElementaryTypeName","src":"19573:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77504,"initialValue":{"arguments":[{"id":77502,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77493,"src":"19618:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77500,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"19602:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19609:8:161","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"19602:15:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":77503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19602:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19573:62:161"},{"assignments":[77506],"declarations":[{"constant":false,"id":77506,"mutability":"mutable","name":"offset","nameLocation":"19653:6:161","nodeType":"VariableDeclaration","scope":77589,"src":"19645:14:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77505,"name":"uint256","nodeType":"ElementaryTypeName","src":"19645:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77508,"initialValue":{"hexValue":"30","id":77507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19662:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19645:18:161"},{"body":{"id":77580,"nodeType":"Block","src":"19714:588:161","statements":[{"assignments":[77523],"declarations":[{"constant":false,"id":77523,"mutability":"mutable","name":"claim","nameLocation":"19753:5:161","nodeType":"VariableDeclaration","scope":77580,"src":"19728:30:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":77522,"nodeType":"UserDefinedTypeName","pathNode":{"id":77521,"name":"Gear.ValueClaim","nameLocations":["19728:4:161","19733:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":85076,"src":"19728:15:161"},"referencedDeclaration":85076,"src":"19728:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":77527,"initialValue":{"baseExpression":{"id":77524,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77482,"src":"19761:7:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":77526,"indexExpression":{"id":77525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"19769:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19761:10:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"19728:43:161"},{"assignments":[77529],"declarations":[{"constant":false,"id":77529,"mutability":"mutable","name":"claimHash","nameLocation":"19793:9:161","nodeType":"VariableDeclaration","scope":77580,"src":"19785:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77528,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19785:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77539,"initialValue":{"arguments":[{"expression":{"id":77532,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"19825:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19831:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85071,"src":"19825:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77534,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"19842:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19848:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85073,"src":"19842:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77536,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"19861:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19867:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"19861:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":77530,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"19805:4:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":77531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19810:14:161","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":85266,"src":"19805:19:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":77538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19805:68:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19785:88:161"},{"expression":{"arguments":[{"id":77543,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77499,"src":"19913:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77544,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77506,"src":"19933:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77545,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77529,"src":"19941:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":77540,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"19887:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":77542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19894:18:161","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"19887:25:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":77546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19887:64:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77547,"nodeType":"ExpressionStatement","src":"19887:64:161"},{"id":77552,"nodeType":"UncheckedBlock","src":"19965:55:161","statements":[{"expression":{"id":77550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77548,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77506,"src":"19993:6:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":77549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20003:2:161","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19993:12:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77551,"nodeType":"ExpressionStatement","src":"19993:12:161"}]},{"assignments":[77554],"declarations":[{"constant":false,"id":77554,"mutability":"mutable","name":"success","nameLocation":"20039:7:161","nodeType":"VariableDeclaration","scope":77580,"src":"20034:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77553,"name":"bool","nodeType":"ElementaryTypeName","src":"20034:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":77561,"initialValue":{"arguments":[{"expression":{"id":77556,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"20064:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20070:11:161","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85073,"src":"20064:17:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77558,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"20083:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20089:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"20083:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77555,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77686,"src":"20049:14:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":77560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20049:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"20034:61:161"},{"condition":{"id":77562,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77554,"src":"20113:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77578,"nodeType":"Block","src":"20208:84:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77572,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"20248:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20254:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85071,"src":"20248:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77574,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"20265:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20271:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"20265:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77571,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"20231:16:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20231:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77577,"nodeType":"EmitStatement","src":"20226:51:161"}]},"id":77579,"nodeType":"IfStatement","src":"20109:183:161","trueBody":{"id":77570,"nodeType":"Block","src":"20122:80:161","statements":[{"eventCall":{"arguments":[{"expression":{"id":77564,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"20158:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20164:9:161","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85071,"src":"20158:15:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77566,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77523,"src":"20175:5:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":77567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20181:5:161","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"20175:11:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77563,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"20145:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":77568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20145:42:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77569,"nodeType":"EmitStatement","src":"20140:47:161"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"19694:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77514,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77488,"src":"19698:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19694:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77581,"initializationExpression":{"assignments":[77510],"declarations":[{"constant":false,"id":77510,"mutability":"mutable","name":"i","nameLocation":"19687:1:161","nodeType":"VariableDeclaration","scope":77581,"src":"19679:9:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77509,"name":"uint256","nodeType":"ElementaryTypeName","src":"19679:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77512,"initialValue":{"hexValue":"30","id":77511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19691:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19679:13:161"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":77517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19709:3:161","subExpression":{"id":77516,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77510,"src":"19709:1:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77518,"nodeType":"ExpressionStatement","src":"19709:3:161"},"nodeType":"ForStatement","src":"19674:628:161"},{"expression":{"arguments":[{"id":77584,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77499,"src":"20354:18:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":77585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20374:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":77586,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77493,"src":"20377:16:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77582,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"20319:6:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":77583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20326:27:161","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"20319:34:161","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":77587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20319:75:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":77486,"id":77588,"nodeType":"Return","src":"20312:82:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"19393:12:161","parameters":{"id":77483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77482,"mutability":"mutable","name":"_claims","nameLocation":"19433:7:161","nodeType":"VariableDeclaration","scope":77590,"src":"19406:34:161","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":77480,"nodeType":"UserDefinedTypeName","pathNode":{"id":77479,"name":"Gear.ValueClaim","nameLocations":["19406:4:161","19411:10:161"],"nodeType":"IdentifierPath","referencedDeclaration":85076,"src":"19406:15:161"},"referencedDeclaration":85076,"src":"19406:15:161","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":77481,"nodeType":"ArrayTypeName","src":"19406:17:161","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"19405:36:161"},"returnParameters":{"id":77486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77485,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77590,"src":"19459:7:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77484,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19459:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19458:9:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77622,"nodeType":"FunctionDefinition","src":"20462:509:161","nodes":[],"body":{"id":77621,"nodeType":"Block","src":"20526:445:161","nodes":[],"statements":[{"documentation":"@dev Set inheritor.","expression":{"id":77599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77597,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76377,"src":"20568:6:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20577:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20568:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77600,"nodeType":"ExpressionStatement","src":"20568:13:161"},{"expression":{"id":77603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77601,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76380,"src":"20591:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77602,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"20603:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20591:22:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77604,"nodeType":"ExpressionStatement","src":"20591:22:161"},{"assignments":[77606,77608],"declarations":[{"constant":false,"id":77606,"mutability":"mutable","name":"value","nameLocation":"20699:5:161","nodeType":"VariableDeclaration","scope":77621,"src":"20691:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77605,"name":"uint128","nodeType":"ElementaryTypeName","src":"20691:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":77608,"mutability":"mutable","name":"success","nameLocation":"20711:7:161","nodeType":"VariableDeclaration","scope":77621,"src":"20706:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77607,"name":"bool","nodeType":"ElementaryTypeName","src":"20706:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":"@dev Transfer all available balance to the inheritor.","id":77611,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77609,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76941,"src":"20722:31:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":77610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20722:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"20690:65:161"},{"condition":{"id":77613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20769:8:161","subExpression":{"id":77612,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77608,"src":"20770:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77620,"nodeType":"IfStatement","src":"20765:200:161","trueBody":{"id":77619,"nodeType":"Block","src":"20779:186:161","statements":[{"documentation":"@dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":77615,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"20936:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77616,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77606,"src":"20948:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77614,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"20899:36:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":77617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20899:55:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77618,"nodeType":"EmitStatement","src":"20894:60:161"}]}}]},"implemented":true,"kind":"function","modifiers":[{"id":77595,"kind":"modifierInvocation","modifierName":{"id":77594,"name":"onlyIfActive","nameLocations":["20513:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":76496,"src":"20513:12:161"},"nodeType":"ModifierInvocation","src":"20513:12:161"}],"name":"_setInheritor","nameLocation":"20471:13:161","parameters":{"id":77593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77592,"mutability":"mutable","name":"_inheritor","nameLocation":"20493:10:161","nodeType":"VariableDeclaration","scope":77622,"src":"20485:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77591,"name":"address","nodeType":"ElementaryTypeName","src":"20485:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20484:20:161"},"returnParameters":{"id":77596,"nodeType":"ParameterList","parameters":[],"src":"20526:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77636,"nodeType":"FunctionDefinition","src":"20977:235:161","nodes":[],"body":{"id":77635,"nodeType":"Block","src":"21031:181:161","nodes":[],"statements":[{"documentation":"@dev Set state hash.","expression":{"id":77629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77627,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"21074:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77628,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77624,"src":"21086:10:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21074:22:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":77630,"nodeType":"ExpressionStatement","src":"21074:22:161"},{"documentation":"@dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":77632,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76371,"src":"21195:9:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":77631,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73441,"src":"21182:12:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":77633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21182:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77634,"nodeType":"EmitStatement","src":"21177:28:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"20986:16:161","parameters":{"id":77625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77624,"mutability":"mutable","name":"_stateHash","nameLocation":"21011:10:161","nodeType":"VariableDeclaration","scope":77636,"src":"21003:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21003:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21002:20:161"},"returnParameters":{"id":77626,"nodeType":"ParameterList","parameters":[],"src":"21031:0:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77657,"nodeType":"FunctionDefinition","src":"21252:182:161","nodes":[],"body":{"id":77656,"nodeType":"Block","src":"21324:110:161","nodes":[],"statements":[{"assignments":[77645],"declarations":[{"constant":false,"id":77645,"mutability":"mutable","name":"wvaraAddr","nameLocation":"21342:9:161","nodeType":"VariableDeclaration","scope":77656,"src":"21334:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77644,"name":"address","nodeType":"ElementaryTypeName","src":"21334:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77651,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":77647,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77638,"src":"21362:10:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77646,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"21354:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74052_$","typeString":"type(contract IRouter)"}},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21354:19:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":77649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21374:11:161","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73877,"src":"21354:31:161","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21354:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21334:53:161"},{"expression":{"arguments":[{"id":77653,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77645,"src":"21417:9:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77652,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"21404:12:161","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$74063_$","typeString":"type(contract IWrappedVara)"}},"id":77654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21404:23:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"functionReturnParameters":77643,"id":77655,"nodeType":"Return","src":"21397:30:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"21261:6:161","parameters":{"id":77639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77638,"mutability":"mutable","name":"routerAddr","nameLocation":"21276:10:161","nodeType":"VariableDeclaration","scope":77657,"src":"21268:18:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77637,"name":"address","nodeType":"ElementaryTypeName","src":"21268:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21267:20:161"},"returnParameters":{"id":77643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77657,"src":"21310:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"},"typeName":{"id":77641,"nodeType":"UserDefinedTypeName","pathNode":{"id":77640,"name":"IWrappedVara","nameLocations":["21310:12:161"],"nodeType":"IdentifierPath","referencedDeclaration":74063,"src":"21310:12:161"},"referencedDeclaration":74063,"src":"21310:12:161","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"21309:14:161"},"scope":77746,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77686,"nodeType":"FunctionDefinition","src":"21440:253:161","nodes":[],"body":{"id":77685,"nodeType":"Block","src":"21523:170:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77666,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77661,"src":"21537:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21546:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21537:10:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77682,"nodeType":"IfStatement","src":"21533:133:161","trueBody":{"id":77681,"nodeType":"Block","src":"21549:117:161","statements":[{"assignments":[77670,null],"declarations":[{"constant":false,"id":77670,"mutability":"mutable","name":"success","nameLocation":"21569:7:161","nodeType":"VariableDeclaration","scope":77681,"src":"21564:12:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77669,"name":"bool","nodeType":"ElementaryTypeName","src":"21564:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":77678,"initialValue":{"arguments":[{"hexValue":"","id":77676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21624:2:161","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":77671,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77659,"src":"21581:11:161","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21593:4:161","memberName":"call","nodeType":"MemberAccess","src":"21581:16:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":77673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21603:5:161","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":77674,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77661,"src":"21617:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"21581:42:161","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":77677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21581:46:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"21563:64:161"},{"expression":{"id":77679,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77670,"src":"21648:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77665,"id":77680,"nodeType":"Return","src":"21641:14:161"}]}},{"expression":{"hexValue":"74727565","id":77683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21682:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":77665,"id":77684,"nodeType":"Return","src":"21675:11:161"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"21449:14:161","parameters":{"id":77662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77659,"mutability":"mutable","name":"destination","nameLocation":"21472:11:161","nodeType":"VariableDeclaration","scope":77686,"src":"21464:19:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77658,"name":"address","nodeType":"ElementaryTypeName","src":"21464:7:161","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77661,"mutability":"mutable","name":"value","nameLocation":"21493:5:161","nodeType":"VariableDeclaration","scope":77686,"src":"21485:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77660,"name":"uint128","nodeType":"ElementaryTypeName","src":"21485:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21463:36:161"},"returnParameters":{"id":77665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77686,"src":"21517:4:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77663,"name":"bool","nodeType":"ElementaryTypeName","src":"21517:4:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21516:6:161"},"scope":77746,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":77745,"nodeType":"FunctionDefinition","src":"21699:1033:161","nodes":[],"body":{"id":77744,"nodeType":"Block","src":"21741:991:161","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77691,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21755:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21759:5:161","memberName":"value","nodeType":"MemberAccess","src":"21755:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21767:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21755:13:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":77695,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21772:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21776:4:161","memberName":"data","nodeType":"MemberAccess","src":"21772:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21781:6:161","memberName":"length","nodeType":"MemberAccess","src":"21772:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":77698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21791:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21772:20:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21755:37:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":77721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21916:8:161","subExpression":{"id":77714,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76386,"src":"21917:7:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":77716,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21928:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21932:4:161","memberName":"data","nodeType":"MemberAccess","src":"21928:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":77718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21937:6:161","memberName":"length","nodeType":"MemberAccess","src":"21928:15:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":77719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21947:4:161","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"21928:23:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21916:35:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77741,"nodeType":"Block","src":"22673:53:161","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77738,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73578,"src":"22694:19:161","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":77739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22694:21:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":77740,"nodeType":"RevertStatement","src":"22687:28:161"}]},"id":77742,"nodeType":"IfStatement","src":"21912:814:161","trueBody":{"id":77737,"nodeType":"Block","src":"21953:714:161","statements":[{"assignments":[77723],"declarations":[{"constant":false,"id":77723,"mutability":"mutable","name":"callReply","nameLocation":"22343:9:161","nodeType":"VariableDeclaration","scope":77737,"src":"22335:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77722,"name":"uint256","nodeType":"ElementaryTypeName","src":"22335:7:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77724,"nodeType":"VariableDeclarationStatement","src":"22335:17:161"},{"AST":{"nativeSrc":"22392:63:161","nodeType":"YulBlock","src":"22392:63:161","statements":[{"nativeSrc":"22410:31:161","nodeType":"YulAssignment","src":"22410:31:161","value":{"arguments":[{"kind":"number","nativeSrc":"22436:4:161","nodeType":"YulLiteral","src":"22436:4:161","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"22423:12:161","nodeType":"YulIdentifier","src":"22423:12:161"},"nativeSrc":"22423:18:161","nodeType":"YulFunctionCall","src":"22423:18:161"},"variableNames":[{"name":"callReply","nativeSrc":"22410:9:161","nodeType":"YulIdentifier","src":"22410:9:161"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":77723,"isOffset":false,"isSlot":false,"src":"22410:9:161","valueSize":1}],"flags":["memory-safe"],"id":77725,"nodeType":"InlineAssembly","src":"22367:88:161"},{"assignments":[77727],"declarations":[{"constant":false,"id":77727,"mutability":"mutable","name":"messageId","nameLocation":"22477:9:161","nodeType":"VariableDeclaration","scope":77737,"src":"22469:17:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22469:7:161","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":77735,"initialValue":{"arguments":[{"expression":{"id":77729,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22502:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22506:4:161","memberName":"data","nodeType":"MemberAccess","src":"22502:8:161","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77731,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77723,"src":"22512:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77732,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22525:1:161","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22512:14:161","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77728,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76989,"src":"22489:12:161","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":77734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22489:38:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22469:58:161"},{"AST":{"nativeSrc":"22567:90:161","nodeType":"YulBlock","src":"22567:90:161","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22592:4:161","nodeType":"YulLiteral","src":"22592:4:161","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"22598:9:161","nodeType":"YulIdentifier","src":"22598:9:161"}],"functionName":{"name":"mstore","nativeSrc":"22585:6:161","nodeType":"YulIdentifier","src":"22585:6:161"},"nativeSrc":"22585:23:161","nodeType":"YulFunctionCall","src":"22585:23:161"},"nativeSrc":"22585:23:161","nodeType":"YulExpressionStatement","src":"22585:23:161"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22632:4:161","nodeType":"YulLiteral","src":"22632:4:161","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22638:4:161","nodeType":"YulLiteral","src":"22638:4:161","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"22625:6:161","nodeType":"YulIdentifier","src":"22625:6:161"},"nativeSrc":"22625:18:161","nodeType":"YulFunctionCall","src":"22625:18:161"},"nativeSrc":"22625:18:161","nodeType":"YulExpressionStatement","src":"22625:18:161"}]},"evmVersion":"osaka","externalReferences":[{"declaration":77727,"isOffset":false,"isSlot":false,"src":"22598:9:161","valueSize":1}],"flags":["memory-safe"],"id":77736,"nodeType":"InlineAssembly","src":"22542:115:161"}]}},"id":77743,"nodeType":"IfStatement","src":"21751:975:161","trueBody":{"id":77713,"nodeType":"Block","src":"21794:112:161","statements":[{"assignments":[77702],"declarations":[{"constant":false,"id":77702,"mutability":"mutable","name":"value","nameLocation":"21816:5:161","nodeType":"VariableDeclaration","scope":77713,"src":"21808:13:161","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":77701,"name":"uint128","nodeType":"ElementaryTypeName","src":"21808:7:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":77708,"initialValue":{"arguments":[{"expression":{"id":77705,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21832:3:161","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21836:5:161","memberName":"value","nodeType":"MemberAccess","src":"21832:9:161","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21824:7:161","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":77703,"name":"uint128","nodeType":"ElementaryTypeName","src":"21824:7:161","typeDescriptions":{}}},"id":77707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21824:18:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"21808:34:161"},{"eventCall":{"arguments":[{"id":77710,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77702,"src":"21889:5:161","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":77709,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73477,"src":"21862:26:161","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":77711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21862:33:161","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77712,"nodeType":"EmitStatement","src":"21857:38:161"}]}}]},"implemented":true,"kind":"fallback","modifiers":[{"id":77689,"kind":"modifierInvocation","modifierName":{"id":77688,"name":"whenNotPaused","nameLocations":["21727:13:161"],"nodeType":"IdentifierPath","referencedDeclaration":76553,"src":"21727:13:161"},"nodeType":"ModifierInvocation","src":"21727:13:161"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77687,"nodeType":"ParameterList","parameters":[],"src":"21707:2:161"},"returnParameters":{"id":77690,"nodeType":"ParameterList","parameters":[],"src":"21741:0:161"},"scope":77746,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":76360,"name":"IMirror","nameLocations":["605:7:161"],"nodeType":"IdentifierPath","referencedDeclaration":73658,"src":"605:7:161"},"id":76361,"nodeType":"InheritanceSpecifier","src":"605:7:161"}],"canonicalName":"Mirror","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77746,73658],"name":"Mirror","nameLocation":"595:6:161","scope":77747,"usedErrors":[73552,73554,73556,73558,73560,73562,73564,73566,73568,73570,73572,73574,73576,73578,73581],"usedEvents":[73441,73454,73465,73472,73477,73482,73493,73502,73513,73522,73529,73536,73543,73550,76432]}],"license":"UNLICENSED"},"id":161} \ No newline at end of file diff --git a/ethexe/ethereum/abi/MirrorWithInstrumentation.json b/ethexe/ethereum/abi/MirrorWithInstrumentation.json new file mode 100644 index 00000000000..f92e5902021 --- /dev/null +++ b/ethexe/ethereum/abi/MirrorWithInstrumentation.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"_router","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"function","name":"claimValue","inputs":[{"name":"_claimedId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executableBalanceTopUp","inputs":[{"name":"_value","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"exited","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"inheritor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_initializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"},{"name":"_isSmall","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"performStateTransition","inputs":[{"name":"_transition","type":"tuple","internalType":"struct Gear.StateTransition","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"sendMessage","inputs":[{"name":"_payload","type":"bytes","internalType":"bytes"},{"name":"_callReply","type":"bool","internalType":"bool"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"payable"},{"type":"function","name":"sendReply","inputs":[{"name":"_repliedTo","type":"bytes32","internalType":"bytes32"},{"name":"_payload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"stateHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"transferLockedValueToInheritor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"DebugEvent","inputs":[{"name":"topic0","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":true},{"type":"event","name":"ExecutableBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Message","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageCallFailed","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"destination","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"MessageQueueingRequested","inputs":[{"name":"id","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"callReply","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"OwnedBalanceTopUpRequested","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Reply","inputs":[{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyCallFailed","inputs":[{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"replyTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"replyCode","type":"bytes4","indexed":true,"internalType":"bytes4"}],"anonymous":false},{"type":"event","name":"ReplyQueueingRequested","inputs":[{"name":"repliedTo","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"},{"name":"payload","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ReplyTransferFailed","inputs":[{"name":"destination","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"StateChanged","inputs":[{"name":"stateHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"TransferLockedValueToInheritorFailed","inputs":[{"name":"inheritor","type":"address","indexed":false,"internalType":"address"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimFailed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimed","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"value","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"ValueClaimingRequested","inputs":[{"name":"claimedId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"source","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AbiInterfaceAlreadySet","inputs":[]},{"type":"error","name":"CallerNotRouter","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EtherTransferToRouterFailed","inputs":[]},{"type":"error","name":"InheritorMustBeZero","inputs":[]},{"type":"error","name":"InitMessageNotCreated","inputs":[]},{"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer","inputs":[]},{"type":"error","name":"InitializerAlreadySet","inputs":[]},{"type":"error","name":"InvalidActorId","inputs":[]},{"type":"error","name":"InvalidFallbackCall","inputs":[]},{"type":"error","name":"IsSmallAlreadySet","inputs":[]},{"type":"error","name":"ProgramExited","inputs":[]},{"type":"error","name":"ProgramNotExited","inputs":[]},{"type":"error","name":"TransferLockedValueToInheritorExternalFailed","inputs":[]},{"type":"error","name":"WVaraTransferFailed","inputs":[]}],"bytecode":{"object":"0x60a03461008657601f611c2a38819003918201601f19168301916001600160401b0383118484101761008a5780849260209460405283398101031261008657516001600160a01b038116810361008657608052604051611b8b908161009f823960805181818161022e015281816105a5015281816113d701528181611499015261153c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561017f575b610016611527565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b4565b60015415801590610149575b1561013a576001600160801b03341661009a81611481565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461084857806336a52a181461081b57806342129d00146106f95780635ce6c327146106d6578063701da98e146106b9578063704ed5421461052a5780637a8e0cdd1461049457806391d5a64c146104395780639ce110d714610410578063affed0e0146103f2578063e43f343314610387578063e4bbb5a8146102605763f887ea4014610219575061000e565b3461025d578060031936011261025d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461025d57606036600319011261025d576004356001600160a01b03811690819003610383576024356001600160a01b038116919082900361037f576044359081151580920361037b576102b36113d5565b600354906001600160a01b03821661036c5760ff8260a01c1661035d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b03841661034e576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5580f35b638778dcd360e01b8652600486fd5b6325f368db60e11b8552600485fd5b63f20d240560e01b8552600485fd5b8380fd5b8280fd5b5080fd5b503461025d578060031936011261025d576103a0611527565b60025460ff8116156103e3576103cc90476001600160801b03169060081c6001600160a01b031661178a565b156103d45780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b503461025d578060031936011261025d576020600154604051908152f35b503461025d578060031936011261025d576003546040516001600160a01b039091168152602090f35b503461025d57602036600319011261025d57610453611527565b61045b6115b4565b6104636115cf565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b50604036600319011261025d576024356001600160401b038111610383576104e17fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611325565b6104ec929192611527565b6104f46115b4565b6104fc6115cf565b6001600160801b0334169061051082611481565b6105246040519283923396600435856113a7565b0390a280f35b503461025d57602036600319011261025d576004356001600160801b03811680910361038357610558611527565b6105606115b4565b80610594575b60207f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c05423666791604051908152a180f35b60405163088f50cf60e41b815282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa908115610669578391610674575b50606460209260405194859384926323b872dd60e01b8452336004850152602484015287604484015260018060a01b03165af190811561066957839161063a575b50610566576303a25d1960e31b8252600482fd5b61065c915060203d602011610662575b6106548183611416565b81019061150f565b5f610626565b503d61064a565b6040513d85823e3d90fd5b90506020813d6020116106b1575b8161068f60209383611416565b8101031261037f5751906001600160a01b038216820361037f579060646105e5565b3d9150610682565b503461025d578060031936011261025d5760209054604051908152f35b503461025d578060031936011261025d57602060ff600254166040519015158152f35b50604036600319011261025d576004356001600160401b03811161038357610725903690600401611325565b919060243580151580910361037f5761073c611527565b6107446115b4565b60015415801590610807575b156107f8576001600160801b0334169161076983611481565b6001543060601b85528060145260348520945f1982146107e45750916107cb6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611387565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610750565b503461025d578060031936011261025d5760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f00576001600160401b0360043511610f0057600435360390610100600319830112610f00576108806113d5565b60015f80a1610893600435600401611352565b306001600160a01b03909116036113165760025f80a160035f80a16108bc60a460043501611366565b6112fb575b60045f80a160055f80a160043560e401356022198301811215610f00576001600160401b03600482813501013511610f0057600481813501013560051b3603602482600435010113610f00576004803582010135600581901b819004602014901517156101265761093b600482813501013560051b6115e8565b5f93845b6004848135010135861015610f1857600586901b600435850190810160240135969036036101021901871215610f005760e06023196004358701890136030112610f00576040519160c083018381106001600160401b03821117610f0457604052600435860188016024810135845260440135906001600160a01b0382168203610f005760208401918252606460043588018a0101356001600160401b038111610f005760209060048b8a8235010101010136601f82011215610f0057610a0d9036906020813591016114d9565b6040850190815291608460043589018b0101356001600160801b0381168103610f005760608601908152604060a3196004358b018d0136030112610f005760405195604087018781106001600160401b03821117610f04576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0057602088019182526080810188905260e46004358c018e01013580151596878203610f0057600199602098610b3b958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b608882015203016015810184520182611416565b51902086820152019660a4600435870182010135610b6e5760206004610b679288823501010101611654565b019461093f565b610b8060e46004358801830101611366565b15610dd1576001600160f81b0319610ba060c4600435890184010161163f565b5f1a60f81b161586826060925f14610d49575f9250610bd960606004610be093869582350101010160206004878d82350101010161160d565b36916114d9565b886001600160801b03610c0e6080600488610c02604483358801830101611352565b95823501010101611373565b16602083519301916207a120f1610c23611452565b5015610c30575b50610b67565b610c5d610c4560446004358901840101611352565b610c5760846004358a01850101611373565b9061178a565b15610cda575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610c9860846004358a01850101611373565b60a060046001600160e01b0319610cb660c483358e0189010161163f565b16956001600160801b038551941684528b823501010101356020820152a25f610c2a565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d0d60446004358901840101611352565b610d1f60846004358a01850101611373565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c63565b5f928392610dcc91610daf610d6b60043584018601606481019060240161160d565b610d7d60c4600435870189010161163f565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611387565b9063ffffffff60e01b16606483015203601f198101835282611416565b610be0565b610de6610c4560446004358901840101611352565b15610e91575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2460043588018301606481019060240161160d565b610e3660846004358b01860101611373565b60a060046001600160e01b0319610e5460c483358f018a010161163f565b16966001600160801b03610e75604051978897606089526060890191611387565b941660208601528c8235010101013560408301520390a2610b67565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ec460446004358901840101611352565b610ed660846004358a01850101611373565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610dec565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209160065f80a160075f80a160043560c401359060221901811215610f005760043501916004830135916001600160401b038311610f00576060830236036024850113610f00578260051b908382046020148415171561012657610f8e82959493926115e8565b915f955f965b858810156110cb57610fcc949596976001916004606083028b01019061102e611025602080850135938c816060604089019e8f611352565b980197610fd889611373565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152611018606482611416565b5190209101520199611352565b610c5784611373565b156110825761105d7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611373565b604080519283526001600160801b0391909116602083015290a15b0196959493610f94565b6110ac7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611373565b604080519283526001600160801b0391909116602083015290a1611078565b5083209160085f80a160095f80a1604460043501906110e982611366565b156112c75750602092611100606460043501611352565b926111096115b4565b600280546001600160a81b031916600886811b610100600160a81b031691909117600117918290555f9591476001600160801b0316916111549183911c6001600160a01b031661178a565b1561127a575b50505b60405191600a8580a1600b8580a18454926024600435013580940361124a575b5060405192600c8680a1600d8680a16111a361119d600435600401611352565b95611366565b6111b1606460043501611352565b6111bf608460043501611373565b916111ce60a460043501611366565b938a8801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261123b60ba82611416565b519020600e6040519280a18152f35b867f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093091858855858152a18661117d565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061115a565b91926001600160a01b036112df600435606401611352565b166112ec5760209361115d565b6304c3c7a160e41b5f5260045ffd5b61131161130c608460043501611373565b611481565b6108c1565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f00578235916001600160401b038311610f005760208381860195010111610f0057565b356001600160a01b0381168103610f005790565b358015158103610f005790565b356001600160801b0381168103610f005790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113ce916001600160801b03939796978652606060208701526060860191611387565b9416910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361140757565b6375f48d7160e11b5f5260045ffd5b90601f801991011681019081106001600160401b03821117610f0457604052565b6001600160401b038111610f0457601f01601f191660200190565b3d1561147c573d9061146382611437565b916114716040519384611416565b82523d5f602084013e565b606090565b6001600160801b0316806114925750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114c2611452565b50156114ca57565b6308eb200360e41b5f5260045ffd5b9291926114e582611437565b916114f36040519384611416565b829481845281830111610f00578281602093845f960137010152565b90816020910312610f0057518015158103610f005790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115a9575f9161158a575b5061157b57565b63d93c066560e01b5f5260045ffd5b6115a3915060203d602011610662576106548183611416565b5f611574565b6040513d5f823e3d90fd5b60ff600254166115c057565b630d304b8160e31b5f5260045ffd5b600154156115d957565b631a2efd3560e31b5f5260045ffd5b6040519190601f01601f191682016001600160401b03811183821017610f0057604052565b903590601e1981360301821215610f0057018035906001600160401b038211610f0057602001918136038313610f0057565b356001600160e01b031981168103610f005790565b61165d816117b7565b156116655750565b61167160c08201611366565b6116de575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736116d96116a660208401611352565b6116b3604085018561160d565b6116c260608795939501611373565b9060405194859460018060a01b03169735856113a7565b0390a2565b602081015f806116ed83611352565b816116fb604087018761160d565b9190826040519384928337810182815203926207a120f161171a611452565b50156117265750611676565b6117507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611352565b61175c60608401611373565b60408051943585526001600160801b0390911660208501526001600160a01b039091169290819081016116d9565b906001600160801b031690816117a1575050600190565b5f8080938193611388f16117b3611452565b5090565b6117c4604082018261160d565b90916001600160a01b03806117db60208401611352565b16149081611b6d575b5080611b64575b15611b5e5781358060f81c90600182101580611b53575b15611b4b5760f31c611fe016600181018310611b4b576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611b21575b80611af7575b80611acd575b80611aa3575b80611a79575b80611a4f575b80611a25575b806119fb575b806119d1575b806119a7575b8061197d575b80611953575b80611929575b15611920578190035f1901918260016118a8826115e8565b938701018337602185013594604181013591600181036118cf5750505090919250a1600190565b600281036118e057505050a2600190565b600381979593969497145f146118fc57505090919293a3600190565b60041461190f575b505050505050600190565b6061013594a45f8080808080611904565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611890565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a84141561188a565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611884565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578384141561187e565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611878565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611872565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f884141561186c565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611866565b507f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667841415611860565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561185a565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611854565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f84141561184e565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611848565b505050505f90565b506004821115611802565b50505f90565b508015156117eb565b6001600160801b0391506060611b839101611373565b16155f6117e456","sourceMap":"586:22125:167:-:0;;;;;;;;;;;;;-1:-1:-1;;586:22125:167;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;3171:16;;586:22125;;;;;;;;3171:16;586:22125;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;586:22125:167;;;;;;-1:-1:-1;586:22125:167;;;;;-1:-1:-1;586:22125:167","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561017f575b610016611527565b34151580610177575b15610059577f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620660206040516001600160801b0334168152a1005b60ff60035460a01c16158061016c575b1561015d576100766115b4565b60015415801590610149575b1561013a576001600160801b03341661009a81611481565b600154903060601b5f528160145260345f20915f198114610126576001016001557f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c5460405183815260806020820152602060808201368152365f838301375f823683010152601f19601f3601160101926040820152600435151560608201528033930390a25f5260205ff35b634e487b7160e01b5f52601160045260245ffd5b634bfa3a2d60e01b5f5260045ffd5b506003546001600160a01b03163314610082565b6399dd405f60e01b5f5260045ffd5b506024361015610069565b50361561001f565b5f5f3560e01c8063084f443a1461084857806336a52a181461081b57806342129d00146106f95780635ce6c327146106d6578063701da98e146106b9578063704ed5421461052a5780637a8e0cdd1461049457806391d5a64c146104395780639ce110d714610410578063affed0e0146103f2578063e43f343314610387578063e4bbb5a8146102605763f887ea4014610219575061000e565b3461025d578060031936011261025d576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b503461025d57606036600319011261025d576004356001600160a01b03811690819003610383576024356001600160a01b038116919082900361037f576044359081151580920361037b576102b36113d5565b600354906001600160a01b03821661036c5760ff8260a01c1661035d577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54926001600160a01b03841661034e576001600160a81b03199092161760a09190911b60ff60a01b16176003556001600160a01b031916177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5580f35b638778dcd360e01b8652600486fd5b6325f368db60e11b8552600485fd5b63f20d240560e01b8552600485fd5b8380fd5b8280fd5b5080fd5b503461025d578060031936011261025d576103a0611527565b60025460ff8116156103e3576103cc90476001600160801b03169060081c6001600160a01b031661178a565b156103d45780f35b63085fbdef60e21b8152600490fd5b63463a5c5f60e01b8252600482fd5b503461025d578060031936011261025d576020600154604051908152f35b503461025d578060031936011261025d576003546040516001600160a01b039091168152602090f35b503461025d57602036600319011261025d57610453611527565b61045b6115b4565b6104636115cf565b60405160043581527f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c497860203392a280f35b50604036600319011261025d576024356001600160401b038111610383576104e17fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f913690600401611325565b6104ec929192611527565b6104f46115b4565b6104fc6115cf565b6001600160801b0334169061051082611481565b6105246040519283923396600435856113a7565b0390a280f35b503461025d57602036600319011261025d576004356001600160801b03811680910361038357610558611527565b6105606115b4565b80610594575b60207f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c05423666791604051908152a180f35b60405163088f50cf60e41b815282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602081600481855afa908115610669578391610674575b50606460209260405194859384926323b872dd60e01b8452336004850152602484015287604484015260018060a01b03165af190811561066957839161063a575b50610566576303a25d1960e31b8252600482fd5b61065c915060203d602011610662575b6106548183611416565b81019061150f565b5f610626565b503d61064a565b6040513d85823e3d90fd5b90506020813d6020116106b1575b8161068f60209383611416565b8101031261037f5751906001600160a01b038216820361037f579060646105e5565b3d9150610682565b503461025d578060031936011261025d5760209054604051908152f35b503461025d578060031936011261025d57602060ff600254166040519015158152f35b50604036600319011261025d576004356001600160401b03811161038357610725903690600401611325565b919060243580151580910361037f5761073c611527565b6107446115b4565b60015415801590610807575b156107f8576001600160801b0334169161076983611481565b6001543060601b85528060145260348520945f1982146107e45750916107cb6020969260017f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c549501600155604051938785526080898601526080850191611387565b93604083015260608201528033930390a2604051908152f35b634e487b7160e01b81526011600452602490fd5b634bfa3a2d60e01b8352600483fd5b506003546001600160a01b03163314610750565b503461025d578060031936011261025d5760025460405160089190911c6001600160a01b03168152602090f35b506020366003190112610f00576001600160401b0360043511610f0057600435360390610100600319830112610f00576108806113d5565b60015f80a1610893600435600401611352565b306001600160a01b03909116036113165760025f80a160035f80a16108bc60a460043501611366565b6112fb575b60045f80a160055f80a160043560e401356022198301811215610f00576001600160401b03600482813501013511610f0057600481813501013560051b3603602482600435010113610f00576004803582010135600581901b819004602014901517156101265761093b600482813501013560051b6115e8565b5f93845b6004848135010135861015610f1857600586901b600435850190810160240135969036036101021901871215610f005760e06023196004358701890136030112610f00576040519160c083018381106001600160401b03821117610f0457604052600435860188016024810135845260440135906001600160a01b0382168203610f005760208401918252606460043588018a0101356001600160401b038111610f005760209060048b8a8235010101010136601f82011215610f0057610a0d9036906020813591016114d9565b6040850190815291608460043589018b0101356001600160801b0381168103610f005760608601908152604060a3196004358b018d0136030112610f005760405195604087018781106001600160401b03821117610f04576040526004358a018c0160a4810135885260c40135906001600160e01b031982168203610f0057602088019182526080810188905260e46004358c018e01013580151596878203610f0057600199602098610b3b958560549560a060359801525198519351975192519063ffffffff60e01b905116908b604051998a968288019c8d526001600160601b03199060601b1660408801528051918291018888015e8501936001600160801b03199060801b16868501526064840152608483015260f81b608882015203016015810184520182611416565b51902086820152019660a4600435870182010135610b6e5760206004610b679288823501010101611654565b019461093f565b610b8060e46004358801830101611366565b15610dd1576001600160f81b0319610ba060c4600435890184010161163f565b5f1a60f81b161586826060925f14610d49575f9250610bd960606004610be093869582350101010160206004878d82350101010161160d565b36916114d9565b886001600160801b03610c0e6080600488610c02604483358801830101611352565b95823501010101611373565b16602083519301916207a120f1610c23611452565b5015610c30575b50610b67565b610c5d610c4560446004358901840101611352565b610c5760846004358a01850101611373565b9061178a565b15610cda575b7f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c36040610c9860846004358a01850101611373565b60a060046001600160e01b0319610cb660c483358e0189010161163f565b16956001600160801b038551941684528b823501010101356020820152a25f610c2a565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610d0d60446004358901840101611352565b610d1f60846004358a01850101611373565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610c63565b5f928392610dcc91610daf610d6b60043584018601606481019060240161160d565b610d7d60c4600435870189010161163f565b9360206004604051998a98634a646c7f60e01b848b015282350101010135602487015260448601526084850191611387565b9063ffffffff60e01b16606483015203601f198101835282611416565b610be0565b610de6610c4560446004358901840101611352565b15610e91575b7fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6610e2460043588018301606481019060240161160d565b610e3660846004358b01860101611373565b60a060046001600160e01b0319610e5460c483358f018a010161163f565b16966001600160801b03610e75604051978897606089526060890191611387565b941660208601528c8235010101013560408301520390a2610b67565b7f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a610ec460446004358901840101611352565b610ed660846004358a01850101611373565b604080516001600160a01b039390931683526001600160801b0391909116602083015290a1610dec565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b509291600490813501013560051b90209160065f80a160075f80a160043560c401359060221901811215610f005760043501916004830135916001600160401b038311610f00576060830236036024850113610f00578260051b908382046020148415171561012657610f8e82959493926115e8565b915f955f965b858810156110cb57610fcc949596976001916004606083028b01019061102e611025602080850135938c816060604089019e8f611352565b980197610fd889611373565b60405190868201928a84526001600160601b03199060601b1660408301526001600160801b03199060801b16605482015260448152611018606482611416565b5190209101520199611352565b610c5784611373565b156110825761105d7fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578392611373565b604080519283526001600160801b0391909116602083015290a15b0196959493610f94565b6110ac7f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed92611373565b604080519283526001600160801b0391909116602083015290a1611078565b5083209160085f80a160095f80a1604460043501906110e982611366565b156112c75750602092611100606460043501611352565b926111096115b4565b600280546001600160a81b031916600886811b610100600160a81b031691909117600117918290555f9591476001600160801b0316916111549183911c6001600160a01b031661178a565b1561127a575b50505b60405191600a8580a1600b8580a18454926024600435013580940361124a575b5060405192600c8680a1600d8680a16111a361119d600435600401611352565b95611366565b6111b1606460043501611352565b6111bf608460043501611373565b916111ce60a460043501611366565b938a8801986001600160601b03199060601b1689526034880152151560f81b60548701526001600160601b03199060601b1660558601526001600160801b03199060801b166069850152151560f81b6079840152607a830152609a820152609a815261123b60ba82611416565b519020600e6040519280a18152f35b867f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093091858855858152a18661117d565b604080516001600160a01b039390931683526001600160801b039190911660208301527f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f391a1858061115a565b91926001600160a01b036112df600435606401611352565b166112ec5760209361115d565b6304c3c7a160e41b5f5260045ffd5b61131161130c608460043501611373565b611481565b6108c1565b63ed488aa360e01b5f5260045ffd5b9181601f84011215610f00578235916001600160401b038311610f005760208381860195010111610f0057565b356001600160a01b0381168103610f005790565b358015158103610f005790565b356001600160801b0381168103610f005790565b908060209392818452848401375f828201840152601f01601f1916010190565b926040926113ce916001600160801b03939796978652606060208701526060860191611387565b9416910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361140757565b6375f48d7160e11b5f5260045ffd5b90601f801991011681019081106001600160401b03821117610f0457604052565b6001600160401b038111610f0457601f01601f191660200190565b3d1561147c573d9061146382611437565b916114716040519384611416565b82523d5f602084013e565b606090565b6001600160801b0316806114925750565b5f808080937f00000000000000000000000000000000000000000000000000000000000000005af16114c2611452565b50156114ca57565b6308eb200360e41b5f5260045ffd5b9291926114e582611437565b916114f36040519384611416565b829481845281830111610f00578281602093845f960137010152565b90816020910312610f0057518015158103610f005790565b604051635c975abb60e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156115a9575f9161158a575b5061157b57565b63d93c066560e01b5f5260045ffd5b6115a3915060203d602011610662576106548183611416565b5f611574565b6040513d5f823e3d90fd5b60ff600254166115c057565b630d304b8160e31b5f5260045ffd5b600154156115d957565b631a2efd3560e31b5f5260045ffd5b6040519190601f01601f191682016001600160401b03811183821017610f0057604052565b903590601e1981360301821215610f0057018035906001600160401b038211610f0057602001918136038313610f0057565b356001600160e01b031981168103610f005790565b61165d816117b7565b156116655750565b61167160c08201611366565b6116de575b7f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f80117736116d96116a660208401611352565b6116b3604085018561160d565b6116c260608795939501611373565b9060405194859460018060a01b03169735856113a7565b0390a2565b602081015f806116ed83611352565b816116fb604087018761160d565b9190826040519384928337810182815203926207a120f161171a611452565b50156117265750611676565b6117507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f891611352565b61175c60608401611373565b60408051943585526001600160801b0390911660208501526001600160a01b039091169290819081016116d9565b906001600160801b031690816117a1575050600190565b5f8080938193611388f16117b3611452565b5090565b6117c4604082018261160d565b90916001600160a01b03806117db60208401611352565b16149081611b6d575b5080611b64575b15611b5e5781358060f81c90600182101580611b53575b15611b4b5760f31c611fe016600181018310611b4b576001840135927f5c601f20d27885120b6fed87a4c313849b86eaddc9d28e7685e2e66a9c08093084141580611b21575b80611af7575b80611acd575b80611aa3575b80611a79575b80611a4f575b80611a25575b806119fb575b806119d1575b806119a7575b8061197d575b80611953575b80611929575b15611920578190035f1901918260016118a8826115e8565b938701018337602185013594604181013591600181036118cf5750505090919250a1600190565b600281036118e057505050a2600190565b600381979593969497145f146118fc57505090919293a3600190565b60041461190f575b505050505050600190565b6061013594a45f8080808080611904565b50505050505f90565b507f74e4a0c671b40d8f56604cce496a32bad5ff6f039513935b7cc837dc9ba970ed841415611890565b507f305c463d916e500e09d8c2b51f3ceea288d92833ffec0144992c3f3a80af158a84141561188a565b507f69c554fdd8abe771a12e37e5d229102c9e7bc0041a7cd4b726d0debd837556f3841415611884565b507fa217f2987a7942c2966f1fd16d39097862308325249e8b9fb4c00a430fd6578384141561187e565b507f5136ea80de584762b9532903198dfdd1125167a8685e943b1bc5d16b777151c3841415611878565b507fe240a19e4a4ef8e5861c0eea48f9ab2cdb47bfe98347c94ccabb9c45f7d8d1c6841415611872565b507f76c87872723521658a1c429bc5e355c5ad7b30719dae90158fe2b591f9ea56f884141561186c565b507f9c4ffe7286aed9eb205c8adb12b51219122c7e56c67017f312af0e15f8011773841415611866565b507f85ba4ebb0990fc588bfbb287e2e810a77c858e0a69485d6a938c52c054236667841415611860565b507f134041dec9803c024e94a2479679395a15b6ae0034c4d424ab47712aa182620684141561185a565b507f0354817698da67944179457b89e15c1c57ca7b8cfd9d80eab1d09c258f6c4978841415611854565b507fb64dad8a89028819d048f9c75ec4c516341da68972bb68a8e1262b5443c61e7f84141561184e565b507f9d835932f9695ed8acd7290fb99476799c321b20b15a597a99b597bdfb907c54841415611848565b505050505f90565b506004821115611802565b50505f90565b508015156117eb565b6001600160801b0391506060611b839101611373565b16155f6117e456","sourceMap":"586:22125:167:-:0;;;;;;;;;-1:-1:-1;4732:69:167;;:::i;:::-;21732:9;:13;;:37;;;-1:-1:-1;21728:975:167;;;21839:33;586:22125;;;-1:-1:-1;;;;;21732:9:167;586:22125;;;21839:33;586:22125;21728:975;586:22125;21894:7;586:22125;;;;21893:8;:35;;;21728:975;21889:814;;;4044:67;;:::i;:::-;3854:5;586:22125;3854:9;;;:38;;;21889:814;586:22125;;;-1:-1:-1;;;;;21732:9:167;586:22125;10845:6;;;:::i;:::-;3854:5;586:22125;10915:154;;;;21744:1;10915:154;;;;;21744:1;10915:154;586:22125;;;;;;;3854:5;586:22125;3854:5;586:22125;11101:70;586:22125;;;;;;;;;;;;;;;;;;21744:1;586:22125;;;;21744:1;586:22125;;;;;;;;;;;;;;;;;;;;22344:88;22489:14;;10915:154;586:22125;;;11130:10;;11101:70;;;;21744:1;22519:115;586:22125;21744:1;22519:115;586:22125;;;;21744:1;586:22125;;;;;21744:1;586:22125;;;;;21744:1;586:22125;;21744:1;586:22125;3854:38;-1:-1:-1;21894:7:167;586:22125;-1:-1:-1;;;;;586:22125:167;3867:10;:25;3854:38;;21889:814;22671:21;;;21744:1;22671:21;586:22125;21744:1;22671:21;21893:35;586:22125;21924:4;586:22125;21905:23;;21893:35;;21732:37;586:22125;;21749:20;21732:37;;586:22125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1055:31;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;-1:-1:-1;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;;4555:63;;:::i;:::-;7064:11;586:22125;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;811:66:53;586:22125:167;;-1:-1:-1;;;;;586:22125:167;;811:66:53;;-1:-1:-1;;;;;;811:66:53;;;;;;;;;-1:-1:-1;;;811:66:53;;7064:11:167;811:66:53;-1:-1:-1;;;;;;811:66:53;;;;586:22125:167;;811:66:53;-1:-1:-1;;;811:66:53;;586:22125:167;811:66:53;;586:22125:167;-1:-1:-1;;;586:22125:167;;;;;;-1:-1:-1;;;586:22125:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4732:69;;:::i;:::-;4432:6;586:22125;;;;;;;10548:37;;10300:21;-1:-1:-1;;;;;586:22125:167;;;;-1:-1:-1;;;;;586:22125:167;10548:37;:::i;:::-;586:22125;;;;;;-1:-1:-1;;;586:22125:167;;;;;;-1:-1:-1;;;586:22125:167;;;;;;;;;;;;;;;;;;;1357:20;586:22125;;;;;;;;;;;;;;;;;;;;1700:26;586:22125;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;-1:-1:-1;;586:22125:167;;;;4732:69;;:::i;:::-;4044:67;;:::i;:::-;3313:83;;:::i;:::-;586:22125;;;;;;6449:46;586:22125;6484:10;6449:46;;586:22125;;;-1:-1:-1;586:22125:167;;-1:-1:-1;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;6193:64;586:22125;;;;;;:::i;:::-;4732:69;;;;;:::i;:::-;4044:67;;:::i;:::-;3313:83;;:::i;:::-;-1:-1:-1;;;;;6132:9:167;586:22125;6170:6;;;;:::i;:::-;6193:64;586:22125;;6228:10;;;;586:22125;;;6193:64;;:::i;:::-;;;;586:22125;;;;;;;;;-1:-1:-1;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;4732:69;;:::i;:::-;4044:67;;:::i;:::-;5194:10;5190:163;;586:22125;;6630:39;586:22125;;;;;;6630:39;586:22125;;5190:163;586:22125;;-1:-1:-1;;;21331:33:167;;586:22125;;5242:6;-1:-1:-1;;;;;586:22125:167;;;;;;;21331:33;;;;;;;;;;;5190:163;586:22125;5235:54;586:22125;;;;;;;;;;;;5235:54;;5263:10;586:22125;5235:54;;586:22125;;;;;;;;;;;;;;;;5235:54;;;;;;;;;;;5190:163;586:22125;5190:163;586:22125;-1:-1:-1;;;586:22125:167;;;;;5235:54;;;;586:22125;5235:54;586:22125;5235:54;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;586:22125;;;;;;;;;21331:33;;;586:22125;21331:33;;586:22125;21331:33;;;;;;586:22125;21331:33;;;:::i;:::-;;;586:22125;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;21331:33;5235:54;21331:33;;;;;-1:-1:-1;21331:33:167;;586:22125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1452:18;586:22125;;;;;;;;;;;-1:-1:-1;586:22125:167;;-1:-1:-1;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4732:69;;:::i;:::-;4044:67;;:::i;:::-;3854:5;586:22125;3854:9;;;:38;;;586:22125;;;;-1:-1:-1;;;;;10807:9:167;586:22125;10845:6;;;;:::i;:::-;3854:5;586:22125;10915:154;;;;;;;;;;;586:22125;;;;;;;;;;;;;3854:5;11101:70;586:22125;;3854:5;586:22125;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;10915:154;586:22125;;;11130:10;;11101:70;;;;586:22125;;;;;;;-1:-1:-1;;;586:22125:167;;;;;;;;;-1:-1:-1;;;586:22125:167;;;;;3854:38;-1:-1:-1;3881:11:167;586:22125;-1:-1:-1;;;;;586:22125:167;3867:10;:25;3854:38;;586:22125;;;;;;;;;;;;;1605:24;586:22125;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;-1:-1:-1;586:22125:167;;-1:-1:-1;;586:22125:167;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;-1:-1:-1;;586:22125:167;;;;;4555:63;;:::i;:::-;1926:1;586:22125;7754:59;;7831:19;586:22125;;;;7831:19;:::i;:::-;7862:4;-1:-1:-1;;;;;586:22125:167;;;7831:36;1926:1;;2008;586:22125;7901:58;;2091:1;586:22125;8070:58;;8142:38;;586:22125;;8142:38;;:::i;:::-;8138:113;;586:22125;;;8265:57;;2254:1;586:22125;8383:57;;586:22125;;8493:20;;2254:1;-1:-1:-1;;2254:1:167;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;2254:1;;;;;;586:22125;;;;2254:1;;;;;586:22125;2254:1;;586:22125;;;2254:1;;;;;586:22125;;;2254:1;;;;;;;;586:22125;;;;;;;;;;;11634:35;586:22125;;;;2254:1;;;;;11634:35;:::i;:::-;586:22125;;;11745:3;586:22125;;;;2254:1;;;11728:15;;;;;2254:1;586:22125;;;;;2254:1;;586:22125;;;;;;;;;;-1:-1:-1;;586:22125:167;;;;;;;-1:-1:-1;;586:22125:167;;2254:1;;586:22125;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;2254:1;;586:22125;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;2254:1;;586:22125;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;2254:1;586:22125;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;2254:1;;586:22125;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;-1:-1:-1;;586:22125:167;;2254:1;;586:22125;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;2254:1;;586:22125;;;;;;;;;;;;-1:-1:-1;;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;;;2254:1;;586:22125;;;;;;;;;;;;;1926:1;586:22125;;;8821:273:171;586:22125:167;;;;8142:38;586:22125;;;;;;;8920:15:171;;586:22125:167;;;;;;;;;;;;;;;8821:273:171;;;;;;586:22125:167;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;;;;;8821:273:171;;;;;;;;;;:::i;:::-;586:22125:167;8798:306:171;;4093:83:22;;;;586:22125:167;;;;;2254:1;;586:22125;;;;8142:38;;586:22125;;12248:7;586:22125;;;;2254:1;586:22125;;;12248:7;:::i;:::-;586:22125;11713:13;;;12174:162;17733:13;586:22125;;;2254:1;;586:22125;;;17733:13;:::i;:::-;586:22125;;;-1:-1:-1;;;;;;17784:26:167;586:22125;;;2254:1;;586:22125;;;17784:26;:::i;:::-;586:22125;17784:29;586:22125;;;17784:34;17833:20;;586:22125;17868:433;;;;;586:22125;;;17916:16;586:22125;;;;;;;;2254:1;586:22125;;;;;;;;;2254:1;586:22125;;;17916:16;:::i;:::-;586:22125;;;:::i;:::-;;-1:-1:-1;;;;;18380:14:167;586:22125;;;18333:20;586:22125;;;2254:1;;586:22125;;;18333:20;:::i;:::-;586:22125;;;2254:1;586:22125;;;18380:14;:::i;:::-;586:22125;;18333:71;;;;;18364:7;18333:71;;;:::i;:::-;;18423:8;18419:474;;17868:433;17729:1523;12174:162;;18419:474;18474:52;18489:20;586:22125;;;2254:1;;586:22125;;;18489:20;:::i;:::-;18511:14;586:22125;;;2254:1;;586:22125;;;18511:14;:::i;:::-;18474:52;;:::i;:::-;18548:16;18544:125;;18419:474;18793:85;586:22125;18809:14;586:22125;;;2254:1;;586:22125;;;18809:14;:::i;:::-;8142:38;586:22125;-1:-1:-1;;;;;;18851:26:167;586:22125;;;2254:1;;586:22125;;;18851:26;:::i;:::-;586:22125;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;2254:1;586:22125;;;;;;;;18793:85;18419:474;;;18544:125;18593:57;18613:20;586:22125;;;2254:1;;586:22125;;;18613:20;:::i;:::-;18635:14;586:22125;;;2254:1;;586:22125;;;18635:14;:::i;:::-;586:22125;;;-1:-1:-1;;;;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;18593:57;18544:125;;17868:433;586:22125;;;;18133:153;;586:22125;18224:16;586:22125;;2254:1;;586:22125;;;;;;;;18224:16;:::i;:::-;18242:26;586:22125;;;2254:1;;586:22125;;;18242:26;:::i;:::-;586:22125;;;;;18177:32;;;;;;18133:153;;;;586:22125;;2254:1;586:22125;;;;18133:153;;;586:22125;;;;;;;;;;:::i;:::-;;;;;;;;;;18133:153;586:22125;;18133:153;;;;;;:::i;:::-;17868:433;;17729:1523;18946:52;18961:20;586:22125;;;2254:1;;586:22125;;;18961:20;:::i;18946:52::-;19016:16;19012:117;;17729:1523;19148:93;19154:16;586:22125;;2254:1;;586:22125;;;;;;;;19154:16;:::i;:::-;19172:14;586:22125;;;2254:1;;586:22125;;;19172:14;:::i;:::-;8142:38;586:22125;-1:-1:-1;;;;;;19214:26:167;586:22125;;;2254:1;;586:22125;;;19214:26;:::i;:::-;586:22125;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2254:1;586:22125;;;;;;;;19148:93;;;12174:162;;19012:117;19057:57;19077:20;586:22125;;;2254:1;;586:22125;;;19077:20;:::i;:::-;19099:14;586:22125;;;2254:1;;586:22125;;;19099:14;:::i;:::-;586:22125;;;-1:-1:-1;;;;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;19057:57;19012:117;;586:22125;;;;;;;;;;;;;;;;11728:15;;;;586:22125;11728:15;586:22125;;2254:1;;;;;1083:131:25;;8529:56:167;2334:1;586:22125;8529:56;;2415:1;586:22125;8645:56;;586:22125;;8750:23;;2415:1;;-1:-1:-1;;2254:1:167;2415;;;;;586:22125;;2415:1;;586:22125;2415:1;;;;-1:-1:-1;;;;;2415:1:167;;;;586:22125;2415:1;;586:22125;2415:1;;;;;;;586:22125;2254:1;586:22125;;;;;;;;;;;;;19579:33;;;;;;;:::i;:::-;19622:18;586:22125;19656:13;586:22125;19651:628;19686:3;19671:13;;;;;;19819:17;586:22125;;;;1926:1;586:22125;;;;;;;;;20026:46;20041:17;586:22125;;;;2743:2;19819:17;;;586:22125;;19819:17;;;;;:::i;:::-;19838:11;;;;;;:::i;:::-;586:22125;;9258:50:171;;;;586:22125:167;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;9258:50:171;;;;;;:::i;:::-;586:22125:167;9248:61:171;;4093:83:22;;;586:22125:167;20041:17;;:::i;:::-;20060:11;;;:::i;20026:46::-;20060:11;;;20152;20122:42;20152:11;;:::i;:::-;586:22125;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;20122:42;20086:183;586:22125;19656:13;;;;;;20086:183;20242:11;20208:46;20242:11;;:::i;:::-;586:22125;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;20208:46;20086:183;;19671:13;;;1083:131:25;8789:55:167;2494:1;586:22125;8789:55;;2576:1;586:22125;8902:57;;586:22125;;;8973:18;;;;;:::i;:::-;;;;586:22125;;;9021:21;9258:50:171;586:22125:167;;9021:21;;:::i;:::-;4044:67;;;:::i;:::-;2008:1;586:22125;;-1:-1:-1;;;;;;586:22125:167;2494:1;586:22125;;;-1:-1:-1;;;;;586:22125:167;;;;;1926:1;586:22125;;;;;-1:-1:-1;;586:22125:167;10300:21;-1:-1:-1;;;;;586:22125:167;;10548:37;;586:22125;;;-1:-1:-1;;;;;586:22125:167;10548:37;:::i;:::-;20746:8;20742:200;;8969:183;;;;586:22125;;9166:56;2656:2;9166:56;;;2743:2;9289:61;;;2743:2;;586:22125;9377:24;586:22125;;9377:24;2743:2;9364:37;;;9360:110;;8969:183;586:22125;;;9484:60;2828:2;9484:60;;;2909:2;9620:55;;;9825:18;9754:19;586:22125;;;;9754:19;:::i;:::-;9825:18;;:::i;:::-;9857:21;9258:50:171;586:22125:167;;9857:21;;:::i;:::-;9892:26;;586:22125;;9892:26;;:::i;:::-;586:22125;9932:38;8142;586:22125;;8142:38;9932;:::i;:::-;9672:279:171;;;;586:22125:167;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;;;;;;;;;;;9672:279:171;;;;;;:::i;:::-;586:22125:167;9649:312:171;;2988:2:167;586:22125;;10056:54;;;586:22125;;;9360:110;586:22125;21159:23;586:22125;;;;;;;21159:23;9360:110;;;20742:200;586:22125;;;-1:-1:-1;;;;;586:22125:167;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;20876:55;;;20742:200;;;;8969:183;586:22125;;-1:-1:-1;;;;;9082:21:167;586:22125;;9258:50:171;9082:21:167;;:::i;:::-;586:22125;2576:1;;586:22125;8969:183;;;2576:1;;;;586:22125;2576:1;586:22125;;2576:1;8138:113;8213:26;;;586:22125;;8213:26;;:::i;:::-;;:::i;:::-;8138:113;;1926:1;;;;586:22125;1926:1;586:22125;;1926:1;586:22125;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;:::o;1926:1::-;;-1:-1:-1;;;;;586:22125:167;;;;;;1926:1;:::o;2091:::-;;586:22125;;;;;;;2091:1;:::o;:::-;;-1:-1:-1;;;;;586:22125:167;;;;;;2091:1;:::o;586:22125::-;;;;;;;;;;;;;-1:-1:-1;586:22125:167;;;;;;;;-1:-1:-1;;586:22125:167;;;;:::o;:::-;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::o;4624:102::-;4693:6;-1:-1:-1;;;;;586:22125:167;4679:10;:20;586:22125;;4624:102::o;586:22125::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;:::o;:::-;-1:-1:-1;;;;;586:22125:167;;;;;;-1:-1:-1;;586:22125:167;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;586:22125:167;;;;:::o;:::-;;;:::o;5481:215::-;-1:-1:-1;;;;;586:22125:167;5545:10;5541:149;;5481:215;:::o;5541:149::-;5554:1;5589:6;;;;;:29;;;;:::i;:::-;;586:22125;;;5481:215::o;586:22125::-;;;;5554:1;586:22125;;5554:1;586:22125;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;586:22125:167;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;4807:108::-;586:22125;;-1:-1:-1;;;4866:24:167;;;586:22125;4866:24;586:22125;4874:6;-1:-1:-1;;;;;586:22125:167;4866:24;;;;;;;-1:-1:-1;4866:24:167;;;4807:108;4865:25;586:22125;;4807:108::o;586:22125::-;;;;-1:-1:-1;586:22125:167;4866:24;-1:-1:-1;586:22125:167;4866:24;;;;;;;;;;;;;;:::i;:::-;;;;;586:22125;;;;;;;;;4117:89;586:22125;4175:6;586:22125;;;;4117:89::o;586:22125::-;;;;-1:-1:-1;586:22125:167;;-1:-1:-1;586:22125:167;3402:107;3467:5;586:22125;3467:9;586:22125;;3402:107::o;586:22125::-;;;;-1:-1:-1;586:22125:167;;-1:-1:-1;586:22125:167;863:809:22;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;586:22125:167:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;;;;;;586:22125:167;;;;;;;:::o;12508:657::-;12594:36;;;:::i;:::-;12593:37;12589:570;;12508:657;:::o;12589:570::-;12650:13;;;;;:::i;:::-;12646:407;;12589:570;13072:76;;13093:20;;;;;:::i;:::-;13115:16;;;;;;:::i;:::-;13133:14;;;;;;;;:::i;:::-;586:22125;13115:16;586:22125;;;;;;;;;;2743:2;;13072:76;;:::i;:::-;;;;12508:657::o;12646:407::-;12701:20;;;-1:-1:-1;12701:20:167;;;;:::i;:::-;12741:16;;;;;;;:::i;:::-;586:22125;;;12741:16;586:22125;;;;;;;;;;;12701:57;;12732:7;12701:57;;;:::i;:::-;;12781:8;12777:262;;12646:407;;;12777:262;12954:20;12923:68;12954:20;;:::i;:::-;12976:14;;;;;:::i;:::-;12741:16;586:22125;;2743:2;;586:22125;;-1:-1:-1;;;;;586:22125:167;;;;;;;-1:-1:-1;;;;;586:22125:167;;;;;;;;;12923:68;586:22125;21417:253;;-1:-1:-1;;;;;586:22125:167;21514:10;;21510:133;;21652:11;;21659:4;21417:253;:::o;21510:133::-;586:22125;21558:46;;;;;21580:5;21558:46;;;:::i;:::-;;21618:14;:::o;13285:4292::-;13411:16;;;;;;:::i;:::-;586:22125;;-1:-1:-1;;;;;586:22125:167;14006:20;;;;;:::i;:::-;586:22125;14006:38;:61;;;;13285:4292;14006:83;;;;13285:4292;14004:86;14000:129;;14169:212;;;;;14397:17;14413:1;14397:17;;;:38;;;13285:4292;14395:41;14391:84;;862:42;;;;14413:1;586:22125;;14616:37;;14610:83;;14413:1;14783:95;;;15449:31;15459:21;15449:31;;;:90;;;13285:4292;15449:147;;;13285:4292;15449:204;;;13285:4292;15449:265;;;13285:4292;15449:331;;;13285:4292;15449:373;;;13285:4292;15449:425;;;13285:4292;15449:465;;;13285:4292;15449:515;;;13285:4292;15449:562;;;13285:4292;15449:633;;;13285:4292;15449:687;;;13285:4292;15449:738;;;13285:4292;15434:763;15430:806;;862:42;;;-1:-1:-1;;862:42:167;;;14413:1;16406:21;862:42;16406:21;:::i;:::-;16437:117;;;;;;16737:216;;;;;;;;;;14413:1;16967:17;;14413:1;;17000:83;;;;;;;;14413:1;13285:4292;:::o;16963:586::-;17119:1;17103:17;;17119:1;;17136:91;;;;14413:1;13285:4292;:::o;17099:450::-;17263:1;17247:17;;;;;;;;17243:306;17263:1;;;17280:99;;;;;;;14413:1;13285:4292;:::o;17243:306::-;17415:1;17399:17;17395:154;;17243:306;;;;;;;14413:1;13285:4292;:::o;17395:154::-;16737:216;;;17432:107;;17395:154;;;;;;;;15430:806;16213:12;;;;;586:22125;16213:12;:::o;15449:738::-;16152:35;16162:25;16152:35;;;15449:738;;:687;16098:38;16108:28;16098:38;;;15449:687;;:633;16027:55;16037:45;16027:55;;;15449:633;;:562;15980:31;15990:21;15980:31;;;15449:562;;:515;15930:34;15940:24;15930:34;;;15449:515;;:465;15890:24;15900:14;15890:24;;;15449:465;;:425;15838:36;15848:26;15838:36;;;15449:425;;:373;15796:26;15806:16;15796:26;;;15449:373;;:331;15730:50;15740:40;15730:50;;;15449:331;;:265;15669:45;15679:35;15669:45;;;15449:265;;:204;15612:41;15622:31;15612:41;;;15449:204;;:147;15555:41;15565:31;15555:41;;;15449:147;;:90;15496:43;15506:33;15496:43;;;15449:90;;14610:83;14670:12;;;;586:22125;14670:12;:::o;14397:38::-;14418:17;14434:1;14418:17;;;14397:38;;14000:129;14106:12;;586:22125;14106:12;:::o;14006:83::-;14071:18;;;;14006:83;;:61;-1:-1:-1;;;;;14048:14:167;;;;;;;:::i;:::-;586:22125;14048:19;14006:61;;","linkReferences":{},"immutableReferences":{"80824":[{"start":558,"length":32},{"start":1445,"length":32},{"start":5079,"length":32},{"start":5273,"length":32},{"start":5436,"length":32}]}},"methodIdentifiers":{"claimValue(bytes32)":"91d5a64c","executableBalanceTopUp(uint128)":"704ed542","exited()":"5ce6c327","inheritor()":"36a52a18","initialize(address,address,bool)":"e4bbb5a8","initializer()":"9ce110d7","nonce()":"affed0e0","performStateTransition((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[]))":"084f443a","router()":"f887ea40","sendMessage(bytes,bool)":"42129d00","sendReply(bytes32,bytes)":"7a8e0cdd","stateHash()":"701da98e","transferLockedValueToInheritor()":"e43f3433"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_router\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AbiInterfaceAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CallerNotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EtherTransferToRouterFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InheritorMustBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitMessageNotCreatedAndCallerNotInitializer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InitializerAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidActorId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFallbackCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IsSmallAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProgramNotExited\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TransferLockedValueToInheritorExternalFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WVaraTransferFailed\",\"type\":\"error\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic0\",\"type\":\"uint256\"}],\"name\":\"DebugEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ExecutableBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"Message\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"MessageCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"callReply\",\"type\":\"bool\"}],\"name\":\"MessageQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"OwnedBalanceTopUpRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"Reply\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"replyTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes4\",\"name\":\"replyCode\",\"type\":\"bytes4\"}],\"name\":\"ReplyCallFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"repliedTo\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyQueueingRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ReplyTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateHash\",\"type\":\"bytes32\"}],\"name\":\"StateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"TransferLockedValueToInheritorFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"name\":\"ValueClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"claimedId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"source\",\"type\":\"address\"}],\"name\":\"ValueClaimingRequested\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_claimedId\",\"type\":\"bytes32\"}],\"name\":\"claimValue\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint128\",\"name\":\"_value\",\"type\":\"uint128\"}],\"name\":\"executableBalanceTopUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exited\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inheritor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_initializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isSmall\",\"type\":\"bool\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition\",\"name\":\"_transition\",\"type\":\"tuple\"}],\"name\":\"performStateTransition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"_callReply\",\"type\":\"bool\"}],\"name\":\"sendMessage\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_repliedTo\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_payload\",\"type\":\"bytes\"}],\"name\":\"sendReply\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"transferLockedValueToInheritor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"EnforcedPause()\":[{\"details\":\"Reverts when the Router is paused and pause-protected Mirror call is attempted.\"}]},\"events\":{\"ExecutableBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's executable balance top up with his tokens. NOTE: It's event for NODES: it requires to top up balance of the program.\"},\"Message(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when the program sends outgoing message. NOTE: It's event for USERS: it informs about new message sent from program.\"},\"MessageCallFailed(bytes32,address,uint128)\":{\"details\":\"Emitted when the program fails to call outgoing message to other contracts. NOTE: It's event for USERS: it informs about failed message call from program.\"},\"MessageQueueingRequested(bytes32,address,bytes,uint128,bool)\":{\"details\":\"Emitted when a new message is sent to be queued. NOTE: It's event for NODES: it requires to insert message in the program's queue.\"},\"OwnedBalanceTopUpRequested(uint128)\":{\"details\":\"Emitted when a user requests program's owned balance top up with his Ether. NOTE: It's event for NODES: it requires to top up balance of the program (in Ether).\"},\"Reply(bytes,uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program sends reply message. NOTE: It's event for USERS: it informs about new reply sent from program.\"},\"ReplyCallFailed(uint128,bytes32,bytes4)\":{\"details\":\"Emitted when the program fails to call reply message to other contracts. NOTE: It's event for USERS: it informs about failed reply call from program.\"},\"ReplyQueueingRequested(bytes32,address,bytes,uint128)\":{\"details\":\"Emitted when a new reply is sent and requested to be verified and queued. NOTE: It's event for NODES: it requires to insert message in the program's queue, if message, exists.\"},\"ReplyTransferFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer value to destination after failed call NOTE: It's event for USERS: it informs about failed transfer of value to destination after failed call.\"},\"StateChanged(bytes32)\":{\"details\":\"Emitted when the state hash of program is changed. NOTE: It's event for USERS: it informs about state changes.\"},\"TransferLockedValueToInheritorFailed(address,uint128)\":{\"details\":\"Emitted when the program fails to transfer locked value to inheritor after exit. NOTE: It's event for USERS: it informs about failed transfer of locked value to inheritor after exit.\"},\"ValueClaimFailed(bytes32,uint128)\":{\"details\":\"Emitted when a user fails in claiming value request and doesn't receive balance. NOTE: It's event for USERS: it informs about failed value claim.\"},\"ValueClaimed(bytes32,uint128)\":{\"details\":\"Emitted when a user succeed in claiming value request and receives balance. NOTE: It's event for USERS: it informs about value claimed.\"},\"ValueClaimingRequested(bytes32,address)\":{\"details\":\"Emitted when a reply's value is requested to be verified and claimed. NOTE: It's event for NODES: it requires to claim value from message, if exists.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Minimal constructor that only sets the immutable router address.\"}},\"stateVariables\":{\"ETH_EVENT_ADDR\":{\"details\":\"Special address to which Sails contract sends messages so that Mirror can decode events: https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs\"},\"exited\":{\"details\":\"The bool flag indicates whether the program is exited.\"},\"inheritor\":{\"details\":\"The address of the inheritor, which is set by the program on exit.\"},\"initializer\":{\"details\":\"The address eligible to send first (init) message.\"},\"isSmall\":{\"details\":\"The bool flag indicates whether to process arbitrary calls as `sendMessage` payload.\"},\"nonce\":{\"details\":\"Source for message ids unique generation. In-fact represents amount of messages received from Ethereum. Zeroed nonce is always represent init message.\"},\"router\":{\"details\":\"Address of the router contract, which is the sole authority.\"},\"stateHash\":{\"details\":\"Program's current state hash.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"router()\":{\"notice\":\"forge-lint: disable-next-item(screaming-snake-case-immutable)\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/instrumented/MirrorWithInstrumentation.sol\":\"MirrorWithInstrumentation\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/ICallbacks.sol\":{\"keccak256\":\"0x59b2c459562d95a574b7d578ae7780798034c66d6c8504dcc9d04ad68da2b25a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://314f3f21da1fb9b985d282d07816b37f03706a12e0cc74f461fffd3ddd3a0e35\",\"dweb:/ipfs/QmXjkU3LXfPzQY7fyyqytxrAjosWBZsMmRvvc62noRAqjp\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852\",\"dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/IWrappedVara.sol\":{\"keccak256\":\"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808\",\"dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f\"]},\"src/instrumented/MirrorWithInstrumentation.sol\":{\"keccak256\":\"0x6553de7b05c19688a7b80ac92c94caf420562c2b9b40c307cbc0211c74c0a72e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://69a1e9ddeebb01e850185a753be5cb58bc19563b7dc5fed7beda156d4f9e9e15\",\"dweb:/ipfs/QmZJtyUR7xWos9e3jEm7R7Vk6cd7Ra1TfBsgwqijJeHkJU\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AbiInterfaceAlreadySet"},{"inputs":[],"type":"error","name":"CallerNotRouter"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EtherTransferToRouterFailed"},{"inputs":[],"type":"error","name":"InheritorMustBeZero"},{"inputs":[],"type":"error","name":"InitMessageNotCreated"},{"inputs":[],"type":"error","name":"InitMessageNotCreatedAndCallerNotInitializer"},{"inputs":[],"type":"error","name":"InitializerAlreadySet"},{"inputs":[],"type":"error","name":"InvalidActorId"},{"inputs":[],"type":"error","name":"InvalidFallbackCall"},{"inputs":[],"type":"error","name":"IsSmallAlreadySet"},{"inputs":[],"type":"error","name":"ProgramExited"},{"inputs":[],"type":"error","name":"ProgramNotExited"},{"inputs":[],"type":"error","name":"TransferLockedValueToInheritorExternalFailed"},{"inputs":[],"type":"error","name":"WVaraTransferFailed"},{"inputs":[{"internalType":"uint256","name":"topic0","type":"uint256","indexed":true}],"type":"event","name":"DebugEvent","anonymous":true},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ExecutableBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"Message","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"destination","type":"address","indexed":true},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"MessageCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bool","name":"callReply","type":"bool","indexed":false}],"type":"event","name":"MessageQueueingRequested","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"OwnedBalanceTopUpRequested","anonymous":false},{"inputs":[{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"Reply","anonymous":false},{"inputs":[{"internalType":"uint128","name":"value","type":"uint128","indexed":false},{"internalType":"bytes32","name":"replyTo","type":"bytes32","indexed":false},{"internalType":"bytes4","name":"replyCode","type":"bytes4","indexed":true}],"type":"event","name":"ReplyCallFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"repliedTo","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true},{"internalType":"bytes","name":"payload","type":"bytes","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyQueueingRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"destination","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ReplyTransferFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"stateHash","type":"bytes32","indexed":false}],"type":"event","name":"StateChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"inheritor","type":"address","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"TransferLockedValueToInheritorFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimFailed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"uint128","name":"value","type":"uint128","indexed":false}],"type":"event","name":"ValueClaimed","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"claimedId","type":"bytes32","indexed":false},{"internalType":"address","name":"source","type":"address","indexed":true}],"type":"event","name":"ValueClaimingRequested","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"bytes32","name":"_claimedId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"claimValue"},{"inputs":[{"internalType":"uint128","name":"_value","type":"uint128"}],"stateMutability":"nonpayable","type":"function","name":"executableBalanceTopUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"exited","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"inheritor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_initializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"},{"internalType":"bool","name":"_isSmall","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"initializer","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct Gear.StateTransition","name":"_transition","type":"tuple","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]}],"stateMutability":"payable","type":"function","name":"performStateTransition","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes","name":"_payload","type":"bytes"},{"internalType":"bool","name":"_callReply","type":"bool"}],"stateMutability":"payable","type":"function","name":"sendMessage","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"_repliedTo","type":"bytes32"},{"internalType":"bytes","name":"_payload","type":"bytes"}],"stateMutability":"payable","type":"function","name":"sendReply"},{"inputs":[],"stateMutability":"view","type":"function","name":"stateHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"transferLockedValueToInheritor"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Minimal constructor that only sets the immutable router address."}},"version":1},"userdoc":{"kind":"user","methods":{"router()":{"notice":"forge-lint: disable-next-item(screaming-snake-case-immutable)"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/instrumented/MirrorWithInstrumentation.sol":"MirrorWithInstrumentation"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/ICallbacks.sol":{"keccak256":"0x59b2c459562d95a574b7d578ae7780798034c66d6c8504dcc9d04ad68da2b25a","urls":["bzz-raw://314f3f21da1fb9b985d282d07816b37f03706a12e0cc74f461fffd3ddd3a0e35","dweb:/ipfs/QmXjkU3LXfPzQY7fyyqytxrAjosWBZsMmRvvc62noRAqjp"],"license":"UNLICENSED"},"src/IMirror.sol":{"keccak256":"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0","urls":["bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852","dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/IWrappedVara.sol":{"keccak256":"0x2bca502745ff76cf298230a143b6d024afe1ee6530d5e8207acf6ce59e5ce7cd","urls":["bzz-raw://a17dff6b17ae2a82a436d0595a4f8a96812d260181d773af2aaccc5d85056808","dweb:/ipfs/QmXZuxPoJXqKCRhyidNEmsy38QArQyfijdYcSzbDcGmT7f"],"license":"UNLICENSED"},"src/instrumented/MirrorWithInstrumentation.sol":{"keccak256":"0x6553de7b05c19688a7b80ac92c94caf420562c2b9b40c307cbc0211c74c0a72e","urls":["bzz-raw://69a1e9ddeebb01e850185a753be5cb58bc19563b7dc5fed7beda156d4f9e9e15","dweb:/ipfs/QmZJtyUR7xWos9e3jEm7R7Vk6cd7Ra1TfBsgwqijJeHkJU"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[{"astId":80827,"contract":"src/instrumented/MirrorWithInstrumentation.sol:MirrorWithInstrumentation","label":"stateHash","offset":0,"slot":"0","type":"t_bytes32"},{"astId":80830,"contract":"src/instrumented/MirrorWithInstrumentation.sol:MirrorWithInstrumentation","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":80833,"contract":"src/instrumented/MirrorWithInstrumentation.sol:MirrorWithInstrumentation","label":"exited","offset":0,"slot":"2","type":"t_bool"},{"astId":80836,"contract":"src/instrumented/MirrorWithInstrumentation.sol:MirrorWithInstrumentation","label":"inheritor","offset":1,"slot":"2","type":"t_address"},{"astId":80839,"contract":"src/instrumented/MirrorWithInstrumentation.sol:MirrorWithInstrumentation","label":"initializer","offset":0,"slot":"3","type":"t_address"},{"astId":80842,"contract":"src/instrumented/MirrorWithInstrumentation.sol:MirrorWithInstrumentation","label":"isSmall","offset":20,"slot":"3","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"src/instrumented/MirrorWithInstrumentation.sol","id":82256,"exportedSymbols":{"ERC1967Utils":[45025],"Gear":[85973],"Hashes":[40807],"ICallbacks":[73043],"IMirror":[73658],"IRouter":[74052],"IWrappedVara":[74063],"Memory":[40581],"MirrorWithInstrumentation":[82255],"StorageSlot":[48413]},"nodeType":"SourceUnit","src":"39:22673:167","nodes":[{"id":80797,"nodeType":"PragmaDirective","src":"39:24:167","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":80799,"nodeType":"ImportDirective","src":"65:84:167","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":45026,"symbolAliases":[{"foreign":{"id":80798,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"73:12:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80801,"nodeType":"ImportDirective","src":"150:74:167","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":80800,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"158:11:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80803,"nodeType":"ImportDirective","src":"225:60:167","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":40582,"symbolAliases":[{"foreign":{"id":80802,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"233:6:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80805,"nodeType":"ImportDirective","src":"286:73:167","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":40808,"symbolAliases":[{"foreign":{"id":80804,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"294:6:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80807,"nodeType":"ImportDirective","src":"360:46:167","nodes":[],"absolutePath":"src/ICallbacks.sol","file":"src/ICallbacks.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":73044,"symbolAliases":[{"foreign":{"id":80806,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73043,"src":"368:10:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80809,"nodeType":"ImportDirective","src":"407:40:167","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":80808,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"415:7:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80811,"nodeType":"ImportDirective","src":"448:40:167","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":80810,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"456:7:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80813,"nodeType":"ImportDirective","src":"489:50:167","nodes":[],"absolutePath":"src/IWrappedVara.sol","file":"src/IWrappedVara.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":74064,"symbolAliases":[{"foreign":{"id":80812,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"497:12:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80815,"nodeType":"ImportDirective","src":"540:44:167","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":82256,"sourceUnit":85974,"symbolAliases":[{"foreign":{"id":80814,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"548:4:167","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82255,"nodeType":"ContractDefinition","src":"586:22125:167","nodes":[{"id":80821,"nodeType":"VariableDeclaration","src":"819:85:167","nodes":[],"constant":true,"documentation":{"id":80818,"nodeType":"StructuredDocumentation","src":"638:176:167","text":"@dev Special address to which Sails contract sends messages so that Mirror can decode events:\n https://github.com/gear-tech/sails/blob/master/rs/src/solidity.rs"},"mutability":"constant","name":"ETH_EVENT_ADDR","nameLocation":"845:14:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80819,"name":"address","nodeType":"ElementaryTypeName","src":"819:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307846466646664666664646666666464666464666464646464666664646466666666646664646466646","id":80820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"862:42:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xFFfFfFffFFfffFFfFFfFFFFFffFFFffffFfFFFfF"},"visibility":"internal"},{"id":80824,"nodeType":"VariableDeclaration","src":"1055:31:167","nodes":[],"baseFunctions":[73586],"constant":false,"documentation":{"id":80822,"nodeType":"StructuredDocumentation","src":"911:139:167","text":"forge-lint: disable-next-item(screaming-snake-case-immutable)\n @dev Address of the router contract, which is the sole authority."},"functionSelector":"f887ea40","mutability":"immutable","name":"router","nameLocation":"1080:6:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80823,"name":"address","nodeType":"ElementaryTypeName","src":"1055:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80827,"nodeType":"VariableDeclaration","src":"1136:24:167","nodes":[],"baseFunctions":[73591],"constant":false,"documentation":{"id":80825,"nodeType":"StructuredDocumentation","src":"1093:38:167","text":"@dev Program's current state hash."},"functionSelector":"701da98e","mutability":"mutable","name":"stateHash","nameLocation":"1151:9:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1136:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":80830,"nodeType":"VariableDeclaration","src":"1357:20:167","nodes":[],"baseFunctions":[73596],"constant":false,"documentation":{"id":80828,"nodeType":"StructuredDocumentation","src":"1167:185:167","text":"@dev Source for message ids unique generation.\n In-fact represents amount of messages received from Ethereum.\n Zeroed nonce is always represent init message."},"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"1372:5:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80829,"name":"uint256","nodeType":"ElementaryTypeName","src":"1357:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":80833,"nodeType":"VariableDeclaration","src":"1452:18:167","nodes":[],"baseFunctions":[73601],"constant":false,"documentation":{"id":80831,"nodeType":"StructuredDocumentation","src":"1384:63:167","text":"@dev The bool flag indicates whether the program is exited."},"functionSelector":"5ce6c327","mutability":"mutable","name":"exited","nameLocation":"1464:6:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80832,"name":"bool","nodeType":"ElementaryTypeName","src":"1452:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":80836,"nodeType":"VariableDeclaration","src":"1605:24:167","nodes":[],"baseFunctions":[73606],"constant":false,"documentation":{"id":80834,"nodeType":"StructuredDocumentation","src":"1525:75:167","text":"@dev The address of the inheritor, which is set by the program on exit."},"functionSelector":"36a52a18","mutability":"mutable","name":"inheritor","nameLocation":"1620:9:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80835,"name":"address","nodeType":"ElementaryTypeName","src":"1605:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80839,"nodeType":"VariableDeclaration","src":"1700:26:167","nodes":[],"baseFunctions":[73611],"constant":false,"documentation":{"id":80837,"nodeType":"StructuredDocumentation","src":"1636:59:167","text":"@dev The address eligible to send first (init) message."},"functionSelector":"9ce110d7","mutability":"mutable","name":"initializer","nameLocation":"1715:11:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80838,"name":"address","nodeType":"ElementaryTypeName","src":"1700:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":80842,"nodeType":"VariableDeclaration","src":"1831:12:167","nodes":[],"constant":false,"documentation":{"id":80840,"nodeType":"StructuredDocumentation","src":"1733:93:167","text":"@dev The bool flag indicates whether to process arbitrary calls as `sendMessage` payload."},"mutability":"mutable","name":"isSmall","nameLocation":"1836:7:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80841,"name":"bool","nodeType":"ElementaryTypeName","src":"1831:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"id":80845,"nodeType":"VariableDeclaration","src":"1850:77:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID","nameLocation":"1876:47:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80843,"name":"uint256","nodeType":"ElementaryTypeName","src":"1850:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":80844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1926:1:167","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"internal"},{"id":80848,"nodeType":"VariableDeclaration","src":"1933:76:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID","nameLocation":"1959:46:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80846,"name":"uint256","nodeType":"ElementaryTypeName","src":"1933:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":80847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2008:1:167","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"internal"},{"id":80851,"nodeType":"VariableDeclaration","src":"2016:76:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER","nameLocation":"2042:46:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80849,"name":"uint256","nodeType":"ElementaryTypeName","src":"2016:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"33","id":80850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2091:1:167","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"visibility":"internal"},{"id":80854,"nodeType":"VariableDeclaration","src":"2098:75:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER","nameLocation":"2124:45:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80852,"name":"uint256","nodeType":"ElementaryTypeName","src":"2098:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"34","id":80853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2172:1:167","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"visibility":"internal"},{"id":80857,"nodeType":"VariableDeclaration","src":"2180:75:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES","nameLocation":"2206:45:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80855,"name":"uint256","nodeType":"ElementaryTypeName","src":"2180:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"35","id":80856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2254:1:167","typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"visibility":"internal"},{"id":80860,"nodeType":"VariableDeclaration","src":"2261:74:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES","nameLocation":"2287:44:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2261:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"36","id":80859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2334:1:167","typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"visibility":"internal"},{"id":80863,"nodeType":"VariableDeclaration","src":"2342:74:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES","nameLocation":"2368:44:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80861,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"37","id":80862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:167","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"visibility":"internal"},{"id":80866,"nodeType":"VariableDeclaration","src":"2422:73:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES","nameLocation":"2448:43:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80864,"name":"uint256","nodeType":"ElementaryTypeName","src":"2422:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"38","id":80865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2494:1:167","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"visibility":"internal"},{"id":80869,"nodeType":"VariableDeclaration","src":"2502:75:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR","nameLocation":"2528:45:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2502:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"39","id":80868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2576:1:167","typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"visibility":"internal"},{"id":80872,"nodeType":"VariableDeclaration","src":"2583:75:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR","nameLocation":"2609:44:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80870,"name":"uint256","nodeType":"ElementaryTypeName","src":"2583:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":80871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2656:2:167","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"internal"},{"id":80875,"nodeType":"VariableDeclaration","src":"2665:80:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH","nameLocation":"2691:49:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80873,"name":"uint256","nodeType":"ElementaryTypeName","src":"2665:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3131","id":80874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2743:2:167","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"visibility":"internal"},{"id":80878,"nodeType":"VariableDeclaration","src":"2751:79:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH","nameLocation":"2777:48:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80876,"name":"uint256","nodeType":"ElementaryTypeName","src":"2751:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3132","id":80877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2828:2:167","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"visibility":"internal"},{"id":80881,"nodeType":"VariableDeclaration","src":"2837:74:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH","nameLocation":"2863:43:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80879,"name":"uint256","nodeType":"ElementaryTypeName","src":"2837:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3133","id":80880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2909:2:167","typeDescriptions":{"typeIdentifier":"t_rational_13_by_1","typeString":"int_const 13"},"value":"13"},"visibility":"internal"},{"id":80884,"nodeType":"VariableDeclaration","src":"2917:73:167","nodes":[],"constant":true,"mutability":"constant","name":"PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH","nameLocation":"2943:42:167","scope":82255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80882,"name":"uint256","nodeType":"ElementaryTypeName","src":"2917:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3134","id":80883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2988:2:167","typeDescriptions":{"typeIdentifier":"t_rational_14_by_1","typeString":"int_const 14"},"value":"14"},"visibility":"internal"},{"id":80888,"nodeType":"EventDefinition","src":"2997:51:167","nodes":[],"anonymous":true,"eventSelector":"e6fc1df15bb41e2a123ea1d440db6747be3ed04da67b92ac280ad10a97b799d8","name":"DebugEvent","nameLocation":"3003:10:167","parameters":{"id":80887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80886,"indexed":true,"mutability":"mutable","name":"topic0","nameLocation":"3030:6:167","nodeType":"VariableDeclaration","scope":80888,"src":"3014:22:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80885,"name":"uint256","nodeType":"ElementaryTypeName","src":"3014:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3013:24:167"}},{"id":80899,"nodeType":"FunctionDefinition","src":"3132:62:167","nodes":[],"body":{"id":80898,"nodeType":"Block","src":"3161:33:167","nodes":[],"statements":[{"expression":{"id":80896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80894,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80824,"src":"3171:6:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80895,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80891,"src":"3180:7:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3171:16:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80897,"nodeType":"ExpressionStatement","src":"3171:16:167"}]},"documentation":{"id":80889,"nodeType":"StructuredDocumentation","src":"3054:73:167","text":"@dev Minimal constructor that only sets the immutable router address."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":80892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80891,"mutability":"mutable","name":"_router","nameLocation":"3152:7:167","nodeType":"VariableDeclaration","scope":80899,"src":"3144:15:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80890,"name":"address","nodeType":"ElementaryTypeName","src":"3144:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3143:17:167"},"returnParameters":{"id":80893,"nodeType":"ParameterList","parameters":[],"src":"3161:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80907,"nodeType":"ModifierDefinition","src":"3313:83:167","nodes":[],"body":{"id":80906,"nodeType":"Block","src":"3345:51:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80902,"name":"_onlyAfterInitMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80919,"src":"3355:21:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3355:23:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80904,"nodeType":"ExpressionStatement","src":"3355:23:167"},{"id":80905,"nodeType":"PlaceholderStatement","src":"3388:1:167"}]},"documentation":{"id":80900,"nodeType":"StructuredDocumentation","src":"3200:108:167","text":"@dev Functions marked with this modifier can only be called if the init message has been created before."},"name":"onlyAfterInitMessage","nameLocation":"3322:20:167","parameters":{"id":80901,"nodeType":"ParameterList","parameters":[],"src":"3342:2:167"},"virtual":false,"visibility":"internal"},{"id":80919,"nodeType":"FunctionDefinition","src":"3402:107:167","nodes":[],"body":{"id":80918,"nodeType":"Block","src":"3449:60:167","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80911,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80830,"src":"3467:5:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80912,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3475:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3467:9:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80914,"name":"InitMessageNotCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73552,"src":"3478:21:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3478:23:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80910,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3459:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3459:43:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80917,"nodeType":"ExpressionStatement","src":"3459:43:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessage","nameLocation":"3411:21:167","parameters":{"id":80908,"nodeType":"ParameterList","parameters":[],"src":"3432:2:167"},"returnParameters":{"id":80909,"nodeType":"ParameterList","parameters":[],"src":"3449:0:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80927,"nodeType":"ModifierDefinition","src":"3661:109:167","nodes":[],"body":{"id":80926,"nodeType":"Block","src":"3706:64:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80922,"name":"_onlyAfterInitMessageOrInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80944,"src":"3716:34:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3716:36:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80924,"nodeType":"ExpressionStatement","src":"3716:36:167"},{"id":80925,"nodeType":"PlaceholderStatement","src":"3762:1:167"}]},"documentation":{"id":80920,"nodeType":"StructuredDocumentation","src":"3515:141:167","text":"@dev Functions marked with this modifier can only be called if the init message has been created before or the caller is the initializer."},"name":"onlyAfterInitMessageOrInitializer","nameLocation":"3670:33:167","parameters":{"id":80921,"nodeType":"ParameterList","parameters":[],"src":"3703:2:167"},"virtual":false,"visibility":"internal"},{"id":80944,"nodeType":"FunctionDefinition","src":"3776:172:167","nodes":[],"body":{"id":80943,"nodeType":"Block","src":"3836:112:167","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80931,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80830,"src":"3854:5:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3862:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3854:9:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80934,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3867:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3871:6:167","memberName":"sender","nodeType":"MemberAccess","src":"3867:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80936,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80839,"src":"3881:11:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3867:25:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3854:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80939,"name":"InitMessageNotCreatedAndCallerNotInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73554,"src":"3894:44:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:46:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80930,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3846:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3846:95:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80942,"nodeType":"ExpressionStatement","src":"3846:95:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyAfterInitMessageOrInitializer","nameLocation":"3785:34:167","parameters":{"id":80928,"nodeType":"ParameterList","parameters":[],"src":"3819:2:167"},"returnParameters":{"id":80929,"nodeType":"ParameterList","parameters":[],"src":"3836:0:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80952,"nodeType":"ModifierDefinition","src":"4044:67:167","nodes":[],"body":{"id":80951,"nodeType":"Block","src":"4068:43:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80947,"name":"_onlyIfActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80963,"src":"4078:13:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4078:15:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80949,"nodeType":"ExpressionStatement","src":"4078:15:167"},{"id":80950,"nodeType":"PlaceholderStatement","src":"4103:1:167"}]},"documentation":{"id":80945,"nodeType":"StructuredDocumentation","src":"3954:85:167","text":"@dev Functions marked with this modifier can only be called if program is active."},"name":"onlyIfActive","nameLocation":"4053:12:167","parameters":{"id":80946,"nodeType":"ParameterList","parameters":[],"src":"4065:2:167"},"virtual":false,"visibility":"internal"},{"id":80963,"nodeType":"FunctionDefinition","src":"4117:89:167","nodes":[],"body":{"id":80962,"nodeType":"Block","src":"4156:50:167","nodes":[],"statements":[{"expression":{"arguments":[{"id":80957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4174:7:167","subExpression":{"id":80956,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80833,"src":"4175:6:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80958,"name":"ProgramExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73556,"src":"4183:13:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4183:15:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80955,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4166:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4166:33:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80961,"nodeType":"ExpressionStatement","src":"4166:33:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfActive","nameLocation":"4126:13:167","parameters":{"id":80953,"nodeType":"ParameterList","parameters":[],"src":"4139:2:167"},"returnParameters":{"id":80954,"nodeType":"ParameterList","parameters":[],"src":"4156:0:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80971,"nodeType":"ModifierDefinition","src":"4302:67:167","nodes":[],"body":{"id":80970,"nodeType":"Block","src":"4326:43:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80966,"name":"_onlyIfExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80981,"src":"4336:13:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:15:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80968,"nodeType":"ExpressionStatement","src":"4336:15:167"},{"id":80969,"nodeType":"PlaceholderStatement","src":"4361:1:167"}]},"documentation":{"id":80964,"nodeType":"StructuredDocumentation","src":"4212:85:167","text":"@dev Functions marked with this modifier can only be called if program is exited."},"name":"onlyIfExited","nameLocation":"4311:12:167","parameters":{"id":80965,"nodeType":"ParameterList","parameters":[],"src":"4323:2:167"},"virtual":false,"visibility":"internal"},{"id":80981,"nodeType":"FunctionDefinition","src":"4375:91:167","nodes":[],"body":{"id":80980,"nodeType":"Block","src":"4414:52:167","nodes":[],"statements":[{"expression":{"arguments":[{"id":80975,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80833,"src":"4432:6:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80976,"name":"ProgramNotExited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73558,"src":"4440:16:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4440:18:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80974,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4424:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4424:35:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80979,"nodeType":"ExpressionStatement","src":"4424:35:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyIfExited","nameLocation":"4384:13:167","parameters":{"id":80972,"nodeType":"ParameterList","parameters":[],"src":"4397:2:167"},"returnParameters":{"id":80973,"nodeType":"ParameterList","parameters":[],"src":"4414:0:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":80989,"nodeType":"ModifierDefinition","src":"4555:63:167","nodes":[],"body":{"id":80988,"nodeType":"Block","src":"4577:41:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80984,"name":"_onlyRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81002,"src":"4587:11:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":80985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4587:13:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80986,"nodeType":"ExpressionStatement","src":"4587:13:167"},{"id":80987,"nodeType":"PlaceholderStatement","src":"4610:1:167"}]},"documentation":{"id":80982,"nodeType":"StructuredDocumentation","src":"4472:78:167","text":"@dev Functions marked with this modifier can only be called by the router."},"name":"onlyRouter","nameLocation":"4564:10:167","parameters":{"id":80983,"nodeType":"ParameterList","parameters":[],"src":"4574:2:167"},"virtual":false,"visibility":"internal"},{"id":81002,"nodeType":"FunctionDefinition","src":"4624:102:167","nodes":[],"body":{"id":81001,"nodeType":"Block","src":"4661:65:167","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":80996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80993,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4679:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4683:6:167","memberName":"sender","nodeType":"MemberAccess","src":"4679:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":80995,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80824,"src":"4693:6:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4679:20:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80997,"name":"CallerNotRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73560,"src":"4701:15:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4701:17:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80992,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4671:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4671:48:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81000,"nodeType":"ExpressionStatement","src":"4671:48:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_onlyRouter","nameLocation":"4633:11:167","parameters":{"id":80990,"nodeType":"ParameterList","parameters":[],"src":"4644:2:167"},"returnParameters":{"id":80991,"nodeType":"ParameterList","parameters":[],"src":"4661:0:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":81009,"nodeType":"ModifierDefinition","src":"4732:69:167","nodes":[],"body":{"id":81008,"nodeType":"Block","src":"4757:44:167","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":81004,"name":"_whenNotPaused","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81024,"src":"4767:14:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":81005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4767:16:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81006,"nodeType":"ExpressionStatement","src":"4767:16:167"},{"id":81007,"nodeType":"PlaceholderStatement","src":"4793:1:167"}]},"name":"whenNotPaused","nameLocation":"4741:13:167","parameters":{"id":81003,"nodeType":"ParameterList","parameters":[],"src":"4754:2:167"},"virtual":false,"visibility":"internal"},{"id":81024,"nodeType":"FunctionDefinition","src":"4807:108:167","nodes":[],"body":{"id":81023,"nodeType":"Block","src":"4847:68:167","nodes":[],"statements":[{"expression":{"arguments":[{"id":81018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4865:25:167","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":81014,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80824,"src":"4874:6:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81013,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"4866:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74052_$","typeString":"type(contract IRouter)"}},"id":81015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4866:15:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":81016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4882:6:167","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":73936,"src":"4866:22:167","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bool_$","typeString":"function () view external returns (bool)"}},"id":81017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4866:24:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81019,"name":"EnforcedPause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73581,"src":"4892:13:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4892:15:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81012,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"4857:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4857:51:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81022,"nodeType":"ExpressionStatement","src":"4857:51:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_whenNotPaused","nameLocation":"4816:14:167","parameters":{"id":81010,"nodeType":"ParameterList","parameters":[],"src":"4830:2:167"},"returnParameters":{"id":81011,"nodeType":"ParameterList","parameters":[],"src":"4847:0:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":81035,"nodeType":"ModifierDefinition","src":"5036:89:167","nodes":[],"body":{"id":81034,"nodeType":"Block","src":"5075:50:167","nodes":[],"statements":[{"expression":{"arguments":[{"id":81030,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81027,"src":"5101:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81029,"name":"_retrievingVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81064,"src":"5085:15:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5085:22:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81032,"nodeType":"ExpressionStatement","src":"5085:22:167"},{"id":81033,"nodeType":"PlaceholderStatement","src":"5117:1:167"}]},"documentation":{"id":81025,"nodeType":"StructuredDocumentation","src":"4921:110:167","text":"@dev Non-zero Vara value must be transferred from source to router in functions marked with this modifier."},"name":"retrievingVara","nameLocation":"5045:14:167","parameters":{"id":81028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81027,"mutability":"mutable","name":"value","nameLocation":"5068:5:167","nodeType":"VariableDeclaration","scope":81035,"src":"5060:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81026,"name":"uint128","nodeType":"ElementaryTypeName","src":"5060:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5059:15:167"},"virtual":false,"visibility":"internal"},{"id":81064,"nodeType":"FunctionDefinition","src":"5131:228:167","nodes":[],"body":{"id":81063,"nodeType":"Block","src":"5180:179:167","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":81042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81037,"src":"5194:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":81041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5203:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5194:10:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81062,"nodeType":"IfStatement","src":"5190:163:167","trueBody":{"id":81061,"nodeType":"Block","src":"5206:147:167","statements":[{"assignments":[81044],"declarations":[{"constant":false,"id":81044,"mutability":"mutable","name":"success","nameLocation":"5225:7:167","nodeType":"VariableDeclaration","scope":81061,"src":"5220:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81043,"name":"bool","nodeType":"ElementaryTypeName","src":"5220:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81054,"initialValue":{"arguments":[{"expression":{"id":81049,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5263:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5267:6:167","memberName":"sender","nodeType":"MemberAccess","src":"5263:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81051,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80824,"src":"5275:6:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81052,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81037,"src":"5283:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"arguments":[{"id":81046,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80824,"src":"5242:6:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81045,"name":"_wvara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82166,"src":"5235:6:167","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_contract$_IWrappedVara_$74063_$","typeString":"function (address) view returns (contract IWrappedVara)"}},"id":81047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5235:14:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"id":81048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5250:12:167","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":46159,"src":"5235:27:167","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":81053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5235:54:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"5220:69:167"},{"expression":{"arguments":[{"id":81056,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81044,"src":"5311:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81057,"name":"WVaraTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"5320:19:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5320:21:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81055,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5303:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5303:39:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81060,"nodeType":"ExpressionStatement","src":"5303:39:167"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingVara","nameLocation":"5140:15:167","parameters":{"id":81038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81037,"mutability":"mutable","name":"value","nameLocation":"5164:5:167","nodeType":"VariableDeclaration","scope":81064,"src":"5156:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81036,"name":"uint128","nodeType":"ElementaryTypeName","src":"5156:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5155:15:167"},"returnParameters":{"id":81039,"nodeType":"ParameterList","parameters":[],"src":"5180:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":81091,"nodeType":"FunctionDefinition","src":"5481:215:167","nodes":[],"body":{"id":81090,"nodeType":"Block","src":"5531:165:167","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":81072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81070,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81067,"src":"5545:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":81071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5554:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5545:10:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81089,"nodeType":"IfStatement","src":"5541:149:167","trueBody":{"id":81088,"nodeType":"Block","src":"5557:133:167","statements":[{"assignments":[81074,null],"declarations":[{"constant":false,"id":81074,"mutability":"mutable","name":"success","nameLocation":"5577:7:167","nodeType":"VariableDeclaration","scope":81088,"src":"5572:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81073,"name":"bool","nodeType":"ElementaryTypeName","src":"5572:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":81081,"initialValue":{"arguments":[{"hexValue":"","id":81079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5615:2:167","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":81075,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80824,"src":"5589:6:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5596:4:167","memberName":"call","nodeType":"MemberAccess","src":"5589:11:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":81078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":81077,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81067,"src":"5608:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"5589:25:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":81080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5589:29:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5571:47:167"},{"expression":{"arguments":[{"id":81083,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81074,"src":"5640:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81084,"name":"EtherTransferToRouterFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"5649:27:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5649:29:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"5632:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5632:47:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81087,"nodeType":"ExpressionStatement","src":"5632:47:167"}]}}]},"documentation":{"id":81065,"nodeType":"StructuredDocumentation","src":"5365:111:167","text":"@dev Non-zero Ether value must be transferred from source to router in functions marked with this modifier."},"implemented":true,"kind":"function","modifiers":[],"name":"_retrievingEther","nameLocation":"5490:16:167","parameters":{"id":81068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81067,"mutability":"mutable","name":"value","nameLocation":"5515:5:167","nodeType":"VariableDeclaration","scope":81091,"src":"5507:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81066,"name":"uint128","nodeType":"ElementaryTypeName","src":"5507:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"5506:15:167"},"returnParameters":{"id":81069,"nodeType":"ParameterList","parameters":[],"src":"5531:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":81108,"nodeType":"FunctionDefinition","src":"5748:170:167","nodes":[],"body":{"id":81107,"nodeType":"Block","src":"5860:58:167","nodes":[],"statements":[{"expression":{"arguments":[{"id":81103,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81093,"src":"5890:8:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":81104,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81095,"src":"5900:10:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81102,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81498,"src":"5877:12:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":81105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5877:34:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81101,"id":81106,"nodeType":"Return","src":"5870:41:167"}]},"baseFunctions":[73620],"functionSelector":"42129d00","implemented":true,"kind":"function","modifiers":[{"id":81098,"kind":"modifierInvocation","modifierName":{"id":81097,"name":"whenNotPaused","nameLocations":["5828:13:167"],"nodeType":"IdentifierPath","referencedDeclaration":81009,"src":"5828:13:167"},"nodeType":"ModifierInvocation","src":"5828:13:167"}],"name":"sendMessage","nameLocation":"5757:11:167","parameters":{"id":81096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81093,"mutability":"mutable","name":"_payload","nameLocation":"5784:8:167","nodeType":"VariableDeclaration","scope":81108,"src":"5769:23:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":81092,"name":"bytes","nodeType":"ElementaryTypeName","src":"5769:5:167","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":81095,"mutability":"mutable","name":"_callReply","nameLocation":"5799:10:167","nodeType":"VariableDeclaration","scope":81108,"src":"5794:15:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81094,"name":"bool","nodeType":"ElementaryTypeName","src":"5794:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5768:42:167"},"returnParameters":{"id":81101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81108,"src":"5851:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5851:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5850:9:167"},"scope":82255,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":81142,"nodeType":"FunctionDefinition","src":"5924:340:167","nodes":[],"body":{"id":81141,"nodeType":"Block","src":"6097:167:167","nodes":[],"statements":[{"assignments":[81122],"declarations":[{"constant":false,"id":81122,"mutability":"mutable","name":"_value","nameLocation":"6115:6:167","nodeType":"VariableDeclaration","scope":81141,"src":"6107:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81121,"name":"uint128","nodeType":"ElementaryTypeName","src":"6107:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":81128,"initialValue":{"arguments":[{"expression":{"id":81125,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6132:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6136:5:167","memberName":"value","nodeType":"MemberAccess","src":"6132:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6124:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":81123,"name":"uint128","nodeType":"ElementaryTypeName","src":"6124:7:167","typeDescriptions":{}}},"id":81127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6124:18:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"6107:35:167"},{"expression":{"arguments":[{"id":81130,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81122,"src":"6170:6:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81129,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81091,"src":"6153:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6153:24:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81132,"nodeType":"ExpressionStatement","src":"6153:24:167"},{"eventCall":{"arguments":[{"id":81134,"name":"_repliedTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81110,"src":"6216:10:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81135,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6228:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6232:6:167","memberName":"sender","nodeType":"MemberAccess","src":"6228:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81137,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81112,"src":"6240:8:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":81138,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81122,"src":"6250:6:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81133,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73465,"src":"6193:22:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":81139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6193:64:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81140,"nodeType":"EmitStatement","src":"6188:69:167"}]},"baseFunctions":[73627],"functionSelector":"7a8e0cdd","implemented":true,"kind":"function","modifiers":[{"id":81115,"kind":"modifierInvocation","modifierName":{"id":81114,"name":"whenNotPaused","nameLocations":["6029:13:167"],"nodeType":"IdentifierPath","referencedDeclaration":81009,"src":"6029:13:167"},"nodeType":"ModifierInvocation","src":"6029:13:167"},{"id":81117,"kind":"modifierInvocation","modifierName":{"id":81116,"name":"onlyIfActive","nameLocations":["6051:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":80952,"src":"6051:12:167"},"nodeType":"ModifierInvocation","src":"6051:12:167"},{"id":81119,"kind":"modifierInvocation","modifierName":{"id":81118,"name":"onlyAfterInitMessage","nameLocations":["6072:20:167"],"nodeType":"IdentifierPath","referencedDeclaration":80907,"src":"6072:20:167"},"nodeType":"ModifierInvocation","src":"6072:20:167"}],"name":"sendReply","nameLocation":"5933:9:167","parameters":{"id":81113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81110,"mutability":"mutable","name":"_repliedTo","nameLocation":"5951:10:167","nodeType":"VariableDeclaration","scope":81142,"src":"5943:18:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81109,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5943:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":81112,"mutability":"mutable","name":"_payload","nameLocation":"5978:8:167","nodeType":"VariableDeclaration","scope":81142,"src":"5963:23:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":81111,"name":"bytes","nodeType":"ElementaryTypeName","src":"5963:5:167","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5942:45:167"},"returnParameters":{"id":81120,"nodeType":"ParameterList","parameters":[],"src":"6097:0:167"},"scope":82255,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":81160,"nodeType":"FunctionDefinition","src":"6337:165:167","nodes":[],"body":{"id":81159,"nodeType":"Block","src":"6434:68:167","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":81154,"name":"_claimedId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81144,"src":"6472:10:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6484:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6488:6:167","memberName":"sender","nodeType":"MemberAccess","src":"6484:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":81153,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73472,"src":"6449:22:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":81157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6449:46:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81158,"nodeType":"EmitStatement","src":"6444:51:167"}]},"baseFunctions":[73632],"functionSelector":"91d5a64c","implemented":true,"kind":"function","modifiers":[{"id":81147,"kind":"modifierInvocation","modifierName":{"id":81146,"name":"whenNotPaused","nameLocations":["6386:13:167"],"nodeType":"IdentifierPath","referencedDeclaration":81009,"src":"6386:13:167"},"nodeType":"ModifierInvocation","src":"6386:13:167"},{"id":81149,"kind":"modifierInvocation","modifierName":{"id":81148,"name":"onlyIfActive","nameLocations":["6400:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":80952,"src":"6400:12:167"},"nodeType":"ModifierInvocation","src":"6400:12:167"},{"id":81151,"kind":"modifierInvocation","modifierName":{"id":81150,"name":"onlyAfterInitMessage","nameLocations":["6413:20:167"],"nodeType":"IdentifierPath","referencedDeclaration":80907,"src":"6413:20:167"},"nodeType":"ModifierInvocation","src":"6413:20:167"}],"name":"claimValue","nameLocation":"6346:10:167","parameters":{"id":81145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81144,"mutability":"mutable","name":"_claimedId","nameLocation":"6365:10:167","nodeType":"VariableDeclaration","scope":81160,"src":"6357:18:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6357:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6356:20:167"},"returnParameters":{"id":81152,"nodeType":"ParameterList","parameters":[],"src":"6434:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81177,"nodeType":"FunctionDefinition","src":"6508:168:167","nodes":[],"body":{"id":81176,"nodeType":"Block","src":"6615:61:167","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":81173,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"6662:6:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81172,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73482,"src":"6630:31:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6630:39:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81175,"nodeType":"EmitStatement","src":"6625:44:167"}]},"baseFunctions":[73637],"functionSelector":"704ed542","implemented":true,"kind":"function","modifiers":[{"id":81165,"kind":"modifierInvocation","modifierName":{"id":81164,"name":"whenNotPaused","nameLocations":["6565:13:167"],"nodeType":"IdentifierPath","referencedDeclaration":81009,"src":"6565:13:167"},"nodeType":"ModifierInvocation","src":"6565:13:167"},{"id":81167,"kind":"modifierInvocation","modifierName":{"id":81166,"name":"onlyIfActive","nameLocations":["6579:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":80952,"src":"6579:12:167"},"nodeType":"ModifierInvocation","src":"6579:12:167"},{"arguments":[{"id":81169,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"6607:6:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":81170,"kind":"modifierInvocation","modifierName":{"id":81168,"name":"retrievingVara","nameLocations":["6592:14:167"],"nodeType":"IdentifierPath","referencedDeclaration":81035,"src":"6592:14:167"},"nodeType":"ModifierInvocation","src":"6592:22:167"}],"name":"executableBalanceTopUp","nameLocation":"6517:22:167","parameters":{"id":81163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81162,"mutability":"mutable","name":"_value","nameLocation":"6548:6:167","nodeType":"VariableDeclaration","scope":81177,"src":"6540:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81161,"name":"uint128","nodeType":"ElementaryTypeName","src":"6540:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"6539:16:167"},"returnParameters":{"id":81171,"nodeType":"ParameterList","parameters":[],"src":"6615:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81194,"nodeType":"FunctionDefinition","src":"6682:208:167","nodes":[],"body":{"id":81193,"nodeType":"Block","src":"6747:143:167","nodes":[],"statements":[{"assignments":[null,81183],"declarations":[null,{"constant":false,"id":81183,"mutability":"mutable","name":"success","nameLocation":"6765:7:167","nodeType":"VariableDeclaration","scope":81193,"src":"6760:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81182,"name":"bool","nodeType":"ElementaryTypeName","src":"6760:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81186,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":81184,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81450,"src":"6776:31:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":81185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6776:33:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"6757:52:167"},{"expression":{"arguments":[{"id":81188,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81183,"src":"6827:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81189,"name":"TransferLockedValueToInheritorExternalFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"6836:44:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6836:46:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81187,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"6819:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6819:64:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81192,"nodeType":"ExpressionStatement","src":"6819:64:167"}]},"baseFunctions":[73640],"functionSelector":"e43f3433","implemented":true,"kind":"function","modifiers":[{"id":81180,"kind":"modifierInvocation","modifierName":{"id":81179,"name":"whenNotPaused","nameLocations":["6733:13:167"],"nodeType":"IdentifierPath","referencedDeclaration":81009,"src":"6733:13:167"},"nodeType":"ModifierInvocation","src":"6733:13:167"}],"name":"transferLockedValueToInheritor","nameLocation":"6691:30:167","parameters":{"id":81178,"nodeType":"ParameterList","parameters":[],"src":"6721:2:167"},"returnParameters":{"id":81181,"nodeType":"ParameterList","parameters":[],"src":"6747:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":81261,"nodeType":"FunctionDefinition","src":"6948:558:167","nodes":[],"body":{"id":81260,"nodeType":"Block","src":"7046:460:167","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81206,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80839,"src":"7064:11:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7087:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7079:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81207,"name":"address","nodeType":"ElementaryTypeName","src":"7079:7:167","typeDescriptions":{}}},"id":81210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7079:10:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7064:25:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81212,"name":"InitializerAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73568,"src":"7091:21:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7091:23:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7056:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7056:59:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81215,"nodeType":"ExpressionStatement","src":"7056:59:167"},{"expression":{"arguments":[{"id":81218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7134:8:167","subExpression":{"id":81217,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80842,"src":"7135:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81219,"name":"IsSmallAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"7144:17:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7144:19:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81216,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7126:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7126:38:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81222,"nodeType":"ExpressionStatement","src":"7126:38:167"},{"assignments":[81227],"declarations":[{"constant":false,"id":81227,"mutability":"mutable","name":"implementationSlot","nameLocation":"7207:18:167","nodeType":"VariableDeclaration","scope":81260,"src":"7175:50:167","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot"},"typeName":{"id":81226,"nodeType":"UserDefinedTypeName","pathNode":{"id":81225,"name":"StorageSlot.AddressSlot","nameLocations":["7175:11:167","7187:11:167"],"nodeType":"IdentifierPath","referencedDeclaration":48295,"src":"7175:23:167"},"referencedDeclaration":48295,"src":"7175:23:167","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot"}},"visibility":"internal"}],"id":81233,"initialValue":{"arguments":[{"expression":{"id":81230,"name":"ERC1967Utils","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45025,"src":"7267:12:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC1967Utils_$45025_$","typeString":"type(library ERC1967Utils)"}},"id":81231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7280:19:167","memberName":"IMPLEMENTATION_SLOT","nodeType":"MemberAccess","referencedDeclaration":44746,"src":"7267:32:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81228,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7240:11:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":81229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7252:14:167","memberName":"getAddressSlot","nodeType":"MemberAccess","referencedDeclaration":48324,"src":"7240:26:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$48295_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)"}},"id":81232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7240:60:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7175:125:167"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81235,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81227,"src":"7319:18:167","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":81236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7338:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48294,"src":"7319:24:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7347:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81237,"name":"address","nodeType":"ElementaryTypeName","src":"7347:7:167","typeDescriptions":{}}},"id":81240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7347:10:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7319:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81242,"name":"AbiInterfaceAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"7359:22:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7359:24:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81234,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7311:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7311:73:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81245,"nodeType":"ExpressionStatement","src":"7311:73:167"},{"expression":{"id":81248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81246,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80839,"src":"7395:11:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81247,"name":"_initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81196,"src":"7409:12:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7395:26:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81249,"nodeType":"ExpressionStatement","src":"7395:26:167"},{"expression":{"id":81252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81250,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80842,"src":"7431:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81251,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81200,"src":"7441:8:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7431:18:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81253,"nodeType":"ExpressionStatement","src":"7431:18:167"},{"expression":{"id":81258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81254,"name":"implementationSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81227,"src":"7459:18:167","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSlot_$48295_storage_ptr","typeString":"struct StorageSlot.AddressSlot storage pointer"}},"id":81256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7478:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48294,"src":"7459:24:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81257,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81198,"src":"7486:13:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7459:40:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81259,"nodeType":"ExpressionStatement","src":"7459:40:167"}]},"baseFunctions":[73649],"functionSelector":"e4bbb5a8","implemented":true,"kind":"function","modifiers":[{"id":81203,"kind":"modifierInvocation","modifierName":{"id":81202,"name":"onlyRouter","nameLocations":["7035:10:167"],"nodeType":"IdentifierPath","referencedDeclaration":80989,"src":"7035:10:167"},"nodeType":"ModifierInvocation","src":"7035:10:167"}],"name":"initialize","nameLocation":"6957:10:167","parameters":{"id":81201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81196,"mutability":"mutable","name":"_initializer","nameLocation":"6976:12:167","nodeType":"VariableDeclaration","scope":81261,"src":"6968:20:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81195,"name":"address","nodeType":"ElementaryTypeName","src":"6968:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81198,"mutability":"mutable","name":"_abiInterface","nameLocation":"6998:13:167","nodeType":"VariableDeclaration","scope":81261,"src":"6990:21:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81197,"name":"address","nodeType":"ElementaryTypeName","src":"6990:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81200,"mutability":"mutable","name":"_isSmall","nameLocation":"7018:8:167","nodeType":"VariableDeclaration","scope":81261,"src":"7013:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81199,"name":"bool","nodeType":"ElementaryTypeName","src":"7013:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6967:60:167"},"returnParameters":{"id":81204,"nodeType":"ParameterList","parameters":[],"src":"7046:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81418,"nodeType":"FunctionDefinition","src":"7512:2642:167","nodes":[],"body":{"id":81417,"nodeType":"Block","src":"7669:2485:167","nodes":[],"statements":[{"documentation":"@dev Verify that the transition belongs to this contract.","eventCall":{"arguments":[{"id":81272,"name":"PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80845,"src":"7765:47:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81271,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"7754:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7754:59:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81274,"nodeType":"EmitStatement","src":"7749:64:167"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81276,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"7831:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7843:7:167","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"7831:19:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":81280,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7862:4:167","typeDescriptions":{"typeIdentifier":"t_contract$_MirrorWithInstrumentation_$82255","typeString":"contract MirrorWithInstrumentation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MirrorWithInstrumentation_$82255","typeString":"contract MirrorWithInstrumentation"}],"id":81279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7854:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81278,"name":"address","nodeType":"ElementaryTypeName","src":"7854:7:167","typeDescriptions":{}}},"id":81281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7854:13:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7831:36:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81283,"name":"InvalidActorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"7869:14:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7869:16:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81275,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"7823:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7823:63:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81286,"nodeType":"ExpressionStatement","src":"7823:63:167"},{"eventCall":{"arguments":[{"id":81288,"name":"PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80848,"src":"7912:46:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81287,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"7901:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7901:58:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81290,"nodeType":"EmitStatement","src":"7896:63:167"},{"documentation":"@dev Transfer value to router if valueToReceive is non-zero and has negative sign.","eventCall":{"arguments":[{"id":81292,"name":"PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80851,"src":"8081:46:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81291,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8070:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8070:58:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81294,"nodeType":"EmitStatement","src":"8065:63:167"},{"condition":{"expression":{"id":81295,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"8142:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8154:26:167","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85031,"src":"8142:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81303,"nodeType":"IfStatement","src":"8138:113:167","trueBody":{"id":81302,"nodeType":"Block","src":"8182:69:167","statements":[{"expression":{"arguments":[{"expression":{"id":81298,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"8213:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8225:14:167","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"8213:26:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81297,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81091,"src":"8196:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:44:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81301,"nodeType":"ExpressionStatement","src":"8196:44:167"}]}},{"eventCall":{"arguments":[{"id":81305,"name":"PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80854,"src":"8276:45:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81304,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8265:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8265:57:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81307,"nodeType":"EmitStatement","src":"8260:62:167"},{"documentation":"@dev Send all outgoing messages.","eventCall":{"arguments":[{"id":81309,"name":"PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80857,"src":"8394:45:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81308,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8383:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8383:57:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81311,"nodeType":"EmitStatement","src":"8378:62:167"},{"assignments":[81313],"declarations":[{"constant":false,"id":81313,"mutability":"mutable","name":"messagesHashesHash","nameLocation":"8458:18:167","nodeType":"VariableDeclaration","scope":81417,"src":"8450:26:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81312,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8450:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81318,"initialValue":{"arguments":[{"expression":{"id":81315,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"8493:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8505:8:167","memberName":"messages","nodeType":"MemberAccess","referencedDeclaration":85039,"src":"8493:20:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}],"id":81314,"name":"_sendMessages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81594,"src":"8479:13:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message calldata[] calldata) returns (bytes32)"}},"id":81317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8479:35:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8450:64:167"},{"eventCall":{"arguments":[{"id":81320,"name":"PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80860,"src":"8540:44:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81319,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8529:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8529:56:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81322,"nodeType":"EmitStatement","src":"8524:61:167"},{"documentation":"@dev Send value for each claim.","eventCall":{"arguments":[{"id":81324,"name":"PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80863,"src":"8656:44:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81323,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8645:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8645:56:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81326,"nodeType":"EmitStatement","src":"8640:61:167"},{"assignments":[81328],"declarations":[{"constant":false,"id":81328,"mutability":"mutable","name":"valueClaimsHash","nameLocation":"8719:15:167","nodeType":"VariableDeclaration","scope":81417,"src":"8711:23:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8711:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81333,"initialValue":{"arguments":[{"expression":{"id":81330,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"8750:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8762:11:167","memberName":"valueClaims","nodeType":"MemberAccess","referencedDeclaration":85035,"src":"8750:23:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}],"id":81329,"name":"_claimValues","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82099,"src":"8737:12:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValueClaim calldata[] calldata) returns (bytes32)"}},"id":81332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8737:37:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"8711:63:167"},{"eventCall":{"arguments":[{"id":81335,"name":"PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80866,"src":"8800:43:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81334,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8789:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8789:55:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81337,"nodeType":"EmitStatement","src":"8784:60:167"},{"documentation":"@dev Set inheritor if exited.","eventCall":{"arguments":[{"id":81339,"name":"PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80869,"src":"8913:45:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81338,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"8902:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8902:57:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81341,"nodeType":"EmitStatement","src":"8897:62:167"},{"condition":{"expression":{"id":81342,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"8973:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8985:6:167","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":85024,"src":"8973:18:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81362,"nodeType":"Block","src":"9060:92:167","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81351,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9082:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9094:9:167","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85026,"src":"9082:21:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9115:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":81354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9107:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81353,"name":"address","nodeType":"ElementaryTypeName","src":"9107:7:167","typeDescriptions":{}}},"id":81356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9107:10:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9082:35:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81358,"name":"InheritorMustBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73576,"src":"9119:19:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":81359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9119:21:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":81350,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"9074:7:167","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9074:67:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81361,"nodeType":"ExpressionStatement","src":"9074:67:167"}]},"id":81363,"nodeType":"IfStatement","src":"8969:183:167","trueBody":{"id":81349,"nodeType":"Block","src":"8993:61:167","statements":[{"expression":{"arguments":[{"expression":{"id":81345,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9021:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9033:9:167","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85026,"src":"9021:21:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81344,"name":"_setInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82131,"src":"9007:13:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":81347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9007:36:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81348,"nodeType":"ExpressionStatement","src":"9007:36:167"}]}},{"eventCall":{"arguments":[{"id":81365,"name":"PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80872,"src":"9177:44:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81364,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"9166:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9166:56:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81367,"nodeType":"EmitStatement","src":"9161:61:167"},{"documentation":"@dev Update the state hash if changed.","eventCall":{"arguments":[{"id":81369,"name":"PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80875,"src":"9300:49:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81368,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"9289:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9289:61:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81371,"nodeType":"EmitStatement","src":"9284:66:167"},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81372,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80827,"src":"9364:9:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81373,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9377:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9389:12:167","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85022,"src":"9377:24:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9364:37:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81382,"nodeType":"IfStatement","src":"9360:110:167","trueBody":{"id":81381,"nodeType":"Block","src":"9403:67:167","statements":[{"expression":{"arguments":[{"expression":{"id":81377,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9434:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9446:12:167","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85022,"src":"9434:24:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":81376,"name":"_updateStateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82145,"src":"9417:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9417:42:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81380,"nodeType":"ExpressionStatement","src":"9417:42:167"}]}},{"eventCall":{"arguments":[{"id":81384,"name":"PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80878,"src":"9495:48:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81383,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"9484:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9484:60:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81386,"nodeType":"EmitStatement","src":"9479:65:167"},{"documentation":"@dev Return hash of performed state transition.","eventCall":{"arguments":[{"id":81388,"name":"PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80881,"src":"9631:43:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81387,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"9620:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9620:55:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81390,"nodeType":"EmitStatement","src":"9615:60:167"},{"assignments":[81392],"declarations":[{"constant":false,"id":81392,"mutability":"mutable","name":"_stateTransitionHash","nameLocation":"9693:20:167","nodeType":"VariableDeclaration","scope":81417,"src":"9685:28:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9685:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81410,"initialValue":{"arguments":[{"expression":{"id":81395,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9754:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9766:7:167","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"9754:19:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81397,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9787:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9799:12:167","memberName":"newStateHash","nodeType":"MemberAccess","referencedDeclaration":85022,"src":"9787:24:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81399,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9825:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9837:6:167","memberName":"exited","nodeType":"MemberAccess","referencedDeclaration":85024,"src":"9825:18:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":81401,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9857:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9869:9:167","memberName":"inheritor","nodeType":"MemberAccess","referencedDeclaration":85026,"src":"9857:21:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81403,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9892:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9904:14:167","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"9892:26:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"id":81405,"name":"_transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81264,"src":"9932:11:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":81406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9944:26:167","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85031,"src":"9932:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":81407,"name":"valueClaimsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81328,"src":"9984:15:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":81408,"name":"messagesHashesHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81313,"src":"10013:18:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81393,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9716:4:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":81394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9721:19:167","memberName":"stateTransitionHash","nodeType":"MemberAccess","referencedDeclaration":85302,"src":"9716:24:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_bytes32_$_t_bool_$_t_address_$_t_uint128_$_t_bool_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,bytes32,bool,address,uint128,bool,bytes32,bytes32) pure returns (bytes32)"}},"id":81409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9716:325:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9685:356:167"},{"eventCall":{"arguments":[{"id":81412,"name":"PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80884,"src":"10067:42:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81411,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80888,"src":"10056:10:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":81413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10056:54:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81414,"nodeType":"EmitStatement","src":"10051:59:167"},{"expression":{"id":81415,"name":"_stateTransitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81392,"src":"10127:20:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81270,"id":81416,"nodeType":"Return","src":"10120:27:167"}]},"baseFunctions":[73657],"functionSelector":"084f443a","implemented":true,"kind":"function","modifiers":[{"id":81267,"kind":"modifierInvocation","modifierName":{"id":81266,"name":"onlyRouter","nameLocations":["7628:10:167"],"nodeType":"IdentifierPath","referencedDeclaration":80989,"src":"7628:10:167"},"nodeType":"ModifierInvocation","src":"7628:10:167"}],"name":"performStateTransition","nameLocation":"7521:22:167","parameters":{"id":81265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81264,"mutability":"mutable","name":"_transition","nameLocation":"7574:11:167","nodeType":"VariableDeclaration","scope":81418,"src":"7544:41:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":81263,"nodeType":"UserDefinedTypeName","pathNode":{"id":81262,"name":"Gear.StateTransition","nameLocations":["7544:4:167","7549:15:167"],"nodeType":"IdentifierPath","referencedDeclaration":85040,"src":"7544:20:167"},"referencedDeclaration":85040,"src":"7544:20:167","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"src":"7543:43:167"},"returnParameters":{"id":81270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81418,"src":"7656:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7656:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7655:9:167"},"scope":82255,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":81450,"nodeType":"FunctionDefinition","src":"10184:409:167","nodes":[],"body":{"id":81449,"nodeType":"Block","src":"10272:321:167","nodes":[],"statements":[{"assignments":[81428],"declarations":[{"constant":false,"id":81428,"mutability":"mutable","name":"balance","nameLocation":"10290:7:167","nodeType":"VariableDeclaration","scope":81449,"src":"10282:15:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81427,"name":"uint256","nodeType":"ElementaryTypeName","src":"10282:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81434,"initialValue":{"expression":{"arguments":[{"id":81431,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10308:4:167","typeDescriptions":{"typeIdentifier":"t_contract$_MirrorWithInstrumentation_$82255","typeString":"contract MirrorWithInstrumentation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MirrorWithInstrumentation_$82255","typeString":"contract MirrorWithInstrumentation"}],"id":81430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10300:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81429,"name":"address","nodeType":"ElementaryTypeName","src":"10300:7:167","typeDescriptions":{}}},"id":81432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10300:13:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10314:7:167","memberName":"balance","nodeType":"MemberAccess","src":"10300:21:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10282:39:167"},{"assignments":[81436],"declarations":[{"constant":false,"id":81436,"mutability":"mutable","name":"balance128","nameLocation":"10489:10:167","nodeType":"VariableDeclaration","scope":81449,"src":"10481:18:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81435,"name":"uint128","nodeType":"ElementaryTypeName","src":"10481:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":81441,"initialValue":{"arguments":[{"id":81439,"name":"balance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81428,"src":"10510:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10502:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":81437,"name":"uint128","nodeType":"ElementaryTypeName","src":"10502:7:167","typeDescriptions":{}}},"id":81440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10502:16:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10481:37:167"},{"expression":{"components":[{"id":81442,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81436,"src":"10536:10:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"arguments":[{"id":81444,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80836,"src":"10563:9:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81445,"name":"balance128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81436,"src":"10574:10:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81443,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82195,"src":"10548:14:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10548:37:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81447,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10535:51:167","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"functionReturnParameters":81426,"id":81448,"nodeType":"Return","src":"10528:58:167"}]},"implemented":true,"kind":"function","modifiers":[{"id":81421,"kind":"modifierInvocation","modifierName":{"id":81420,"name":"onlyIfExited","nameLocations":["10235:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":80971,"src":"10235:12:167"},"nodeType":"ModifierInvocation","src":"10235:12:167"}],"name":"_transferLockedValueToInheritor","nameLocation":"10193:31:167","parameters":{"id":81419,"nodeType":"ParameterList","parameters":[],"src":"10224:2:167"},"returnParameters":{"id":81426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81450,"src":"10257:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81422,"name":"uint128","nodeType":"ElementaryTypeName","src":"10257:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":81425,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81450,"src":"10266:4:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81424,"name":"bool","nodeType":"ElementaryTypeName","src":"10266:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10256:15:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81498,"nodeType":"FunctionDefinition","src":"10599:599:167","nodes":[],"body":{"id":81497,"nodeType":"Block","src":"10772:426:167","nodes":[],"statements":[{"assignments":[81464],"declarations":[{"constant":false,"id":81464,"mutability":"mutable","name":"_value","nameLocation":"10790:6:167","nodeType":"VariableDeclaration","scope":81497,"src":"10782:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":81463,"name":"uint128","nodeType":"ElementaryTypeName","src":"10782:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":81470,"initialValue":{"arguments":[{"expression":{"id":81467,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"10807:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10811:5:167","memberName":"value","nodeType":"MemberAccess","src":"10807:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10799:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":81465,"name":"uint128","nodeType":"ElementaryTypeName","src":"10799:7:167","typeDescriptions":{}}},"id":81469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10799:18:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"10782:35:167"},{"expression":{"arguments":[{"id":81472,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81464,"src":"10845:6:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81471,"name":"_retrievingEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81091,"src":"10828:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10828:24:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81474,"nodeType":"ExpressionStatement","src":"10828:24:167"},{"assignments":[81476],"declarations":[{"constant":false,"id":81476,"mutability":"mutable","name":"_nonce","nameLocation":"10871:6:167","nodeType":"VariableDeclaration","scope":81497,"src":"10863:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81475,"name":"uint256","nodeType":"ElementaryTypeName","src":"10863:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81478,"initialValue":{"id":81477,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80830,"src":"10880:5:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10863:22:167"},{"assignments":[81480],"declarations":[{"constant":false,"id":81480,"mutability":"mutable","name":"id","nameLocation":"10903:2:167","nodeType":"VariableDeclaration","scope":81497,"src":"10895:10:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81479,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10895:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81481,"nodeType":"VariableDeclarationStatement","src":"10895:10:167"},{"AST":{"nativeSrc":"10940:129:167","nodeType":"YulBlock","src":"10940:129:167","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"10961:4:167","nodeType":"YulLiteral","src":"10961:4:167","type":"","value":"0x00"},{"arguments":[{"kind":"number","nativeSrc":"10971:2:167","nodeType":"YulLiteral","src":"10971:2:167","type":"","value":"96"},{"arguments":[],"functionName":{"name":"address","nativeSrc":"10975:7:167","nodeType":"YulIdentifier","src":"10975:7:167"},"nativeSrc":"10975:9:167","nodeType":"YulFunctionCall","src":"10975:9:167"}],"functionName":{"name":"shl","nativeSrc":"10967:3:167","nodeType":"YulIdentifier","src":"10967:3:167"},"nativeSrc":"10967:18:167","nodeType":"YulFunctionCall","src":"10967:18:167"}],"functionName":{"name":"mstore","nativeSrc":"10954:6:167","nodeType":"YulIdentifier","src":"10954:6:167"},"nativeSrc":"10954:32:167","nodeType":"YulFunctionCall","src":"10954:32:167"},"nativeSrc":"10954:32:167","nodeType":"YulExpressionStatement","src":"10954:32:167"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"11006:4:167","nodeType":"YulLiteral","src":"11006:4:167","type":"","value":"0x14"},{"name":"_nonce","nativeSrc":"11012:6:167","nodeType":"YulIdentifier","src":"11012:6:167"}],"functionName":{"name":"mstore","nativeSrc":"10999:6:167","nodeType":"YulIdentifier","src":"10999:6:167"},"nativeSrc":"10999:20:167","nodeType":"YulFunctionCall","src":"10999:20:167"},"nativeSrc":"10999:20:167","nodeType":"YulExpressionStatement","src":"10999:20:167"},{"nativeSrc":"11032:27:167","nodeType":"YulAssignment","src":"11032:27:167","value":{"arguments":[{"kind":"number","nativeSrc":"11048:4:167","nodeType":"YulLiteral","src":"11048:4:167","type":"","value":"0x00"},{"kind":"number","nativeSrc":"11054:4:167","nodeType":"YulLiteral","src":"11054:4:167","type":"","value":"0x34"}],"functionName":{"name":"keccak256","nativeSrc":"11038:9:167","nodeType":"YulIdentifier","src":"11038:9:167"},"nativeSrc":"11038:21:167","nodeType":"YulFunctionCall","src":"11038:21:167"},"variableNames":[{"name":"id","nativeSrc":"11032:2:167","nodeType":"YulIdentifier","src":"11032:2:167"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81476,"isOffset":false,"isSlot":false,"src":"11012:6:167","valueSize":1},{"declaration":81480,"isOffset":false,"isSlot":false,"src":"11032:2:167","valueSize":1}],"flags":["memory-safe"],"id":81482,"nodeType":"InlineAssembly","src":"10915:154:167"},{"expression":{"id":81484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11078:7:167","subExpression":{"id":81483,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80830,"src":"11078:5:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81485,"nodeType":"ExpressionStatement","src":"11078:7:167"},{"eventCall":{"arguments":[{"id":81487,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81480,"src":"11126:2:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"11130:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11134:6:167","memberName":"sender","nodeType":"MemberAccess","src":"11130:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81490,"name":"_payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81452,"src":"11142:8:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":81491,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81464,"src":"11152:6:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"id":81492,"name":"_callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81454,"src":"11160:10:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81486,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73454,"src":"11101:24:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":81493,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11101:70:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81494,"nodeType":"EmitStatement","src":"11096:75:167"},{"expression":{"id":81495,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81480,"src":"11189:2:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81462,"id":81496,"nodeType":"Return","src":"11182:9:167"}]},"implemented":true,"kind":"function","modifiers":[{"id":81457,"kind":"modifierInvocation","modifierName":{"id":81456,"name":"onlyIfActive","nameLocations":["10687:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":80952,"src":"10687:12:167"},"nodeType":"ModifierInvocation","src":"10687:12:167"},{"id":81459,"kind":"modifierInvocation","modifierName":{"id":81458,"name":"onlyAfterInitMessageOrInitializer","nameLocations":["10708:33:167"],"nodeType":"IdentifierPath","referencedDeclaration":80927,"src":"10708:33:167"},"nodeType":"ModifierInvocation","src":"10708:33:167"}],"name":"_sendMessage","nameLocation":"10608:12:167","parameters":{"id":81455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81452,"mutability":"mutable","name":"_payload","nameLocation":"10636:8:167","nodeType":"VariableDeclaration","scope":81498,"src":"10621:23:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":81451,"name":"bytes","nodeType":"ElementaryTypeName","src":"10621:5:167","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":81454,"mutability":"mutable","name":"_callReply","nameLocation":"10651:10:167","nodeType":"VariableDeclaration","scope":81498,"src":"10646:15:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81453,"name":"bool","nodeType":"ElementaryTypeName","src":"10646:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10620:42:167"},"returnParameters":{"id":81462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81498,"src":"10759:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81460,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10759:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10758:9:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81594,"nodeType":"FunctionDefinition","src":"11406:1043:167","nodes":[],"body":{"id":81593,"nodeType":"Block","src":"11490:959:167","nodes":[],"statements":[{"assignments":[81508],"declarations":[{"constant":false,"id":81508,"mutability":"mutable","name":"messagesLen","nameLocation":"11508:11:167","nodeType":"VariableDeclaration","scope":81593,"src":"11500:19:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81507,"name":"uint256","nodeType":"ElementaryTypeName","src":"11500:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81511,"initialValue":{"expression":{"id":81509,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81502,"src":"11522:9:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":81510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11532:6:167","memberName":"length","nodeType":"MemberAccess","src":"11522:16:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11500:38:167"},{"assignments":[81513],"declarations":[{"constant":false,"id":81513,"mutability":"mutable","name":"messagesHashesSize","nameLocation":"11556:18:167","nodeType":"VariableDeclaration","scope":81593,"src":"11548:26:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81512,"name":"uint256","nodeType":"ElementaryTypeName","src":"11548:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81517,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81514,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81508,"src":"11577:11:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11591:2:167","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11577:16:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11548:45:167"},{"assignments":[81519],"declarations":[{"constant":false,"id":81519,"mutability":"mutable","name":"messagesHashesMemPtr","nameLocation":"11611:20:167","nodeType":"VariableDeclaration","scope":81593,"src":"11603:28:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81518,"name":"uint256","nodeType":"ElementaryTypeName","src":"11603:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81524,"initialValue":{"arguments":[{"id":81522,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"11650:18:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81520,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"11634:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":81521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11641:8:167","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"11634:15:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11634:35:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11603:66:167"},{"assignments":[81526],"declarations":[{"constant":false,"id":81526,"mutability":"mutable","name":"offset","nameLocation":"11687:6:167","nodeType":"VariableDeclaration","scope":81593,"src":"11679:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81525,"name":"uint256","nodeType":"ElementaryTypeName","src":"11679:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81528,"initialValue":{"hexValue":"30","id":81527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11696:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11679:18:167"},{"body":{"id":81584,"nodeType":"Block","src":"11750:596:167","statements":[{"assignments":[81543],"declarations":[{"constant":false,"id":81543,"mutability":"mutable","name":"message","nameLocation":"11786:7:167","nodeType":"VariableDeclaration","scope":81584,"src":"11764:29:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":81542,"nodeType":"UserDefinedTypeName","pathNode":{"id":81541,"name":"Gear.Message","nameLocations":["11764:4:167","11769:7:167"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"11764:12:167"},"referencedDeclaration":84999,"src":"11764:12:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"id":81547,"initialValue":{"baseExpression":{"id":81544,"name":"_messages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81502,"src":"11796:9:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message calldata[] calldata"}},"id":81546,"indexExpression":{"id":81545,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"11806:1:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11796:12:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"nodeType":"VariableDeclarationStatement","src":"11764:44:167"},{"assignments":[81549],"declarations":[{"constant":false,"id":81549,"mutability":"mutable","name":"messageHash","nameLocation":"11876:11:167","nodeType":"VariableDeclaration","scope":81584,"src":"11868:19:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81548,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11868:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81554,"initialValue":{"arguments":[{"id":81552,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81543,"src":"11907:7:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"expression":{"id":81550,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"11890:4:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":81551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11895:11:167","memberName":"messageHash","nodeType":"MemberAccess","referencedDeclaration":85245,"src":"11890:16:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Message_$84999_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.Message memory) pure returns (bytes32)"}},"id":81553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11890:25:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11868:47:167"},{"expression":{"arguments":[{"id":81558,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81519,"src":"12017:20:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81559,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81526,"src":"12039:6:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81560,"name":"messageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81549,"src":"12047:11:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":81555,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"11991:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":81557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11998:18:167","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"11991:25:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":81561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11991:68:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81562,"nodeType":"ExpressionStatement","src":"11991:68:167"},{"id":81567,"nodeType":"UncheckedBlock","src":"12073:55:167","statements":[{"expression":{"id":81565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81563,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81526,"src":"12101:6:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":81564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12111:2:167","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12101:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81566,"nodeType":"ExpressionStatement","src":"12101:12:167"}]},{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":81568,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81543,"src":"12178:7:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12186:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"12178:20:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12199:2:167","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85015,"src":"12178:23:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12205:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12178:28:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81582,"nodeType":"Block","src":"12277:59:167","statements":[{"expression":{"arguments":[{"id":81579,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81543,"src":"12313:7:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":81578,"name":"_sendReplyMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81987,"src":"12295:17:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$84999_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":81580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:26:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81581,"nodeType":"ExpressionStatement","src":"12295:26:167"}]},"id":81583,"nodeType":"IfStatement","src":"12174:162:167","trueBody":{"id":81577,"nodeType":"Block","src":"12208:63:167","statements":[{"expression":{"arguments":[{"id":81574,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81543,"src":"12248:7:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":81573,"name":"_sendMailboxedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81648,"src":"12226:21:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$84999_calldata_ptr_$returns$__$","typeString":"function (struct Gear.Message calldata)"}},"id":81575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12226:30:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81576,"nodeType":"ExpressionStatement","src":"12226:30:167"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81533,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"11728:1:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81534,"name":"messagesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81508,"src":"11732:11:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11728:15:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81585,"initializationExpression":{"assignments":[81530],"declarations":[{"constant":false,"id":81530,"mutability":"mutable","name":"i","nameLocation":"11721:1:167","nodeType":"VariableDeclaration","scope":81585,"src":"11713:9:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81529,"name":"uint256","nodeType":"ElementaryTypeName","src":"11713:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81532,"initialValue":{"hexValue":"30","id":81531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11725:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11713:13:167"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":81537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11745:3:167","subExpression":{"id":81536,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"11745:1:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81538,"nodeType":"ExpressionStatement","src":"11745:3:167"},"nodeType":"ForStatement","src":"11708:638:167"},{"expression":{"arguments":[{"id":81588,"name":"messagesHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81519,"src":"12398:20:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":81589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12420:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81590,"name":"messagesHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"12423:18:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81586,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"12363:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":81587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12370:27:167","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"12363:34:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":81591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12363:79:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81506,"id":81592,"nodeType":"Return","src":"12356:86:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMessages","nameLocation":"11415:13:167","parameters":{"id":81503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81502,"mutability":"mutable","name":"_messages","nameLocation":"11453:9:167","nodeType":"VariableDeclaration","scope":81594,"src":"11429:33:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.Message[]"},"typeName":{"baseType":{"id":81500,"nodeType":"UserDefinedTypeName","pathNode":{"id":81499,"name":"Gear.Message","nameLocations":["11429:4:167","11434:7:167"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"11429:12:167"},"referencedDeclaration":84999,"src":"11429:12:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"id":81501,"nodeType":"ArrayTypeName","src":"11429:14:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Message_$84999_storage_$dyn_storage_ptr","typeString":"struct Gear.Message[]"}},"visibility":"internal"}],"src":"11428:35:167"},"returnParameters":{"id":81506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81505,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81594,"src":"11481:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81504,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11481:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11480:9:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81648,"nodeType":"FunctionDefinition","src":"12508:657:167","nodes":[],"body":{"id":81647,"nodeType":"Block","src":"12579:586:167","nodes":[],"statements":[{"condition":{"id":81604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12593:37:167","subExpression":{"arguments":[{"id":81602,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12621:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}],"id":81601,"name":"_tryParseAndEmitSailsEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81856,"src":"12594:26:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Message_$84999_calldata_ptr_$returns$_t_bool_$","typeString":"function (struct Gear.Message calldata) returns (bool)"}},"id":81603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12594:36:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81646,"nodeType":"IfStatement","src":"12589:570:167","trueBody":{"id":81645,"nodeType":"Block","src":"12632:527:167","statements":[{"condition":{"expression":{"id":81605,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12650:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12659:4:167","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":84998,"src":"12650:13:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81633,"nodeType":"IfStatement","src":"12646:407:167","trueBody":{"id":81632,"nodeType":"Block","src":"12665:388:167","statements":[{"assignments":[81608,null],"declarations":[{"constant":false,"id":81608,"mutability":"mutable","name":"success","nameLocation":"12689:7:167","nodeType":"VariableDeclaration","scope":81632,"src":"12684:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81607,"name":"bool","nodeType":"ElementaryTypeName","src":"12684:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":81617,"initialValue":{"arguments":[{"expression":{"id":81614,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12741:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12750:7:167","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"12741:16:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"expression":{"id":81609,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12701:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12710:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"12701:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12722:4:167","memberName":"call","nodeType":"MemberAccess","src":"12701:25:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":81613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":81612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12732:7:167","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"}],"src":"12701:39:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":81616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12701:57:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"12683:75:167"},{"condition":{"id":81619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12781:8:167","subExpression":{"id":81618,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81608,"src":"12782:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81631,"nodeType":"IfStatement","src":"12777:262:167","trueBody":{"id":81630,"nodeType":"Block","src":"12791:248:167","statements":[{"documentation":"@dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":81621,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12941:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12950:2:167","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84987,"src":"12941:11:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81623,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12954:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12963:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"12954:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81625,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"12976:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12985:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"12976:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81620,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73502,"src":"12923:17:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":81627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12923:68:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81628,"nodeType":"EmitStatement","src":"12918:73:167"},{"functionReturnParameters":81600,"id":81629,"nodeType":"Return","src":"13014:7:167"}]}}]}},{"eventCall":{"arguments":[{"expression":{"id":81635,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"13080:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13089:2:167","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84987,"src":"13080:11:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81637,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"13093:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13102:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"13093:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81639,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"13115:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13124:7:167","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"13115:16:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81641,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81598,"src":"13133:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13142:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"13133:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81634,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73493,"src":"13072:7:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":81643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13072:76:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81644,"nodeType":"EmitStatement","src":"13067:81:167"}]}}]},"documentation":{"id":81595,"nodeType":"StructuredDocumentation","src":"12455:48:167","text":"@dev Value never sent since goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendMailboxedMessage","nameLocation":"12517:21:167","parameters":{"id":81599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81598,"mutability":"mutable","name":"_message","nameLocation":"12561:8:167","nodeType":"VariableDeclaration","scope":81648,"src":"12539:30:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":81597,"nodeType":"UserDefinedTypeName","pathNode":{"id":81596,"name":"Gear.Message","nameLocations":["12539:4:167","12544:7:167"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"12539:12:167"},"referencedDeclaration":84999,"src":"12539:12:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"12538:32:167"},"returnParameters":{"id":81600,"nodeType":"ParameterList","parameters":[],"src":"12579:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81856,"nodeType":"FunctionDefinition","src":"13285:4292:167","nodes":[],"body":{"id":81855,"nodeType":"Block","src":"13376:4201:167","nodes":[],"statements":[{"assignments":[81658],"declarations":[{"constant":false,"id":81658,"mutability":"mutable","name":"payload","nameLocation":"13401:7:167","nodeType":"VariableDeclaration","scope":81855,"src":"13386:22:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":81657,"name":"bytes","nodeType":"ElementaryTypeName","src":"13386:5:167","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":81661,"initialValue":{"expression":{"id":81659,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81652,"src":"13411:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13420:7:167","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"13411:16:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"13386:41:167"},{"condition":{"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14004:86:167","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81662,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81652,"src":"14006:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14015:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"14006:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":81664,"name":"ETH_EVENT_ADDR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80821,"src":"14030:14:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14006:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":81669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81666,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81652,"src":"14048:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14057:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"14048:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14066:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14048:19:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14006:61:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81671,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81658,"src":"14071:7:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14079:6:167","memberName":"length","nodeType":"MemberAccess","src":"14071:14:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14088:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14071:18:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14006:83:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81676,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14005:85:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81681,"nodeType":"IfStatement","src":"14000:129:167","trueBody":{"id":81680,"nodeType":"Block","src":"14092:37:167","statements":[{"expression":{"hexValue":"66616c7365","id":81678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14113:5:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":81656,"id":81679,"nodeType":"Return","src":"14106:12:167"}]}},{"assignments":[81683],"declarations":[{"constant":false,"id":81683,"mutability":"mutable","name":"topicsLength","nameLocation":"14147:12:167","nodeType":"VariableDeclaration","scope":81855,"src":"14139:20:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81682,"name":"uint256","nodeType":"ElementaryTypeName","src":"14139:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81684,"nodeType":"VariableDeclarationStatement","src":"14139:20:167"},{"AST":{"nativeSrc":"14194:187:167","nodeType":"YulBlock","src":"14194:187:167","statements":[{"nativeSrc":"14317:54:167","nodeType":"YulAssignment","src":"14317:54:167","value":{"arguments":[{"kind":"number","nativeSrc":"14337:3:167","nodeType":"YulLiteral","src":"14337:3:167","type":"","value":"248"},{"arguments":[{"name":"payload.offset","nativeSrc":"14355:14:167","nodeType":"YulIdentifier","src":"14355:14:167"}],"functionName":{"name":"calldataload","nativeSrc":"14342:12:167","nodeType":"YulIdentifier","src":"14342:12:167"},"nativeSrc":"14342:28:167","nodeType":"YulFunctionCall","src":"14342:28:167"}],"functionName":{"name":"shr","nativeSrc":"14333:3:167","nodeType":"YulIdentifier","src":"14333:3:167"},"nativeSrc":"14333:38:167","nodeType":"YulFunctionCall","src":"14333:38:167"},"variableNames":[{"name":"topicsLength","nativeSrc":"14317:12:167","nodeType":"YulIdentifier","src":"14317:12:167"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81658,"isOffset":true,"isSlot":false,"src":"14355:14:167","suffix":"offset","valueSize":1},{"declaration":81683,"isOffset":false,"isSlot":false,"src":"14317:12:167","valueSize":1}],"flags":["memory-safe"],"id":81685,"nodeType":"InlineAssembly","src":"14169:212:167"},{"condition":{"id":81694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14395:41:167","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81686,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"14397:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"31","id":81687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14413:1:167","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14397:17:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81689,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"14418:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"34","id":81690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14434:1:167","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14418:17:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14397:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14396:40:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81698,"nodeType":"IfStatement","src":"14391:84:167","trueBody":{"id":81697,"nodeType":"Block","src":"14438:37:167","statements":[{"expression":{"hexValue":"66616c7365","id":81695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14459:5:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":81656,"id":81696,"nodeType":"Return","src":"14452:12:167"}]}},{"assignments":[81700],"declarations":[{"constant":false,"id":81700,"mutability":"mutable","name":"topicsLengthInBytes","nameLocation":"14493:19:167","nodeType":"VariableDeclaration","scope":81855,"src":"14485:27:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81699,"name":"uint256","nodeType":"ElementaryTypeName","src":"14485:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81701,"nodeType":"VariableDeclarationStatement","src":"14485:27:167"},{"id":81710,"nodeType":"UncheckedBlock","src":"14522:78:167","statements":[{"expression":{"id":81708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81702,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81700,"src":"14546:19:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":81703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14568:1:167","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81704,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"14572:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":81705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14587:2:167","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14572:17:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14568:21:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14546:43:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81709,"nodeType":"ExpressionStatement","src":"14546:43:167"}]},{"condition":{"id":81716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14614:40:167","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81711,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81658,"src":"14616:7:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14624:6:167","memberName":"length","nodeType":"MemberAccess","src":"14616:14:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":81713,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81700,"src":"14634:19:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14616:37:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81715,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14615:39:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81720,"nodeType":"IfStatement","src":"14610:83:167","trueBody":{"id":81719,"nodeType":"Block","src":"14656:37:167","statements":[{"expression":{"hexValue":"66616c7365","id":81717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14677:5:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":81656,"id":81718,"nodeType":"Return","src":"14670:12:167"}]}},{"assignments":[81722],"declarations":[{"constant":false,"id":81722,"mutability":"mutable","name":"topic1","nameLocation":"14767:6:167","nodeType":"VariableDeclaration","scope":81855,"src":"14759:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81721,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14759:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81723,"nodeType":"VariableDeclarationStatement","src":"14759:14:167"},{"AST":{"nativeSrc":"14808:70:167","nodeType":"YulBlock","src":"14808:70:167","statements":[{"nativeSrc":"14822:46:167","nodeType":"YulAssignment","src":"14822:46:167","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"14849:14:167","nodeType":"YulIdentifier","src":"14849:14:167"},{"kind":"number","nativeSrc":"14865:1:167","nodeType":"YulLiteral","src":"14865:1:167","type":"","value":"1"}],"functionName":{"name":"add","nativeSrc":"14845:3:167","nodeType":"YulIdentifier","src":"14845:3:167"},"nativeSrc":"14845:22:167","nodeType":"YulFunctionCall","src":"14845:22:167"}],"functionName":{"name":"calldataload","nativeSrc":"14832:12:167","nodeType":"YulIdentifier","src":"14832:12:167"},"nativeSrc":"14832:36:167","nodeType":"YulFunctionCall","src":"14832:36:167"},"variableNames":[{"name":"topic1","nativeSrc":"14822:6:167","nodeType":"YulIdentifier","src":"14822:6:167"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81658,"isOffset":true,"isSlot":false,"src":"14849:14:167","suffix":"offset","valueSize":1},{"declaration":81722,"isOffset":false,"isSlot":false,"src":"14822:6:167","valueSize":1}],"flags":["memory-safe"],"id":81724,"nodeType":"InlineAssembly","src":"14783:95:167"},{"condition":{"id":81795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"15434:763:167","subExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":81733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81725,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15449:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81726,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73441,"src":"15459:12:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":81727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15472:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15459:21:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15449:31:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81729,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15496:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81730,"name":"MessageQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73454,"src":"15506:24:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$_t_bool_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128,bool)"}},"id":81731,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15531:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15506:33:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15496:43:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:90:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81734,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15555:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81735,"name":"ReplyQueueingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73465,"src":"15565:22:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":81736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15588:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15565:31:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15555:41:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:147:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81742,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81739,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15612:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81740,"name":"ValueClaimingRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73472,"src":"15622:22:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":81741,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15645:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15622:31:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15612:41:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:204:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81744,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15669:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81745,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73477,"src":"15679:26:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15706:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15679:35:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15669:45:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:265:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81749,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15730:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81750,"name":"ExecutableBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73482,"src":"15740:31:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":81751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15772:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15740:40:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15730:50:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:331:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81754,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15796:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81755,"name":"Message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73493,"src":"15806:7:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,bytes memory,uint128)"}},"id":81756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15814:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15806:16:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15796:26:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:373:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81759,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15838:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81760,"name":"MessageCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73502,"src":"15848:17:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint128_$returns$__$","typeString":"function (bytes32,address,uint128)"}},"id":81761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15866:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15848:26:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15838:36:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:425:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81764,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15890:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81765,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"15900:5:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":81766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15906:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15900:14:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15890:24:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:465:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81769,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15930:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81770,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73522,"src":"15940:15:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":81771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15956:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15940:24:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15930:34:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:515:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81774,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"15980:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81775,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"15990:12:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16003:8:167","memberName":"selector","nodeType":"MemberAccess","src":"15990:21:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15980:31:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:562:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81779,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"16027:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81780,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"16037:36:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81781,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16074:8:167","memberName":"selector","nodeType":"MemberAccess","src":"16037:45:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16027:55:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:633:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81784,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"16098:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81785,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"16108:19:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16128:8:167","memberName":"selector","nodeType":"MemberAccess","src":"16108:28:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16098:38:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:687:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81789,"name":"topic1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81722,"src":"16152:6:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":81790,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"16162:16:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":81791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16179:8:167","memberName":"selector","nodeType":"MemberAccess","src":"16162:25:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16152:35:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15449:738:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":81794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15435:762:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"documentation":" @dev SECURITY:\n Very important check because custom events can match our hashes!\n If we miss even 1 event that is emitted by Mirror, user will be able to fake protocol logic!\n Command to re-generate selectors check:\n ```bash\n grep -Po \" event\\s+\\K[^(]+\" ethexe/contracts/src/IMirror.sol | xargs -I{} echo \" topic1 != {}.selector &&\" | sed '$ s/ &&$//'\n ```","id":81799,"nodeType":"IfStatement","src":"15430:806:167","trueBody":{"id":81798,"nodeType":"Block","src":"16199:37:167","statements":[{"expression":{"hexValue":"66616c7365","id":81796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16220:5:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":81656,"id":81797,"nodeType":"Return","src":"16213:12:167"}]}},{"assignments":[81801],"declarations":[{"constant":false,"id":81801,"mutability":"mutable","name":"size","nameLocation":"16287:4:167","nodeType":"VariableDeclaration","scope":81855,"src":"16279:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81800,"name":"uint256","nodeType":"ElementaryTypeName","src":"16279:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81802,"nodeType":"VariableDeclarationStatement","src":"16279:12:167"},{"id":81810,"nodeType":"UncheckedBlock","src":"16301:78:167","statements":[{"expression":{"id":81808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81803,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"16325:4:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81804,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81658,"src":"16332:7:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":81805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16340:6:167","memberName":"length","nodeType":"MemberAccess","src":"16332:14:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81806,"name":"topicsLengthInBytes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81700,"src":"16349:19:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16332:36:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16325:43:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81809,"nodeType":"ExpressionStatement","src":"16325:43:167"}]},{"assignments":[81812],"declarations":[{"constant":false,"id":81812,"mutability":"mutable","name":"memPtr","nameLocation":"16397:6:167","nodeType":"VariableDeclaration","scope":81855,"src":"16389:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81811,"name":"uint256","nodeType":"ElementaryTypeName","src":"16389:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81817,"initialValue":{"arguments":[{"id":81815,"name":"size","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81801,"src":"16422:4:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":81813,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"16406:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":81814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16413:8:167","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"16406:15:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16406:21:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16389:38:167"},{"AST":{"nativeSrc":"16462:92:167","nodeType":"YulBlock","src":"16462:92:167","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"16489:6:167","nodeType":"YulIdentifier","src":"16489:6:167"},{"arguments":[{"name":"payload.offset","nativeSrc":"16501:14:167","nodeType":"YulIdentifier","src":"16501:14:167"},{"name":"topicsLengthInBytes","nativeSrc":"16517:19:167","nodeType":"YulIdentifier","src":"16517:19:167"}],"functionName":{"name":"add","nativeSrc":"16497:3:167","nodeType":"YulIdentifier","src":"16497:3:167"},"nativeSrc":"16497:40:167","nodeType":"YulFunctionCall","src":"16497:40:167"},{"name":"size","nativeSrc":"16539:4:167","nodeType":"YulIdentifier","src":"16539:4:167"}],"functionName":{"name":"calldatacopy","nativeSrc":"16476:12:167","nodeType":"YulIdentifier","src":"16476:12:167"},"nativeSrc":"16476:68:167","nodeType":"YulFunctionCall","src":"16476:68:167"},"nativeSrc":"16476:68:167","nodeType":"YulExpressionStatement","src":"16476:68:167"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81812,"isOffset":false,"isSlot":false,"src":"16489:6:167","valueSize":1},{"declaration":81658,"isOffset":true,"isSlot":false,"src":"16501:14:167","suffix":"offset","valueSize":1},{"declaration":81801,"isOffset":false,"isSlot":false,"src":"16539:4:167","valueSize":1},{"declaration":81700,"isOffset":false,"isSlot":false,"src":"16517:19:167","valueSize":1}],"flags":["memory-safe"],"id":81818,"nodeType":"InlineAssembly","src":"16437:117:167"},{"assignments":[81820],"declarations":[{"constant":false,"id":81820,"mutability":"mutable","name":"topic2","nameLocation":"16673:6:167","nodeType":"VariableDeclaration","scope":81855,"src":"16665:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16665:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81821,"nodeType":"VariableDeclarationStatement","src":"16665:14:167"},{"assignments":[81823],"declarations":[{"constant":false,"id":81823,"mutability":"mutable","name":"topic3","nameLocation":"16697:6:167","nodeType":"VariableDeclaration","scope":81855,"src":"16689:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16689:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81824,"nodeType":"VariableDeclarationStatement","src":"16689:14:167"},{"assignments":[81826],"declarations":[{"constant":false,"id":81826,"mutability":"mutable","name":"topic4","nameLocation":"16721:6:167","nodeType":"VariableDeclaration","scope":81855,"src":"16713:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16713:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":81827,"nodeType":"VariableDeclarationStatement","src":"16713:14:167"},{"AST":{"nativeSrc":"16762:191:167","nodeType":"YulBlock","src":"16762:191:167","statements":[{"nativeSrc":"16776:47:167","nodeType":"YulAssignment","src":"16776:47:167","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"16803:14:167","nodeType":"YulIdentifier","src":"16803:14:167"},{"kind":"number","nativeSrc":"16819:2:167","nodeType":"YulLiteral","src":"16819:2:167","type":"","value":"33"}],"functionName":{"name":"add","nativeSrc":"16799:3:167","nodeType":"YulIdentifier","src":"16799:3:167"},"nativeSrc":"16799:23:167","nodeType":"YulFunctionCall","src":"16799:23:167"}],"functionName":{"name":"calldataload","nativeSrc":"16786:12:167","nodeType":"YulIdentifier","src":"16786:12:167"},"nativeSrc":"16786:37:167","nodeType":"YulFunctionCall","src":"16786:37:167"},"variableNames":[{"name":"topic2","nativeSrc":"16776:6:167","nodeType":"YulIdentifier","src":"16776:6:167"}]},{"nativeSrc":"16836:47:167","nodeType":"YulAssignment","src":"16836:47:167","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"16863:14:167","nodeType":"YulIdentifier","src":"16863:14:167"},{"kind":"number","nativeSrc":"16879:2:167","nodeType":"YulLiteral","src":"16879:2:167","type":"","value":"65"}],"functionName":{"name":"add","nativeSrc":"16859:3:167","nodeType":"YulIdentifier","src":"16859:3:167"},"nativeSrc":"16859:23:167","nodeType":"YulFunctionCall","src":"16859:23:167"}],"functionName":{"name":"calldataload","nativeSrc":"16846:12:167","nodeType":"YulIdentifier","src":"16846:12:167"},"nativeSrc":"16846:37:167","nodeType":"YulFunctionCall","src":"16846:37:167"},"variableNames":[{"name":"topic3","nativeSrc":"16836:6:167","nodeType":"YulIdentifier","src":"16836:6:167"}]},{"nativeSrc":"16896:47:167","nodeType":"YulAssignment","src":"16896:47:167","value":{"arguments":[{"arguments":[{"name":"payload.offset","nativeSrc":"16923:14:167","nodeType":"YulIdentifier","src":"16923:14:167"},{"kind":"number","nativeSrc":"16939:2:167","nodeType":"YulLiteral","src":"16939:2:167","type":"","value":"97"}],"functionName":{"name":"add","nativeSrc":"16919:3:167","nodeType":"YulIdentifier","src":"16919:3:167"},"nativeSrc":"16919:23:167","nodeType":"YulFunctionCall","src":"16919:23:167"}],"functionName":{"name":"calldataload","nativeSrc":"16906:12:167","nodeType":"YulIdentifier","src":"16906:12:167"},"nativeSrc":"16906:37:167","nodeType":"YulFunctionCall","src":"16906:37:167"},"variableNames":[{"name":"topic4","nativeSrc":"16896:6:167","nodeType":"YulIdentifier","src":"16896:6:167"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":81658,"isOffset":true,"isSlot":false,"src":"16803:14:167","suffix":"offset","valueSize":1},{"declaration":81658,"isOffset":true,"isSlot":false,"src":"16863:14:167","suffix":"offset","valueSize":1},{"declaration":81658,"isOffset":true,"isSlot":false,"src":"16923:14:167","suffix":"offset","valueSize":1},{"declaration":81820,"isOffset":false,"isSlot":false,"src":"16776:6:167","valueSize":1},{"declaration":81823,"isOffset":false,"isSlot":false,"src":"16836:6:167","valueSize":1},{"declaration":81826,"isOffset":false,"isSlot":false,"src":"16896:6:167","valueSize":1}],"flags":["memory-safe"],"id":81828,"nodeType":"InlineAssembly","src":"16737:216:167"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81829,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"16967:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":81830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16983:1:167","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16967:17:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81834,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"17103:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"32","id":81835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17119:1:167","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"17103:17:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81839,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"17247:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"33","id":81840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17263:1:167","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"17247:17:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81844,"name":"topicsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81683,"src":"17399:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"34","id":81845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17415:1:167","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"17399:17:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81849,"nodeType":"IfStatement","src":"17395:154:167","trueBody":{"id":81848,"nodeType":"Block","src":"17418:131:167","statements":[{"AST":{"nativeSrc":"17457:82:167","nodeType":"YulBlock","src":"17457:82:167","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17480:6:167","nodeType":"YulIdentifier","src":"17480:6:167"},{"name":"size","nativeSrc":"17488:4:167","nodeType":"YulIdentifier","src":"17488:4:167"},{"name":"topic1","nativeSrc":"17494:6:167","nodeType":"YulIdentifier","src":"17494:6:167"},{"name":"topic2","nativeSrc":"17502:6:167","nodeType":"YulIdentifier","src":"17502:6:167"},{"name":"topic3","nativeSrc":"17510:6:167","nodeType":"YulIdentifier","src":"17510:6:167"},{"name":"topic4","nativeSrc":"17518:6:167","nodeType":"YulIdentifier","src":"17518:6:167"}],"functionName":{"name":"log4","nativeSrc":"17475:4:167","nodeType":"YulIdentifier","src":"17475:4:167"},"nativeSrc":"17475:50:167","nodeType":"YulFunctionCall","src":"17475:50:167"},"nativeSrc":"17475:50:167","nodeType":"YulExpressionStatement","src":"17475:50:167"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81812,"isOffset":false,"isSlot":false,"src":"17480:6:167","valueSize":1},{"declaration":81801,"isOffset":false,"isSlot":false,"src":"17488:4:167","valueSize":1},{"declaration":81722,"isOffset":false,"isSlot":false,"src":"17494:6:167","valueSize":1},{"declaration":81820,"isOffset":false,"isSlot":false,"src":"17502:6:167","valueSize":1},{"declaration":81823,"isOffset":false,"isSlot":false,"src":"17510:6:167","valueSize":1},{"declaration":81826,"isOffset":false,"isSlot":false,"src":"17518:6:167","valueSize":1}],"flags":["memory-safe"],"id":81847,"nodeType":"InlineAssembly","src":"17432:107:167"}]}},"id":81850,"nodeType":"IfStatement","src":"17243:306:167","trueBody":{"id":81843,"nodeType":"Block","src":"17266:123:167","statements":[{"AST":{"nativeSrc":"17305:74:167","nodeType":"YulBlock","src":"17305:74:167","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17328:6:167","nodeType":"YulIdentifier","src":"17328:6:167"},{"name":"size","nativeSrc":"17336:4:167","nodeType":"YulIdentifier","src":"17336:4:167"},{"name":"topic1","nativeSrc":"17342:6:167","nodeType":"YulIdentifier","src":"17342:6:167"},{"name":"topic2","nativeSrc":"17350:6:167","nodeType":"YulIdentifier","src":"17350:6:167"},{"name":"topic3","nativeSrc":"17358:6:167","nodeType":"YulIdentifier","src":"17358:6:167"}],"functionName":{"name":"log3","nativeSrc":"17323:4:167","nodeType":"YulIdentifier","src":"17323:4:167"},"nativeSrc":"17323:42:167","nodeType":"YulFunctionCall","src":"17323:42:167"},"nativeSrc":"17323:42:167","nodeType":"YulExpressionStatement","src":"17323:42:167"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81812,"isOffset":false,"isSlot":false,"src":"17328:6:167","valueSize":1},{"declaration":81801,"isOffset":false,"isSlot":false,"src":"17336:4:167","valueSize":1},{"declaration":81722,"isOffset":false,"isSlot":false,"src":"17342:6:167","valueSize":1},{"declaration":81820,"isOffset":false,"isSlot":false,"src":"17350:6:167","valueSize":1},{"declaration":81823,"isOffset":false,"isSlot":false,"src":"17358:6:167","valueSize":1}],"flags":["memory-safe"],"id":81842,"nodeType":"InlineAssembly","src":"17280:99:167"}]}},"id":81851,"nodeType":"IfStatement","src":"17099:450:167","trueBody":{"id":81838,"nodeType":"Block","src":"17122:115:167","statements":[{"AST":{"nativeSrc":"17161:66:167","nodeType":"YulBlock","src":"17161:66:167","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17184:6:167","nodeType":"YulIdentifier","src":"17184:6:167"},{"name":"size","nativeSrc":"17192:4:167","nodeType":"YulIdentifier","src":"17192:4:167"},{"name":"topic1","nativeSrc":"17198:6:167","nodeType":"YulIdentifier","src":"17198:6:167"},{"name":"topic2","nativeSrc":"17206:6:167","nodeType":"YulIdentifier","src":"17206:6:167"}],"functionName":{"name":"log2","nativeSrc":"17179:4:167","nodeType":"YulIdentifier","src":"17179:4:167"},"nativeSrc":"17179:34:167","nodeType":"YulFunctionCall","src":"17179:34:167"},"nativeSrc":"17179:34:167","nodeType":"YulExpressionStatement","src":"17179:34:167"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81812,"isOffset":false,"isSlot":false,"src":"17184:6:167","valueSize":1},{"declaration":81801,"isOffset":false,"isSlot":false,"src":"17192:4:167","valueSize":1},{"declaration":81722,"isOffset":false,"isSlot":false,"src":"17198:6:167","valueSize":1},{"declaration":81820,"isOffset":false,"isSlot":false,"src":"17206:6:167","valueSize":1}],"flags":["memory-safe"],"id":81837,"nodeType":"InlineAssembly","src":"17136:91:167"}]}},"id":81852,"nodeType":"IfStatement","src":"16963:586:167","trueBody":{"id":81833,"nodeType":"Block","src":"16986:107:167","statements":[{"AST":{"nativeSrc":"17025:58:167","nodeType":"YulBlock","src":"17025:58:167","statements":[{"expression":{"arguments":[{"name":"memPtr","nativeSrc":"17048:6:167","nodeType":"YulIdentifier","src":"17048:6:167"},{"name":"size","nativeSrc":"17056:4:167","nodeType":"YulIdentifier","src":"17056:4:167"},{"name":"topic1","nativeSrc":"17062:6:167","nodeType":"YulIdentifier","src":"17062:6:167"}],"functionName":{"name":"log1","nativeSrc":"17043:4:167","nodeType":"YulIdentifier","src":"17043:4:167"},"nativeSrc":"17043:26:167","nodeType":"YulFunctionCall","src":"17043:26:167"},"nativeSrc":"17043:26:167","nodeType":"YulExpressionStatement","src":"17043:26:167"}]},"evmVersion":"osaka","externalReferences":[{"declaration":81812,"isOffset":false,"isSlot":false,"src":"17048:6:167","valueSize":1},{"declaration":81801,"isOffset":false,"isSlot":false,"src":"17056:4:167","valueSize":1},{"declaration":81722,"isOffset":false,"isSlot":false,"src":"17062:6:167","valueSize":1}],"flags":["memory-safe"],"id":81832,"nodeType":"InlineAssembly","src":"17000:83:167"}]}},{"expression":{"hexValue":"74727565","id":81853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17566:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":81656,"id":81854,"nodeType":"Return","src":"17559:11:167"}]},"documentation":{"id":81649,"nodeType":"StructuredDocumentation","src":"13171:109:167","text":"@dev Tries to parse and emit Sails Event. Returns `true` in case of success and `false` in case of error."},"implemented":true,"kind":"function","modifiers":[],"name":"_tryParseAndEmitSailsEvent","nameLocation":"13294:26:167","parameters":{"id":81653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81652,"mutability":"mutable","name":"_message","nameLocation":"13343:8:167","nodeType":"VariableDeclaration","scope":81856,"src":"13321:30:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":81651,"nodeType":"UserDefinedTypeName","pathNode":{"id":81650,"name":"Gear.Message","nameLocations":["13321:4:167","13326:7:167"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"13321:12:167"},"referencedDeclaration":84999,"src":"13321:12:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"13320:32:167"},"returnParameters":{"id":81656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81856,"src":"13370:4:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81654,"name":"bool","nodeType":"ElementaryTypeName","src":"13370:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13369:6:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":81987,"nodeType":"FunctionDefinition","src":"17652:1606:167","nodes":[],"body":{"id":81986,"nodeType":"Block","src":"17719:1539:167","nodes":[],"statements":[{"condition":{"expression":{"id":81863,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"17733:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17742:4:167","memberName":"call","nodeType":"MemberAccess","referencedDeclaration":84998,"src":"17733:13:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81984,"nodeType":"Block","src":"18909:343:167","statements":[{"assignments":[81952],"declarations":[{"constant":false,"id":81952,"mutability":"mutable","name":"transferSuccess","nameLocation":"18928:15:167","nodeType":"VariableDeclaration","scope":81984,"src":"18923:20:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81951,"name":"bool","nodeType":"ElementaryTypeName","src":"18923:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81959,"initialValue":{"arguments":[{"expression":{"id":81954,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18961:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18970:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18961:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81956,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18983:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18992:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18983:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81953,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82195,"src":"18946:14:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18946:52:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18923:75:167"},{"condition":{"id":81961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19016:16:167","subExpression":{"id":81960,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81952,"src":"19017:15:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81970,"nodeType":"IfStatement","src":"19012:117:167","trueBody":{"id":81969,"nodeType":"Block","src":"19034:95:167","statements":[{"eventCall":{"arguments":[{"expression":{"id":81963,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"19077:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19086:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"19077:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81965,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"19099:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19108:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"19099:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81962,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"19057:19:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19057:57:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81968,"nodeType":"EmitStatement","src":"19052:62:167"}]}},{"eventCall":{"arguments":[{"expression":{"id":81972,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"19154:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19163:7:167","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"19154:16:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":81974,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"19172:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19181:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"19172:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":81976,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"19188:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19197:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"19188:21:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19210:2:167","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85015,"src":"19188:24:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":81979,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"19214:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19223:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"19214:21:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19236:4:167","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"19214:26:167","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":81971,"name":"Reply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"19148:5:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (bytes memory,uint128,bytes32,bytes4)"}},"id":81982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19148:93:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81983,"nodeType":"EmitStatement","src":"19143:98:167"}]},"id":81985,"nodeType":"IfStatement","src":"17729:1523:167","trueBody":{"id":81950,"nodeType":"Block","src":"17748:1155:167","statements":[{"assignments":[81866],"declarations":[{"constant":false,"id":81866,"mutability":"mutable","name":"isSuccessReply","nameLocation":"17767:14:167","nodeType":"VariableDeclaration","scope":81950,"src":"17762:19:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81865,"name":"bool","nodeType":"ElementaryTypeName","src":"17762:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81874,"initialValue":{"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":81873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":81867,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"17784:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17793:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"17784:21:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17806:4:167","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"17784:26:167","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":81871,"indexExpression":{"hexValue":"30","id":81870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17811:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17784:29:167","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17817:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17784:34:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"17762:56:167"},{"assignments":[81876],"declarations":[{"constant":false,"id":81876,"mutability":"mutable","name":"payload","nameLocation":"17846:7:167","nodeType":"VariableDeclaration","scope":81950,"src":"17833:20:167","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":81875,"name":"bytes","nodeType":"ElementaryTypeName","src":"17833:5:167","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":81877,"nodeType":"VariableDeclarationStatement","src":"17833:20:167"},{"condition":{"id":81878,"name":"isSuccessReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81866,"src":"17872:14:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81901,"nodeType":"Block","src":"17953:348:167","statements":[{"expression":{"id":81899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81885,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81876,"src":"18123:7:167","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":81888,"name":"ICallbacks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73043,"src":"18177:10:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ICallbacks_$73043_$","typeString":"type(contract ICallbacks)"}},"id":81889,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18188:12:167","memberName":"onErrorReply","nodeType":"MemberAccess","referencedDeclaration":73042,"src":"18177:23:167","typeDescriptions":{"typeIdentifier":"t_function_declaration_payable$_t_bytes32_$_t_bytes_calldata_ptr_$_t_bytes4_$returns$__$","typeString":"function ICallbacks.onErrorReply(bytes32,bytes calldata,bytes4) payable"}},"id":81890,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18201:8:167","memberName":"selector","nodeType":"MemberAccess","src":"18177:32:167","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"expression":{"id":81891,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18211:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18220:2:167","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84987,"src":"18211:11:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":81893,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18224:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18233:7:167","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"18224:16:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"expression":{"id":81895,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18242:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18251:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"18242:21:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18264:4:167","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"18242:26:167","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":81886,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18133:3:167","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":81887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18137:18:167","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"18133:22:167","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":81898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18133:153:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"src":"18123:163:167","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":81900,"nodeType":"ExpressionStatement","src":"18123:163:167"}]},"id":81902,"nodeType":"IfStatement","src":"17868:433:167","trueBody":{"id":81884,"nodeType":"Block","src":"17888:59:167","statements":[{"expression":{"id":81882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81879,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81876,"src":"17906:7:167","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":81880,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"17916:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17925:7:167","memberName":"payload","nodeType":"MemberAccess","referencedDeclaration":84991,"src":"17916:16:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"src":"17906:26:167","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":81883,"nodeType":"ExpressionStatement","src":"17906:26:167"}]}},{"assignments":[81904,null],"declarations":[{"constant":false,"id":81904,"mutability":"mutable","name":"success","nameLocation":"18321:7:167","nodeType":"VariableDeclaration","scope":81950,"src":"18316:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81903,"name":"bool","nodeType":"ElementaryTypeName","src":"18316:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":81914,"initialValue":{"arguments":[{"id":81912,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81876,"src":"18396:7:167","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"expression":{"id":81905,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18333:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18342:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18333:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18354:4:167","memberName":"call","nodeType":"MemberAccess","src":"18333:25:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":81911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"3530305f303030","id":81908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18364:7:167","typeDescriptions":{"typeIdentifier":"t_rational_500000_by_1","typeString":"int_const 500000"},"value":"500_000"},{"expression":{"id":81909,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18380:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18389:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18380:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"18333:62:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":81913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18333:71:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"18315:89:167"},{"condition":{"id":81916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18423:8:167","subExpression":{"id":81915,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81904,"src":"18424:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81949,"nodeType":"IfStatement","src":"18419:474:167","trueBody":{"id":81948,"nodeType":"Block","src":"18433:460:167","statements":[{"assignments":[81918],"declarations":[{"constant":false,"id":81918,"mutability":"mutable","name":"transferSuccess","nameLocation":"18456:15:167","nodeType":"VariableDeclaration","scope":81948,"src":"18451:20:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":81917,"name":"bool","nodeType":"ElementaryTypeName","src":"18451:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":81925,"initialValue":{"arguments":[{"expression":{"id":81920,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18489:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18498:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18489:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81922,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18511:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18520:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18511:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81919,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82195,"src":"18474:14:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":81924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18474:52:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18451:75:167"},{"condition":{"id":81927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18548:16:167","subExpression":{"id":81926,"name":"transferSuccess","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81918,"src":"18549:15:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81936,"nodeType":"IfStatement","src":"18544:125:167","trueBody":{"id":81935,"nodeType":"Block","src":"18566:103:167","statements":[{"eventCall":{"arguments":[{"expression":{"id":81929,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18613:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18622:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":84989,"src":"18613:20:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":81931,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18635:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18644:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18635:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":81928,"name":"ReplyTransferFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73543,"src":"18593:19:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":81933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18593:57:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81934,"nodeType":"EmitStatement","src":"18588:62:167"}]}},{"documentation":"@dev In case of failed call, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"expression":{"id":81938,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18809:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18818:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":84993,"src":"18809:14:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":81940,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18825:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18834:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"18825:21:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18847:2:167","memberName":"to","nodeType":"MemberAccess","referencedDeclaration":85015,"src":"18825:24:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"expression":{"id":81943,"name":"_message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81860,"src":"18851:8:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message calldata"}},"id":81944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18860:12:167","memberName":"replyDetails","nodeType":"MemberAccess","referencedDeclaration":84996,"src":"18851:21:167","typeDescriptions":{"typeIdentifier":"t_struct$_ReplyDetails_$85018_calldata_ptr","typeString":"struct Gear.ReplyDetails calldata"}},"id":81945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18873:4:167","memberName":"code","nodeType":"MemberAccess","referencedDeclaration":85017,"src":"18851:26:167","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":81937,"name":"ReplyCallFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73522,"src":"18793:15:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$_t_bytes32_$_t_bytes4_$returns$__$","typeString":"function (uint128,bytes32,bytes4)"}},"id":81946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18793:85:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81947,"nodeType":"EmitStatement","src":"18788:90:167"}]}}]}}]},"documentation":{"id":81857,"nodeType":"StructuredDocumentation","src":"17583:64:167","text":"@dev Non-zero value always sent since never goes to mailbox."},"implemented":true,"kind":"function","modifiers":[],"name":"_sendReplyMessage","nameLocation":"17661:17:167","parameters":{"id":81861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81860,"mutability":"mutable","name":"_message","nameLocation":"17701:8:167","nodeType":"VariableDeclaration","scope":81987,"src":"17679:30:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_calldata_ptr","typeString":"struct Gear.Message"},"typeName":{"id":81859,"nodeType":"UserDefinedTypeName","pathNode":{"id":81858,"name":"Gear.Message","nameLocations":["17679:4:167","17684:7:167"],"nodeType":"IdentifierPath","referencedDeclaration":84999,"src":"17679:12:167"},"referencedDeclaration":84999,"src":"17679:12:167","typeDescriptions":{"typeIdentifier":"t_struct$_Message_$84999_storage_ptr","typeString":"struct Gear.Message"}},"visibility":"internal"}],"src":"17678:32:167"},"returnParameters":{"id":81862,"nodeType":"ParameterList","parameters":[],"src":"17719:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82099,"nodeType":"FunctionDefinition","src":"19361:1017:167","nodes":[],"body":{"id":82098,"nodeType":"Block","src":"19445:933:167","nodes":[],"statements":[{"assignments":[81997],"declarations":[{"constant":false,"id":81997,"mutability":"mutable","name":"claimsLen","nameLocation":"19463:9:167","nodeType":"VariableDeclaration","scope":82098,"src":"19455:17:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81996,"name":"uint256","nodeType":"ElementaryTypeName","src":"19455:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82000,"initialValue":{"expression":{"id":81998,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81991,"src":"19475:7:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":81999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19483:6:167","memberName":"length","nodeType":"MemberAccess","src":"19475:14:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19455:34:167"},{"assignments":[82002],"declarations":[{"constant":false,"id":82002,"mutability":"mutable","name":"claimsHashesSize","nameLocation":"19507:16:167","nodeType":"VariableDeclaration","scope":82098,"src":"19499:24:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82001,"name":"uint256","nodeType":"ElementaryTypeName","src":"19499:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82006,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82003,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81997,"src":"19526:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":82004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19538:2:167","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19526:14:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19499:41:167"},{"assignments":[82008],"declarations":[{"constant":false,"id":82008,"mutability":"mutable","name":"claimsHashesMemPtr","nameLocation":"19558:18:167","nodeType":"VariableDeclaration","scope":82098,"src":"19550:26:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82007,"name":"uint256","nodeType":"ElementaryTypeName","src":"19550:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82013,"initialValue":{"arguments":[{"id":82011,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82002,"src":"19595:16:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82009,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"19579:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":82010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19586:8:167","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"19579:15:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":82012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19579:33:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19550:62:167"},{"assignments":[82015],"declarations":[{"constant":false,"id":82015,"mutability":"mutable","name":"offset","nameLocation":"19630:6:167","nodeType":"VariableDeclaration","scope":82098,"src":"19622:14:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82014,"name":"uint256","nodeType":"ElementaryTypeName","src":"19622:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82017,"initialValue":{"hexValue":"30","id":82016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19639:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19622:18:167"},{"body":{"id":82089,"nodeType":"Block","src":"19691:588:167","statements":[{"assignments":[82032],"declarations":[{"constant":false,"id":82032,"mutability":"mutable","name":"claim","nameLocation":"19730:5:167","nodeType":"VariableDeclaration","scope":82089,"src":"19705:30:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim"},"typeName":{"id":82031,"nodeType":"UserDefinedTypeName","pathNode":{"id":82030,"name":"Gear.ValueClaim","nameLocations":["19705:4:167","19710:10:167"],"nodeType":"IdentifierPath","referencedDeclaration":85076,"src":"19705:15:167"},"referencedDeclaration":85076,"src":"19705:15:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_storage_ptr","typeString":"struct Gear.ValueClaim"}},"visibility":"internal"}],"id":82036,"initialValue":{"baseExpression":{"id":82033,"name":"_claims","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81991,"src":"19738:7:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim calldata[] calldata"}},"id":82035,"indexExpression":{"id":82034,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82019,"src":"19746:1:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19738:10:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"nodeType":"VariableDeclarationStatement","src":"19705:43:167"},{"assignments":[82038],"declarations":[{"constant":false,"id":82038,"mutability":"mutable","name":"claimHash","nameLocation":"19770:9:167","nodeType":"VariableDeclaration","scope":82089,"src":"19762:17:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82037,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19762:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82048,"initialValue":{"arguments":[{"expression":{"id":82041,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"19802:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19808:9:167","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85071,"src":"19802:15:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":82043,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"19819:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19825:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85073,"src":"19819:17:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":82045,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"19838:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19844:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"19838:11:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":82039,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"19782:4:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19787:14:167","memberName":"valueClaimHash","nodeType":"MemberAccess","referencedDeclaration":85266,"src":"19782:19:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_address_$_t_uint128_$returns$_t_bytes32_$","typeString":"function (bytes32,address,uint128) pure returns (bytes32)"}},"id":82047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19782:68:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19762:88:167"},{"expression":{"arguments":[{"id":82052,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82008,"src":"19890:18:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82053,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82015,"src":"19910:6:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82054,"name":"claimHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82038,"src":"19918:9:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":82049,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"19864:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":82051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19871:18:167","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"19864:25:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":82055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19864:64:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82056,"nodeType":"ExpressionStatement","src":"19864:64:167"},{"id":82061,"nodeType":"UncheckedBlock","src":"19942:55:167","statements":[{"expression":{"id":82059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82057,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82015,"src":"19970:6:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":82058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19980:2:167","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"19970:12:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82060,"nodeType":"ExpressionStatement","src":"19970:12:167"}]},{"assignments":[82063],"declarations":[{"constant":false,"id":82063,"mutability":"mutable","name":"success","nameLocation":"20016:7:167","nodeType":"VariableDeclaration","scope":82089,"src":"20011:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82062,"name":"bool","nodeType":"ElementaryTypeName","src":"20011:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":82070,"initialValue":{"arguments":[{"expression":{"id":82065,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"20041:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20047:11:167","memberName":"destination","nodeType":"MemberAccess","referencedDeclaration":85073,"src":"20041:17:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":82067,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"20060:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20066:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"20060:11:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":82064,"name":"_transferEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82195,"src":"20026:14:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint128_$returns$_t_bool_$","typeString":"function (address,uint128) returns (bool)"}},"id":82069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20026:46:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"20011:61:167"},{"condition":{"id":82071,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82063,"src":"20090:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":82087,"nodeType":"Block","src":"20185:84:167","statements":[{"eventCall":{"arguments":[{"expression":{"id":82081,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"20225:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20231:9:167","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85071,"src":"20225:15:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":82083,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"20242:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20248:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"20242:11:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":82080,"name":"ValueClaimFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73550,"src":"20208:16:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":82085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20208:46:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82086,"nodeType":"EmitStatement","src":"20203:51:167"}]},"id":82088,"nodeType":"IfStatement","src":"20086:183:167","trueBody":{"id":82079,"nodeType":"Block","src":"20099:80:167","statements":[{"eventCall":{"arguments":[{"expression":{"id":82073,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"20135:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20141:9:167","memberName":"messageId","nodeType":"MemberAccess","referencedDeclaration":85071,"src":"20135:15:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":82075,"name":"claim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82032,"src":"20152:5:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_calldata_ptr","typeString":"struct Gear.ValueClaim calldata"}},"id":82076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20158:5:167","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":85075,"src":"20152:11:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":82072,"name":"ValueClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"20122:12:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint128_$returns$__$","typeString":"function (bytes32,uint128)"}},"id":82077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20122:42:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82078,"nodeType":"EmitStatement","src":"20117:47:167"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82022,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82019,"src":"19671:1:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":82023,"name":"claimsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81997,"src":"19675:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19671:13:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82090,"initializationExpression":{"assignments":[82019],"declarations":[{"constant":false,"id":82019,"mutability":"mutable","name":"i","nameLocation":"19664:1:167","nodeType":"VariableDeclaration","scope":82090,"src":"19656:9:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82018,"name":"uint256","nodeType":"ElementaryTypeName","src":"19656:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82021,"initialValue":{"hexValue":"30","id":82020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19668:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"19656:13:167"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"19686:3:167","subExpression":{"id":82025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82019,"src":"19686:1:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82027,"nodeType":"ExpressionStatement","src":"19686:3:167"},"nodeType":"ForStatement","src":"19651:628:167"},{"expression":{"arguments":[{"id":82093,"name":"claimsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82008,"src":"20331:18:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":82094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20351:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":82095,"name":"claimsHashesSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82002,"src":"20354:16:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82091,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"20296:6:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":82092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20303:27:167","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"20296:34:167","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":82096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20296:75:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81995,"id":82097,"nodeType":"Return","src":"20289:82:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_claimValues","nameLocation":"19370:12:167","parameters":{"id":81992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81991,"mutability":"mutable","name":"_claims","nameLocation":"19410:7:167","nodeType":"VariableDeclaration","scope":82099,"src":"19383:34:167","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValueClaim[]"},"typeName":{"baseType":{"id":81989,"nodeType":"UserDefinedTypeName","pathNode":{"id":81988,"name":"Gear.ValueClaim","nameLocations":["19383:4:167","19388:10:167"],"nodeType":"IdentifierPath","referencedDeclaration":85076,"src":"19383:15:167"},"referencedDeclaration":85076,"src":"19383:15:167","typeDescriptions":{"typeIdentifier":"t_struct$_ValueClaim_$85076_storage_ptr","typeString":"struct Gear.ValueClaim"}},"id":81990,"nodeType":"ArrayTypeName","src":"19383:17:167","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValueClaim_$85076_storage_$dyn_storage_ptr","typeString":"struct Gear.ValueClaim[]"}},"visibility":"internal"}],"src":"19382:36:167"},"returnParameters":{"id":81995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82099,"src":"19436:7:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19436:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19435:9:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82131,"nodeType":"FunctionDefinition","src":"20439:509:167","nodes":[],"body":{"id":82130,"nodeType":"Block","src":"20503:445:167","nodes":[],"statements":[{"documentation":"@dev Set inheritor.","expression":{"id":82108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82106,"name":"exited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80833,"src":"20545:6:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":82107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20554:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20545:13:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82109,"nodeType":"ExpressionStatement","src":"20545:13:167"},{"expression":{"id":82112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82110,"name":"inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80836,"src":"20568:9:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82111,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82101,"src":"20580:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20568:22:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82113,"nodeType":"ExpressionStatement","src":"20568:22:167"},{"assignments":[82115,82117],"declarations":[{"constant":false,"id":82115,"mutability":"mutable","name":"value","nameLocation":"20676:5:167","nodeType":"VariableDeclaration","scope":82130,"src":"20668:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82114,"name":"uint128","nodeType":"ElementaryTypeName","src":"20668:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":82117,"mutability":"mutable","name":"success","nameLocation":"20688:7:167","nodeType":"VariableDeclaration","scope":82130,"src":"20683:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82116,"name":"bool","nodeType":"ElementaryTypeName","src":"20683:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"documentation":"@dev Transfer all available balance to the inheritor.","id":82120,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82118,"name":"_transferLockedValueToInheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81450,"src":"20699:31:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_uint128_$_t_bool_$","typeString":"function () returns (uint128,bool)"}},"id":82119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20699:33:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_bool_$","typeString":"tuple(uint128,bool)"}},"nodeType":"VariableDeclarationStatement","src":"20667:65:167"},{"condition":{"id":82122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20746:8:167","subExpression":{"id":82121,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82117,"src":"20747:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82129,"nodeType":"IfStatement","src":"20742:200:167","trueBody":{"id":82128,"nodeType":"Block","src":"20756:186:167","statements":[{"documentation":"@dev In case of failed transfer, we emit appropriate event to inform external users.","eventCall":{"arguments":[{"id":82124,"name":"_inheritor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82101,"src":"20913:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82125,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82115,"src":"20925:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":82123,"name":"TransferLockedValueToInheritorFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73536,"src":"20876:36:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint128_$returns$__$","typeString":"function (address,uint128)"}},"id":82126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20876:55:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82127,"nodeType":"EmitStatement","src":"20871:60:167"}]}}]},"implemented":true,"kind":"function","modifiers":[{"id":82104,"kind":"modifierInvocation","modifierName":{"id":82103,"name":"onlyIfActive","nameLocations":["20490:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":80952,"src":"20490:12:167"},"nodeType":"ModifierInvocation","src":"20490:12:167"}],"name":"_setInheritor","nameLocation":"20448:13:167","parameters":{"id":82102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82101,"mutability":"mutable","name":"_inheritor","nameLocation":"20470:10:167","nodeType":"VariableDeclaration","scope":82131,"src":"20462:18:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82100,"name":"address","nodeType":"ElementaryTypeName","src":"20462:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20461:20:167"},"returnParameters":{"id":82105,"nodeType":"ParameterList","parameters":[],"src":"20503:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82145,"nodeType":"FunctionDefinition","src":"20954:235:167","nodes":[],"body":{"id":82144,"nodeType":"Block","src":"21008:181:167","nodes":[],"statements":[{"documentation":"@dev Set state hash.","expression":{"id":82138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":82136,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80827,"src":"21051:9:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":82137,"name":"_stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82133,"src":"21063:10:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"21051:22:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82139,"nodeType":"ExpressionStatement","src":"21051:22:167"},{"documentation":"@dev Emits an event signaling that the state has changed.","eventCall":{"arguments":[{"id":82141,"name":"stateHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80827,"src":"21172:9:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":82140,"name":"StateChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73441,"src":"21159:12:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":82142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21159:23:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82143,"nodeType":"EmitStatement","src":"21154:28:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_updateStateHash","nameLocation":"20963:16:167","parameters":{"id":82134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82133,"mutability":"mutable","name":"_stateHash","nameLocation":"20988:10:167","nodeType":"VariableDeclaration","scope":82145,"src":"20980:18:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20980:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20979:20:167"},"returnParameters":{"id":82135,"nodeType":"ParameterList","parameters":[],"src":"21008:0:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82166,"nodeType":"FunctionDefinition","src":"21229:182:167","nodes":[],"body":{"id":82165,"nodeType":"Block","src":"21301:110:167","nodes":[],"statements":[{"assignments":[82154],"declarations":[{"constant":false,"id":82154,"mutability":"mutable","name":"wvaraAddr","nameLocation":"21319:9:167","nodeType":"VariableDeclaration","scope":82165,"src":"21311:17:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82153,"name":"address","nodeType":"ElementaryTypeName","src":"21311:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":82160,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":82156,"name":"routerAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82147,"src":"21339:10:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82155,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"21331:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRouter_$74052_$","typeString":"type(contract IRouter)"}},"id":82157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21331:19:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRouter_$74052","typeString":"contract IRouter"}},"id":82158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21351:11:167","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":73877,"src":"21331:31:167","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":82159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21331:33:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21311:53:167"},{"expression":{"arguments":[{"id":82162,"name":"wvaraAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82154,"src":"21394:9:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82161,"name":"IWrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74063,"src":"21381:12:167","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IWrappedVara_$74063_$","typeString":"type(contract IWrappedVara)"}},"id":82163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21381:23:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"functionReturnParameters":82152,"id":82164,"nodeType":"Return","src":"21374:30:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_wvara","nameLocation":"21238:6:167","parameters":{"id":82148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82147,"mutability":"mutable","name":"routerAddr","nameLocation":"21253:10:167","nodeType":"VariableDeclaration","scope":82166,"src":"21245:18:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82146,"name":"address","nodeType":"ElementaryTypeName","src":"21245:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21244:20:167"},"returnParameters":{"id":82152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82166,"src":"21287:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"},"typeName":{"id":82150,"nodeType":"UserDefinedTypeName","pathNode":{"id":82149,"name":"IWrappedVara","nameLocations":["21287:12:167"],"nodeType":"IdentifierPath","referencedDeclaration":74063,"src":"21287:12:167"},"referencedDeclaration":74063,"src":"21287:12:167","typeDescriptions":{"typeIdentifier":"t_contract$_IWrappedVara_$74063","typeString":"contract IWrappedVara"}},"visibility":"internal"}],"src":"21286:14:167"},"scope":82255,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":82195,"nodeType":"FunctionDefinition","src":"21417:253:167","nodes":[],"body":{"id":82194,"nodeType":"Block","src":"21500:170:167","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":82177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82175,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82170,"src":"21514:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21523:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21514:10:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82191,"nodeType":"IfStatement","src":"21510:133:167","trueBody":{"id":82190,"nodeType":"Block","src":"21526:117:167","statements":[{"assignments":[82179,null],"declarations":[{"constant":false,"id":82179,"mutability":"mutable","name":"success","nameLocation":"21546:7:167","nodeType":"VariableDeclaration","scope":82190,"src":"21541:12:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82178,"name":"bool","nodeType":"ElementaryTypeName","src":"21541:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":82187,"initialValue":{"arguments":[{"hexValue":"","id":82185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21601:2:167","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"id":82180,"name":"destination","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82168,"src":"21558:11:167","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21570:4:167","memberName":"call","nodeType":"MemberAccess","src":"21558:16:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":82184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas","value"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"355f303030","id":82182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21580:5:167","typeDescriptions":{"typeIdentifier":"t_rational_5000_by_1","typeString":"int_const 5000"},"value":"5_000"},{"id":82183,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82170,"src":"21594:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"21558:42:167","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":82186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21558:46:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"21540:64:167"},{"expression":{"id":82188,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82179,"src":"21625:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":82174,"id":82189,"nodeType":"Return","src":"21618:14:167"}]}},{"expression":{"hexValue":"74727565","id":82192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"21659:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":82174,"id":82193,"nodeType":"Return","src":"21652:11:167"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_transferEther","nameLocation":"21426:14:167","parameters":{"id":82171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82168,"mutability":"mutable","name":"destination","nameLocation":"21449:11:167","nodeType":"VariableDeclaration","scope":82195,"src":"21441:19:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82167,"name":"address","nodeType":"ElementaryTypeName","src":"21441:7:167","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82170,"mutability":"mutable","name":"value","nameLocation":"21470:5:167","nodeType":"VariableDeclaration","scope":82195,"src":"21462:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82169,"name":"uint128","nodeType":"ElementaryTypeName","src":"21462:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"21440:36:167"},"returnParameters":{"id":82174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82195,"src":"21494:4:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82172,"name":"bool","nodeType":"ElementaryTypeName","src":"21494:4:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21493:6:167"},"scope":82255,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":82254,"nodeType":"FunctionDefinition","src":"21676:1033:167","nodes":[],"body":{"id":82253,"nodeType":"Block","src":"21718:991:167","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82200,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21732:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21736:5:167","memberName":"value","nodeType":"MemberAccess","src":"21732:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21744:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21732:13:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82204,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21749:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21753:4:167","memberName":"data","nodeType":"MemberAccess","src":"21749:8:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":82206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21758:6:167","memberName":"length","nodeType":"MemberAccess","src":"21749:15:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":82207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21768:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21749:20:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21732:37:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":82230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21893:8:167","subExpression":{"id":82223,"name":"isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80842,"src":"21894:7:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":82225,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21905:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21909:4:167","memberName":"data","nodeType":"MemberAccess","src":"21905:8:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":82227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21914:6:167","memberName":"length","nodeType":"MemberAccess","src":"21905:15:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30783234","id":82228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21924:4:167","typeDescriptions":{"typeIdentifier":"t_rational_36_by_1","typeString":"int_const 36"},"value":"0x24"},"src":"21905:23:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21893:35:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":82250,"nodeType":"Block","src":"22650:53:167","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":82247,"name":"InvalidFallbackCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73578,"src":"22671:19:167","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22671:21:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":82249,"nodeType":"RevertStatement","src":"22664:28:167"}]},"id":82251,"nodeType":"IfStatement","src":"21889:814:167","trueBody":{"id":82246,"nodeType":"Block","src":"21930:714:167","statements":[{"assignments":[82232],"declarations":[{"constant":false,"id":82232,"mutability":"mutable","name":"callReply","nameLocation":"22320:9:167","nodeType":"VariableDeclaration","scope":82246,"src":"22312:17:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82231,"name":"uint256","nodeType":"ElementaryTypeName","src":"22312:7:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82233,"nodeType":"VariableDeclarationStatement","src":"22312:17:167"},{"AST":{"nativeSrc":"22369:63:167","nodeType":"YulBlock","src":"22369:63:167","statements":[{"nativeSrc":"22387:31:167","nodeType":"YulAssignment","src":"22387:31:167","value":{"arguments":[{"kind":"number","nativeSrc":"22413:4:167","nodeType":"YulLiteral","src":"22413:4:167","type":"","value":"0x04"}],"functionName":{"name":"calldataload","nativeSrc":"22400:12:167","nodeType":"YulIdentifier","src":"22400:12:167"},"nativeSrc":"22400:18:167","nodeType":"YulFunctionCall","src":"22400:18:167"},"variableNames":[{"name":"callReply","nativeSrc":"22387:9:167","nodeType":"YulIdentifier","src":"22387:9:167"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":82232,"isOffset":false,"isSlot":false,"src":"22387:9:167","valueSize":1}],"flags":["memory-safe"],"id":82234,"nodeType":"InlineAssembly","src":"22344:88:167"},{"assignments":[82236],"declarations":[{"constant":false,"id":82236,"mutability":"mutable","name":"messageId","nameLocation":"22454:9:167","nodeType":"VariableDeclaration","scope":82246,"src":"22446:17:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82235,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22446:7:167","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":82244,"initialValue":{"arguments":[{"expression":{"id":82238,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22479:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22483:4:167","memberName":"data","nodeType":"MemberAccess","src":"22479:8:167","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82240,"name":"callReply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82232,"src":"22489:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":82241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22502:1:167","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22489:14:167","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":82237,"name":"_sendMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81498,"src":"22466:12:167","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_calldata_ptr_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes calldata,bool) returns (bytes32)"}},"id":82243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22466:38:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22446:58:167"},{"AST":{"nativeSrc":"22544:90:167","nodeType":"YulBlock","src":"22544:90:167","statements":[{"expression":{"arguments":[{"kind":"number","nativeSrc":"22569:4:167","nodeType":"YulLiteral","src":"22569:4:167","type":"","value":"0x00"},{"name":"messageId","nativeSrc":"22575:9:167","nodeType":"YulIdentifier","src":"22575:9:167"}],"functionName":{"name":"mstore","nativeSrc":"22562:6:167","nodeType":"YulIdentifier","src":"22562:6:167"},"nativeSrc":"22562:23:167","nodeType":"YulFunctionCall","src":"22562:23:167"},"nativeSrc":"22562:23:167","nodeType":"YulExpressionStatement","src":"22562:23:167"},{"expression":{"arguments":[{"kind":"number","nativeSrc":"22609:4:167","nodeType":"YulLiteral","src":"22609:4:167","type":"","value":"0x00"},{"kind":"number","nativeSrc":"22615:4:167","nodeType":"YulLiteral","src":"22615:4:167","type":"","value":"0x20"}],"functionName":{"name":"return","nativeSrc":"22602:6:167","nodeType":"YulIdentifier","src":"22602:6:167"},"nativeSrc":"22602:18:167","nodeType":"YulFunctionCall","src":"22602:18:167"},"nativeSrc":"22602:18:167","nodeType":"YulExpressionStatement","src":"22602:18:167"}]},"evmVersion":"osaka","externalReferences":[{"declaration":82236,"isOffset":false,"isSlot":false,"src":"22575:9:167","valueSize":1}],"flags":["memory-safe"],"id":82245,"nodeType":"InlineAssembly","src":"22519:115:167"}]}},"id":82252,"nodeType":"IfStatement","src":"21728:975:167","trueBody":{"id":82222,"nodeType":"Block","src":"21771:112:167","statements":[{"assignments":[82211],"declarations":[{"constant":false,"id":82211,"mutability":"mutable","name":"value","nameLocation":"21793:5:167","nodeType":"VariableDeclaration","scope":82222,"src":"21785:13:167","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82210,"name":"uint128","nodeType":"ElementaryTypeName","src":"21785:7:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":82217,"initialValue":{"arguments":[{"expression":{"id":82214,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21809:3:167","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":82215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21813:5:167","memberName":"value","nodeType":"MemberAccess","src":"21809:9:167","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21801:7:167","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":82212,"name":"uint128","nodeType":"ElementaryTypeName","src":"21801:7:167","typeDescriptions":{}}},"id":82216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:18:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"21785:34:167"},{"eventCall":{"arguments":[{"id":82219,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82211,"src":"21866:5:167","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint128","typeString":"uint128"}],"id":82218,"name":"OwnedBalanceTopUpRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73477,"src":"21839:26:167","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint128_$returns$__$","typeString":"function (uint128)"}},"id":82220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21839:33:167","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82221,"nodeType":"EmitStatement","src":"21834:38:167"}]}}]},"implemented":true,"kind":"fallback","modifiers":[{"id":82198,"kind":"modifierInvocation","modifierName":{"id":82197,"name":"whenNotPaused","nameLocations":["21704:13:167"],"nodeType":"IdentifierPath","referencedDeclaration":81009,"src":"21704:13:167"},"nodeType":"ModifierInvocation","src":"21704:13:167"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82196,"nodeType":"ParameterList","parameters":[],"src":"21684:2:167"},"returnParameters":{"id":82199,"nodeType":"ParameterList","parameters":[],"src":"21718:0:167"},"scope":82255,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":80816,"name":"IMirror","nameLocations":["624:7:167"],"nodeType":"IdentifierPath","referencedDeclaration":73658,"src":"624:7:167"},"id":80817,"nodeType":"InheritanceSpecifier","src":"624:7:167"}],"canonicalName":"MirrorWithInstrumentation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[82255,73658],"name":"MirrorWithInstrumentation","nameLocation":"595:25:167","scope":82256,"usedErrors":[73552,73554,73556,73558,73560,73562,73564,73566,73568,73570,73572,73574,73576,73578,73581],"usedEvents":[73441,73454,73465,73472,73477,73482,73493,73502,73513,73522,73529,73536,73543,73550,80888]}],"license":"UNLICENSED"},"id":167} \ No newline at end of file diff --git a/ethexe/ethereum/abi/POAMiddleware.json b/ethexe/ethereum/abi/POAMiddleware.json index a2a44b38060..4bc3f8fd152 100644 --- a/ethexe/ethereum/abi/POAMiddleware.json +++ b/ethexe/ethereum/abi/POAMiddleware.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"931:6861:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;931:6861:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;931:6861:164;;7983:34:30;7979:146;;-1:-1:-1;931:6861:164;;;;;;;;1052:13:60;931:6861:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;931:6861:164;-1:-1:-1;;;;;931:6861:164;;;-1:-1:-1;;;;;;;;;;;931:6861:164;;;8085:29:30;;931:6861:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;931:6861:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"931:6861:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4930:25;931:6861;4930:25;;;931:6861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;-1:-1:-1;;;;;;;;;;;931:6861:164;3384:17;;931:6861;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;2357:1:29;931:6861:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;931:6861:164;;;:::i;:::-;;;;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;931:6861:164;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4930:25;;;;;;;931:6861;4930:25;;931:6861;;;;;;;;;;-1:-1:-1;;;931:6861:164;;;;;;;4930:25;;;;931:6861;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;931:6861:164;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;-1:-1:-1;;;;;;;;;;;931:6861:164;-1:-1:-1;;;;;931:6861:164;;;;;4301:16:30;931:6861:164;;4724:16:30;;:34;;;;931:6861:164;4803:1:30;4788:16;:50;;;;931:6861:164;4853:13:30;:30;;;;931:6861:164;4849:91:30;;;931:6861:164;4803:1:30;-1:-1:-1;;;;;931:6861:164;-1:-1:-1;;;;;;;;;;;931:6861:164;;;-1:-1:-1;;;;;;;;;;;931:6861:164;4977:67:30;;931:6861:164;;;-1:-1:-1;;;;;931:6861:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7470:37:164;931:6861;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7470:37:164;-1:-1:-1;;;;;;;;;;;1519:66:164;;;2312:14;931:6861;;-1:-1:-1;;;;;931:6861:164;;;;;;2301:8;;931:6861;;-1:-1:-1;;;;;;931:6861:164;-1:-1:-1;;;;;931:6861:164;;;;;;;;;5064:101:30;;931:6861:164;5064:101:30;-1:-1:-1;;;931:6861:164;-1:-1:-1;;;;;;;;;;;931:6861:164;;-1:-1:-1;;;;;;;;;;;931:6861:164;5140:14:30;931:6861:164;;;4803:1:30;931:6861:164;;5140:14:30;931:6861:164;4977:67:30;-1:-1:-1;;;;;;931:6861:164;-1:-1:-1;;;;;;;;;;;931:6861:164;;;-1:-1:-1;;;;;;;;;;;931:6861:164;4977:67:30;;4849:91;6496:23;;;931:6861:164;4906:23:30;931:6861:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;931:6861:164;;:::i;:::-;;;;;;-1:-1:-1;;931:6861:164;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1746:66:164;931:6861;;;;-1:-1:-1;;;;;931:6861:164;;;;-1:-1:-1;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;-1:-1:-1;;;;;;;;;;;931:6861:164;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;931:6861:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;931:6861:164;;-1:-1:-1;;;;;;931:6861:164;;;;;;;-1:-1:-1;;;;;931:6861:164;3975:40:29;931:6861:164;;3975:40:29;931:6861:164;;;;;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;1746:66;931:6861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;-1:-1:-1;931:6861:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;931:6861:164;;;;;;6429:44:30;;;;;931:6861:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;931:6861:164;;-1:-1:-1;;931:6861:164;;;;;-1:-1:-1;;;;;;;;;;;931:6861:164;6959:1:30;;-1:-1:-1;;;;;931:6861:164;6891:76:30;;:::i;6959:1::-;6654:20;931:6861:164;-1:-1:-1;;;;;;;;;;;931:6861:164;;;2740:17;7470:37;931:6861;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7470:37:164:-;1519:66;;-1:-1:-1;;;;;;;;;;;1519:66:164;7679:37;931:6861;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;931:6861:164;;;;2303:62:29;;:::i;7679:37:164:-;1746:66;1519;2740:17;;931:6861;2720:17;;931:6861;;-1:-1:-1;;;;;;931:6861:164;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;931:6861:164;;-1:-1:-1;;931:6861:164;;;;2446:1;931:6861;;6654:20:30;931:6861:164;6429:44:30;2446:1:164;931:6861;;-1:-1:-1;;;;;931:6861:164;6448:25:30;;6429:44;;;931:6861:164;;;;;;-1:-1:-1;;931:6861:164;;;;4824:6:60;-1:-1:-1;;;;;931:6861:164;4815:4:60;4807:23;4803:145;;931:6861:164;;;-1:-1:-1;;;;;;;;;;;931:6861:164;;;4803:145:60;4578:29;;;931:6861:164;4908:29:60;931:6861:164;;4908:29:60;931:6861:164;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;931:6861:164;4392:4:60;4384:23;;;:120;;;;931:6861:164;4367:251:60;;;2303:62:29;;:::i;:::-;931:6861:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;5865:52:60;;931:6861:164;;5865:52:60;;;931:6861:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;931:6861:164;6227:60:60;931:6861:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;931:6861:164;;-1:-1:-1;;;;;;931:6861:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;931:6861:164;;2458:15:53;:11;;931:6861:164;4065:25:66;;4107:55;4065:25;;;;;;931:6861:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;931:6861:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;931:6861:164;6159:70:53;6199:19;;;931:6861:164;6199:19:53;931:6861:164;;6199:19:53;1744:119;1805:47;;;931:6861:164;1805:47:53;931:6861:164;;;;1805:47:53;5955:120:60;6026:34;;;931:6861:164;6026:34:60;931:6861:164;;;;6026:34:60;5865:52;;;;931:6861:164;5865:52:60;;931:6861:164;5865:52:60;;;;;;931:6861:164;5865:52:60;;;:::i;:::-;;;931:6861:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;931:6861:164;-1:-1:-1;;;;;931:6861:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;931:6861:164;;;;;;-1:-1:-1;;931:6861:164;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;931:6861:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;931:6861:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;931:6861:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;931:6861:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;931:6861:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;931:6861:164;;;;;;-1:-1:-1;;931:6861:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;931:6861:164;;;;;;;;;:::o;5819:95::-;931:6861;;-1:-1:-1;;;5882:25:164;;931:6861;5882:25;;;931:6861;;;;;;-1:-1:-1;;;931:6861:164;;;;;;4930:25;3405:215:29;-1:-1:-1;;;;;931:6861:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;931:6861:164;;-1:-1:-1;;;;;;931:6861:164;;;;;;;-1:-1:-1;;;;;931:6861:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;931:6861:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;931:6861:164;-1:-1:-1;;;;;931:6861:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;931:6861:164;;-1:-1:-1;2763:40:29;7082:141:30;931:6861:164;-1:-1:-1;;;;;;;;;;;931:6861:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;931:6861:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;931:6861:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;931:6861:164;;;;4933:24:66;931:6861:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"45417":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setValidators(address[])\":{\"details\":\"IPOAMiddleware call\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x42686e2aa96b94c7e583d6e841136964d6905db22a097b741577290f449f6780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97631d6308e2c678f08bc4030696d5f5dfb09e0198c1bc658b9cc2929aa9baa3\",\"dweb:/ipfs/QmcmCmDjXZ67jjqo1EP743npGFfeGn6euYsurDcnQSFSUE\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0x61d95509147c9e7e613a5a6bd047bc3bdab706b99aee7aa7a1f4ad291b8f139d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d2122ceda461ab85ca9e7df6b26ad19687116f2c0c7000d2312be50f0d863274\",\"dweb:/ipfs/QmZCTieeJo9FN5FFM6UomAAUESGAQ6JGSfuFxTnK478yAw\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a\",\"dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x6174e605c8037b3e74e65116d1a991bb4d9d80be6f482831a716346a0139b0a9\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ffcf24af76ce7409949883aaf81c4e087272dd67e32ae259ffc1a8102e9eb98f\",\"dweb:/ipfs/Qmbd17ZPJsKaND48wPeGV8mW2ytcDh9UAyoCEXYDAsF5CJ\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543\",\"dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setValidators(address[])":{"details":"IPOAMiddleware call"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x42686e2aa96b94c7e583d6e841136964d6905db22a097b741577290f449f6780","urls":["bzz-raw://97631d6308e2c678f08bc4030696d5f5dfb09e0198c1bc658b9cc2929aa9baa3","dweb:/ipfs/QmcmCmDjXZ67jjqo1EP743npGFfeGn6euYsurDcnQSFSUE"],"license":"MIT"},"src/IPOAMiddleware.sol":{"keccak256":"0x61d95509147c9e7e613a5a6bd047bc3bdab706b99aee7aa7a1f4ad291b8f139d","urls":["bzz-raw://d2122ceda461ab85ca9e7df6b26ad19687116f2c0c7000d2312be50f0d863274","dweb:/ipfs/QmZCTieeJo9FN5FFM6UomAAUESGAQ6JGSfuFxTnK478yAw"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa","urls":["bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a","dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF"],"license":"UNLICENSED"},"src/POAMiddleware.sol":{"keccak256":"0x6174e605c8037b3e74e65116d1a991bb4d9d80be6f482831a716346a0139b0a9","urls":["bzz-raw://ffcf24af76ce7409949883aaf81c4e087272dd67e32ae259ffc1a8102e9eb98f","dweb:/ipfs/Qmbd17ZPJsKaND48wPeGV8mW2ytcDh9UAyoCEXYDAsF5CJ"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae","urls":["bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543","dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":78410,"exportedSymbols":{"EnumerableMap":[57867],"Gear":[82248],"IMiddleware":[73432],"IPOAMiddleware":[73672],"MapWithTimeData":[82530],"OwnableUpgradeable":[41646],"POAMiddleware":[78409],"ReentrancyGuardTransientUpgradeable":[43267],"SlotDerivation":[48289],"StorageSlot":[48413],"Subnetwork":[64302],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:7754:164","nodes":[{"id":77800,"nodeType":"PragmaDirective","src":"39:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77802,"nodeType":"ImportDirective","src":"65:46:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"./IMiddleware.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":77801,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"73:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77804,"nodeType":"ImportDirective","src":"112:52:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"./IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":73673,"symbolAliases":[{"foreign":{"id":77803,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73672,"src":"120:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77806,"nodeType":"ImportDirective","src":"165:42:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":82249,"symbolAliases":[{"foreign":{"id":77805,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"173:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77808,"nodeType":"ImportDirective","src":"208:64:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"./libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":82531,"symbolAliases":[{"foreign":{"id":77807,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82530,"src":"216:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77810,"nodeType":"ImportDirective","src":"273:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":77809,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"281:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77812,"nodeType":"ImportDirective","src":"375:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":77811,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"388:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77814,"nodeType":"ImportDirective","src":"516:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":77813,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"524:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77816,"nodeType":"ImportDirective","src":"605:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":77815,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"613:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77818,"nodeType":"ImportDirective","src":"686:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":77817,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"694:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77820,"nodeType":"ImportDirective","src":"761:86:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":57868,"symbolAliases":[{"foreign":{"id":77819,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57867,"src":"769:13:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77822,"nodeType":"ImportDirective","src":"848:81:164","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":78410,"sourceUnit":64303,"symbolAliases":[{"foreign":{"id":77821,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64302,"src":"856:10:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78409,"nodeType":"ContractDefinition","src":"931:6861:164","nodes":[{"id":77836,"nodeType":"UsingForDirective","src":"1085:55:164","nodes":[],"global":false,"libraryName":{"id":77833,"name":"EnumerableMap","nameLocations":["1091:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"1091:13:164"},"typeName":{"id":77835,"nodeType":"UserDefinedTypeName","pathNode":{"id":77834,"name":"EnumerableMap.AddressToUintMap","nameLocations":["1109:13:164","1123:16:164"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"1109:30:164"},"referencedDeclaration":56191,"src":"1109:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77840,"nodeType":"UsingForDirective","src":"1145:57:164","nodes":[],"global":false,"libraryName":{"id":77837,"name":"MapWithTimeData","nameLocations":["1151:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":82530,"src":"1151:15:164"},"typeName":{"id":77839,"nodeType":"UserDefinedTypeName","pathNode":{"id":77838,"name":"EnumerableMap.AddressToUintMap","nameLocations":["1171:13:164","1185:16:164"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"1171:30:164"},"referencedDeclaration":56191,"src":"1171:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77844,"nodeType":"UsingForDirective","src":"1208:58:164","nodes":[],"global":false,"libraryName":{"id":77841,"name":"EnumerableMap","nameLocations":["1214:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"1214:13:164"},"typeName":{"id":77843,"nodeType":"UserDefinedTypeName","pathNode":{"id":77842,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["1232:13:164","1246:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"1232:33:164"},"referencedDeclaration":56486,"src":"1232:33:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77848,"nodeType":"UsingForDirective","src":"1271:60:164","nodes":[],"global":false,"libraryName":{"id":77845,"name":"MapWithTimeData","nameLocations":["1277:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":82530,"src":"1277:15:164"},"typeName":{"id":77847,"nodeType":"UserDefinedTypeName","pathNode":{"id":77846,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["1297:13:164","1311:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"1297:33:164"},"referencedDeclaration":56486,"src":"1297:33:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77851,"nodeType":"UsingForDirective","src":"1337:29:164","nodes":[],"global":false,"libraryName":{"id":77849,"name":"Subnetwork","nameLocations":["1343:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":64302,"src":"1343:10:164"},"typeName":{"id":77850,"name":"address","nodeType":"ElementaryTypeName","src":"1358:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77854,"nodeType":"VariableDeclaration","src":"1479:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1504:12:164","scope":78409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1479:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":77853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1519:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":77857,"nodeType":"VariableDeclaration","src":"1702:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1727:16:164","scope":78409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1702:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":77856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1746:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":77860,"nodeType":"VariableDeclaration","src":"1819:50:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"1844:18:164","scope":78409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":77859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1865:4:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":77863,"nodeType":"VariableDeclaration","src":"1875:45:164","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"1898:18:164","scope":78409,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77861,"name":"uint8","nodeType":"ElementaryTypeName","src":"1875:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":77862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1919:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":77871,"nodeType":"FunctionDefinition","src":"1980:53:164","nodes":[],"body":{"id":77870,"nodeType":"Block","src":"1994:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77867,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"2004:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2004:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77869,"nodeType":"ExpressionStatement","src":"2004:22:164"}]},"documentation":{"id":77864,"nodeType":"StructuredDocumentation","src":"1927:48:164","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77865,"nodeType":"ParameterList","parameters":[],"src":"1991:2:164"},"returnParameters":{"id":77866,"nodeType":"ParameterList","parameters":[],"src":"1994:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77905,"nodeType":"FunctionDefinition","src":"2039:294:164","nodes":[],"body":{"id":77904,"nodeType":"Block","src":"2107:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77880,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77874,"src":"2132:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2140:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73163,"src":"2132:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77879,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2117:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2117:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77883,"nodeType":"ExpressionStatement","src":"2117:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77884,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"2156:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2156:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77886,"nodeType":"ExpressionStatement","src":"2156:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":77888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2216:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":77887,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78384,"src":"2200:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2200:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77890,"nodeType":"ExpressionStatement","src":"2200:50:164"},{"assignments":[77893],"declarations":[{"constant":false,"id":77893,"mutability":"mutable","name":"$","nameLocation":"2276:1:164","nodeType":"VariableDeclaration","scope":77904,"src":"2260:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77892,"nodeType":"UserDefinedTypeName","pathNode":{"id":77891,"name":"Storage","nameLocations":["2260:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"2260:7:164"},"referencedDeclaration":73229,"src":"2260:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77896,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77894,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78323,"src":"2280:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2280:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2260:30:164"},{"expression":{"id":77902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77897,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77893,"src":"2301:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2303:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"2301:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77900,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77874,"src":"2312:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2320:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73187,"src":"2312:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2301:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77903,"nodeType":"ExpressionStatement","src":"2301:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":77877,"kind":"modifierInvocation","modifierName":{"id":77876,"name":"initializer","nameLocations":["2095:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"2095:11:164"},"nodeType":"ModifierInvocation","src":"2095:11:164"}],"name":"initialize","nameLocation":"2048:10:164","parameters":{"id":77875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77874,"mutability":"mutable","name":"_params","nameLocation":"2079:7:164","nodeType":"VariableDeclaration","scope":77905,"src":"2059:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":77873,"nodeType":"UserDefinedTypeName","pathNode":{"id":77872,"name":"InitParams","nameLocations":["2059:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73191,"src":"2059:10:164"},"referencedDeclaration":73191,"src":"2059:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"2058:29:164"},"returnParameters":{"id":77878,"nodeType":"ParameterList","parameters":[],"src":"2107:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77947,"nodeType":"FunctionDefinition","src":"2391:373:164","nodes":[],"body":{"id":77946,"nodeType":"Block","src":"2449:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77915,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"2474:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":77916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2474:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77914,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2459:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77918,"nodeType":"ExpressionStatement","src":"2459:23:164"},{"assignments":[77921],"declarations":[{"constant":false,"id":77921,"mutability":"mutable","name":"oldStorage","nameLocation":"2509:10:164","nodeType":"VariableDeclaration","scope":77946,"src":"2493:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77920,"nodeType":"UserDefinedTypeName","pathNode":{"id":77919,"name":"Storage","nameLocations":["2493:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"2493:7:164"},"referencedDeclaration":73229,"src":"2493:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77924,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77922,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78323,"src":"2522:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2522:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2493:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":77926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2559:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":77925,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78384,"src":"2543:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2543:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77928,"nodeType":"ExpressionStatement","src":"2543:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":77930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2622:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":77929,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78408,"src":"2603:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2603:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77932,"nodeType":"ExpressionStatement","src":"2603:56:164"},{"assignments":[77935],"declarations":[{"constant":false,"id":77935,"mutability":"mutable","name":"newStorage","nameLocation":"2686:10:164","nodeType":"VariableDeclaration","scope":77946,"src":"2670:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77934,"nodeType":"UserDefinedTypeName","pathNode":{"id":77933,"name":"Storage","nameLocations":["2670:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"2670:7:164"},"referencedDeclaration":73229,"src":"2670:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77938,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77936,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78323,"src":"2699:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2699:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2670:39:164"},{"expression":{"id":77944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77939,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77935,"src":"2720:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77941,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2731:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"2720:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77942,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77921,"src":"2740:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2751:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"2740:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2720:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77945,"nodeType":"ExpressionStatement","src":"2720:37:164"}]},"documentation":{"id":77906,"nodeType":"StructuredDocumentation","src":"2339:47:164","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":77909,"kind":"modifierInvocation","modifierName":{"id":77908,"name":"onlyOwner","nameLocations":["2422:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"2422:9:164"},"nodeType":"ModifierInvocation","src":"2422:9:164"},{"arguments":[{"hexValue":"32","id":77911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2446:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":77912,"kind":"modifierInvocation","modifierName":{"id":77910,"name":"reinitializer","nameLocations":["2432:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"2432:13:164"},"nodeType":"ModifierInvocation","src":"2432:16:164"}],"name":"reinitialize","nameLocation":"2400:12:164","parameters":{"id":77907,"nodeType":"ParameterList","parameters":[],"src":"2412:2:164"},"returnParameters":{"id":77913,"nodeType":"ParameterList","parameters":[],"src":"2449:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77957,"nodeType":"FunctionDefinition","src":"2929:84:164","nodes":[],"body":{"id":77956,"nodeType":"Block","src":"3011:2:164","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":77948,"nodeType":"StructuredDocumentation","src":"2770:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":77954,"kind":"modifierInvocation","modifierName":{"id":77953,"name":"onlyOwner","nameLocations":["3001:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"3001:9:164"},"nodeType":"ModifierInvocation","src":"3001:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2938:17:164","overrides":{"id":77952,"nodeType":"OverrideSpecifier","overrides":[],"src":"2992:8:164"},"parameters":{"id":77951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77950,"mutability":"mutable","name":"newImplementation","nameLocation":"2964:17:164","nodeType":"VariableDeclaration","scope":77957,"src":"2956:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77949,"name":"address","nodeType":"ElementaryTypeName","src":"2956:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2955:27:164"},"returnParameters":{"id":77955,"nodeType":"ParameterList","parameters":[],"src":"3011:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77973,"nodeType":"FunctionDefinition","src":"3052:124:164","nodes":[],"body":{"id":77972,"nodeType":"Block","src":"3123:53:164","nodes":[],"statements":[{"expression":{"id":77970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77966,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78336,"src":"3133:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$73665_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":77967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3133:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":77968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3147:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73664,"src":"3133:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77969,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77961,"src":"3159:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"3133:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":77971,"nodeType":"ExpressionStatement","src":"3133:36:164"}]},"baseFunctions":[73671],"documentation":{"id":77958,"nodeType":"StructuredDocumentation","src":"3019:28:164","text":"@dev IPOAMiddleware call"},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":77964,"kind":"modifierInvocation","modifierName":{"id":77963,"name":"onlyOwner","nameLocations":["3113:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"3113:9:164"},"nodeType":"ModifierInvocation","src":"3113:9:164"}],"name":"setValidators","nameLocation":"3061:13:164","parameters":{"id":77962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77961,"mutability":"mutable","name":"validators","nameLocation":"3092:10:164","nodeType":"VariableDeclaration","scope":77973,"src":"3075:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77959,"name":"address","nodeType":"ElementaryTypeName","src":"3075:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77960,"nodeType":"ArrayTypeName","src":"3075:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3074:29:164"},"returnParameters":{"id":77965,"nodeType":"ParameterList","parameters":[],"src":"3123:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77988,"nodeType":"FunctionDefinition","src":"3182:129:164","nodes":[],"body":{"id":77987,"nodeType":"Block","src":"3264:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77983,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78336,"src":"3281:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$73665_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":77984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3281:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":77985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3295:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73664,"src":"3281:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":77982,"id":77986,"nodeType":"Return","src":"3274:30:164"}]},"baseFunctions":[73340],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"3191:14:164","parameters":{"id":77978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77975,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77988,"src":"3206:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":77974,"name":"uint48","nodeType":"ElementaryTypeName","src":"3206:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":77977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77988,"src":"3214:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77976,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3205:17:164"},"returnParameters":{"id":77982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77988,"src":"3246:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77979,"name":"address","nodeType":"ElementaryTypeName","src":"3246:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77980,"nodeType":"ArrayTypeName","src":"3246:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3245:18:164"},"scope":78409,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77998,"nodeType":"FunctionDefinition","src":"3317:91:164","nodes":[],"body":{"id":77997,"nodeType":"Block","src":"3367:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77993,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78323,"src":"3384:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3384:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3395:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"3384:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":77992,"id":77996,"nodeType":"Return","src":"3377:24:164"}]},"baseFunctions":[73313],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"3326:6:164","parameters":{"id":77989,"nodeType":"ParameterList","parameters":[],"src":"3332:2:164"},"returnParameters":{"id":77992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77991,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77998,"src":"3358:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77990,"name":"address","nodeType":"ElementaryTypeName","src":"3358:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3357:9:164"},"scope":78409,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78008,"nodeType":"FunctionDefinition","src":"3563:94:164","nodes":[],"body":{"id":78007,"nodeType":"Block","src":"3615:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3632:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78003,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3625:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3625:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78006,"nodeType":"ExpressionStatement","src":"3625:25:164"}]},"baseFunctions":[73253],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3572:11:164","parameters":{"id":77999,"nodeType":"ParameterList","parameters":[],"src":"3583:2:164"},"returnParameters":{"id":78002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78001,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78008,"src":"3607:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78000,"name":"uint48","nodeType":"ElementaryTypeName","src":"3607:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3606:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78018,"nodeType":"FunctionDefinition","src":"3663:104:164","nodes":[],"body":{"id":78017,"nodeType":"Block","src":"3725:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3742:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78013,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3735:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3735:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78016,"nodeType":"ExpressionStatement","src":"3735:25:164"}]},"baseFunctions":[73258],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3672:21:164","parameters":{"id":78009,"nodeType":"ParameterList","parameters":[],"src":"3693:2:164"},"returnParameters":{"id":78012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78018,"src":"3717:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78010,"name":"uint48","nodeType":"ElementaryTypeName","src":"3717:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3716:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78028,"nodeType":"FunctionDefinition","src":"3773:102:164","nodes":[],"body":{"id":78027,"nodeType":"Block","src":"3833:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3850:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78023,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3843:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78026,"nodeType":"ExpressionStatement","src":"3843:25:164"}]},"baseFunctions":[73263],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3782:19:164","parameters":{"id":78019,"nodeType":"ParameterList","parameters":[],"src":"3801:2:164"},"returnParameters":{"id":78022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78028,"src":"3825:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78020,"name":"uint48","nodeType":"ElementaryTypeName","src":"3825:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3824:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78038,"nodeType":"FunctionDefinition","src":"3881:99:164","nodes":[],"body":{"id":78037,"nodeType":"Block","src":"3938:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3955:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78033,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3948:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3948:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78036,"nodeType":"ExpressionStatement","src":"3948:25:164"}]},"baseFunctions":[73268],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3890:16:164","parameters":{"id":78029,"nodeType":"ParameterList","parameters":[],"src":"3906:2:164"},"returnParameters":{"id":78032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78031,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78038,"src":"3930:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78030,"name":"uint48","nodeType":"ElementaryTypeName","src":"3930:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3929:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78048,"nodeType":"FunctionDefinition","src":"3986:98:164","nodes":[],"body":{"id":78047,"nodeType":"Block","src":"4042:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4059:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78043,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4052:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4052:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78046,"nodeType":"ExpressionStatement","src":"4052:25:164"}]},"baseFunctions":[73273],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"3995:15:164","parameters":{"id":78039,"nodeType":"ParameterList","parameters":[],"src":"4010:2:164"},"returnParameters":{"id":78042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78048,"src":"4034:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78040,"name":"uint48","nodeType":"ElementaryTypeName","src":"4034:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"4033:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78058,"nodeType":"FunctionDefinition","src":"4090:105:164","nodes":[],"body":{"id":78057,"nodeType":"Block","src":"4153:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4170:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78053,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4163:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78056,"nodeType":"ExpressionStatement","src":"4163:25:164"}]},"baseFunctions":[73278],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"4099:22:164","parameters":{"id":78049,"nodeType":"ParameterList","parameters":[],"src":"4121:2:164"},"returnParameters":{"id":78052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78058,"src":"4145:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78050,"name":"uint48","nodeType":"ElementaryTypeName","src":"4145:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"4144:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78068,"nodeType":"FunctionDefinition","src":"4201:109:164","nodes":[],"body":{"id":78067,"nodeType":"Block","src":"4268:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4285:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78063,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4278:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4278:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78066,"nodeType":"ExpressionStatement","src":"4278:25:164"}]},"baseFunctions":[73283],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"4210:25:164","parameters":{"id":78059,"nodeType":"ParameterList","parameters":[],"src":"4235:2:164"},"returnParameters":{"id":78062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78068,"src":"4259:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78060,"name":"uint256","nodeType":"ElementaryTypeName","src":"4259:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4258:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78078,"nodeType":"FunctionDefinition","src":"4316:106:164","nodes":[],"body":{"id":78077,"nodeType":"Block","src":"4380:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4397:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78073,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4390:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4390:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78076,"nodeType":"ExpressionStatement","src":"4390:25:164"}]},"baseFunctions":[73288],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"4325:23:164","parameters":{"id":78069,"nodeType":"ParameterList","parameters":[],"src":"4348:2:164"},"returnParameters":{"id":78072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78071,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78078,"src":"4372:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78070,"name":"uint64","nodeType":"ElementaryTypeName","src":"4372:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4371:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78088,"nodeType":"FunctionDefinition","src":"4428:102:164","nodes":[],"body":{"id":78087,"nodeType":"Block","src":"4488:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78084,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4505:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78083,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4498:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4498:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78086,"nodeType":"ExpressionStatement","src":"4498:25:164"}]},"baseFunctions":[73293],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4437:19:164","parameters":{"id":78079,"nodeType":"ParameterList","parameters":[],"src":"4456:2:164"},"returnParameters":{"id":78082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78081,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78088,"src":"4480:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78080,"name":"uint64","nodeType":"ElementaryTypeName","src":"4480:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4479:8:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78098,"nodeType":"FunctionDefinition","src":"4536:94:164","nodes":[],"body":{"id":78097,"nodeType":"Block","src":"4588:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4605:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78093,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4598:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4598:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78096,"nodeType":"ExpressionStatement","src":"4598:25:164"}]},"baseFunctions":[73298],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4545:10:164","parameters":{"id":78089,"nodeType":"ParameterList","parameters":[],"src":"4555:2:164"},"returnParameters":{"id":78092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78091,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78098,"src":"4579:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78090,"name":"address","nodeType":"ElementaryTypeName","src":"4579:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4578:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78108,"nodeType":"FunctionDefinition","src":"4636:94:164","nodes":[],"body":{"id":78107,"nodeType":"Block","src":"4688:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4705:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78103,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4698:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4698:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78106,"nodeType":"ExpressionStatement","src":"4698:25:164"}]},"baseFunctions":[73303],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4645:10:164","parameters":{"id":78099,"nodeType":"ParameterList","parameters":[],"src":"4655:2:164"},"returnParameters":{"id":78102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78101,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78108,"src":"4679:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78100,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4679:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4678:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78118,"nodeType":"FunctionDefinition","src":"4736:95:164","nodes":[],"body":{"id":78117,"nodeType":"Block","src":"4789:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4806:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78113,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4799:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4799:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78116,"nodeType":"ExpressionStatement","src":"4799:25:164"}]},"baseFunctions":[73308],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4745:11:164","parameters":{"id":78109,"nodeType":"ParameterList","parameters":[],"src":"4756:2:164"},"returnParameters":{"id":78112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78111,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78118,"src":"4780:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78110,"name":"uint256","nodeType":"ElementaryTypeName","src":"4780:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4779:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78129,"nodeType":"FunctionDefinition","src":"4837:125:164","nodes":[],"body":{"id":78128,"nodeType":"Block","src":"4920:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4937:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78124,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4930:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4930:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78127,"nodeType":"ExpressionStatement","src":"4930:25:164"}]},"baseFunctions":[73319],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4846:18:164","parameters":{"id":78119,"nodeType":"ParameterList","parameters":[],"src":"4864:2:164"},"returnParameters":{"id":78123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78129,"src":"4888:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":78121,"nodeType":"UserDefinedTypeName","pathNode":{"id":78120,"name":"Gear.SymbioticContracts","nameLocations":["4888:4:164","4893:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":81372,"src":"4888:23:164"},"referencedDeclaration":81372,"src":"4888:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$81372_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4887:32:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78137,"nodeType":"FunctionDefinition","src":"4968:81:164","nodes":[],"body":{"id":78136,"nodeType":"Block","src":"5007:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5024:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78132,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5017:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5017:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78135,"nodeType":"ExpressionStatement","src":"5017:25:164"}]},"baseFunctions":[73372],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4977:15:164","parameters":{"id":78130,"nodeType":"ParameterList","parameters":[],"src":"4992:2:164"},"returnParameters":{"id":78131,"nodeType":"ParameterList","parameters":[],"src":"5007:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78145,"nodeType":"FunctionDefinition","src":"5055:80:164","nodes":[],"body":{"id":78144,"nodeType":"Block","src":"5093:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5110:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78140,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5103:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5103:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78143,"nodeType":"ExpressionStatement","src":"5103:25:164"}]},"baseFunctions":[73376],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"5064:14:164","parameters":{"id":78138,"nodeType":"ParameterList","parameters":[],"src":"5078:2:164"},"returnParameters":{"id":78139,"nodeType":"ParameterList","parameters":[],"src":"5093:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78155,"nodeType":"FunctionDefinition","src":"5141:93:164","nodes":[],"body":{"id":78154,"nodeType":"Block","src":"5192:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5209:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78150,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5202:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5202:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78153,"nodeType":"ExpressionStatement","src":"5202:25:164"}]},"baseFunctions":[73324],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"5150:20:164","parameters":{"id":78148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78155,"src":"5171:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78146,"name":"address","nodeType":"ElementaryTypeName","src":"5171:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5170:9:164"},"returnParameters":{"id":78149,"nodeType":"ParameterList","parameters":[],"src":"5192:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78165,"nodeType":"FunctionDefinition","src":"5240:92:164","nodes":[],"body":{"id":78164,"nodeType":"Block","src":"5290:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5307:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78160,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5300:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5300:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78163,"nodeType":"ExpressionStatement","src":"5300:25:164"}]},"baseFunctions":[73329],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"5249:19:164","parameters":{"id":78158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78157,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78165,"src":"5269:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78156,"name":"address","nodeType":"ElementaryTypeName","src":"5269:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5268:9:164"},"returnParameters":{"id":78159,"nodeType":"ParameterList","parameters":[],"src":"5290:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78173,"nodeType":"FunctionDefinition","src":"5338:82:164","nodes":[],"body":{"id":78172,"nodeType":"Block","src":"5378:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5395:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78168,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5388:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5388:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78171,"nodeType":"ExpressionStatement","src":"5388:25:164"}]},"baseFunctions":[73368],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"5347:16:164","parameters":{"id":78166,"nodeType":"ParameterList","parameters":[],"src":"5363:2:164"},"returnParameters":{"id":78167,"nodeType":"ParameterList","parameters":[],"src":"5378:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78183,"nodeType":"FunctionDefinition","src":"5426:91:164","nodes":[],"body":{"id":78182,"nodeType":"Block","src":"5475:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5492:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78178,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5485:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5485:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78181,"nodeType":"ExpressionStatement","src":"5485:25:164"}]},"baseFunctions":[73382],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5435:18:164","parameters":{"id":78176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78183,"src":"5454:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78174,"name":"address","nodeType":"ElementaryTypeName","src":"5454:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5453:9:164"},"returnParameters":{"id":78177,"nodeType":"ParameterList","parameters":[],"src":"5475:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78199,"nodeType":"FunctionDefinition","src":"5523:134:164","nodes":[],"body":{"id":78198,"nodeType":"Block","src":"5615:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5632:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78194,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5625:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5625:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78197,"nodeType":"ExpressionStatement","src":"5625:25:164"}]},"baseFunctions":[73420],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5532:25:164","parameters":{"id":78190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78199,"src":"5558:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78184,"name":"address","nodeType":"ElementaryTypeName","src":"5558:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78187,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78199,"src":"5567:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78186,"name":"uint256","nodeType":"ElementaryTypeName","src":"5567:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78189,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78199,"src":"5576:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78188,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5576:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5557:27:164"},"returnParameters":{"id":78193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78192,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78199,"src":"5606:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78191,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5606:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5605:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78214,"nodeType":"FunctionDefinition","src":"5663:150:164","nodes":[],"body":{"id":78213,"nodeType":"Block","src":"5771:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5788:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78209,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5781:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5781:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78212,"nodeType":"ExpressionStatement","src":"5781:25:164"}]},"baseFunctions":[73431],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5672:23:164","parameters":{"id":78205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78202,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78214,"src":"5696:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":78201,"nodeType":"UserDefinedTypeName","pathNode":{"id":78200,"name":"Gear.StakerRewardsCommitment","nameLocations":["5696:4:164","5701:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":81234,"src":"5696:28:164"},"referencedDeclaration":81234,"src":"5696:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":78204,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78214,"src":"5733:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78203,"name":"uint48","nodeType":"ElementaryTypeName","src":"5733:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5695:45:164"},"returnParameters":{"id":78208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78207,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78214,"src":"5762:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78206,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5762:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5761:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78226,"nodeType":"FunctionDefinition","src":"5819:95:164","nodes":[],"body":{"id":78225,"nodeType":"Block","src":"5872:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78222,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5889:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78221,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5882:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5882:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78224,"nodeType":"ExpressionStatement","src":"5882:25:164"}]},"baseFunctions":[73390],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5828:13:164","parameters":{"id":78219,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78226,"src":"5842:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78215,"name":"address","nodeType":"ElementaryTypeName","src":"5842:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78218,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78226,"src":"5851:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78217,"name":"address","nodeType":"ElementaryTypeName","src":"5851:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5841:18:164"},"returnParameters":{"id":78220,"nodeType":"ParameterList","parameters":[],"src":"5872:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78236,"nodeType":"FunctionDefinition","src":"5920:85:164","nodes":[],"body":{"id":78235,"nodeType":"Block","src":"5963:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5980:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78231,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5973:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5973:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78234,"nodeType":"ExpressionStatement","src":"5973:25:164"}]},"baseFunctions":[73402],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5929:12:164","parameters":{"id":78229,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78228,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78236,"src":"5942:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78227,"name":"address","nodeType":"ElementaryTypeName","src":"5942:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5941:9:164"},"returnParameters":{"id":78230,"nodeType":"ParameterList","parameters":[],"src":"5963:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78246,"nodeType":"FunctionDefinition","src":"6011:84:164","nodes":[],"body":{"id":78245,"nodeType":"Block","src":"6053:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6070:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78241,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6063:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6063:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78244,"nodeType":"ExpressionStatement","src":"6063:25:164"}]},"baseFunctions":[73408],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"6020:11:164","parameters":{"id":78239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78246,"src":"6032:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78237,"name":"address","nodeType":"ElementaryTypeName","src":"6032:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6031:9:164"},"returnParameters":{"id":78240,"nodeType":"ParameterList","parameters":[],"src":"6053:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78256,"nodeType":"FunctionDefinition","src":"6101:88:164","nodes":[],"body":{"id":78255,"nodeType":"Block","src":"6147:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6164:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78251,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6157:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6157:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78254,"nodeType":"ExpressionStatement","src":"6157:25:164"}]},"baseFunctions":[73396],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"6110:15:164","parameters":{"id":78249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78256,"src":"6126:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78247,"name":"address","nodeType":"ElementaryTypeName","src":"6126:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6125:9:164"},"returnParameters":{"id":78250,"nodeType":"ParameterList","parameters":[],"src":"6147:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78270,"nodeType":"FunctionDefinition","src":"6195:117:164","nodes":[],"body":{"id":78269,"nodeType":"Block","src":"6270:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6287:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78265,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6280:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6280:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78268,"nodeType":"ExpressionStatement","src":"6280:25:164"}]},"baseFunctions":[73350],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"6204:18:164","parameters":{"id":78261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78270,"src":"6223:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78257,"name":"address","nodeType":"ElementaryTypeName","src":"6223:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78260,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78270,"src":"6232:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78259,"name":"uint48","nodeType":"ElementaryTypeName","src":"6232:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6222:17:164"},"returnParameters":{"id":78264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78263,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78270,"src":"6261:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78262,"name":"uint256","nodeType":"ElementaryTypeName","src":"6261:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6260:9:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78286,"nodeType":"FunctionDefinition","src":"6318:142:164","nodes":[],"body":{"id":78285,"nodeType":"Block","src":"6418:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6435:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78281,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6428:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6428:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78284,"nodeType":"ExpressionStatement","src":"6428:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"6327:25:164","parameters":{"id":78273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78286,"src":"6353:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78271,"name":"uint48","nodeType":"ElementaryTypeName","src":"6353:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6352:8:164"},"returnParameters":{"id":78280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78276,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78286,"src":"6382:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78274,"name":"address","nodeType":"ElementaryTypeName","src":"6382:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78275,"nodeType":"ArrayTypeName","src":"6382:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":78279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78286,"src":"6400:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":78277,"name":"uint256","nodeType":"ElementaryTypeName","src":"6400:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78278,"nodeType":"ArrayTypeName","src":"6400:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6381:36:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78298,"nodeType":"FunctionDefinition","src":"6466:98:164","nodes":[],"body":{"id":78297,"nodeType":"Block","src":"6522:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6539:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78293,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6532:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6532:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78296,"nodeType":"ExpressionStatement","src":"6532:25:164"}]},"baseFunctions":[73357],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6475:12:164","parameters":{"id":78291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78298,"src":"6488:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":78288,"nodeType":"UserDefinedTypeName","pathNode":{"id":78287,"name":"SlashData","nameLocations":["6488:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73243,"src":"6488:9:164"},"referencedDeclaration":73243,"src":"6488:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":78289,"nodeType":"ArrayTypeName","src":"6488:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6487:22:164"},"returnParameters":{"id":78292,"nodeType":"ParameterList","parameters":[],"src":"6522:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78310,"nodeType":"FunctionDefinition","src":"6570:104:164","nodes":[],"body":{"id":78309,"nodeType":"Block","src":"6632:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6649:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78305,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6642:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6642:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78308,"nodeType":"ExpressionStatement","src":"6642:25:164"}]},"baseFunctions":[73364],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6579:12:164","parameters":{"id":78303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78310,"src":"6592:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":78300,"nodeType":"UserDefinedTypeName","pathNode":{"id":78299,"name":"SlashIdentifier","nameLocations":["6592:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73248,"src":"6592:15:164"},"referencedDeclaration":73248,"src":"6592:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":78301,"nodeType":"ArrayTypeName","src":"6592:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6591:28:164"},"returnParameters":{"id":78304,"nodeType":"ParameterList","parameters":[],"src":"6632:0:164"},"scope":78409,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78323,"nodeType":"FunctionDefinition","src":"6680:201:164","nodes":[],"body":{"id":78322,"nodeType":"Block","src":"6750:131:164","nodes":[],"statements":[{"assignments":[78317],"declarations":[{"constant":false,"id":78317,"mutability":"mutable","name":"slot","nameLocation":"6768:4:164","nodeType":"VariableDeclaration","scope":78322,"src":"6760:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6760:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78320,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78318,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78348,"src":"6775:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":78319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6775:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6760:32:164"},{"AST":{"nativeSrc":"6828:47:164","nodeType":"YulBlock","src":"6828:47:164","statements":[{"nativeSrc":"6842:23:164","nodeType":"YulAssignment","src":"6842:23:164","value":{"name":"slot","nativeSrc":"6861:4:164","nodeType":"YulIdentifier","src":"6861:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6842:15:164","nodeType":"YulIdentifier","src":"6842:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78314,"isOffset":false,"isSlot":true,"src":"6842:15:164","suffix":"slot","valueSize":1},{"declaration":78317,"isOffset":false,"isSlot":false,"src":"6861:4:164","valueSize":1}],"flags":["memory-safe"],"id":78321,"nodeType":"InlineAssembly","src":"6803:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6689:8:164","parameters":{"id":78311,"nodeType":"ParameterList","parameters":[],"src":"6697:2:164"},"returnParameters":{"id":78315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78314,"mutability":"mutable","name":"middleware","nameLocation":"6738:10:164","nodeType":"VariableDeclaration","scope":78323,"src":"6722:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78313,"nodeType":"UserDefinedTypeName","pathNode":{"id":78312,"name":"Storage","nameLocations":["6722:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"6722:7:164"},"referencedDeclaration":73229,"src":"6722:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6721:28:164"},"scope":78409,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78336,"nodeType":"FunctionDefinition","src":"6887:209:164","nodes":[],"body":{"id":78335,"nodeType":"Block","src":"6963:133:164","nodes":[],"statements":[{"assignments":[78330],"declarations":[{"constant":false,"id":78330,"mutability":"mutable","name":"slot","nameLocation":"6981:4:164","nodeType":"VariableDeclaration","scope":78335,"src":"6973:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6973:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78333,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78331,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78360,"src":"6988:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":78332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6988:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6973:35:164"},{"AST":{"nativeSrc":"7043:47:164","nodeType":"YulBlock","src":"7043:47:164","statements":[{"nativeSrc":"7057:23:164","nodeType":"YulAssignment","src":"7057:23:164","value":{"name":"slot","nativeSrc":"7076:4:164","nodeType":"YulIdentifier","src":"7076:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"7057:15:164","nodeType":"YulIdentifier","src":"7057:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78327,"isOffset":false,"isSlot":true,"src":"7057:15:164","suffix":"slot","valueSize":1},{"declaration":78330,"isOffset":false,"isSlot":false,"src":"7076:4:164","valueSize":1}],"flags":["memory-safe"],"id":78334,"nodeType":"InlineAssembly","src":"7018:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6896:11:164","parameters":{"id":78324,"nodeType":"ParameterList","parameters":[],"src":"6907:2:164"},"returnParameters":{"id":78328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78327,"mutability":"mutable","name":"poaStorage","nameLocation":"6951:10:164","nodeType":"VariableDeclaration","scope":78336,"src":"6932:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":78326,"nodeType":"UserDefinedTypeName","pathNode":{"id":78325,"name":"POAStorage","nameLocations":["6932:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73665,"src":"6932:10:164"},"referencedDeclaration":73665,"src":"6932:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6931:31:164"},"scope":78409,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78348,"nodeType":"FunctionDefinition","src":"7102:128:164","nodes":[],"body":{"id":78347,"nodeType":"Block","src":"7160:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":78343,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"7204:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78341,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7177:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7189:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7177:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7177:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7218:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7177:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78340,"id":78346,"nodeType":"Return","src":"7170:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"7111:15:164","parameters":{"id":78337,"nodeType":"ParameterList","parameters":[],"src":"7126:2:164"},"returnParameters":{"id":78340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78339,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78348,"src":"7151:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78338,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7151:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7150:9:164"},"scope":78409,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78360,"nodeType":"FunctionDefinition","src":"7236:135:164","nodes":[],"body":{"id":78359,"nodeType":"Block","src":"7297:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":78355,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77857,"src":"7341:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78353,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7314:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7326:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7314:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7314:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7359:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7314:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78352,"id":78358,"nodeType":"Return","src":"7307:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"7245:18:164","parameters":{"id":78349,"nodeType":"ParameterList","parameters":[],"src":"7263:2:164"},"returnParameters":{"id":78352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78360,"src":"7288:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7288:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7287:9:164"},"scope":78409,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78384,"nodeType":"FunctionDefinition","src":"7377:200:164","nodes":[],"body":{"id":78383,"nodeType":"Block","src":"7445:132:164","nodes":[],"statements":[{"assignments":[78368],"declarations":[{"constant":false,"id":78368,"mutability":"mutable","name":"slot","nameLocation":"7463:4:164","nodeType":"VariableDeclaration","scope":78383,"src":"7455:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7455:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78373,"initialValue":{"arguments":[{"id":78371,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78362,"src":"7497:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":78369,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"7470:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":78370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7485:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"7470:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":78372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7470:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7455:52:164"},{"expression":{"id":78381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":78377,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"7544:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78374,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7517:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7529:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7517:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7517:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7558:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7517:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78380,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78368,"src":"7566:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7517:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78382,"nodeType":"ExpressionStatement","src":"7517:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":78365,"kind":"modifierInvocation","modifierName":{"id":78364,"name":"onlyOwner","nameLocations":["7435:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"7435:9:164"},"nodeType":"ModifierInvocation","src":"7435:9:164"}],"name":"_setStorageSlot","nameLocation":"7386:15:164","parameters":{"id":78363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78362,"mutability":"mutable","name":"namespace","nameLocation":"7416:9:164","nodeType":"VariableDeclaration","scope":78384,"src":"7402:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":78361,"name":"string","nodeType":"ElementaryTypeName","src":"7402:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7401:25:164"},"returnParameters":{"id":78366,"nodeType":"ParameterList","parameters":[],"src":"7445:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78408,"nodeType":"FunctionDefinition","src":"7583:207:164","nodes":[],"body":{"id":78407,"nodeType":"Block","src":"7654:136:164","nodes":[],"statements":[{"assignments":[78392],"declarations":[{"constant":false,"id":78392,"mutability":"mutable","name":"slot","nameLocation":"7672:4:164","nodeType":"VariableDeclaration","scope":78407,"src":"7664:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7664:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78397,"initialValue":{"arguments":[{"id":78395,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78386,"src":"7706:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":78393,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"7679:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":78394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7694:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"7679:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":78396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7664:52:164"},{"expression":{"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":78401,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77857,"src":"7753:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78398,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7726:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7738:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7726:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7726:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7771:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7726:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78404,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78392,"src":"7779:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7726:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78406,"nodeType":"ExpressionStatement","src":"7726:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":78389,"kind":"modifierInvocation","modifierName":{"id":78388,"name":"onlyOwner","nameLocations":["7644:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"7644:9:164"},"nodeType":"ModifierInvocation","src":"7644:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7592:18:164","parameters":{"id":78387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78386,"mutability":"mutable","name":"namespace","nameLocation":"7625:9:164","nodeType":"VariableDeclaration","scope":78408,"src":"7611:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":78385,"name":"string","nodeType":"ElementaryTypeName","src":"7611:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7610:25:164"},"returnParameters":{"id":78390,"nodeType":"ParameterList","parameters":[],"src":"7654:0:164"},"scope":78409,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":77823,"name":"IMiddleware","nameLocations":["961:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":73432,"src":"961:11:164"},"id":77824,"nodeType":"InheritanceSpecifier","src":"961:11:164"},{"baseName":{"id":77825,"name":"IPOAMiddleware","nameLocations":["978:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":73672,"src":"978:14:164"},"id":77826,"nodeType":"InheritanceSpecifier","src":"978:14:164"},{"baseName":{"id":77827,"name":"OwnableUpgradeable","nameLocations":["998:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"998:18:164"},"id":77828,"nodeType":"InheritanceSpecifier","src":"998:18:164"},{"baseName":{"id":77829,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1022:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"1022:35:164"},"id":77830,"nodeType":"InheritanceSpecifier","src":"1022:35:164"},{"baseName":{"id":77831,"name":"UUPSUpgradeable","nameLocations":["1063:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"1063:15:164"},"id":77832,"nodeType":"InheritanceSpecifier","src":"1063:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[78409,45567,44157,43267,41646,42808,41914,73672,73432],"name":"POAMiddleware","nameLocation":"940:13:164","scope":78410,"usedErrors":[41482,41487,41663,41666,43199,44751,44764,45424,45429,46696,48098,73053,73056,73059,73062,73065,73068,73071,73074,73077,73080,73083,73086,73089,73092,73095,73098,73101,73104,73107,73110,73113,73116,73119,73122,73125,73128,73131,73134,73137,73140,73143,73146,73149,73152,73155,73158,73161],"usedEvents":[41493,41671,44105]}],"license":"UNLICENSED"},"id":164} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowedVaultImplVersion","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"changeSlashExecutor","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"changeSlashRequester","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"collateral","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"disableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"disableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"distributeOperatorRewards","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"distributeStakerRewards","inputs":[{"name":"","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"enableOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"enableVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"eraDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"executeSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashIdentifier[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"getActiveOperatorsStakeAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"pure"},{"type":"function","name":"getOperatorStakeAt","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint48","internalType":"uint48"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"initialize","inputs":[{"name":"_params","type":"tuple","internalType":"struct IMiddleware.InitParams","components":[{"name":"owner","type":"address","internalType":"address"},{"name":"eraDuration","type":"uint48","internalType":"uint48"},{"name":"minVaultEpochDuration","type":"uint48","internalType":"uint48"},{"name":"operatorGracePeriod","type":"uint48","internalType":"uint48"},{"name":"vaultGracePeriod","type":"uint48","internalType":"uint48"},{"name":"minVetoDuration","type":"uint48","internalType":"uint48"},{"name":"minSlashExecutionDelay","type":"uint48","internalType":"uint48"},{"name":"allowedVaultImplVersion","type":"uint64","internalType":"uint64"},{"name":"vetoSlasherImplType","type":"uint64","internalType":"uint64"},{"name":"maxResolverSetEpochsDelay","type":"uint256","internalType":"uint256"},{"name":"maxAdminFee","type":"uint256","internalType":"uint256"},{"name":"collateral","type":"address","internalType":"address"},{"name":"router","type":"address","internalType":"address"},{"name":"symbiotic","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"makeElectionAt","inputs":[{"name":"","type":"uint48","internalType":"uint48"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"maxAdminFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"maxResolverSetEpochsDelay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"minSlashExecutionDelay","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVaultEpochDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"minVetoDuration","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"operatorGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerOperator","inputs":[],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"registerVault","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestSlash","inputs":[{"name":"","type":"tuple[]","internalType":"struct IMiddleware.SlashData[]","components":[{"name":"operator","type":"address","internalType":"address"},{"name":"ts","type":"uint48","internalType":"uint48"},{"name":"vaults","type":"tuple[]","internalType":"struct IMiddleware.VaultSlashData[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"router","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setValidators","inputs":[{"name":"validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subnetwork","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"symbioticContracts","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.SymbioticContracts","components":[{"name":"vaultRegistry","type":"address","internalType":"address"},{"name":"operatorRegistry","type":"address","internalType":"address"},{"name":"networkRegistry","type":"address","internalType":"address"},{"name":"middlewareService","type":"address","internalType":"address"},{"name":"networkOptIn","type":"address","internalType":"address"},{"name":"stakerRewardsFactory","type":"address","internalType":"address"},{"name":"operatorRewards","type":"address","internalType":"address"},{"name":"roleSlashRequester","type":"address","internalType":"address"},{"name":"roleSlashExecutor","type":"address","internalType":"address"},{"name":"vetoResolver","type":"address","internalType":"address"}]}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterOperator","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"unregisterVault","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"vaultGracePeriod","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"pure"},{"type":"function","name":"vetoSlasherImplType","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"BurnerHookNotSupported","inputs":[]},{"type":"error","name":"DelegatorNotInitialized","inputs":[]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"EraDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"IncompatibleSlasherType","inputs":[]},{"type":"error","name":"IncompatibleStakerRewardsVersion","inputs":[]},{"type":"error","name":"IncompatibleVaultVersion","inputs":[]},{"type":"error","name":"IncorrectTimestamp","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidStakerRewardsVault","inputs":[]},{"type":"error","name":"MaxValidatorsMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"MinVaultEpochDurationLessThanTwoEras","inputs":[]},{"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch","inputs":[]},{"type":"error","name":"MinVetoDurationMustBeGreaterThanZero","inputs":[]},{"type":"error","name":"NonFactoryStakerRewards","inputs":[]},{"type":"error","name":"NonFactoryVault","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotRegisteredOperator","inputs":[]},{"type":"error","name":"NotRegisteredVault","inputs":[]},{"type":"error","name":"NotRouter","inputs":[]},{"type":"error","name":"NotSlashExecutor","inputs":[]},{"type":"error","name":"NotSlashRequester","inputs":[]},{"type":"error","name":"NotVaultOwner","inputs":[]},{"type":"error","name":"OperatorDoesNotExist","inputs":[]},{"type":"error","name":"OperatorDoesNotOptIn","inputs":[]},{"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"OperatorGracePeriodNotPassed","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"ResolverMismatch","inputs":[]},{"type":"error","name":"ResolverSetDelayMustBeAtLeastThree","inputs":[]},{"type":"error","name":"ResolverSetDelayTooLong","inputs":[]},{"type":"error","name":"SlasherNotInitialized","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownCollateral","inputs":[]},{"type":"error","name":"UnsupportedBurner","inputs":[]},{"type":"error","name":"UnsupportedDelegatorHook","inputs":[]},{"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration","inputs":[]},{"type":"error","name":"VaultGracePeriodNotPassed","inputs":[]},{"type":"error","name":"VaultWrongEpochDuration","inputs":[]},{"type":"error","name":"VetoDurationTooLong","inputs":[]},{"type":"error","name":"VetoDurationTooShort","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061125a5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161119390816100c78239608051818181610bdd0152610cac0152f35b6001600160401b0319166001600160401b039081175f51602061125a5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"939:6861:164:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;939:6861:164;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;939:6861:164;;7983:34:30;7979:146;;-1:-1:-1;939:6861:164;;;;;;;;1052:13:60;939:6861:164;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;939:6861:164;-1:-1:-1;;;;;939:6861:164;;;-1:-1:-1;;;;;;;;;;;939:6861:164;;;8085:29:30;;939:6861:164;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;939:6861:164;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806305c4fdf914610eb65780630a71094c14610e615780632633b70f1461060a5780632acde09814610238578063373bba1f146102385780633ccce7891461060a5780633d15e74e146102385780634455a38f14610238578063461e7a8e146102385780634f1ef28614610c3157806352d1902d14610bcb5780636c2eb350146109f05780636d1064eb1461060a5780636e5c79321461091b578063709d06ae14610238578063715018a6146108b4578063729e2f361461089b57806379a8b245146102385780637fbe95b51461077a57806386c241a11461060a5780638da5cb5b146107465780639300c9261461060f578063936f43301461060a578063945cf2dd1461023857806396115bc21461060a5780639e03231114610238578063ab12275314610405578063ad3cb1cc146103a7578063af96299514610352578063b5e5ad1214610339578063bcf339341461027a578063c639e2d614610238578063c9b0b1e914610238578063ceebb69a14610265578063d55a5bdf14610238578063d8dfeb4514610265578063d99ddfc71461023d578063d99fcd6614610238578063f2fde38b1461020d5763f887ea40146101d1575f80fd5b34610209575f366003190112610209575f5160206111535f395f51905f5254600701546040516001600160a01b039091168152602090f35b5f80fd5b3461020957602036600319011261020957610236610229610ed8565b610231611056565b610fe5565b005b610265565b3461020957604036600319011261020957610256610ed8565b5061025f610f82565b50610fae565b34610209575f36600319011215610fae575f80fd5b34610209575f3660031901126102095760405161014081018181106001600160401b03821117610325575f91610120916040528281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152015260405162461bcd60e51b8152806103216004820160609060208152600f60208201526e1b9bdd081a5b5c1b195b595b9d1959608a1b60408201520190565b0390fd5b634e487b7160e01b5f52604160045260245ffd5b346102095760203660031901126102095761025f610f6d565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260061b01011115610fae575f80fd5b34610209575f3660031901126102095760408051906103c68183610f31565b600582526020820191640352e302e360dc1b83528151928391602083525180918160208501528484015e5f828201840152601f01601f19168101030190f35b34610209576102e0366003190112610209575f5160206111735f395f51905f52546001600160401b0360ff8260401c1615911680159081610602575b60011490816105f8575b1590816105ef575b506105e0578060016001600160401b03195f5160206111735f395f51905f525416175f5160206111735f395f51905f52556105b0575b6004356001600160a01b0381168103610209576104b0906104a8611089565b610231611089565b6104b8611089565b6105126040516104c9604082610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c657761726556310060208201526104fb611056565b80516020918201205f19015f9081522060ff191690565b5f5160206111535f395f51905f5281905561018435906001600160a01b03821682036102095760070180546001600160a01b0319166001600160a01b0390921691909117905561055e57005b60ff60401b195f5160206111735f395f51905f5254165f5160206111735f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b600160401b60ff60401b195f5160206111735f395f51905f525416175f5160206111735f395f51905f5255610489565b63f92ee8a960e01b5f5260045ffd5b90501582610453565b303b15915061044b565b829150610441565b610f18565b34610209576020366003190112610209576004356001600160401b038111610209573660238201121561020957806004013561064a81610f97565b916106586040519384610f31565b818352602083016024819360051b8301019136831161020957602401905b82821061072e57505050610688611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700549151906001600160401b03821161032557600160401b8211610325578254828455808310610704575b50915f5260205f20915f5b8281106106e757005b81516001600160a01b0316818501556020909101906001016106de565b835f52828060205f20019103905f5b8281106107215750506106d3565b5f82820155600101610713565b6020809161073b84610f04565b815201910190610676565b34610209575f366003190112610209575f5160206111135f395f51905f52546040516001600160a01b039091168152602090f35b34610209576040366003190112610209576004356001600160401b03811161020957606060031982360301126102095760405190606082018281106001600160401b038211176103255760405280600401356001600160401b038111610209578101366023820112156102095760048101356107f581610f97565b916108036040519384610f31565b818352602060048185019360061b830101019036821161020957602401915b818310610850578560406108456044888885526024810135602086015201610f04565b91015261025f610f82565b604083360312610209576040519060408201908282106001600160401b0383111761032557604092602092845261088686610f04565b81528286013583820152815201920191610822565b346102095760603660031901126102095761025f610ed8565b34610209575f366003190112610209576108cc611056565b5f5160206111135f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461020957604036600319011261020957610934610f6d565b507f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70054604051806020835491828152019081935f5260205f20905f5b8181106109d15750505081610986910382610f31565b604051918291602083019060208452518091526040830191905f5b8181106109af575050500390f35b82516001600160a01b03168452859450602093840193909201916001016109a1565b82546001600160a01b0316845260209093019260019283019201610970565b34610209575f36600319011261020957610a08611056565b5f5160206111735f395f51905f525460ff8160401c16908115610bb6575b506105e0575f5160206111735f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206111135f395f51905f5254610a78906001600160a01b03166104a8611089565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206111535f395f51905f52546040906007610aef8351610abe8582610f31565b601f81527f6d6964646c65776172652e73746f726167652e4d6964646c6577617265563200868201526104fb611056565b91825f5160206111535f395f51905f5255610b4b8451610b10606082610f31565b602281527f6d6964646c65776172652e73746f726167652e504f414d6964646c657761726587820152612b1960f11b868201526104fb611056565b7f8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f70055810154910180546001600160a01b0319166001600160a01b03929092169190911790555f5160206111735f395f51905f52805468ff0000000000000000191690555160028152a1005b600291506001600160401b0316101581610a26565b34610209575f366003190112610209577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610c225760206040515f5160206111335f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261020957610c45610ed8565b602435906001600160401b038211610209573660238301121561020957816004013590610c7182610f52565b91610c7f6040519384610f31565b8083526020830193366024838301011161020957815f926024602093018737840101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610e3f575b50610c2257610ce4611056565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f9181610e0b575b50610d265784634c9c8ce360e01b5f5260045260245ffd5b805f5160206111335f395f51905f52869203610df95750823b15610de7575f5160206111335f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610dce575f8091610236945190845af43d15610dc6573d91610daa83610f52565b92610db86040519485610f31565b83523d5f602085013e6110b4565b6060916110b4565b50505034610dd857005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011610e37575b81610e2760209383610f31565b8101031261020957519086610d0e565b3d9150610e1a565b5f5160206111335f395f51905f52546001600160a01b03161415905084610cd7565b34610209576020366003190112610209576004356001600160401b0381116102095736602382011215610209578060040135906001600160401b03821161020957602490369260051b01011115610fae575f80fd5b3461020957604036600319011261020957610ecf610ed8565b5061025f610eee565b600435906001600160a01b038216820361020957565b602435906001600160a01b038216820361020957565b35906001600160a01b038216820361020957565b346102095760203660031901126102095761025f610ed8565b90601f801991011681019081106001600160401b0382111761032557604052565b6001600160401b03811161032557601f01601f191660200190565b6004359065ffffffffffff8216820361020957565b6024359065ffffffffffff8216820361020957565b6001600160401b0381116103255760051b60200190565b60405162461bcd60e51b815260206004820152600f60248201526e1b9bdd081a5b5c1b195b595b9d1959608a1b6044820152606490fd5b6001600160a01b03168015611043575f5160206111135f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b5f5160206111135f395f51905f52546001600160a01b0316330361107657565b63118cdaa760e01b5f523360045260245ffd5b60ff5f5160206111735f395f51905f525460401c16156110a557565b631afcd79f60e31b5f5260045ffd5b906110d857508051156110c957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580611109575b6110e9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156110e156fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"939:6861:164:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4938:25;939:6861;4938:25;;;939:6861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;-1:-1:-1;;;;;;;;;;;939:6861:164;3392:17;;939:6861;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;2357:1:29;939:6861:164;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;939:6861:164;;;:::i;:::-;;;;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;;;:::i;:::-;;;:::i;:::-;;;;;;-1:-1:-1;;939:6861:164;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4938:25;;;;;;;939:6861;4938:25;;939:6861;;;;;;;;;;-1:-1:-1;;;939:6861:164;;;;;;;4938:25;;;;939:6861;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;939:6861:164;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;-1:-1:-1;;;;;;;;;;;939:6861:164;-1:-1:-1;;;;;939:6861:164;;;;;4301:16:30;939:6861:164;;4724:16:30;;:34;;;;939:6861:164;4803:1:30;4788:16;:50;;;;939:6861:164;4853:13:30;:30;;;;939:6861:164;4849:91:30;;;939:6861:164;4803:1:30;-1:-1:-1;;;;;939:6861:164;-1:-1:-1;;;;;;;;;;;939:6861:164;;;-1:-1:-1;;;;;;;;;;;939:6861:164;4977:67:30;;939:6861:164;;;-1:-1:-1;;;;;939:6861:164;;;;;;6959:1:30;;6891:76;;:::i;:::-;;;:::i;6959:1::-;6891:76;;:::i;:::-;7478:37:164;939:6861;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;-1:-1:-1;;1800:178:73;;;;;;-1:-1:-1;;1800:178:73;;1707:277;7478:37:164;-1:-1:-1;;;;;;;;;;;1527:66:164;;;2320:14;939:6861;;-1:-1:-1;;;;;939:6861:164;;;;;;2309:8;;939:6861;;-1:-1:-1;;;;;;939:6861:164;-1:-1:-1;;;;;939:6861:164;;;;;;;;;5064:101:30;;939:6861:164;5064:101:30;-1:-1:-1;;;939:6861:164;-1:-1:-1;;;;;;;;;;;939:6861:164;;-1:-1:-1;;;;;;;;;;;939:6861:164;5140:14:30;939:6861:164;;;4803:1:30;939:6861:164;;5140:14:30;939:6861:164;4977:67:30;-1:-1:-1;;;;;;939:6861:164;-1:-1:-1;;;;;;;;;;;939:6861:164;;;-1:-1:-1;;;;;;;;;;;939:6861:164;4977:67:30;;4849:91;6496:23;;;939:6861:164;4906:23:30;939:6861:164;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;939:6861:164;;:::i;:::-;;;;;;-1:-1:-1;;939:6861:164;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;;;;:::i;:::-;1754:66:164;939:6861;;;;-1:-1:-1;;;;;939:6861:164;;;;-1:-1:-1;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;-1:-1:-1;;;;;;;;;;;939:6861:164;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;;;;;-1:-1:-1;;939:6861:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;939:6861:164;;-1:-1:-1;;;;;;939:6861:164;;;;;;;-1:-1:-1;;;;;939:6861:164;3975:40:29;939:6861:164;;3975:40:29;939:6861:164;;;;;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;1754:66;939:6861;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;-1:-1:-1;939:6861:164;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;939:6861:164;;;;;;6429:44:30;;;;;939:6861:164;6425:105:30;;;-1:-1:-1;;;;;;;;;;;939:6861:164;;-1:-1:-1;;939:6861:164;;;;;-1:-1:-1;;;;;;;;;;;939:6861:164;6959:1:30;;-1:-1:-1;;;;;939:6861:164;6891:76:30;;:::i;6959:1::-;6654:20;939:6861:164;-1:-1:-1;;;;;;;;;;;939:6861:164;;;2748:17;7478:37;939:6861;;;;;;:::i;:::-;;;;;;;;;2303:62:29;;:::i;7478:37:164:-;1527:66;;-1:-1:-1;;;;;;;;;;;1527:66:164;7687:37;939:6861;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;939:6861:164;;;;2303:62:29;;:::i;7687:37:164:-;1754:66;1527;2748:17;;939:6861;2728:17;;939:6861;;-1:-1:-1;;;;;;939:6861:164;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;-1:-1:-1;;;;;;;;;;;939:6861:164;;-1:-1:-1;;939:6861:164;;;;2454:1;939:6861;;6654:20:30;939:6861:164;6429:44:30;2454:1:164;939:6861;;-1:-1:-1;;;;;939:6861:164;6448:25:30;;6429:44;;;939:6861:164;;;;;;-1:-1:-1;;939:6861:164;;;;4824:6:60;-1:-1:-1;;;;;939:6861:164;4815:4:60;4807:23;4803:145;;939:6861:164;;;-1:-1:-1;;;;;;;;;;;939:6861:164;;;4803:145:60;4578:29;;;939:6861:164;4908:29:60;939:6861:164;;4908:29:60;939:6861:164;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;939:6861:164;4392:4:60;4384:23;;;:120;;;;939:6861:164;4367:251:60;;;2303:62:29;;:::i;:::-;939:6861:164;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;5865:52:60;;939:6861:164;;5865:52:60;;;939:6861:164;-1:-1:-1;5861:437:60;;1805:47:53;;;;939:6861:164;6227:60:60;939:6861:164;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;939:6861:164;;-1:-1:-1;;;;;;939:6861:164;;;;;2407:36:53;-1:-1:-1;;2407:36:53;939:6861:164;;2458:15:53;:11;;939:6861:164;4065:25:66;;4107:55;4065:25;;;;;;939:6861:164;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;939:6861:164:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;939:6861:164;6159:70:53;6199:19;;;939:6861:164;6199:19:53;939:6861:164;;6199:19:53;1744:119;1805:47;;;939:6861:164;1805:47:53;939:6861:164;;;;1805:47:53;5955:120:60;6026:34;;;939:6861:164;6026:34:60;939:6861:164;;;;6026:34:60;5865:52;;;;939:6861:164;5865:52:60;;939:6861:164;5865:52:60;;;;;;939:6861:164;5865:52:60;;;:::i;:::-;;;939:6861:164;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;939:6861:164;-1:-1:-1;;;;;939:6861:164;4462:42:60;;;-1:-1:-1;4384:120:60;;;939:6861:164;;;;;;-1:-1:-1;;939:6861:164;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;939:6861:164;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;939:6861:164;;;;;;:::o;:::-;;;-1:-1:-1;;;;;939:6861:164;;;;;;:::o;:::-;;;;;;-1:-1:-1;;939:6861:164;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;939:6861:164;;;;;;;:::o;:::-;-1:-1:-1;;;;;939:6861:164;;;;;;-1:-1:-1;;939:6861:164;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;939:6861:164;;;;;;;;;:::o;5827:95::-;939:6861;;-1:-1:-1;;;5890:25:164;;939:6861;5890:25;;;939:6861;;;;;;-1:-1:-1;;;939:6861:164;;;;;;4938:25;3405:215:29;-1:-1:-1;;;;;939:6861:164;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;939:6861:164;;-1:-1:-1;;;;;;939:6861:164;;;;;;;-1:-1:-1;;;;;939:6861:164;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;939:6861:164;;3509:1:29;3534:31;2658:162;-1:-1:-1;;;;;;;;;;;939:6861:164;-1:-1:-1;;;;;939:6861:164;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;939:6861:164;;-1:-1:-1;2763:40:29;7082:141:30;939:6861:164;-1:-1:-1;;;;;;;;;;;939:6861:164;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;4437:582:66;;4609:8;;-1:-1:-1;939:6861:164;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;939:6861:164;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;939:6861:164;;;;4933:24:66;939:6861:164;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"45417":[{"start":3037,"length":32},{"start":3244,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowedVaultImplVersion()":"c9b0b1e9","changeSlashExecutor(address)":"86c241a1","changeSlashRequester(address)":"6d1064eb","collateral()":"d8dfeb45","disableOperator()":"d99fcd66","disableVault(address)":"3ccce789","distributeOperatorRewards(address,uint256,bytes32)":"729e2f36","distributeStakerRewards(((address,uint256)[],uint256,address),uint48)":"7fbe95b5","enableOperator()":"3d15e74e","enableVault(address)":"936f4330","eraDuration()":"4455a38f","executeSlash((address,uint256)[])":"af962995","getActiveOperatorsStakeAt(uint48)":"b5e5ad12","getOperatorStakeAt(address,uint48)":"d99ddfc7","initialize((address,uint48,uint48,uint48,uint48,uint48,uint48,uint64,uint64,uint256,uint256,address,address,(address,address,address,address,address,address,address,address,address,address)))":"ab122753","makeElectionAt(uint48,uint256)":"6e5c7932","maxAdminFee()":"c639e2d6","maxResolverSetEpochsDelay()":"9e032311","minSlashExecutionDelay()":"373bba1f","minVaultEpochDuration()":"945cf2dd","minVetoDuration()":"461e7a8e","operatorGracePeriod()":"709d06ae","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","registerOperator()":"2acde098","registerVault(address,address)":"05c4fdf9","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestSlash((address,uint48,(address,uint256)[])[])":"0a71094c","router()":"f887ea40","setValidators(address[])":"9300c926","subnetwork()":"ceebb69a","symbioticContracts()":"bcf33934","transferOwnership(address)":"f2fde38b","unregisterOperator(address)":"96115bc2","unregisterVault(address)":"2633b70f","upgradeToAndCall(address,bytes)":"4f1ef286","vaultGracePeriod()":"79a8b245","vetoSlasherImplType()":"d55a5bdf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BurnerHookNotSupported\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DelegatorNotInitialized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleSlasherType\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleStakerRewardsVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncompatibleVaultVersion\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IncorrectTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStakerRewardsVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxValidatorsMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinSlashExecutionDelayMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVaultEpochDurationLessThanTwoEras\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoAndSlashDelayTooLongForVaultEpoch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MinVetoDurationMustBeGreaterThanZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryStakerRewards\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NonFactoryVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredOperator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRegisteredVault\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotRouter\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashExecutor\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotSlashRequester\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotVaultOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorDoesNotOptIn\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OperatorGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayMustBeAtLeastThree\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ResolverSetDelayTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SlasherNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCollateral\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedBurner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsupportedDelegatorHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodLessThanMinVaultEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultGracePeriodNotPassed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VaultWrongEpochDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooLong\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"VetoDurationTooShort\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allowedVaultImplVersion\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashExecutor\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"changeSlashRequester\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collateral\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"disableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"disableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"distributeOperatorRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"distributeStakerRewards\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"enableOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"enableVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eraDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.SlashIdentifier[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"executeSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getActiveOperatorsStakeAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"name\":\"getOperatorStakeAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"eraDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVaultEpochDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"operatorGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"vaultGracePeriod\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minVetoDuration\",\"type\":\"uint48\"},{\"internalType\":\"uint48\",\"name\":\"minSlashExecutionDelay\",\"type\":\"uint48\"},{\"internalType\":\"uint64\",\"name\":\"allowedVaultImplVersion\",\"type\":\"uint64\"},{\"internalType\":\"uint64\",\"name\":\"vetoSlasherImplType\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"maxResolverSetEpochsDelay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxAdminFee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"router\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"symbiotic\",\"type\":\"tuple\"}],\"internalType\":\"struct IMiddleware.InitParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"makeElectionAt\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxAdminFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxResolverSetEpochsDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minSlashExecutionDelay\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVaultEpochDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"minVetoDuration\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"operatorGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registerVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint48\",\"name\":\"ts\",\"type\":\"uint48\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IMiddleware.VaultSlashData[]\",\"name\":\"vaults\",\"type\":\"tuple[]\"}],\"internalType\":\"struct IMiddleware.SlashData[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"requestSlash\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"router\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"name\":\"setValidators\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"subnetwork\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbioticContracts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vaultRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkRegistry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middlewareService\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"networkOptIn\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"stakerRewardsFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operatorRewards\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashRequester\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"roleSlashExecutor\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"vetoResolver\",\"type\":\"address\"}],\"internalType\":\"struct Gear.SymbioticContracts\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"unregisterVault\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vaultGracePeriod\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vetoSlasherImplType\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"BurnerHookNotSupported()\":[{\"details\":\"Emitted when vault's slasher has a burner hook.\"}],\"DelegatorNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's delegator is not initialized.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EraDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `eraDuration` is equal to zero.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"IncompatibleSlasherType()\":[{\"details\":\"Emitted in `registerVault` when the vaults' slasher type is not supported.\"}],\"IncompatibleStakerRewardsVersion()\":[{\"details\":\"Emitted when rewards contract has incompatible version.\"}],\"IncompatibleVaultVersion()\":[{\"details\":\"Emitted when the vault has incompatible version.\"}],\"IncorrectTimestamp()\":[{\"details\":\"Emitted when requested timestamp is in the future.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidStakerRewardsVault()\":[{\"details\":\"Emitted in `registerVault` when the vault in rewards contract is not the same as in the function parameter.\"}],\"MaxValidatorsMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `maxValidators` is equal to zero.\"}],\"MinSlashExecutionDelayMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minSlashExecutionDelay` is equal to zero.\"}],\"MinVaultEpochDurationLessThanTwoEras()\":[{\"details\":\"Emitted when `minVaultEpochDuration` is less than `2 * eraDuration`.\"}],\"MinVetoAndSlashDelayTooLongForVaultEpoch()\":[{\"details\":\"Emitted when `minVetoDuration + minSlashExecutionDelay` is greater than `minVaultEpochDuration`.\"}],\"MinVetoDurationMustBeGreaterThanZero()\":[{\"details\":\"Emitted when `minVetoDuration` is equal to zero.\"}],\"NonFactoryStakerRewards()\":[{\"details\":\"Emitted when rewards contract was not created by the StakerRewardsFactory.\"}],\"NonFactoryVault()\":[{\"details\":\"Emitted when trying to register the vault from unknown factory.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"NotRegisteredOperator()\":[{\"details\":\"Emitted when `SlashData` contains the operator that is not registered in the Middleware.\"}],\"NotRegisteredVault()\":[{\"details\":\"Emitted when the vault is not registered in the Middleware.\"}],\"NotRouter()\":[{\"details\":\"Emitted when the `msg.sender` is not the Router contract.\"}],\"NotSlashExecutor()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash executor.\"}],\"NotSlashRequester()\":[{\"details\":\"Emitted when the `msg.sender` has not the role of slash requester.\"}],\"NotVaultOwner()\":[{\"details\":\"Emitted when `msg.sender` is no the owner.\"}],\"OperatorDoesNotExist()\":[{\"details\":\"Emitted when the operator is not registered in the OperatorRegistry.\"}],\"OperatorDoesNotOptIn()\":[{\"details\":\"Emitted when the operator is not opted-in to the Middleware.\"}],\"OperatorGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `operatorGracePeriod` is less than `minVaultEpochDuration`.\"}],\"OperatorGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the operator earlier then `operatorGracePeriod`.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"ResolverMismatch()\":[{\"details\":\"Emitted when slasher's veto resolver is not the same as in the Middleware.\"}],\"ResolverSetDelayMustBeAtLeastThree()\":[{\"details\":\"Emitted when `maxResolverSetEpochsDelay` is less than `3`.\"}],\"ResolverSetDelayTooLong()\":[{\"details\":\"Emitted when the slasher's delay to update the resolver is greater than the one in the Middleware.\"}],\"SlasherNotInitialized()\":[{\"details\":\"Emitted in `registerVault` when vault's slasher is not initialized.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}],\"UnknownCollateral()\":[{\"details\":\"Emitted when trying to distribute rewards with collateral that is not equal to the one in the Middleware.\"}],\"UnsupportedBurner()\":[{\"details\":\"Emitted when vault's burner is equal to `address(0)`.\"}],\"UnsupportedDelegatorHook()\":[{\"details\":\"Emitted when the delegator's hook is not equal to `address(0)`.\"}],\"VaultGracePeriodLessThanMinVaultEpochDuration()\":[{\"details\":\"Emitted when `vaultGracePeriod` is less than `minVaultEpochDuration`.\"}],\"VaultGracePeriodNotPassed()\":[{\"details\":\"Emitted when trying to unregister the vault earlier then `vaultGracePeriod`.\"}],\"VaultWrongEpochDuration()\":[{\"details\":\"Emitted when trying to register the vault with `epochDuration` less than `minVaultEpochDuration`.\"}],\"VetoDurationTooLong()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` + `minShashExecutionDelay` is greater than vaultEpochDuration.\"}],\"VetoDurationTooShort()\":[{\"details\":\"Emitted when the vault's slasher has a `vetoDuration` less than `minVetoDuration`.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerOperator()\":{\"details\":\"Operator must be registered in operator registry.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setValidators(address[])\":{\"details\":\"IPOAMiddleware call\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"IncompatibleStakerRewardsVersion()\":[{\"notice\":\"The version of the rewards contract is a index of the whitelisted versions in StakerRewardsFactory.\"}],\"IncompatibleVaultVersion()\":[{\"notice\":\"The version of the vault is a index of the whitelisted versions in VaultFactory.\"}]},\"kind\":\"user\",\"methods\":{\"disableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"enableOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"},\"registerOperator()\":{\"notice\":\"This function can be called only be operator themselves.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/POAMiddleware.sol\":\"POAMiddleware\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"lib/openzeppelin-contracts/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol\":{\"keccak256\":\"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56\",\"dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626\",\"dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S\"]},\"src/IPOAMiddleware.sol\":{\"keccak256\":\"0x61d95509147c9e7e613a5a6bd047bc3bdab706b99aee7aa7a1f4ad291b8f139d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d2122ceda461ab85ca9e7df6b26ad19687116f2c0c7000d2312be50f0d863274\",\"dweb:/ipfs/QmZCTieeJo9FN5FFM6UomAAUESGAQ6JGSfuFxTnK478yAw\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/POAMiddleware.sol\":{\"keccak256\":\"0x6bcdd0278830837b380e54602bd5e391ea9769e777934ba9079c508a86007d8c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0cb4b31d89ee2f01e2f2456af46c93007b744ae5ba60a3eb5c9fa66615fcde14\",\"dweb:/ipfs/Qmb6geDVhVqmuEr8JV3r4tnuyiDWY8mrnssPBVzSpQBzK2\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/MapWithTimeData.sol\":{\"keccak256\":\"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543\",\"dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"BurnerHookNotSupported"},{"inputs":[],"type":"error","name":"DelegatorNotInitialized"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"EraDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"IncompatibleSlasherType"},{"inputs":[],"type":"error","name":"IncompatibleStakerRewardsVersion"},{"inputs":[],"type":"error","name":"IncompatibleVaultVersion"},{"inputs":[],"type":"error","name":"IncorrectTimestamp"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidStakerRewardsVault"},{"inputs":[],"type":"error","name":"MaxValidatorsMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinSlashExecutionDelayMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"MinVaultEpochDurationLessThanTwoEras"},{"inputs":[],"type":"error","name":"MinVetoAndSlashDelayTooLongForVaultEpoch"},{"inputs":[],"type":"error","name":"MinVetoDurationMustBeGreaterThanZero"},{"inputs":[],"type":"error","name":"NonFactoryStakerRewards"},{"inputs":[],"type":"error","name":"NonFactoryVault"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotRegisteredOperator"},{"inputs":[],"type":"error","name":"NotRegisteredVault"},{"inputs":[],"type":"error","name":"NotRouter"},{"inputs":[],"type":"error","name":"NotSlashExecutor"},{"inputs":[],"type":"error","name":"NotSlashRequester"},{"inputs":[],"type":"error","name":"NotVaultOwner"},{"inputs":[],"type":"error","name":"OperatorDoesNotExist"},{"inputs":[],"type":"error","name":"OperatorDoesNotOptIn"},{"inputs":[],"type":"error","name":"OperatorGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"OperatorGracePeriodNotPassed"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"ResolverMismatch"},{"inputs":[],"type":"error","name":"ResolverSetDelayMustBeAtLeastThree"},{"inputs":[],"type":"error","name":"ResolverSetDelayTooLong"},{"inputs":[],"type":"error","name":"SlasherNotInitialized"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownCollateral"},{"inputs":[],"type":"error","name":"UnsupportedBurner"},{"inputs":[],"type":"error","name":"UnsupportedDelegatorHook"},{"inputs":[],"type":"error","name":"VaultGracePeriodLessThanMinVaultEpochDuration"},{"inputs":[],"type":"error","name":"VaultGracePeriodNotPassed"},{"inputs":[],"type":"error","name":"VaultWrongEpochDuration"},{"inputs":[],"type":"error","name":"VetoDurationTooLong"},{"inputs":[],"type":"error","name":"VetoDurationTooShort"},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"allowedVaultImplVersion","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashExecutor"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"changeSlashRequester"},{"inputs":[],"stateMutability":"pure","type":"function","name":"collateral","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"disableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"disableVault"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function","name":"distributeOperatorRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"struct Gear.StakerRewardsCommitment","name":"","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"distributeStakerRewards","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"enableOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"enableVault"},{"inputs":[],"stateMutability":"pure","type":"function","name":"eraDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"struct IMiddleware.SlashIdentifier[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"executeSlash"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getActiveOperatorsStakeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"pure","type":"function","name":"getOperatorStakeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct IMiddleware.InitParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint48","name":"eraDuration","type":"uint48"},{"internalType":"uint48","name":"minVaultEpochDuration","type":"uint48"},{"internalType":"uint48","name":"operatorGracePeriod","type":"uint48"},{"internalType":"uint48","name":"vaultGracePeriod","type":"uint48"},{"internalType":"uint48","name":"minVetoDuration","type":"uint48"},{"internalType":"uint48","name":"minSlashExecutionDelay","type":"uint48"},{"internalType":"uint64","name":"allowedVaultImplVersion","type":"uint64"},{"internalType":"uint64","name":"vetoSlasherImplType","type":"uint64"},{"internalType":"uint256","name":"maxResolverSetEpochsDelay","type":"uint256"},{"internalType":"uint256","name":"maxAdminFee","type":"uint256"},{"internalType":"address","name":"collateral","type":"address"},{"internalType":"address","name":"router","type":"address"},{"internalType":"struct Gear.SymbioticContracts","name":"symbiotic","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint48","name":"","type":"uint48"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"makeElectionAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxAdminFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"maxResolverSetEpochsDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minSlashExecutionDelay","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVaultEpochDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"minVetoDuration","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"operatorGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"registerOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"registerVault"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct IMiddleware.SlashData[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint48","name":"ts","type":"uint48"},{"internalType":"struct IMiddleware.VaultSlashData[]","name":"vaults","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]}],"stateMutability":"pure","type":"function","name":"requestSlash"},{"inputs":[],"stateMutability":"view","type":"function","name":"router","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"setValidators"},{"inputs":[],"stateMutability":"pure","type":"function","name":"subnetwork","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"symbioticContracts","outputs":[{"internalType":"struct Gear.SymbioticContracts","name":"","type":"tuple","components":[{"internalType":"address","name":"vaultRegistry","type":"address"},{"internalType":"address","name":"operatorRegistry","type":"address"},{"internalType":"address","name":"networkRegistry","type":"address"},{"internalType":"address","name":"middlewareService","type":"address"},{"internalType":"address","name":"networkOptIn","type":"address"},{"internalType":"address","name":"stakerRewardsFactory","type":"address"},{"internalType":"address","name":"operatorRewards","type":"address"},{"internalType":"address","name":"roleSlashRequester","type":"address"},{"internalType":"address","name":"roleSlashExecutor","type":"address"},{"internalType":"address","name":"vetoResolver","type":"address"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterOperator"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function","name":"unregisterVault"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"pure","type":"function","name":"vaultGracePeriod","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"vetoSlasherImplType","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerOperator()":{"details":"Operator must be registered in operator registry."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setValidators(address[])":{"details":"IPOAMiddleware call"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"disableOperator()":{"notice":"This function can be called only be operator themselves."},"enableOperator()":{"notice":"This function can be called only be operator themselves."},"registerOperator()":{"notice":"This function can be called only be operator themselves."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/POAMiddleware.sol":"POAMiddleware"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol":{"keccak256":"0xf5ef5506fd66082b3c2e7f3df37529f5a8efad32ac62e7c8914bd63219190bfe","urls":["bzz-raw://ba031a54ee0d0e9a270c2b9e18437f5668cfeb659cfd5fe0677459d7fcac2a56","dweb:/ipfs/QmReP3H7qQ78tAfgLnJKsNEQNCQfF1X1Get38Ffd4kzq32"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca","urls":["bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626","dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S"],"license":"MIT"},"src/IPOAMiddleware.sol":{"keccak256":"0x61d95509147c9e7e613a5a6bd047bc3bdab706b99aee7aa7a1f4ad291b8f139d","urls":["bzz-raw://d2122ceda461ab85ca9e7df6b26ad19687116f2c0c7000d2312be50f0d863274","dweb:/ipfs/QmZCTieeJo9FN5FFM6UomAAUESGAQ6JGSfuFxTnK478yAw"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/POAMiddleware.sol":{"keccak256":"0x6bcdd0278830837b380e54602bd5e391ea9769e777934ba9079c508a86007d8c","urls":["bzz-raw://0cb4b31d89ee2f01e2f2456af46c93007b744ae5ba60a3eb5c9fa66615fcde14","dweb:/ipfs/Qmb6geDVhVqmuEr8JV3r4tnuyiDWY8mrnssPBVzSpQBzK2"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/MapWithTimeData.sol":{"keccak256":"0x50dcf2e52a3d989fe725ba5b17d88b02ad79fd69c56e6cf4bee28f581002a3ae","urls":["bzz-raw://390fee62dad599fc9fcc91c18c6f40259c83e496166060aa3001592b5a856543","dweb:/ipfs/QmRv1JoB1ucrFtPpZSazRjVfhv6gSsrm8boVufRAxp6hcA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/POAMiddleware.sol","id":78461,"exportedSymbols":{"EnumerableMap":[57867],"Gear":[85973],"IMiddleware":[73432],"IPOAMiddleware":[73672],"MapWithTimeData":[86255],"OwnableUpgradeable":[41646],"POAMiddleware":[78460],"ReentrancyGuardTransientUpgradeable":[43267],"SlotDerivation":[48289],"StorageSlot":[48413],"Subnetwork":[64302],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:7762:164","nodes":[{"id":77851,"nodeType":"PragmaDirective","src":"39:24:164","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":77853,"nodeType":"ImportDirective","src":"65:101:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":77852,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"73:18:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77855,"nodeType":"ImportDirective","src":"167:140:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":77854,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"180:35:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77857,"nodeType":"ImportDirective","src":"308:88:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":77856,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"316:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77859,"nodeType":"ImportDirective","src":"397:80:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":77858,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"405:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77861,"nodeType":"ImportDirective","src":"478:74:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":77860,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"486:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77863,"nodeType":"ImportDirective","src":"553:86:164","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableMap.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":57868,"symbolAliases":[{"foreign":{"id":77862,"name":"EnumerableMap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57867,"src":"561:13:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77865,"nodeType":"ImportDirective","src":"640:48:164","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":77864,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"648:11:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77867,"nodeType":"ImportDirective","src":"689:54:164","nodes":[],"absolutePath":"src/IPOAMiddleware.sol","file":"src/IPOAMiddleware.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":73673,"symbolAliases":[{"foreign":{"id":77866,"name":"IPOAMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73672,"src":"697:14:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77869,"nodeType":"ImportDirective","src":"744:44:164","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":85974,"symbolAliases":[{"foreign":{"id":77868,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"752:4:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77871,"nodeType":"ImportDirective","src":"789:66:164","nodes":[],"absolutePath":"src/libraries/MapWithTimeData.sol","file":"src/libraries/MapWithTimeData.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":86256,"symbolAliases":[{"foreign":{"id":77870,"name":"MapWithTimeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86255,"src":"797:15:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77873,"nodeType":"ImportDirective","src":"856:81:164","nodes":[],"absolutePath":"lib/symbiotic-core/src/contracts/libraries/Subnetwork.sol","file":"symbiotic-core/src/contracts/libraries/Subnetwork.sol","nameLocation":"-1:-1:-1","scope":78461,"sourceUnit":64303,"symbolAliases":[{"foreign":{"id":77872,"name":"Subnetwork","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64302,"src":"864:10:164","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78460,"nodeType":"ContractDefinition","src":"939:6861:164","nodes":[{"id":77887,"nodeType":"UsingForDirective","src":"1093:55:164","nodes":[],"global":false,"libraryName":{"id":77884,"name":"EnumerableMap","nameLocations":["1099:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"1099:13:164"},"typeName":{"id":77886,"nodeType":"UserDefinedTypeName","pathNode":{"id":77885,"name":"EnumerableMap.AddressToUintMap","nameLocations":["1117:13:164","1131:16:164"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"1117:30:164"},"referencedDeclaration":56191,"src":"1117:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77891,"nodeType":"UsingForDirective","src":"1153:57:164","nodes":[],"global":false,"libraryName":{"id":77888,"name":"MapWithTimeData","nameLocations":["1159:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86255,"src":"1159:15:164"},"typeName":{"id":77890,"nodeType":"UserDefinedTypeName","pathNode":{"id":77889,"name":"EnumerableMap.AddressToUintMap","nameLocations":["1179:13:164","1193:16:164"],"nodeType":"IdentifierPath","referencedDeclaration":56191,"src":"1179:30:164"},"referencedDeclaration":56191,"src":"1179:30:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToUintMap_$56191_storage_ptr","typeString":"struct EnumerableMap.AddressToUintMap"}}},{"id":77895,"nodeType":"UsingForDirective","src":"1216:58:164","nodes":[],"global":false,"libraryName":{"id":77892,"name":"EnumerableMap","nameLocations":["1222:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":57867,"src":"1222:13:164"},"typeName":{"id":77894,"nodeType":"UserDefinedTypeName","pathNode":{"id":77893,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["1240:13:164","1254:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"1240:33:164"},"referencedDeclaration":56486,"src":"1240:33:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77899,"nodeType":"UsingForDirective","src":"1279:60:164","nodes":[],"global":false,"libraryName":{"id":77896,"name":"MapWithTimeData","nameLocations":["1285:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":86255,"src":"1285:15:164"},"typeName":{"id":77898,"nodeType":"UserDefinedTypeName","pathNode":{"id":77897,"name":"EnumerableMap.AddressToAddressMap","nameLocations":["1305:13:164","1319:19:164"],"nodeType":"IdentifierPath","referencedDeclaration":56486,"src":"1305:33:164"},"referencedDeclaration":56486,"src":"1305:33:164","typeDescriptions":{"typeIdentifier":"t_struct$_AddressToAddressMap_$56486_storage_ptr","typeString":"struct EnumerableMap.AddressToAddressMap"}}},{"id":77902,"nodeType":"UsingForDirective","src":"1345:29:164","nodes":[],"global":false,"libraryName":{"id":77900,"name":"Subnetwork","nameLocations":["1351:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":64302,"src":"1351:10:164"},"typeName":{"id":77901,"name":"address","nodeType":"ElementaryTypeName","src":"1366:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77905,"nodeType":"VariableDeclaration","src":"1487:106:164","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1512:12:164","scope":78460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307830623863353661663663633961643430316164323235626665393664663737663330343962613137656164616331636239356565383964663165363964313030","id":77904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:66:164","typeDescriptions":{"typeIdentifier":"t_rational_5223398203118087324979291777783578297303922957705888423515209926851254931712_by_1","typeString":"int_const 5223...(68 digits omitted)...1712"},"value":"0x0b8c56af6cc9ad401ad225bfe96df77f3049ba17eadac1cb95ee89df1e69d100"},"visibility":"private"},{"id":77908,"nodeType":"VariableDeclaration","src":"1710:110:164","nodes":[],"constant":true,"mutability":"constant","name":"POA_SLOT_STORAGE","nameLocation":"1735:16:164","scope":78460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77906,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1710:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307838343939333932623366626166323931366134313962353431616365346465663737616137303037336535363932383465633961393635333439393466373030","id":77907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1754:66:164","typeDescriptions":{"typeIdentifier":"t_rational_59976018179433309946144826079876057780106175984062073030302583158790876886784_by_1","typeString":"int_const 5997...(69 digits omitted)...6784"},"value":"0x8499392b3fbaf2916a419b541ace4def77aa70073e569284ec9a96534994f700"},"visibility":"private"},{"id":77911,"nodeType":"VariableDeclaration","src":"1827:50:164","nodes":[],"constant":true,"mutability":"constant","name":"DEFAULT_ADMIN_ROLE","nameLocation":"1852:18:164","scope":78460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77909,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1827:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"30783030","id":77910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1873:4:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x00"},"visibility":"private"},{"id":77914,"nodeType":"VariableDeclaration","src":"1883:45:164","nodes":[],"constant":true,"mutability":"constant","name":"NETWORK_IDENTIFIER","nameLocation":"1906:18:164","scope":78460,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":77912,"name":"uint8","nodeType":"ElementaryTypeName","src":"1883:5:164","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"30","id":77913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1927:1:164","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"private"},{"id":77922,"nodeType":"FunctionDefinition","src":"1988:53:164","nodes":[],"body":{"id":77921,"nodeType":"Block","src":"2002:39:164","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77918,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"2012:20:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2012:22:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77920,"nodeType":"ExpressionStatement","src":"2012:22:164"}]},"documentation":{"id":77915,"nodeType":"StructuredDocumentation","src":"1935:48:164","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":77916,"nodeType":"ParameterList","parameters":[],"src":"1999:2:164"},"returnParameters":{"id":77917,"nodeType":"ParameterList","parameters":[],"src":"2002:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77956,"nodeType":"FunctionDefinition","src":"2047:294:164","nodes":[],"body":{"id":77955,"nodeType":"Block","src":"2115:226:164","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":77931,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77925,"src":"2140:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2148:5:164","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":73163,"src":"2140:13:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77930,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2125:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2125:29:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77934,"nodeType":"ExpressionStatement","src":"2125:29:164"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77935,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"2164:31:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2164:33:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77937,"nodeType":"ExpressionStatement","src":"2164:33:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655631","id":77939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2224:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""},"value":"middleware.storage.MiddlewareV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02a5c5f8d11256fd69f3d6cf76a378a9929132c88934a20e220465858cdca742","typeString":"literal_string \"middleware.storage.MiddlewareV1\""}],"id":77938,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78435,"src":"2208:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2208:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77941,"nodeType":"ExpressionStatement","src":"2208:50:164"},{"assignments":[77944],"declarations":[{"constant":false,"id":77944,"mutability":"mutable","name":"$","nameLocation":"2284:1:164","nodeType":"VariableDeclaration","scope":77955,"src":"2268:17:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77943,"nodeType":"UserDefinedTypeName","pathNode":{"id":77942,"name":"Storage","nameLocations":["2268:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"2268:7:164"},"referencedDeclaration":73229,"src":"2268:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77947,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77945,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78374,"src":"2288:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2288:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2268:30:164"},{"expression":{"id":77953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77948,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77944,"src":"2309:1:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2311:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"2309:8:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77951,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77925,"src":"2320:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams calldata"}},"id":77952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2328:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73187,"src":"2320:14:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2309:25:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77954,"nodeType":"ExpressionStatement","src":"2309:25:164"}]},"functionSelector":"ab122753","implemented":true,"kind":"function","modifiers":[{"id":77928,"kind":"modifierInvocation","modifierName":{"id":77927,"name":"initializer","nameLocations":["2103:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"2103:11:164"},"nodeType":"ModifierInvocation","src":"2103:11:164"}],"name":"initialize","nameLocation":"2056:10:164","parameters":{"id":77926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77925,"mutability":"mutable","name":"_params","nameLocation":"2087:7:164","nodeType":"VariableDeclaration","scope":77956,"src":"2067:27:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_calldata_ptr","typeString":"struct IMiddleware.InitParams"},"typeName":{"id":77924,"nodeType":"UserDefinedTypeName","pathNode":{"id":77923,"name":"InitParams","nameLocations":["2067:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73191,"src":"2067:10:164"},"referencedDeclaration":73191,"src":"2067:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_InitParams_$73191_storage_ptr","typeString":"struct IMiddleware.InitParams"}},"visibility":"internal"}],"src":"2066:29:164"},"returnParameters":{"id":77929,"nodeType":"ParameterList","parameters":[],"src":"2115:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77998,"nodeType":"FunctionDefinition","src":"2399:373:164","nodes":[],"body":{"id":77997,"nodeType":"Block","src":"2457:315:164","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":77966,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"2482:5:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":77967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2482:7:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77965,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2467:14:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2467:23:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77969,"nodeType":"ExpressionStatement","src":"2467:23:164"},{"assignments":[77972],"declarations":[{"constant":false,"id":77972,"mutability":"mutable","name":"oldStorage","nameLocation":"2517:10:164","nodeType":"VariableDeclaration","scope":77997,"src":"2501:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77971,"nodeType":"UserDefinedTypeName","pathNode":{"id":77970,"name":"Storage","nameLocations":["2501:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"2501:7:164"},"referencedDeclaration":73229,"src":"2501:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77975,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77973,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78374,"src":"2530:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2530:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2501:39:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e4d6964646c65776172655632","id":77977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2567:33:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""},"value":"middleware.storage.MiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b71a9760d0d67d1ebdec611fce51798c1c69a6c591e7131d01cf132bade8405","typeString":"literal_string \"middleware.storage.MiddlewareV2\""}],"id":77976,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78435,"src":"2551:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77978,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:50:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77979,"nodeType":"ExpressionStatement","src":"2551:50:164"},{"expression":{"arguments":[{"hexValue":"6d6964646c65776172652e73746f726167652e504f414d6964646c65776172655632","id":77981,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2630:36:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""},"value":"middleware.storage.POAMiddlewareV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c6fd4a0a56578ebf1cead5052a047902e5402f8b08ce672c016695bc7cf8701","typeString":"literal_string \"middleware.storage.POAMiddlewareV2\""}],"id":77980,"name":"_setPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78459,"src":"2611:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":77982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2611:56:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77983,"nodeType":"ExpressionStatement","src":"2611:56:164"},{"assignments":[77986],"declarations":[{"constant":false,"id":77986,"mutability":"mutable","name":"newStorage","nameLocation":"2694:10:164","nodeType":"VariableDeclaration","scope":77997,"src":"2678:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":77985,"nodeType":"UserDefinedTypeName","pathNode":{"id":77984,"name":"Storage","nameLocations":["2678:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"2678:7:164"},"referencedDeclaration":73229,"src":"2678:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"id":77989,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77987,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78374,"src":"2707:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":77988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2707:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"2678:39:164"},{"expression":{"id":77995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77990,"name":"newStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77986,"src":"2728:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77992,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2739:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"2728:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":77993,"name":"oldStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77972,"src":"2748:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":77994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2759:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"2748:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2728:37:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77996,"nodeType":"ExpressionStatement","src":"2728:37:164"}]},"documentation":{"id":77957,"nodeType":"StructuredDocumentation","src":"2347:47:164","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":77960,"kind":"modifierInvocation","modifierName":{"id":77959,"name":"onlyOwner","nameLocations":["2430:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"2430:9:164"},"nodeType":"ModifierInvocation","src":"2430:9:164"},{"arguments":[{"hexValue":"32","id":77962,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2454:1:164","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":77963,"kind":"modifierInvocation","modifierName":{"id":77961,"name":"reinitializer","nameLocations":["2440:13:164"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"2440:13:164"},"nodeType":"ModifierInvocation","src":"2440:16:164"}],"name":"reinitialize","nameLocation":"2408:12:164","parameters":{"id":77958,"nodeType":"ParameterList","parameters":[],"src":"2420:2:164"},"returnParameters":{"id":77964,"nodeType":"ParameterList","parameters":[],"src":"2457:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78008,"nodeType":"FunctionDefinition","src":"2937:84:164","nodes":[],"body":{"id":78007,"nodeType":"Block","src":"3019:2:164","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":77999,"nodeType":"StructuredDocumentation","src":"2778:154:164","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78005,"kind":"modifierInvocation","modifierName":{"id":78004,"name":"onlyOwner","nameLocations":["3009:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"3009:9:164"},"nodeType":"ModifierInvocation","src":"3009:9:164"}],"name":"_authorizeUpgrade","nameLocation":"2946:17:164","overrides":{"id":78003,"nodeType":"OverrideSpecifier","overrides":[],"src":"3000:8:164"},"parameters":{"id":78002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78001,"mutability":"mutable","name":"newImplementation","nameLocation":"2972:17:164","nodeType":"VariableDeclaration","scope":78008,"src":"2964:25:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78000,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2963:27:164"},"returnParameters":{"id":78006,"nodeType":"ParameterList","parameters":[],"src":"3019:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78024,"nodeType":"FunctionDefinition","src":"3060:124:164","nodes":[],"body":{"id":78023,"nodeType":"Block","src":"3131:53:164","nodes":[],"statements":[{"expression":{"id":78021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78017,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78387,"src":"3141:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$73665_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":78018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3141:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":78019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3155:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73664,"src":"3141:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78020,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78012,"src":"3167:10:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"3141:36:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":78022,"nodeType":"ExpressionStatement","src":"3141:36:164"}]},"baseFunctions":[73671],"documentation":{"id":78009,"nodeType":"StructuredDocumentation","src":"3027:28:164","text":"@dev IPOAMiddleware call"},"functionSelector":"9300c926","implemented":true,"kind":"function","modifiers":[{"id":78015,"kind":"modifierInvocation","modifierName":{"id":78014,"name":"onlyOwner","nameLocations":["3121:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"3121:9:164"},"nodeType":"ModifierInvocation","src":"3121:9:164"}],"name":"setValidators","nameLocation":"3069:13:164","parameters":{"id":78013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78012,"mutability":"mutable","name":"validators","nameLocation":"3100:10:164","nodeType":"VariableDeclaration","scope":78024,"src":"3083:27:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78010,"name":"address","nodeType":"ElementaryTypeName","src":"3083:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78011,"nodeType":"ArrayTypeName","src":"3083:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3082:29:164"},"returnParameters":{"id":78016,"nodeType":"ParameterList","parameters":[],"src":"3131:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":78039,"nodeType":"FunctionDefinition","src":"3190:129:164","nodes":[],"body":{"id":78038,"nodeType":"Block","src":"3272:47:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78034,"name":"_poaStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78387,"src":"3289:11:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_POAStorage_$73665_storage_ptr_$","typeString":"function () view returns (struct IPOAMiddleware.POAStorage storage pointer)"}},"id":78035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3289:13:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage storage pointer"}},"id":78036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3303:9:164","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":73664,"src":"3289:23:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":78033,"id":78037,"nodeType":"Return","src":"3282:30:164"}]},"baseFunctions":[73340],"functionSelector":"6e5c7932","implemented":true,"kind":"function","modifiers":[],"name":"makeElectionAt","nameLocation":"3199:14:164","parameters":{"id":78029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78026,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78039,"src":"3214:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78025,"name":"uint48","nodeType":"ElementaryTypeName","src":"3214:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"},{"constant":false,"id":78028,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78039,"src":"3222:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78027,"name":"uint256","nodeType":"ElementaryTypeName","src":"3222:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3213:17:164"},"returnParameters":{"id":78033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78039,"src":"3254:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78030,"name":"address","nodeType":"ElementaryTypeName","src":"3254:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78031,"nodeType":"ArrayTypeName","src":"3254:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"3253:18:164"},"scope":78460,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78049,"nodeType":"FunctionDefinition","src":"3325:91:164","nodes":[],"body":{"id":78048,"nodeType":"Block","src":"3375:41:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78044,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78374,"src":"3392:8:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73229_storage_ptr_$","typeString":"function () view returns (struct IMiddleware.Storage storage pointer)"}},"id":78045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3392:10:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage storage pointer"}},"id":78046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3403:6:164","memberName":"router","nodeType":"MemberAccess","referencedDeclaration":73218,"src":"3392:17:164","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78043,"id":78047,"nodeType":"Return","src":"3385:24:164"}]},"baseFunctions":[73313],"functionSelector":"f887ea40","implemented":true,"kind":"function","modifiers":[],"name":"router","nameLocation":"3334:6:164","parameters":{"id":78040,"nodeType":"ParameterList","parameters":[],"src":"3340:2:164"},"returnParameters":{"id":78043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78049,"src":"3366:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78041,"name":"address","nodeType":"ElementaryTypeName","src":"3366:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3365:9:164"},"scope":78460,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78059,"nodeType":"FunctionDefinition","src":"3571:94:164","nodes":[],"body":{"id":78058,"nodeType":"Block","src":"3623:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3640:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78054,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3633:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3633:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78057,"nodeType":"ExpressionStatement","src":"3633:25:164"}]},"baseFunctions":[73253],"functionSelector":"4455a38f","implemented":true,"kind":"function","modifiers":[],"name":"eraDuration","nameLocation":"3580:11:164","parameters":{"id":78050,"nodeType":"ParameterList","parameters":[],"src":"3591:2:164"},"returnParameters":{"id":78053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78059,"src":"3615:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78051,"name":"uint48","nodeType":"ElementaryTypeName","src":"3615:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3614:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78069,"nodeType":"FunctionDefinition","src":"3671:104:164","nodes":[],"body":{"id":78068,"nodeType":"Block","src":"3733:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3750:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78064,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3743:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3743:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78067,"nodeType":"ExpressionStatement","src":"3743:25:164"}]},"baseFunctions":[73258],"functionSelector":"945cf2dd","implemented":true,"kind":"function","modifiers":[],"name":"minVaultEpochDuration","nameLocation":"3680:21:164","parameters":{"id":78060,"nodeType":"ParameterList","parameters":[],"src":"3701:2:164"},"returnParameters":{"id":78063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78069,"src":"3725:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78061,"name":"uint48","nodeType":"ElementaryTypeName","src":"3725:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3724:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78079,"nodeType":"FunctionDefinition","src":"3781:102:164","nodes":[],"body":{"id":78078,"nodeType":"Block","src":"3841:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3858:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78074,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3851:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78077,"nodeType":"ExpressionStatement","src":"3851:25:164"}]},"baseFunctions":[73263],"functionSelector":"709d06ae","implemented":true,"kind":"function","modifiers":[],"name":"operatorGracePeriod","nameLocation":"3790:19:164","parameters":{"id":78070,"nodeType":"ParameterList","parameters":[],"src":"3809:2:164"},"returnParameters":{"id":78073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78079,"src":"3833:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78071,"name":"uint48","nodeType":"ElementaryTypeName","src":"3833:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3832:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78089,"nodeType":"FunctionDefinition","src":"3889:99:164","nodes":[],"body":{"id":78088,"nodeType":"Block","src":"3946:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3963:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78084,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"3956:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78087,"nodeType":"ExpressionStatement","src":"3956:25:164"}]},"baseFunctions":[73268],"functionSelector":"79a8b245","implemented":true,"kind":"function","modifiers":[],"name":"vaultGracePeriod","nameLocation":"3898:16:164","parameters":{"id":78080,"nodeType":"ParameterList","parameters":[],"src":"3914:2:164"},"returnParameters":{"id":78083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78089,"src":"3938:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78081,"name":"uint48","nodeType":"ElementaryTypeName","src":"3938:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"3937:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78099,"nodeType":"FunctionDefinition","src":"3994:98:164","nodes":[],"body":{"id":78098,"nodeType":"Block","src":"4050:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4067:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78094,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4060:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4060:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78097,"nodeType":"ExpressionStatement","src":"4060:25:164"}]},"baseFunctions":[73273],"functionSelector":"461e7a8e","implemented":true,"kind":"function","modifiers":[],"name":"minVetoDuration","nameLocation":"4003:15:164","parameters":{"id":78090,"nodeType":"ParameterList","parameters":[],"src":"4018:2:164"},"returnParameters":{"id":78093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78099,"src":"4042:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78091,"name":"uint48","nodeType":"ElementaryTypeName","src":"4042:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"4041:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78109,"nodeType":"FunctionDefinition","src":"4098:105:164","nodes":[],"body":{"id":78108,"nodeType":"Block","src":"4161:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4178:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78104,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4171:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4171:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78107,"nodeType":"ExpressionStatement","src":"4171:25:164"}]},"baseFunctions":[73278],"functionSelector":"373bba1f","implemented":true,"kind":"function","modifiers":[],"name":"minSlashExecutionDelay","nameLocation":"4107:22:164","parameters":{"id":78100,"nodeType":"ParameterList","parameters":[],"src":"4129:2:164"},"returnParameters":{"id":78103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78109,"src":"4153:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78101,"name":"uint48","nodeType":"ElementaryTypeName","src":"4153:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"4152:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78119,"nodeType":"FunctionDefinition","src":"4209:109:164","nodes":[],"body":{"id":78118,"nodeType":"Block","src":"4276:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4293:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78114,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4286:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4286:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78117,"nodeType":"ExpressionStatement","src":"4286:25:164"}]},"baseFunctions":[73283],"functionSelector":"9e032311","implemented":true,"kind":"function","modifiers":[],"name":"maxResolverSetEpochsDelay","nameLocation":"4218:25:164","parameters":{"id":78110,"nodeType":"ParameterList","parameters":[],"src":"4243:2:164"},"returnParameters":{"id":78113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78112,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78119,"src":"4267:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78111,"name":"uint256","nodeType":"ElementaryTypeName","src":"4267:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4266:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78129,"nodeType":"FunctionDefinition","src":"4324:106:164","nodes":[],"body":{"id":78128,"nodeType":"Block","src":"4388:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4405:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78124,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4398:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78127,"nodeType":"ExpressionStatement","src":"4398:25:164"}]},"baseFunctions":[73288],"functionSelector":"c9b0b1e9","implemented":true,"kind":"function","modifiers":[],"name":"allowedVaultImplVersion","nameLocation":"4333:23:164","parameters":{"id":78120,"nodeType":"ParameterList","parameters":[],"src":"4356:2:164"},"returnParameters":{"id":78123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78129,"src":"4380:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78121,"name":"uint64","nodeType":"ElementaryTypeName","src":"4380:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4379:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78139,"nodeType":"FunctionDefinition","src":"4436:102:164","nodes":[],"body":{"id":78138,"nodeType":"Block","src":"4496:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4513:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78134,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4506:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4506:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78137,"nodeType":"ExpressionStatement","src":"4506:25:164"}]},"baseFunctions":[73293],"functionSelector":"d55a5bdf","implemented":true,"kind":"function","modifiers":[],"name":"vetoSlasherImplType","nameLocation":"4445:19:164","parameters":{"id":78130,"nodeType":"ParameterList","parameters":[],"src":"4464:2:164"},"returnParameters":{"id":78133,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78132,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78139,"src":"4488:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":78131,"name":"uint64","nodeType":"ElementaryTypeName","src":"4488:6:164","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"4487:8:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78149,"nodeType":"FunctionDefinition","src":"4544:94:164","nodes":[],"body":{"id":78148,"nodeType":"Block","src":"4596:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4613:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78144,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4606:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4606:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78147,"nodeType":"ExpressionStatement","src":"4606:25:164"}]},"baseFunctions":[73298],"functionSelector":"d8dfeb45","implemented":true,"kind":"function","modifiers":[],"name":"collateral","nameLocation":"4553:10:164","parameters":{"id":78140,"nodeType":"ParameterList","parameters":[],"src":"4563:2:164"},"returnParameters":{"id":78143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78142,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78149,"src":"4587:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78141,"name":"address","nodeType":"ElementaryTypeName","src":"4587:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4586:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78159,"nodeType":"FunctionDefinition","src":"4644:94:164","nodes":[],"body":{"id":78158,"nodeType":"Block","src":"4696:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4713:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78154,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4706:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4706:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78157,"nodeType":"ExpressionStatement","src":"4706:25:164"}]},"baseFunctions":[73303],"functionSelector":"ceebb69a","implemented":true,"kind":"function","modifiers":[],"name":"subnetwork","nameLocation":"4653:10:164","parameters":{"id":78150,"nodeType":"ParameterList","parameters":[],"src":"4663:2:164"},"returnParameters":{"id":78153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78152,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78159,"src":"4687:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4687:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4686:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78169,"nodeType":"FunctionDefinition","src":"4744:95:164","nodes":[],"body":{"id":78168,"nodeType":"Block","src":"4797:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4814:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78164,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4807:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4807:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78167,"nodeType":"ExpressionStatement","src":"4807:25:164"}]},"baseFunctions":[73308],"functionSelector":"c639e2d6","implemented":true,"kind":"function","modifiers":[],"name":"maxAdminFee","nameLocation":"4753:11:164","parameters":{"id":78160,"nodeType":"ParameterList","parameters":[],"src":"4764:2:164"},"returnParameters":{"id":78163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78169,"src":"4788:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78161,"name":"uint256","nodeType":"ElementaryTypeName","src":"4788:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4787:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78180,"nodeType":"FunctionDefinition","src":"4845:125:164","nodes":[],"body":{"id":78179,"nodeType":"Block","src":"4928:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4945:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78175,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"4938:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78178,"nodeType":"ExpressionStatement","src":"4938:25:164"}]},"baseFunctions":[73319],"functionSelector":"bcf33934","implemented":true,"kind":"function","modifiers":[],"name":"symbioticContracts","nameLocation":"4854:18:164","parameters":{"id":78170,"nodeType":"ParameterList","parameters":[],"src":"4872:2:164"},"returnParameters":{"id":78174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78180,"src":"4896:30:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_memory_ptr","typeString":"struct Gear.SymbioticContracts"},"typeName":{"id":78172,"nodeType":"UserDefinedTypeName","pathNode":{"id":78171,"name":"Gear.SymbioticContracts","nameLocations":["4896:4:164","4901:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":85097,"src":"4896:23:164"},"referencedDeclaration":85097,"src":"4896:23:164","typeDescriptions":{"typeIdentifier":"t_struct$_SymbioticContracts_$85097_storage_ptr","typeString":"struct Gear.SymbioticContracts"}},"visibility":"internal"}],"src":"4895:32:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78188,"nodeType":"FunctionDefinition","src":"4976:81:164","nodes":[],"body":{"id":78187,"nodeType":"Block","src":"5015:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5032:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78183,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5025:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5025:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78186,"nodeType":"ExpressionStatement","src":"5025:25:164"}]},"baseFunctions":[73372],"functionSelector":"d99fcd66","implemented":true,"kind":"function","modifiers":[],"name":"disableOperator","nameLocation":"4985:15:164","parameters":{"id":78181,"nodeType":"ParameterList","parameters":[],"src":"5000:2:164"},"returnParameters":{"id":78182,"nodeType":"ParameterList","parameters":[],"src":"5015:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78196,"nodeType":"FunctionDefinition","src":"5063:80:164","nodes":[],"body":{"id":78195,"nodeType":"Block","src":"5101:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5118:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78191,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5111:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5111:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78194,"nodeType":"ExpressionStatement","src":"5111:25:164"}]},"baseFunctions":[73376],"functionSelector":"3d15e74e","implemented":true,"kind":"function","modifiers":[],"name":"enableOperator","nameLocation":"5072:14:164","parameters":{"id":78189,"nodeType":"ParameterList","parameters":[],"src":"5086:2:164"},"returnParameters":{"id":78190,"nodeType":"ParameterList","parameters":[],"src":"5101:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78206,"nodeType":"FunctionDefinition","src":"5149:93:164","nodes":[],"body":{"id":78205,"nodeType":"Block","src":"5200:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78202,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5217:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78201,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5210:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5210:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78204,"nodeType":"ExpressionStatement","src":"5210:25:164"}]},"baseFunctions":[73324],"functionSelector":"6d1064eb","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashRequester","nameLocation":"5158:20:164","parameters":{"id":78199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78198,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78206,"src":"5179:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78197,"name":"address","nodeType":"ElementaryTypeName","src":"5179:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5178:9:164"},"returnParameters":{"id":78200,"nodeType":"ParameterList","parameters":[],"src":"5200:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78216,"nodeType":"FunctionDefinition","src":"5248:92:164","nodes":[],"body":{"id":78215,"nodeType":"Block","src":"5298:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5315:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78211,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5308:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5308:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78214,"nodeType":"ExpressionStatement","src":"5308:25:164"}]},"baseFunctions":[73329],"functionSelector":"86c241a1","implemented":true,"kind":"function","modifiers":[],"name":"changeSlashExecutor","nameLocation":"5257:19:164","parameters":{"id":78209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78208,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78216,"src":"5277:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78207,"name":"address","nodeType":"ElementaryTypeName","src":"5277:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5276:9:164"},"returnParameters":{"id":78210,"nodeType":"ParameterList","parameters":[],"src":"5298:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78224,"nodeType":"FunctionDefinition","src":"5346:82:164","nodes":[],"body":{"id":78223,"nodeType":"Block","src":"5386:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5403:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78219,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5396:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5396:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78222,"nodeType":"ExpressionStatement","src":"5396:25:164"}]},"baseFunctions":[73368],"functionSelector":"2acde098","implemented":true,"kind":"function","modifiers":[],"name":"registerOperator","nameLocation":"5355:16:164","parameters":{"id":78217,"nodeType":"ParameterList","parameters":[],"src":"5371:2:164"},"returnParameters":{"id":78218,"nodeType":"ParameterList","parameters":[],"src":"5386:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78234,"nodeType":"FunctionDefinition","src":"5434:91:164","nodes":[],"body":{"id":78233,"nodeType":"Block","src":"5483:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5500:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78229,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5493:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5493:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78232,"nodeType":"ExpressionStatement","src":"5493:25:164"}]},"baseFunctions":[73382],"functionSelector":"96115bc2","implemented":true,"kind":"function","modifiers":[],"name":"unregisterOperator","nameLocation":"5443:18:164","parameters":{"id":78227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78226,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78234,"src":"5462:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78225,"name":"address","nodeType":"ElementaryTypeName","src":"5462:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5461:9:164"},"returnParameters":{"id":78228,"nodeType":"ParameterList","parameters":[],"src":"5483:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78250,"nodeType":"FunctionDefinition","src":"5531:134:164","nodes":[],"body":{"id":78249,"nodeType":"Block","src":"5623:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5640:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78245,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5633:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5633:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78248,"nodeType":"ExpressionStatement","src":"5633:25:164"}]},"baseFunctions":[73420],"functionSelector":"729e2f36","implemented":true,"kind":"function","modifiers":[],"name":"distributeOperatorRewards","nameLocation":"5540:25:164","parameters":{"id":78241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78236,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78250,"src":"5566:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78235,"name":"address","nodeType":"ElementaryTypeName","src":"5566:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78238,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78250,"src":"5575:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78237,"name":"uint256","nodeType":"ElementaryTypeName","src":"5575:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78240,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78250,"src":"5584:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5584:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5565:27:164"},"returnParameters":{"id":78244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78243,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78250,"src":"5614:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78242,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5614:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5613:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78265,"nodeType":"FunctionDefinition","src":"5671:150:164","nodes":[],"body":{"id":78264,"nodeType":"Block","src":"5779:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5796:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78260,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5789:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5789:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78263,"nodeType":"ExpressionStatement","src":"5789:25:164"}]},"baseFunctions":[73431],"functionSelector":"7fbe95b5","implemented":true,"kind":"function","modifiers":[],"name":"distributeStakerRewards","nameLocation":"5680:23:164","parameters":{"id":78256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78253,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78265,"src":"5704:35:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_memory_ptr","typeString":"struct Gear.StakerRewardsCommitment"},"typeName":{"id":78252,"nodeType":"UserDefinedTypeName","pathNode":{"id":78251,"name":"Gear.StakerRewardsCommitment","nameLocations":["5704:4:164","5709:23:164"],"nodeType":"IdentifierPath","referencedDeclaration":84959,"src":"5704:28:164"},"referencedDeclaration":84959,"src":"5704:28:164","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_storage_ptr","typeString":"struct Gear.StakerRewardsCommitment"}},"visibility":"internal"},{"constant":false,"id":78255,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78265,"src":"5741:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78254,"name":"uint48","nodeType":"ElementaryTypeName","src":"5741:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"5703:45:164"},"returnParameters":{"id":78259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78265,"src":"5770:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5770:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5769:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78277,"nodeType":"FunctionDefinition","src":"5827:95:164","nodes":[],"body":{"id":78276,"nodeType":"Block","src":"5880:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5897:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78272,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5890:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5890:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78275,"nodeType":"ExpressionStatement","src":"5890:25:164"}]},"baseFunctions":[73390],"functionSelector":"05c4fdf9","implemented":true,"kind":"function","modifiers":[],"name":"registerVault","nameLocation":"5836:13:164","parameters":{"id":78270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78277,"src":"5850:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78266,"name":"address","nodeType":"ElementaryTypeName","src":"5850:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78277,"src":"5859:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78268,"name":"address","nodeType":"ElementaryTypeName","src":"5859:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5849:18:164"},"returnParameters":{"id":78271,"nodeType":"ParameterList","parameters":[],"src":"5880:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78287,"nodeType":"FunctionDefinition","src":"5928:85:164","nodes":[],"body":{"id":78286,"nodeType":"Block","src":"5971:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5988:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78282,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"5981:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5981:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78285,"nodeType":"ExpressionStatement","src":"5981:25:164"}]},"baseFunctions":[73402],"functionSelector":"3ccce789","implemented":true,"kind":"function","modifiers":[],"name":"disableVault","nameLocation":"5937:12:164","parameters":{"id":78280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78279,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78287,"src":"5950:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78278,"name":"address","nodeType":"ElementaryTypeName","src":"5950:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5949:9:164"},"returnParameters":{"id":78281,"nodeType":"ParameterList","parameters":[],"src":"5971:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78297,"nodeType":"FunctionDefinition","src":"6019:84:164","nodes":[],"body":{"id":78296,"nodeType":"Block","src":"6061:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6078:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78292,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6071:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6071:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78295,"nodeType":"ExpressionStatement","src":"6071:25:164"}]},"baseFunctions":[73408],"functionSelector":"936f4330","implemented":true,"kind":"function","modifiers":[],"name":"enableVault","nameLocation":"6028:11:164","parameters":{"id":78290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78289,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78297,"src":"6040:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78288,"name":"address","nodeType":"ElementaryTypeName","src":"6040:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6039:9:164"},"returnParameters":{"id":78291,"nodeType":"ParameterList","parameters":[],"src":"6061:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78307,"nodeType":"FunctionDefinition","src":"6109:88:164","nodes":[],"body":{"id":78306,"nodeType":"Block","src":"6155:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6172:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78302,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6165:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6165:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78305,"nodeType":"ExpressionStatement","src":"6165:25:164"}]},"baseFunctions":[73396],"functionSelector":"2633b70f","implemented":true,"kind":"function","modifiers":[],"name":"unregisterVault","nameLocation":"6118:15:164","parameters":{"id":78300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78307,"src":"6134:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78298,"name":"address","nodeType":"ElementaryTypeName","src":"6134:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6133:9:164"},"returnParameters":{"id":78301,"nodeType":"ParameterList","parameters":[],"src":"6155:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78321,"nodeType":"FunctionDefinition","src":"6203:117:164","nodes":[],"body":{"id":78320,"nodeType":"Block","src":"6278:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6295:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78316,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6288:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6288:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78319,"nodeType":"ExpressionStatement","src":"6288:25:164"}]},"baseFunctions":[73350],"functionSelector":"d99ddfc7","implemented":true,"kind":"function","modifiers":[],"name":"getOperatorStakeAt","nameLocation":"6212:18:164","parameters":{"id":78312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78309,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78321,"src":"6231:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78308,"name":"address","nodeType":"ElementaryTypeName","src":"6231:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78321,"src":"6240:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78310,"name":"uint48","nodeType":"ElementaryTypeName","src":"6240:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6230:17:164"},"returnParameters":{"id":78315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78321,"src":"6269:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78313,"name":"uint256","nodeType":"ElementaryTypeName","src":"6269:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6268:9:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78337,"nodeType":"FunctionDefinition","src":"6326:142:164","nodes":[],"body":{"id":78336,"nodeType":"Block","src":"6426:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6443:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78332,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6436:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6436:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78335,"nodeType":"ExpressionStatement","src":"6436:25:164"}]},"functionSelector":"b5e5ad12","implemented":true,"kind":"function","modifiers":[],"name":"getActiveOperatorsStakeAt","nameLocation":"6335:25:164","parameters":{"id":78324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78323,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78337,"src":"6361:6:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78322,"name":"uint48","nodeType":"ElementaryTypeName","src":"6361:6:164","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6360:8:164"},"returnParameters":{"id":78331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78337,"src":"6390:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78325,"name":"address","nodeType":"ElementaryTypeName","src":"6390:7:164","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78326,"nodeType":"ArrayTypeName","src":"6390:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":78330,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78337,"src":"6408:16:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":78328,"name":"uint256","nodeType":"ElementaryTypeName","src":"6408:7:164","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78329,"nodeType":"ArrayTypeName","src":"6408:9:164","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"6389:36:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78349,"nodeType":"FunctionDefinition","src":"6474:98:164","nodes":[],"body":{"id":78348,"nodeType":"Block","src":"6530:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6547:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78344,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6540:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6540:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78347,"nodeType":"ExpressionStatement","src":"6540:25:164"}]},"baseFunctions":[73357],"functionSelector":"0a71094c","implemented":true,"kind":"function","modifiers":[],"name":"requestSlash","nameLocation":"6483:12:164","parameters":{"id":78342,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78341,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78349,"src":"6496:20:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashData[]"},"typeName":{"baseType":{"id":78339,"nodeType":"UserDefinedTypeName","pathNode":{"id":78338,"name":"SlashData","nameLocations":["6496:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":73243,"src":"6496:9:164"},"referencedDeclaration":73243,"src":"6496:9:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashData_$73243_storage_ptr","typeString":"struct IMiddleware.SlashData"}},"id":78340,"nodeType":"ArrayTypeName","src":"6496:11:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashData_$73243_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashData[]"}},"visibility":"internal"}],"src":"6495:22:164"},"returnParameters":{"id":78343,"nodeType":"ParameterList","parameters":[],"src":"6530:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78361,"nodeType":"FunctionDefinition","src":"6578:104:164","nodes":[],"body":{"id":78360,"nodeType":"Block","src":"6640:42:164","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"6e6f7420696d706c656d656e746564","id":78357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6657:17:164","typeDescriptions":{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""},"value":"not implemented"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32d075b43bd38f25ee5981ec20d2adc90449bf9822d065b5dee1ff7a3dcb82b9","typeString":"literal_string \"not implemented\""}],"id":78356,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[-19,-19],"referencedDeclaration":-19,"src":"6650:6:164","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":78358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6650:25:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78359,"nodeType":"ExpressionStatement","src":"6650:25:164"}]},"baseFunctions":[73364],"functionSelector":"af962995","implemented":true,"kind":"function","modifiers":[],"name":"executeSlash","nameLocation":"6587:12:164","parameters":{"id":78354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78353,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78361,"src":"6600:26:164","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_calldata_ptr_$dyn_calldata_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"},"typeName":{"baseType":{"id":78351,"nodeType":"UserDefinedTypeName","pathNode":{"id":78350,"name":"SlashIdentifier","nameLocations":["6600:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":73248,"src":"6600:15:164"},"referencedDeclaration":73248,"src":"6600:15:164","typeDescriptions":{"typeIdentifier":"t_struct$_SlashIdentifier_$73248_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier"}},"id":78352,"nodeType":"ArrayTypeName","src":"6600:17:164","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_SlashIdentifier_$73248_storage_$dyn_storage_ptr","typeString":"struct IMiddleware.SlashIdentifier[]"}},"visibility":"internal"}],"src":"6599:28:164"},"returnParameters":{"id":78355,"nodeType":"ParameterList","parameters":[],"src":"6640:0:164"},"scope":78460,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":78374,"nodeType":"FunctionDefinition","src":"6688:201:164","nodes":[],"body":{"id":78373,"nodeType":"Block","src":"6758:131:164","nodes":[],"statements":[{"assignments":[78368],"declarations":[{"constant":false,"id":78368,"mutability":"mutable","name":"slot","nameLocation":"6776:4:164","nodeType":"VariableDeclaration","scope":78373,"src":"6768:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78367,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6768:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78371,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78369,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78399,"src":"6783:15:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":78370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6783:17:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6768:32:164"},{"AST":{"nativeSrc":"6836:47:164","nodeType":"YulBlock","src":"6836:47:164","statements":[{"nativeSrc":"6850:23:164","nodeType":"YulAssignment","src":"6850:23:164","value":{"name":"slot","nativeSrc":"6869:4:164","nodeType":"YulIdentifier","src":"6869:4:164"},"variableNames":[{"name":"middleware.slot","nativeSrc":"6850:15:164","nodeType":"YulIdentifier","src":"6850:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78365,"isOffset":false,"isSlot":true,"src":"6850:15:164","suffix":"slot","valueSize":1},{"declaration":78368,"isOffset":false,"isSlot":false,"src":"6869:4:164","valueSize":1}],"flags":["memory-safe"],"id":78372,"nodeType":"InlineAssembly","src":"6811:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_storage","nameLocation":"6697:8:164","parameters":{"id":78362,"nodeType":"ParameterList","parameters":[],"src":"6705:2:164"},"returnParameters":{"id":78366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78365,"mutability":"mutable","name":"middleware","nameLocation":"6746:10:164","nodeType":"VariableDeclaration","scope":78374,"src":"6730:26:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"},"typeName":{"id":78364,"nodeType":"UserDefinedTypeName","pathNode":{"id":78363,"name":"Storage","nameLocations":["6730:7:164"],"nodeType":"IdentifierPath","referencedDeclaration":73229,"src":"6730:7:164"},"referencedDeclaration":73229,"src":"6730:7:164","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73229_storage_ptr","typeString":"struct IMiddleware.Storage"}},"visibility":"internal"}],"src":"6729:28:164"},"scope":78460,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78387,"nodeType":"FunctionDefinition","src":"6895:209:164","nodes":[],"body":{"id":78386,"nodeType":"Block","src":"6971:133:164","nodes":[],"statements":[{"assignments":[78381],"declarations":[{"constant":false,"id":78381,"mutability":"mutable","name":"slot","nameLocation":"6989:4:164","nodeType":"VariableDeclaration","scope":78386,"src":"6981:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6981:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78384,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78382,"name":"_getPoaStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78411,"src":"6996:18:164","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":78383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6996:20:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6981:35:164"},{"AST":{"nativeSrc":"7051:47:164","nodeType":"YulBlock","src":"7051:47:164","statements":[{"nativeSrc":"7065:23:164","nodeType":"YulAssignment","src":"7065:23:164","value":{"name":"slot","nativeSrc":"7084:4:164","nodeType":"YulIdentifier","src":"7084:4:164"},"variableNames":[{"name":"poaStorage.slot","nativeSrc":"7065:15:164","nodeType":"YulIdentifier","src":"7065:15:164"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":78378,"isOffset":false,"isSlot":true,"src":"7065:15:164","suffix":"slot","valueSize":1},{"declaration":78381,"isOffset":false,"isSlot":false,"src":"7084:4:164","valueSize":1}],"flags":["memory-safe"],"id":78385,"nodeType":"InlineAssembly","src":"7026:72:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_poaStorage","nameLocation":"6904:11:164","parameters":{"id":78375,"nodeType":"ParameterList","parameters":[],"src":"6915:2:164"},"returnParameters":{"id":78379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78378,"mutability":"mutable","name":"poaStorage","nameLocation":"6959:10:164","nodeType":"VariableDeclaration","scope":78387,"src":"6940:29:164","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"},"typeName":{"id":78377,"nodeType":"UserDefinedTypeName","pathNode":{"id":78376,"name":"POAStorage","nameLocations":["6940:10:164"],"nodeType":"IdentifierPath","referencedDeclaration":73665,"src":"6940:10:164"},"referencedDeclaration":73665,"src":"6940:10:164","typeDescriptions":{"typeIdentifier":"t_struct$_POAStorage_$73665_storage_ptr","typeString":"struct IPOAMiddleware.POAStorage"}},"visibility":"internal"}],"src":"6939:31:164"},"scope":78460,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78399,"nodeType":"FunctionDefinition","src":"7110:128:164","nodes":[],"body":{"id":78398,"nodeType":"Block","src":"7168:70:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":78394,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"7212:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78392,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7185:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7197:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7185:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7226:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7185:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78391,"id":78397,"nodeType":"Return","src":"7178:53:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"7119:15:164","parameters":{"id":78388,"nodeType":"ParameterList","parameters":[],"src":"7134:2:164"},"returnParameters":{"id":78391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78390,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78399,"src":"7159:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7159:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7158:9:164"},"scope":78460,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78411,"nodeType":"FunctionDefinition","src":"7244:135:164","nodes":[],"body":{"id":78410,"nodeType":"Block","src":"7305:74:164","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":78406,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77908,"src":"7349:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78404,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7322:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7334:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7322:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7322:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7367:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7322:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78403,"id":78409,"nodeType":"Return","src":"7315:57:164"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getPoaStorageSlot","nameLocation":"7253:18:164","parameters":{"id":78400,"nodeType":"ParameterList","parameters":[],"src":"7271:2:164"},"returnParameters":{"id":78403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78411,"src":"7296:7:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78401,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7296:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7295:9:164"},"scope":78460,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78435,"nodeType":"FunctionDefinition","src":"7385:200:164","nodes":[],"body":{"id":78434,"nodeType":"Block","src":"7453:132:164","nodes":[],"statements":[{"assignments":[78419],"declarations":[{"constant":false,"id":78419,"mutability":"mutable","name":"slot","nameLocation":"7471:4:164","nodeType":"VariableDeclaration","scope":78434,"src":"7463:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7463:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78424,"initialValue":{"arguments":[{"id":78422,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78413,"src":"7505:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":78420,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"7478:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":78421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7493:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"7478:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":78423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7478:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7463:52:164"},{"expression":{"id":78432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":78428,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"7552:12:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78425,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7525:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7537:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7525:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7525:40:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7566:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7525:46:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78431,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78419,"src":"7574:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7525:53:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78433,"nodeType":"ExpressionStatement","src":"7525:53:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":78416,"kind":"modifierInvocation","modifierName":{"id":78415,"name":"onlyOwner","nameLocations":["7443:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"7443:9:164"},"nodeType":"ModifierInvocation","src":"7443:9:164"}],"name":"_setStorageSlot","nameLocation":"7394:15:164","parameters":{"id":78414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78413,"mutability":"mutable","name":"namespace","nameLocation":"7424:9:164","nodeType":"VariableDeclaration","scope":78435,"src":"7410:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":78412,"name":"string","nodeType":"ElementaryTypeName","src":"7410:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7409:25:164"},"returnParameters":{"id":78417,"nodeType":"ParameterList","parameters":[],"src":"7453:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":78459,"nodeType":"FunctionDefinition","src":"7591:207:164","nodes":[],"body":{"id":78458,"nodeType":"Block","src":"7662:136:164","nodes":[],"statements":[{"assignments":[78443],"declarations":[{"constant":false,"id":78443,"mutability":"mutable","name":"slot","nameLocation":"7680:4:164","nodeType":"VariableDeclaration","scope":78458,"src":"7672:12:164","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7672:7:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":78448,"initialValue":{"arguments":[{"id":78446,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78437,"src":"7714:9:164","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":78444,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"7687:14:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":78445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7702:11:164","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"7687:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":78447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7687:37:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7672:52:164"},{"expression":{"id":78456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":78452,"name":"POA_SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77908,"src":"7761:16:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":78449,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"7734:11:164","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":78451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7746:14:164","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"7734:26:164","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":78453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7734:44:164","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":78454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"7779:5:164","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"7734:50:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78455,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78443,"src":"7787:4:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7734:57:164","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78457,"nodeType":"ExpressionStatement","src":"7734:57:164"}]},"implemented":true,"kind":"function","modifiers":[{"id":78440,"kind":"modifierInvocation","modifierName":{"id":78439,"name":"onlyOwner","nameLocations":["7652:9:164"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"7652:9:164"},"nodeType":"ModifierInvocation","src":"7652:9:164"}],"name":"_setPoaStorageSlot","nameLocation":"7600:18:164","parameters":{"id":78438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78437,"mutability":"mutable","name":"namespace","nameLocation":"7633:9:164","nodeType":"VariableDeclaration","scope":78459,"src":"7619:23:164","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":78436,"name":"string","nodeType":"ElementaryTypeName","src":"7619:6:164","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7618:25:164"},"returnParameters":{"id":78441,"nodeType":"ParameterList","parameters":[],"src":"7662:0:164"},"scope":78460,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":77874,"name":"IMiddleware","nameLocations":["969:11:164"],"nodeType":"IdentifierPath","referencedDeclaration":73432,"src":"969:11:164"},"id":77875,"nodeType":"InheritanceSpecifier","src":"969:11:164"},{"baseName":{"id":77876,"name":"IPOAMiddleware","nameLocations":["986:14:164"],"nodeType":"IdentifierPath","referencedDeclaration":73672,"src":"986:14:164"},"id":77877,"nodeType":"InheritanceSpecifier","src":"986:14:164"},{"baseName":{"id":77878,"name":"OwnableUpgradeable","nameLocations":["1006:18:164"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"1006:18:164"},"id":77879,"nodeType":"InheritanceSpecifier","src":"1006:18:164"},{"baseName":{"id":77880,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1030:35:164"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"1030:35:164"},"id":77881,"nodeType":"InheritanceSpecifier","src":"1030:35:164"},{"baseName":{"id":77882,"name":"UUPSUpgradeable","nameLocations":["1071:15:164"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"1071:15:164"},"id":77883,"nodeType":"InheritanceSpecifier","src":"1071:15:164"}],"canonicalName":"POAMiddleware","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[78460,45567,44157,43267,41646,42808,41914,73672,73432],"name":"POAMiddleware","nameLocation":"948:13:164","scope":78461,"usedErrors":[41482,41487,41663,41666,43199,44751,44764,45424,45429,46696,48098,73053,73056,73059,73062,73065,73068,73071,73074,73077,73080,73083,73086,73089,73092,73095,73098,73101,73104,73107,73110,73113,73116,73119,73122,73125,73128,73131,73134,73137,73140,73143,73146,73149,73152,73155,73158,73161],"usedEvents":[41493,41671,44105]}],"license":"UNLICENSED"},"id":164} \ No newline at end of file diff --git a/ethexe/ethereum/abi/Router.json b/ethexe/ethereum/abi/Router.json index 73484e2eb3d..28bb2f120c0 100644 --- a/ethexe/ethereum/abi/Router.json +++ b/ethexe/ethereum/abi/Router.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AnnouncesCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"type":"error","name":"DeploymentFailed","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206144e45f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161441d90816100c78239608051818181611b270152611bba0152f35b6001600160401b0319166001600160401b039081175f5160206144e45f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022612cd1565b5f5160206143bd5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e7146126d8575080630c18d277146121ea578063120e3f1e1461210b57806328e24b3d146120dd5780633683c4d214611eb25780633bd109fa14611e635780633d43b41814611e0f5780633f4ba83a14611d8f5780634f1ef28614611b7b57806352d1902d14611b1457806353f7fd48146116955780635c975abb146116665780636c2eb35014611301578063715018a61461129857806371a8cf2d1461126a57806382bdeaad146111525780638456cb59146110df57806384d22a4f1461108157806388f50cf0146110485780638b1edf1e14610fe15780638da5cb5b14610fac5780638f381dbe14610f665780639067088e14610f1d57806396a2ddfa14610eef5780639eb939a814610e98578063a5d53a4414610e42578063ad3cb1cc14610df9578063b24fcac01461094f578063baaf02011461084e578063c13911e81461080a578063c2eb812f146104de578063ca1e78191461048e578063cacf66ab14610456578063d456fd5114610420578063e3a6684f146103e1578063e6fabc09146103a8578063ed612f8c14610370578063edc872251461031b578063f2fde38b146102ee578063f4f20ac0146102b55763facd743b0361000f57346102b25760203660031901126102b25761027461272e565b600361028f5f5160206143bd5f395f51905f52544290613e9a565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346102b257806003193601126102b2575f5160206143bd5f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346102b25760203660031901126102b25761031861030b61272e565b610313612d06565b612c60565b80f35b50346102b257806003193601126102b25760206103685f5160206143bd5f395f51905f52546008600461034e4284613e9a565b0154910154906001600160801b038260801c921690613e6f565b604051908152f35b50346102b257806003193601126102b2576020600461039e5f5160206143bd5f395f51905f52544290613e9a565b0154604051908152f35b50346102b257806003193601126102b2575f5160206143bd5f395f51905f5254600501546040516001600160a01b039091168152602090f35b50346102b257806003193601126102b257604060085f5160206143bd5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b50346102b257806003193601126102b257602065ffffffffffff60045f5160206143bd5f395f51905f5254015416604051908152f35b50346102b257806003193601126102b257602065ffffffffffff60025f5160206143bd5f395f51905f52540154821c16604051908152f35b50346102b257806003193601126102b2576104da6104c660046104c05f5160206143bd5f395f51905f52544290613e9a565b01612a55565b6040519182916020835260208301906128ca565b0390f35b50346102b257806003193601126102b2576040516104fb816127a2565b610503612b8e565b815260405161051181612787565b5f8152602081015f90526020820152610528612b8e565b6040820152610535612c2d565b606082015260405161054681612787565b5f8082526020820152608082015261055c612b8e565b60a08201528160c082015260e001525f5160206143bd5f395f51905f5254610582612c2d565b5061058f6009820161412a565b9061059c600f820161412a565b600882015492604051936105af856127be565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154604051926105e5846127a2565b6040516105f181612758565b60018401548152600284015463ffffffff8116602083015260201c65ffffffffffff16604082015284526040519461062886612787565b60038401548652600484015465ffffffffffff166020870152602085019586526040519061065582612758565b60058501546001600160a01b03908116835260068601548116602084015260078601541660408084019190915286019182526060860190815261069a60158601612ae0565b94608087019586526016016106ae90612bac565b9160a0870192835260c0870193845260e087019485526040519788976020895251805160208a0152602081015163ffffffff1660408a01526040015165ffffffffffff16606089015251805160808901526020015165ffffffffffff1660a088015251600160a01b6001900381511660c0880152600160a01b6001900360208201511660e0880152600160a01b60019003906040015116610100870152516101208601610200905280516001600160801b031661022087015260208101516001600160801b031661024087015260408101516102608701608090526102a0870161079791612906565b90606001519061021f19878203016102808801526107b491612906565b935180516001600160401b0316610140870152602001516001600160801b031661016086015251805161018086015260208101516101a0860152604001516101c0850152516101e0840152516102008301520390f35b50346102b25760203660031901126102b25760ff604060209260195f5160206143bd5f395f51905f5254016004358252845220541661084c6040518092612899565bf35b50346102b25760203660031901126102b2576004356001600160401b03811161094b5761087f903690600401612869565b905f5160206143bd5f395f51905f525490610899836129ea565b916108a760405193846127d9565b8383526108b3846129ea565b602084019490601f1901368637601a869201915b81811061091257868587604051928392602084019060208552518091526040840192915b8181106108f9575050500390f35b82518452859450602093840193909201916001016108eb565b806109286109236001938588612aa8565b612b0e565b828060a01b03165f528360205260405f20546109448288612acc565b52016108c7565b5080fd5b50346102b25760603660031901126102b2576001600160401b03600435116102b257610100600435360360031901126102b257600260243510156102b2576044356001600160401b03811161094b576109ac903690600401612869565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610dea5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206143bd5f395f51905f525490600182015415610ddb57815415610d7f575b60038201546044600435013503610d705765ffffffffffff60048301541665ffffffffffff610a4b602460043501612be2565b1610610d6257610a606004356004018361306e565b92610a7560a460043501600435600401613523565b808096925060051b0460201485151715610d4e57610a958560051b613f16565b8695865b818810610c055750610bcb965060051b902090610abb60043560040186613587565b610aca6004356004018761397a565b90610ad9602460043501612be2565b93610ae8606460043501612bd4565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610b4d60e7826127d9565b5190209283600382015565ffffffffffff610b6c602460043501612be2565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610bc0602460043501612be2565b169360243591613bfd565b15610bf657807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610c1960a460043501600435600401613523565b891015610d3a578860061b8101358a526019880160205260ff60408b2054166003811015610d2657600103610d1757600191602091610cdc8b8b8e868360061b86010192610c6684613558565b15610cf85760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610c9890612cf8565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610cc784613558565b1515926040519060061b8701358152a2613558565b908b60061b01358c52825360218b208186015201970196610a99565b60409260199160061b87013583520187522060ff198154169055610c9b565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610d9c610d90606460043501612bd4565b60043560040135612fd9565b15610dcc5765ffffffffffff610db6602460043501612be2565b164211610a1857631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346102b257806003193601126102b257506104da604051610e1c6040826127d9565b60058152640352e302e360dc1b60208201526040519182916020835260208301906128a6565b50346102b257806003193601126102b2576104da610e845f5160206143bd5f395f51905f52546002610e7c60018060a01b03924290613e9a565b015416612faa565b6040519182916020835260208301906128a6565b50346102b257806003193601126102b257610eb1612b8e565b506060610ece60165f5160206143bd5f395f51905f525401612bac565b61084c60405180926040809180518452602081015160208501520151910152565b50346102b257806003193601126102b2576020601b5f5160206143bd5f395f51905f52540154604051908152f35b50346102b25760203660031901126102b257610f3761272e565b601a5f5160206143bd5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346102b25760203660031901126102b257600435906001600160401b0382116102b2576020610fa2610f9c3660048601612869565b90612b22565b6040519015158152f35b50346102b257806003193601126102b2575f51602061437d5f395f51905f52546040516001600160a01b039091168152602090f35b50346102b257806003193601126102b257610ffa612cd1565b5f5160206143bd5f395f51905f525460018101908154611039576002015463ffffffff164090811561102a575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346102b257806003193601126102b2575f5160206143bd5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346102b257806003193601126102b25761109a61294d565b5060406110b760155f5160206143bd5f395f51905f525401612ae0565b61084c825180926001600160801b03602080926001600160401b038151168552015116910152565b50346102b257806003193601126102b2576110f8612d06565b611100612cd1565b600160ff195f5160206143dd5f395f51905f525416175f5160206143dd5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102b25760203660031901126102b2576004356001600160401b03811161094b57611183903690600401612869565b905f5160206143bd5f395f51905f52549061119d836129ea565b916111ab60405193846127d9565b8383526111b7846129ea565b602084019490601f19013686376019869201915b81811061122057868587604051928392602084019060208552518091526040840192915b8181106111fd575050500390f35b91935091602080826112126001948851612899565b0194019101918493926111ef565b61122b818386612aa8565b3587528260205260ff6040882054166112448287612acc565b600382101561125657526001016111cb565b634e487b7160e01b89526021600452602489fd5b50346102b257806003193601126102b257602060035f5160206143bd5f395f51905f52540154604051908152f35b50346102b257806003193601126102b2576112b1612d06565b5f51602061437d5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102b257806003193601126102b25761131a612d06565b5f5160206143fd5f395f51905f525460ff8160401c16908115611651575b50611642575f5160206143fd5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f51602061437d5f395f51905f5254611392906001600160a01b031661138a613eb6565b610313613eb6565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206143bd5f395f51905f525460409081516113d383826127d9565b601781528381017f726f757465722e73746f726167652e526f7574657256320000000000000000008152611405612d06565b5f199151902001855260ff198386201690815f5160206143bd5f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc848451848152a1611456612d39565b80516001840155600283019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff1916171790556005810160058301908082036115f4575b5050600881016001600160801b038154169060088401916001600160801b0319835416178255546001600160801b03825491811916911617905561152c6114ea4283613e9a565b6115016001600160a01b036002610e7c4287613e9a565b61151760046115104287613e9a565b0192612965565b906115224293612a55565b9160098701612d81565b6015810160158301908082036115a2575b5050601681016016830191818303611582575b5050505060ff60401b195f5160206143fd5f395f51905f5254165f5160206143fd5f395f51905f52555160028152a180f35b60189283925490556017810154601785015501549101555f808080611550565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f8061153d565b5481546001600160a01b03199081166001600160a01b039283161790925560068381015490850180548416918316919091179055600780840154908501805490931691161790555f806114a3565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611338565b50346102b257806003193601126102b257602060ff5f5160206143dd5f395f51905f5254166040519015158152f35b50346102b2576101603660031901126102b2576116b061272e565b6024356001600160a01b0381169190829003611b10576116ce612702565b916116d7612718565b9260c43591608435919060a43560403660e3190112611b0c5761012435946001600160401b038611611b085736602387011215611b08578560040135916001600160401b038311611b04573660248489010111611b0457610144356001600160401b038111611b005761174e903690600401612869565b9690945f5160206143fd5f395f51905f5254996001600160401b0360ff8c60401c16159b1680159081611af8575b6001149081611aee575b159081611ae5575b50611ad6576117d0908b60016001600160401b03195f5160206143fd5f395f51905f525416175f5160206143fd5f395f51905f5255611aa6575b61138a613eb6565b6117d8613eb6565b6117e0613eb6565b4215611a97578215611a885782821115611a7957600a6118008484612983565b04841015611a6a5760409a8b918d835161181a85826127d9565b60178152602081017f726f757465722e73746f726167652e526f757465725631000000000000000000815261184d612d06565b905190205f190190526020808f2060ff19165f5160206143bd5f395f51905f528190558451818152909a917f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16118a3612d39565b805160018c015560028b0190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906118ed82612758565b8282526001600160a01b03908116602083018190529381169490910184905260058a018054919092166001600160a01b03199182161790915560068901805482169092179091556007880180549091169091179055700300000000000000000000000000000002600887015561196161294d565b50895161196d81612787565b639502f90081526509184e72a0006020909101526015860180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906119b281612758565b83815284602082015201526016860155601785015560188401558651946119d886612787565b60e43586526101043560208701526119f4913691602401612815565b9042933690611a0292612a01565b9160090193611a1094612d81565b611a18575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206143fd5f395f51905f5254165f5160206143fd5f395f51905f52555160018152a180f35b63145e348f60e01b8c5260048cfd5b6353b2bbed60e01b8c5260048cfd5b63f7ba6bdb60e01b8c5260048cfd5b63b7d0949760e01b8c5260048cfd5b600160401b60ff60401b195f5160206143fd5f395f51905f525416175f5160206143fd5f395f51905f52556117c8565b63f92ee8a960e01b8d5260048dfd5b9050155f61178e565b303b159150611786565b8c915061177c565b8a80fd5b8980fd5b8880fd5b8780fd5b8280fd5b50346102b257806003193601126102b2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611b6c5760206040515f51602061439d5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102b257611b9061272e565b906024356001600160401b03811161094b57611bb090369060040161284b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611d6d575b50611d5e57611bf2612d06565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611d26575b50611c3757634c9c8ce360e01b84526004839052602484fd5b9091845f51602061439d5f395f51905f528103611d145750813b15611d02575f51602061439d5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611ce85780836020611cdc95519101845af43d15611ce0573d91611cc0836127fa565b92611cce60405194856127d9565b83523d85602085013e61429c565b5080f35b60609161429c565b50505034611cf35780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611d56575b81611d42602093836127d9565b81010312611d525751945f611c1e565b5f80fd5b3d9150611d35565b63703e46dd60e11b8252600482fd5b5f51602061439d5f395f51905f52546001600160a01b0316141590505f611be5565b50346102b257806003193601126102b257611da8612d06565b5f5160206143dd5f395f51905f525460ff811615611e005760ff19165f5160206143dd5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102b25760203660031901126102b257611e2961272e565b611e31612d06565b5f5160206143bd5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b50346102b257806003193601126102b257611e7c61294d565b506040611ea0611e9b5f5160206143bd5f395f51905f52544290613e9a565b612965565b60208251918051835201516020820152f35b50346102b25760603660031901126102b257600435611ecf612702565b611ed7612cd1565b5f5160206143bd5f395f51905f5254600181015415610ddb578284526019810160205260ff60408520541660038110156120c9576002036120ba578284526024356020526040842060405160608101908082106001600160401b038311176120b657605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd000000000000604082015286f59081156120b2576001600160a01b0382165f908152601a820160205260409020849055601b018054611fd290612cf8565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166120ad5750335b5f5160206143bd5f395f51905f5254600501546001600160a01b0316823b156120a957604051631c9776b560e31b81526001600160a01b039092166004830152602482015260016044820152828160648183865af1801561209e57612089575b602082604051908152f35b6120948380926127d9565b61094b578161207e565b6040513d85823e3d90fd5b8380fd5b61201e565b8480fd5b8680fd5b630e2637d160e01b8452600484fd5b634e487b7160e01b85526021600452602485fd5b50346102b257806003193601126102b257602060015f5160206143bd5f395f51905f52540154604051908152f35b50346102b25760203660031901126102b257600435612128612cd1565b8149156121db575f5160206143bd5f395f51905f52546001810154156121cc576019018183528060205260ff60408420541660038110156121b8576121a95781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b6304c51a3360e31b8352600483fd5b634e487b7160e01b84526021600452602484fd5b63580683f360e01b8352600483fd5b637bb2fa2f60e11b8252600482fd5b34611d52576080366003190112611d5257600435612206612702565b9061220f612718565b91612218612cd1565b5f5160206143bd5f395f51905f525460018101541561008257825f526019810160205260ff60405f20541660038110156126c4576002036126b557825f5260243560205260405f206040516102c08101908082106001600160401b03831117611d52576102b0916040527f60808060405261029e90816100128239f3fe608060405260043610610254575f81527f3560e01c806336a52a18146100ab57806342129d00146100a65780635ce6c32760208201527f146100a1578063701da98e1461009c578063704ed542146100975780637a8e0c60408201527fdd1461009257806391d5a64c1461008d5780639ce110d714610088578063affe60608201527fd0e0146100835763e43f3433036102545761023f565b610222565b6101fa565b60808201527f6101e4565b6101b1565b610181565b610165565b610143565b610106565b346160a08201527ed4575f3660031901126100d45760025460081c6001600160a01b031660809060c08201527f8152602090f35b5f80fd5b9181601f840112156100d45782359167ffffffffff60e08201527fffffff83116100d457602083818601950101116100d457565b604036600319016101008201527f126100d45760043567ffffffffffffffff81116100d4576101329036906004016101208201527f6100d8565b505060243580151514610254575f80fd5b346100d4575f366003196101408201527f01126100d457602060ff600254166040519015158152f35b346100d4575f36606101608201527f031901126100d45760205f54604051908152f35b346100d457602036600319016101808201527f126100d4576004356fffffffffffffffffffffffffffffffff811614610254576101a08201527f5f80fd5b60403660031901126100d45760243567ffffffffffffffff811161006101c08201527fd4576101dd9036906004016100d8565b5050610254565b346100d457602036606101e08201527f0319011215610254575f80fd5b346100d4575f3660031901126100d4576003546102008201527f6040516001600160a01b039091168152602090f35b346100d4575f36600319016102208201527f126100d4576020600154604051908152f35b346100d4575f36600319011215616102408201523060601c7f0254575f80fd5b63e6fabc0960e01b5f5260205f60048173000000000000000017610260820152735afa156100d4575f808051368280378136915af43060a01b176102808201526f3d5f803e1561029a573d5ff35b3d5ffd60801b6102a08201525ff5908115611d52576001600160a01b0382165f908152601a820160205260409020849055601b0180546125f490612cf8565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166126af575033915b813b15611d5257604051631c9776b560e31b81526001600160a01b039384166004820152921660248301525f604483018190528260648183855af19182156126a457602092612694575b50604051908152f35b5f61269e916127d9565b5f61268b565b6040513d5f823e3d90fd5b91612641565b630e2637d160e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b34611d52575f366003190112611d5257602090601c5f5160206143bd5f395f51905f525401548152f35b604435906001600160a01b0382168203611d5257565b606435906001600160a01b0382168203611d5257565b600435906001600160a01b0382168203611d5257565b35906001600160a01b0382168203611d5257565b606081019081106001600160401b0382111761277357604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761277357604052565b61010081019081106001600160401b0382111761277357604052565b608081019081106001600160401b0382111761277357604052565b90601f801991011681019081106001600160401b0382111761277357604052565b6001600160401b03811161277357601f01601f191660200190565b929192612821826127fa565b9161282f60405193846127d9565b829481845281830111611d52578281602093845f960137010152565b9080601f83011215611d525781602061286693359101612815565b90565b9181601f84011215611d52578235916001600160401b038311611d52576020808501948460051b010111611d5257565b9060038210156126c45752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106128e75750505090565b82516001600160a01b03168452602093840193909201916001016128da565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060612944604085015160a08386015260a08501906128ca565b93015191015290565b6040519061295a82612787565b5f6020838281520152565b9060405161297281612787565b602060018294805484520154910152565b9190820391821161299057565b634e487b7160e01b5f52601160045260245ffd5b81156129ae570490565b634e487b7160e01b5f52601260045260245ffd5b9190826040910312611d52576040516129da81612787565b6020808294803584520135910152565b6001600160401b0381116127735760051b60200190565b929190612a0d816129ea565b93612a1b60405195866127d9565b602085838152019160051b8101928311611d5257905b828210612a3d57505050565b60208091612a4a84612744565b815201910190612a31565b90604051918281549182825260208201905f5260205f20925f5b818110612a86575050612a84925003836127d9565b565b84546001600160a01b0316835260019485019487945060209093019201612a6f565b9190811015612ab85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015612ab85760209160051b010190565b90604051612aed81612787565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103611d525790565b612b3b5f5160206143bd5f395f51905f52544290613e9a565b600301905f5b838110612b515750505050600190565b612b5f610923828685612aa8565b6001600160a01b03165f9081526020849052604090205460ff1615612b8657600101612b41565b505050505f90565b60405190612b9b82612758565b5f6040838281528260208201520152565b90604051612bb981612758565b60406002829480548452600181015460208501520154910152565b3560ff81168103611d525790565b3565ffffffffffff81168103611d525790565b60405190612c02826127be565b5f606083604051612c1281612787565b83815283602082015281528260208201528160408201520152565b60405190612c3a826127be565b815f81525f6020820152612c4c612bf5565b60408201526060612c5b612bf5565b910152565b6001600160a01b03168015612cbe575f51602061437d5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f5160206143dd5f395f51905f525416612ce957565b63d93c066560e01b5f5260045ffd5b5f1981146129905760010190565b5f51602061437d5f395f51905f52546001600160a01b03163303612d2657565b63118cdaa760e01b5f523360045260245ffd5b612d41612b8e565b50604051612d4e81612758565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b8181029291811591840414171561299057565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182612f99575b505015612f8a5751845551600184015560405190612ded6021836020808201945f86528051918291018484015e81015f838201520301601f1981018452836127d9565b612e2a602b604051809360208201956a600b5981380380925939f360a81b87525180918484015e81015f838201520301601f1981018352826127d9565b51905ff06001600160a01b03811615612f7b576002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015612e9e575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff19169055600101612e60565b5050925f5b8451811015612ee7576001906001600160a01b03612ec18288612acc565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501612ea3565b5092600482018151916001600160401b03831161277357600160401b8311612773578154838355808410612f51575b50602001905f5260205f205f5b838110612f34575050505060050155565b82516001600160a01b031681830155602090920191600101612f23565b825f52838060205f20019103905f5b828110612f6e575050612f16565b5f82820155600101612f60565b633011642560e01b5f5260045ffd5b63375f0aab60e11b5f5260045ffd5b612fa39250614279565b5f80612daa565b803b905f198201908282116129905760019060405193603e601f19910116840160405282845260208401903c90565b435f19810193929084116129905760ff1643811061302957505f925b83811015613005575b505f925050565b80408281036130175750600193505050565b15613024575f1901612ff5565b612ffe565b6130339043612983565b92612ff5565b903590601e1981360301821215611d5257018035906001600160401b038211611d5257602001918160051b36038313611d5257565b9060808101600161307f8284613039565b905011613514576130908183613039565b9050156134ed576130a091613039565b15612ab857803590603e1981360301821215611d525701916130c28380613039565b9190928260051b9383850460201484151715612990576130e485969495613f16565b925f945f97601a60fe19853603019501965b888a10156134a5578960051b85013586811215611d5257850161311881612b0e565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b0361314a82613ee1565b16151580613492575b613481575b6001600160a01b0361316984612b0e565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b03906131e8906001600160a01b036131a685612744565b166024890152602084013560448901526131c260408501613ef5565b151560648901526001600160a01b036131dd60608601612744565b166084890152613f02565b1660a48601526131fa60a08201613ef5565b151560c486015236819003601e190160c082013581811215611d52578201602081359101936001600160401b038211611d52576060820236038513611d5257819061010060e48a015252610144870193905f905b8082106134375750505060e082013590811215611d525701803560208201926001600160401b038211611d52578160051b908136038513611d525791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b84841061332a5750505050505050602093916001600160801b03848093039316905af19081156126a4575f916132f8575b50816020916001938a0152019901986130f6565b90506020813d8211613322575b81613312602093836127d9565b81010312611d52575160016132e4565b3d9150613305565b919395979850919395601f19848203018752873582811215611d52578301602081013582526001600160a01b0361336360408301612744565b1660208301526060810135603e193683900301811215611d52578101602081013591906040016001600160401b038311611d52578236038113611d5257829060e060408601528160e08601526101008501375f61010083850101526001600160801b036133d260808301613f02565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103611d52578360209361341460e086956101009560a060019a015201613ef5565b151560c0830152601f80199101160101990197019401918a9897969593916132b3565b90919460608060019288358152838060a01b0361345660208b01612744565b1660208201526001600160801b0361347060408b01613f02565b16604082015201960192019061324e565b905061348c81613ee1565b90613158565b5061349f60a08401613558565b15613153565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215611d5257018035906001600160401b038211611d5257602001918160061b36038313611d5257565b358015158103611d525790565b903590605e1981360301821215611d52570190565b9190820180921161299057565b60c0820160016135978285613039565b905011613939576135a88184613039565b9050156134ed576135b99083613039565b15612ab857803590607e1981360301821215611d52570191606083019060206135e183612be2565b91019065ffffffffffff806135f584612be2565b169116101561392a5761360782612be2565b65ffffffffffff80600286015460201c1691161061391b5761364d65ffffffffffff6136466136408261363987612be2565b1687613f3b565b93612be2565b1684613f3b565b111561390c576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446136938361368b8989613565565b01358b61357a565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156126a4575f916138d1575b50156138c2575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156126a4575f9561388a575b509061371891613565565b9161372282612be2565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215611d52578101602081359101936001600160401b038211611d52578160061b36038513611d525760606044890152819052869360c485019392915f5b81811061385257505050836020959365ffffffffffff829484895f96013560648601526137bb604060018060a01b039201612744565b16608485015216602483015203925af19182156126a4575f9261381c575b506137e390612be2565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526138166066826127d9565b51902090565b9091506020813d60201161384a575b81613838602093836127d9565b81010312611d525751906137e36137d9565b3d915061382b565b919550919293604080600192838060a01b0361386d8a612744565b168152602089013560208201520196019101918895949392613785565b919094506020823d6020116138ba575b816138a7602093836127d9565b81010312611d525790519361371861370d565b3d915061389a565b6367b9145160e01b5f5260045ffd5b90506020813d602011613904575b816138ec602093836127d9565b81010312611d5257518015158103611d52575f6136c0565b3d91506138df565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215611d5257018035906001600160401b038211611d5257602001918136038313611d5257565b9060e08101600161398b8284613039565b905011613bee5761399c8183613039565b9050156134ed576139ac91613039565b15612ab857803590609e1981360301821215611d52570160608101906139d28282613039565b905015613bdf5765ffffffffffff600284015460201c16916139f48342612983565b613a03601686015480926129a4565b9360808401359460018101809111612990578503613bd057613a2885613a2e93612d6e565b9061357a565b93613a3d601782015486612983565b4210613bc157613a4c90613f63565b934260058601541015613bb257613aa1906040840195613a93613a9b613a728988613948565b9190613a7e888a613039565b949091613a8b368c6129c2565b943691612815565b933691612a01565b92612d81565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312611d525760405193613ae2856127be565b613aec36846129c2565b8552356001600160401b038111611d5257613b0a903690840161284b565b602085015235906001600160401b038211611d52570136601f82011215611d5257613b3c903690602081359101612a01565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110613b905750505081520380825261381690602001826127d9565b82516001600160a01b0316855286955060209485019490920191600101613b73565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16613c1c4284613f3b565b613c34613c2e60168601548093612d6e565b8361357a565b918284108080613e59575b15613e2757508310613e1957613c55908361357a565b10613e0a57613c65905b82613e9a565b94601960f81b5f523060601b60025260165260365f209360028110156126c45780613cf657505060018103613ce75715612ab857613ca681613cad92613948565b3691612815565b916060835103613cd85782602061286694015160606040830151920151926001815491015490613f7e565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b919391600114613d095750505050505f90565b613d2e90600860048796970154910154906001600160801b038260801c921690613e6f565b925f9260035f9201915b86811015613dff57613d67613d5e613d58613ca68460051b860186613948565b866141df565b90929192614219565b6001600160a01b0381165f9081526020859052604090205460ff16613d92575b506001905b01613d38565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15613dd75750600190613d8c565b946001613de592965d612cf8565b93858514613df3575f613d87565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b9392915050428211613e4a57613c6592613e42575b50613c5f565b90505f613e3c565b6347860b9760e01b5f5260045ffd5b50613e6860188701548561357a565b4210613c3f565b6001600160801b03809216029116613e8781836129a4565b9181156129ae5706156128665760010190565b90613ea5908261417f565b15613eb057600f0190565b60090190565b60ff5f5160206143fd5f395f51905f525460401c1615613ed257565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103611d525790565b35908115158203611d5257565b35906001600160801b0382168203611d5257565b6040519190601f01601f191682016001600160401b03811183821017611d5257604052565b6016613f5a6128669365ffffffffffff600285015460201c1690612983565b910154906129a4565b613f6d428261417f565b15613f785760090190565b600f0190565b9293919490613f8d8587614279565b156141205782156141205770014551231950b75fc4402da1732fc9bebe19831015614120576001169061010e613fc281613f16565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c09088015613dff5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b614132612bf5565b5060028101546005820154604051929091614172916004916001600160a01b031661415c866127be565b61416582612965565b8652602086015201612a55565b6040830152606082015290565b906014600e8301549201548083146141d0578181841093119182159111159181906141c9575b156141ba57826141b457505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816141a5565b63f26224af60e01b5f5260045ffd5b815191906041830361420f576142089250602082015190606060408401519301515f1a906142fa565b9192909190565b50505f9160029190565b60048110156126c4578061422b575050565b600181036142425763f645eedf60e01b5f5260045ffd5b6002810361425d575063fce698f760e01b5f5260045260245ffd5b6003146142675750565b6335e2f38360e21b5f5260045260245ffd5b6401000003d01990600790829081818009900908906401000003d0199080091490565b906142c057508051156142b157602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806142f1575b6142d1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156142c9565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614371579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156126a4575f516001600160a01b0381161561436757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1237:23810:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;7983:34:30;7979:146;;-1:-1:-1;1237:23810:165;;;;;;;;1052:13:60;1237:23810:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;8085:29:30;;1237:23810:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1237:23810:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022612cd1565b5f5160206143bd5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e7146126d8575080630c18d277146121ea578063120e3f1e1461210b57806328e24b3d146120dd5780633683c4d214611eb25780633bd109fa14611e635780633d43b41814611e0f5780633f4ba83a14611d8f5780634f1ef28614611b7b57806352d1902d14611b1457806353f7fd48146116955780635c975abb146116665780636c2eb35014611301578063715018a61461129857806371a8cf2d1461126a57806382bdeaad146111525780638456cb59146110df57806384d22a4f1461108157806388f50cf0146110485780638b1edf1e14610fe15780638da5cb5b14610fac5780638f381dbe14610f665780639067088e14610f1d57806396a2ddfa14610eef5780639eb939a814610e98578063a5d53a4414610e42578063ad3cb1cc14610df9578063b24fcac01461094f578063baaf02011461084e578063c13911e81461080a578063c2eb812f146104de578063ca1e78191461048e578063cacf66ab14610456578063d456fd5114610420578063e3a6684f146103e1578063e6fabc09146103a8578063ed612f8c14610370578063edc872251461031b578063f2fde38b146102ee578063f4f20ac0146102b55763facd743b0361000f57346102b25760203660031901126102b25761027461272e565b600361028f5f5160206143bd5f395f51905f52544290613e9a565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346102b257806003193601126102b2575f5160206143bd5f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346102b25760203660031901126102b25761031861030b61272e565b610313612d06565b612c60565b80f35b50346102b257806003193601126102b25760206103685f5160206143bd5f395f51905f52546008600461034e4284613e9a565b0154910154906001600160801b038260801c921690613e6f565b604051908152f35b50346102b257806003193601126102b2576020600461039e5f5160206143bd5f395f51905f52544290613e9a565b0154604051908152f35b50346102b257806003193601126102b2575f5160206143bd5f395f51905f5254600501546040516001600160a01b039091168152602090f35b50346102b257806003193601126102b257604060085f5160206143bd5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b50346102b257806003193601126102b257602065ffffffffffff60045f5160206143bd5f395f51905f5254015416604051908152f35b50346102b257806003193601126102b257602065ffffffffffff60025f5160206143bd5f395f51905f52540154821c16604051908152f35b50346102b257806003193601126102b2576104da6104c660046104c05f5160206143bd5f395f51905f52544290613e9a565b01612a55565b6040519182916020835260208301906128ca565b0390f35b50346102b257806003193601126102b2576040516104fb816127a2565b610503612b8e565b815260405161051181612787565b5f8152602081015f90526020820152610528612b8e565b6040820152610535612c2d565b606082015260405161054681612787565b5f8082526020820152608082015261055c612b8e565b60a08201528160c082015260e001525f5160206143bd5f395f51905f5254610582612c2d565b5061058f6009820161412a565b9061059c600f820161412a565b600882015492604051936105af856127be565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154604051926105e5846127a2565b6040516105f181612758565b60018401548152600284015463ffffffff8116602083015260201c65ffffffffffff16604082015284526040519461062886612787565b60038401548652600484015465ffffffffffff166020870152602085019586526040519061065582612758565b60058501546001600160a01b03908116835260068601548116602084015260078601541660408084019190915286019182526060860190815261069a60158601612ae0565b94608087019586526016016106ae90612bac565b9160a0870192835260c0870193845260e087019485526040519788976020895251805160208a0152602081015163ffffffff1660408a01526040015165ffffffffffff16606089015251805160808901526020015165ffffffffffff1660a088015251600160a01b6001900381511660c0880152600160a01b6001900360208201511660e0880152600160a01b60019003906040015116610100870152516101208601610200905280516001600160801b031661022087015260208101516001600160801b031661024087015260408101516102608701608090526102a0870161079791612906565b90606001519061021f19878203016102808801526107b491612906565b935180516001600160401b0316610140870152602001516001600160801b031661016086015251805161018086015260208101516101a0860152604001516101c0850152516101e0840152516102008301520390f35b50346102b25760203660031901126102b25760ff604060209260195f5160206143bd5f395f51905f5254016004358252845220541661084c6040518092612899565bf35b50346102b25760203660031901126102b2576004356001600160401b03811161094b5761087f903690600401612869565b905f5160206143bd5f395f51905f525490610899836129ea565b916108a760405193846127d9565b8383526108b3846129ea565b602084019490601f1901368637601a869201915b81811061091257868587604051928392602084019060208552518091526040840192915b8181106108f9575050500390f35b82518452859450602093840193909201916001016108eb565b806109286109236001938588612aa8565b612b0e565b828060a01b03165f528360205260405f20546109448288612acc565b52016108c7565b5080fd5b50346102b25760603660031901126102b2576001600160401b03600435116102b257610100600435360360031901126102b257600260243510156102b2576044356001600160401b03811161094b576109ac903690600401612869565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610dea5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206143bd5f395f51905f525490600182015415610ddb57815415610d7f575b60038201546044600435013503610d705765ffffffffffff60048301541665ffffffffffff610a4b602460043501612be2565b1610610d6257610a606004356004018361306e565b92610a7560a460043501600435600401613523565b808096925060051b0460201485151715610d4e57610a958560051b613f16565b8695865b818810610c055750610bcb965060051b902090610abb60043560040186613587565b610aca6004356004018761397a565b90610ad9602460043501612be2565b93610ae8606460043501612bd4565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610b4d60e7826127d9565b5190209283600382015565ffffffffffff610b6c602460043501612be2565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610bc0602460043501612be2565b169360243591613bfd565b15610bf657807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610c1960a460043501600435600401613523565b891015610d3a578860061b8101358a526019880160205260ff60408b2054166003811015610d2657600103610d1757600191602091610cdc8b8b8e868360061b86010192610c6684613558565b15610cf85760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610c9890612cf8565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610cc784613558565b1515926040519060061b8701358152a2613558565b908b60061b01358c52825360218b208186015201970196610a99565b60409260199160061b87013583520187522060ff198154169055610c9b565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610d9c610d90606460043501612bd4565b60043560040135612fd9565b15610dcc5765ffffffffffff610db6602460043501612be2565b164211610a1857631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346102b257806003193601126102b257506104da604051610e1c6040826127d9565b60058152640352e302e360dc1b60208201526040519182916020835260208301906128a6565b50346102b257806003193601126102b2576104da610e845f5160206143bd5f395f51905f52546002610e7c60018060a01b03924290613e9a565b015416612faa565b6040519182916020835260208301906128a6565b50346102b257806003193601126102b257610eb1612b8e565b506060610ece60165f5160206143bd5f395f51905f525401612bac565b61084c60405180926040809180518452602081015160208501520151910152565b50346102b257806003193601126102b2576020601b5f5160206143bd5f395f51905f52540154604051908152f35b50346102b25760203660031901126102b257610f3761272e565b601a5f5160206143bd5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346102b25760203660031901126102b257600435906001600160401b0382116102b2576020610fa2610f9c3660048601612869565b90612b22565b6040519015158152f35b50346102b257806003193601126102b2575f51602061437d5f395f51905f52546040516001600160a01b039091168152602090f35b50346102b257806003193601126102b257610ffa612cd1565b5f5160206143bd5f395f51905f525460018101908154611039576002015463ffffffff164090811561102a575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346102b257806003193601126102b2575f5160206143bd5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346102b257806003193601126102b25761109a61294d565b5060406110b760155f5160206143bd5f395f51905f525401612ae0565b61084c825180926001600160801b03602080926001600160401b038151168552015116910152565b50346102b257806003193601126102b2576110f8612d06565b611100612cd1565b600160ff195f5160206143dd5f395f51905f525416175f5160206143dd5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102b25760203660031901126102b2576004356001600160401b03811161094b57611183903690600401612869565b905f5160206143bd5f395f51905f52549061119d836129ea565b916111ab60405193846127d9565b8383526111b7846129ea565b602084019490601f19013686376019869201915b81811061122057868587604051928392602084019060208552518091526040840192915b8181106111fd575050500390f35b91935091602080826112126001948851612899565b0194019101918493926111ef565b61122b818386612aa8565b3587528260205260ff6040882054166112448287612acc565b600382101561125657526001016111cb565b634e487b7160e01b89526021600452602489fd5b50346102b257806003193601126102b257602060035f5160206143bd5f395f51905f52540154604051908152f35b50346102b257806003193601126102b2576112b1612d06565b5f51602061437d5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102b257806003193601126102b25761131a612d06565b5f5160206143fd5f395f51905f525460ff8160401c16908115611651575b50611642575f5160206143fd5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f51602061437d5f395f51905f5254611392906001600160a01b031661138a613eb6565b610313613eb6565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206143bd5f395f51905f525460409081516113d383826127d9565b601781528381017f726f757465722e73746f726167652e526f7574657256320000000000000000008152611405612d06565b5f199151902001855260ff198386201690815f5160206143bd5f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc848451848152a1611456612d39565b80516001840155600283019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff1916171790556005810160058301908082036115f4575b5050600881016001600160801b038154169060088401916001600160801b0319835416178255546001600160801b03825491811916911617905561152c6114ea4283613e9a565b6115016001600160a01b036002610e7c4287613e9a565b61151760046115104287613e9a565b0192612965565b906115224293612a55565b9160098701612d81565b6015810160158301908082036115a2575b5050601681016016830191818303611582575b5050505060ff60401b195f5160206143fd5f395f51905f5254165f5160206143fd5f395f51905f52555160028152a180f35b60189283925490556017810154601785015501549101555f808080611550565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f8061153d565b5481546001600160a01b03199081166001600160a01b039283161790925560068381015490850180548416918316919091179055600780840154908501805490931691161790555f806114a3565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611338565b50346102b257806003193601126102b257602060ff5f5160206143dd5f395f51905f5254166040519015158152f35b50346102b2576101603660031901126102b2576116b061272e565b6024356001600160a01b0381169190829003611b10576116ce612702565b916116d7612718565b9260c43591608435919060a43560403660e3190112611b0c5761012435946001600160401b038611611b085736602387011215611b08578560040135916001600160401b038311611b04573660248489010111611b0457610144356001600160401b038111611b005761174e903690600401612869565b9690945f5160206143fd5f395f51905f5254996001600160401b0360ff8c60401c16159b1680159081611af8575b6001149081611aee575b159081611ae5575b50611ad6576117d0908b60016001600160401b03195f5160206143fd5f395f51905f525416175f5160206143fd5f395f51905f5255611aa6575b61138a613eb6565b6117d8613eb6565b6117e0613eb6565b4215611a97578215611a885782821115611a7957600a6118008484612983565b04841015611a6a5760409a8b918d835161181a85826127d9565b60178152602081017f726f757465722e73746f726167652e526f757465725631000000000000000000815261184d612d06565b905190205f190190526020808f2060ff19165f5160206143bd5f395f51905f528190558451818152909a917f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16118a3612d39565b805160018c015560028b0190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff1916171790558351906118ed82612758565b8282526001600160a01b03908116602083018190529381169490910184905260058a018054919092166001600160a01b03199182161790915560068901805482169092179091556007880180549091169091179055700300000000000000000000000000000002600887015561196161294d565b50895161196d81612787565b639502f90081526509184e72a0006020909101526015860180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906119b281612758565b83815284602082015201526016860155601785015560188401558651946119d886612787565b60e43586526101043560208701526119f4913691602401612815565b9042933690611a0292612a01565b9160090193611a1094612d81565b611a18575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206143fd5f395f51905f5254165f5160206143fd5f395f51905f52555160018152a180f35b63145e348f60e01b8c5260048cfd5b6353b2bbed60e01b8c5260048cfd5b63f7ba6bdb60e01b8c5260048cfd5b63b7d0949760e01b8c5260048cfd5b600160401b60ff60401b195f5160206143fd5f395f51905f525416175f5160206143fd5f395f51905f52556117c8565b63f92ee8a960e01b8d5260048dfd5b9050155f61178e565b303b159150611786565b8c915061177c565b8a80fd5b8980fd5b8880fd5b8780fd5b8280fd5b50346102b257806003193601126102b2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611b6c5760206040515f51602061439d5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102b257611b9061272e565b906024356001600160401b03811161094b57611bb090369060040161284b565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611d6d575b50611d5e57611bf2612d06565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611d26575b50611c3757634c9c8ce360e01b84526004839052602484fd5b9091845f51602061439d5f395f51905f528103611d145750813b15611d02575f51602061439d5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611ce85780836020611cdc95519101845af43d15611ce0573d91611cc0836127fa565b92611cce60405194856127d9565b83523d85602085013e61429c565b5080f35b60609161429c565b50505034611cf35780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611d56575b81611d42602093836127d9565b81010312611d525751945f611c1e565b5f80fd5b3d9150611d35565b63703e46dd60e11b8252600482fd5b5f51602061439d5f395f51905f52546001600160a01b0316141590505f611be5565b50346102b257806003193601126102b257611da8612d06565b5f5160206143dd5f395f51905f525460ff811615611e005760ff19165f5160206143dd5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102b25760203660031901126102b257611e2961272e565b611e31612d06565b5f5160206143bd5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b50346102b257806003193601126102b257611e7c61294d565b506040611ea0611e9b5f5160206143bd5f395f51905f52544290613e9a565b612965565b60208251918051835201516020820152f35b50346102b25760603660031901126102b257600435611ecf612702565b611ed7612cd1565b5f5160206143bd5f395f51905f5254600181015415610ddb578284526019810160205260ff60408520541660038110156120c9576002036120ba578284526024356020526040842060405160608101908082106001600160401b038311176120b657605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd000000000000604082015286f59081156120b2576001600160a01b0382165f908152601a820160205260409020849055601b018054611fd290612cf8565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166120ad5750335b5f5160206143bd5f395f51905f5254600501546001600160a01b0316823b156120a957604051631c9776b560e31b81526001600160a01b039092166004830152602482015260016044820152828160648183865af1801561209e57612089575b602082604051908152f35b6120948380926127d9565b61094b578161207e565b6040513d85823e3d90fd5b8380fd5b61201e565b8480fd5b8680fd5b630e2637d160e01b8452600484fd5b634e487b7160e01b85526021600452602485fd5b50346102b257806003193601126102b257602060015f5160206143bd5f395f51905f52540154604051908152f35b50346102b25760203660031901126102b257600435612128612cd1565b8149156121db575f5160206143bd5f395f51905f52546001810154156121cc576019018183528060205260ff60408420541660038110156121b8576121a95781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b6304c51a3360e31b8352600483fd5b634e487b7160e01b84526021600452602484fd5b63580683f360e01b8352600483fd5b637bb2fa2f60e11b8252600482fd5b34611d52576080366003190112611d5257600435612206612702565b9061220f612718565b91612218612cd1565b5f5160206143bd5f395f51905f525460018101541561008257825f526019810160205260ff60405f20541660038110156126c4576002036126b557825f5260243560205260405f206040516102c08101908082106001600160401b03831117611d52576102b0916040527f60808060405261029e90816100128239f3fe608060405260043610610254575f81527f3560e01c806336a52a18146100ab57806342129d00146100a65780635ce6c32760208201527f146100a1578063701da98e1461009c578063704ed542146100975780637a8e0c60408201527fdd1461009257806391d5a64c1461008d5780639ce110d714610088578063affe60608201527fd0e0146100835763e43f3433036102545761023f565b610222565b6101fa565b60808201527f6101e4565b6101b1565b610181565b610165565b610143565b610106565b346160a08201527ed4575f3660031901126100d45760025460081c6001600160a01b031660809060c08201527f8152602090f35b5f80fd5b9181601f840112156100d45782359167ffffffffff60e08201527fffffff83116100d457602083818601950101116100d457565b604036600319016101008201527f126100d45760043567ffffffffffffffff81116100d4576101329036906004016101208201527f6100d8565b505060243580151514610254575f80fd5b346100d4575f366003196101408201527f01126100d457602060ff600254166040519015158152f35b346100d4575f36606101608201527f031901126100d45760205f54604051908152f35b346100d457602036600319016101808201527f126100d4576004356fffffffffffffffffffffffffffffffff811614610254576101a08201527f5f80fd5b60403660031901126100d45760243567ffffffffffffffff811161006101c08201527fd4576101dd9036906004016100d8565b5050610254565b346100d457602036606101e08201527f0319011215610254575f80fd5b346100d4575f3660031901126100d4576003546102008201527f6040516001600160a01b039091168152602090f35b346100d4575f36600319016102208201527f126100d4576020600154604051908152f35b346100d4575f36600319011215616102408201523060601c7f0254575f80fd5b63e6fabc0960e01b5f5260205f60048173000000000000000017610260820152735afa156100d4575f808051368280378136915af43060a01b176102808201526f3d5f803e1561029a573d5ff35b3d5ffd60801b6102a08201525ff5908115611d52576001600160a01b0382165f908152601a820160205260409020849055601b0180546125f490612cf8565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166126af575033915b813b15611d5257604051631c9776b560e31b81526001600160a01b039384166004820152921660248301525f604483018190528260648183855af19182156126a457602092612694575b50604051908152f35b5f61269e916127d9565b5f61268b565b6040513d5f823e3d90fd5b91612641565b630e2637d160e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b34611d52575f366003190112611d5257602090601c5f5160206143bd5f395f51905f525401548152f35b604435906001600160a01b0382168203611d5257565b606435906001600160a01b0382168203611d5257565b600435906001600160a01b0382168203611d5257565b35906001600160a01b0382168203611d5257565b606081019081106001600160401b0382111761277357604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761277357604052565b61010081019081106001600160401b0382111761277357604052565b608081019081106001600160401b0382111761277357604052565b90601f801991011681019081106001600160401b0382111761277357604052565b6001600160401b03811161277357601f01601f191660200190565b929192612821826127fa565b9161282f60405193846127d9565b829481845281830111611d52578281602093845f960137010152565b9080601f83011215611d525781602061286693359101612815565b90565b9181601f84011215611d52578235916001600160401b038311611d52576020808501948460051b010111611d5257565b9060038210156126c45752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106128e75750505090565b82516001600160a01b03168452602093840193909201916001016128da565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060612944604085015160a08386015260a08501906128ca565b93015191015290565b6040519061295a82612787565b5f6020838281520152565b9060405161297281612787565b602060018294805484520154910152565b9190820391821161299057565b634e487b7160e01b5f52601160045260245ffd5b81156129ae570490565b634e487b7160e01b5f52601260045260245ffd5b9190826040910312611d52576040516129da81612787565b6020808294803584520135910152565b6001600160401b0381116127735760051b60200190565b929190612a0d816129ea565b93612a1b60405195866127d9565b602085838152019160051b8101928311611d5257905b828210612a3d57505050565b60208091612a4a84612744565b815201910190612a31565b90604051918281549182825260208201905f5260205f20925f5b818110612a86575050612a84925003836127d9565b565b84546001600160a01b0316835260019485019487945060209093019201612a6f565b9190811015612ab85760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015612ab85760209160051b010190565b90604051612aed81612787565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103611d525790565b612b3b5f5160206143bd5f395f51905f52544290613e9a565b600301905f5b838110612b515750505050600190565b612b5f610923828685612aa8565b6001600160a01b03165f9081526020849052604090205460ff1615612b8657600101612b41565b505050505f90565b60405190612b9b82612758565b5f6040838281528260208201520152565b90604051612bb981612758565b60406002829480548452600181015460208501520154910152565b3560ff81168103611d525790565b3565ffffffffffff81168103611d525790565b60405190612c02826127be565b5f606083604051612c1281612787565b83815283602082015281528260208201528160408201520152565b60405190612c3a826127be565b815f81525f6020820152612c4c612bf5565b60408201526060612c5b612bf5565b910152565b6001600160a01b03168015612cbe575f51602061437d5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f5160206143dd5f395f51905f525416612ce957565b63d93c066560e01b5f5260045ffd5b5f1981146129905760010190565b5f51602061437d5f395f51905f52546001600160a01b03163303612d2657565b63118cdaa760e01b5f523360045260245ffd5b612d41612b8e565b50604051612d4e81612758565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b8181029291811591840414171561299057565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182612f99575b505015612f8a5751845551600184015560405190612ded6021836020808201945f86528051918291018484015e81015f838201520301601f1981018452836127d9565b612e2a602b604051809360208201956a600b5981380380925939f360a81b87525180918484015e81015f838201520301601f1981018352826127d9565b51905ff06001600160a01b03811615612f7b576002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015612e9e575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff19169055600101612e60565b5050925f5b8451811015612ee7576001906001600160a01b03612ec18288612acc565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501612ea3565b5092600482018151916001600160401b03831161277357600160401b8311612773578154838355808410612f51575b50602001905f5260205f205f5b838110612f34575050505060050155565b82516001600160a01b031681830155602090920191600101612f23565b825f52838060205f20019103905f5b828110612f6e575050612f16565b5f82820155600101612f60565b633011642560e01b5f5260045ffd5b63375f0aab60e11b5f5260045ffd5b612fa39250614279565b5f80612daa565b803b905f198201908282116129905760019060405193603e601f19910116840160405282845260208401903c90565b435f19810193929084116129905760ff1643811061302957505f925b83811015613005575b505f925050565b80408281036130175750600193505050565b15613024575f1901612ff5565b612ffe565b6130339043612983565b92612ff5565b903590601e1981360301821215611d5257018035906001600160401b038211611d5257602001918160051b36038313611d5257565b9060808101600161307f8284613039565b905011613514576130908183613039565b9050156134ed576130a091613039565b15612ab857803590603e1981360301821215611d525701916130c28380613039565b9190928260051b9383850460201484151715612990576130e485969495613f16565b925f945f97601a60fe19853603019501965b888a10156134a5578960051b85013586811215611d5257850161311881612b0e565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b0361314a82613ee1565b16151580613492575b613481575b6001600160a01b0361316984612b0e565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b03906131e8906001600160a01b036131a685612744565b166024890152602084013560448901526131c260408501613ef5565b151560648901526001600160a01b036131dd60608601612744565b166084890152613f02565b1660a48601526131fa60a08201613ef5565b151560c486015236819003601e190160c082013581811215611d52578201602081359101936001600160401b038211611d52576060820236038513611d5257819061010060e48a015252610144870193905f905b8082106134375750505060e082013590811215611d525701803560208201926001600160401b038211611d52578160051b908136038513611d525791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b84841061332a5750505050505050602093916001600160801b03848093039316905af19081156126a4575f916132f8575b50816020916001938a0152019901986130f6565b90506020813d8211613322575b81613312602093836127d9565b81010312611d52575160016132e4565b3d9150613305565b919395979850919395601f19848203018752873582811215611d52578301602081013582526001600160a01b0361336360408301612744565b1660208301526060810135603e193683900301811215611d52578101602081013591906040016001600160401b038311611d52578236038113611d5257829060e060408601528160e08601526101008501375f61010083850101526001600160801b036133d260808301613f02565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103611d52578360209361341460e086956101009560a060019a015201613ef5565b151560c0830152601f80199101160101990197019401918a9897969593916132b3565b90919460608060019288358152838060a01b0361345660208b01612744565b1660208201526001600160801b0361347060408b01613f02565b16604082015201960192019061324e565b905061348c81613ee1565b90613158565b5061349f60a08401613558565b15613153565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215611d5257018035906001600160401b038211611d5257602001918160061b36038313611d5257565b358015158103611d525790565b903590605e1981360301821215611d52570190565b9190820180921161299057565b60c0820160016135978285613039565b905011613939576135a88184613039565b9050156134ed576135b99083613039565b15612ab857803590607e1981360301821215611d52570191606083019060206135e183612be2565b91019065ffffffffffff806135f584612be2565b169116101561392a5761360782612be2565b65ffffffffffff80600286015460201c1691161061391b5761364d65ffffffffffff6136466136408261363987612be2565b1687613f3b565b93612be2565b1684613f3b565b111561390c576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446136938361368b8989613565565b01358b61357a565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156126a4575f916138d1575b50156138c2575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156126a4575f9561388a575b509061371891613565565b9161372282612be2565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215611d52578101602081359101936001600160401b038211611d52578160061b36038513611d525760606044890152819052869360c485019392915f5b81811061385257505050836020959365ffffffffffff829484895f96013560648601526137bb604060018060a01b039201612744565b16608485015216602483015203925af19182156126a4575f9261381c575b506137e390612be2565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b166060820152604681526138166066826127d9565b51902090565b9091506020813d60201161384a575b81613838602093836127d9565b81010312611d525751906137e36137d9565b3d915061382b565b919550919293604080600192838060a01b0361386d8a612744565b168152602089013560208201520196019101918895949392613785565b919094506020823d6020116138ba575b816138a7602093836127d9565b81010312611d525790519361371861370d565b3d915061389a565b6367b9145160e01b5f5260045ffd5b90506020813d602011613904575b816138ec602093836127d9565b81010312611d5257518015158103611d52575f6136c0565b3d91506138df565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215611d5257018035906001600160401b038211611d5257602001918136038313611d5257565b9060e08101600161398b8284613039565b905011613bee5761399c8183613039565b9050156134ed576139ac91613039565b15612ab857803590609e1981360301821215611d52570160608101906139d28282613039565b905015613bdf5765ffffffffffff600284015460201c16916139f48342612983565b613a03601686015480926129a4565b9360808401359460018101809111612990578503613bd057613a2885613a2e93612d6e565b9061357a565b93613a3d601782015486612983565b4210613bc157613a4c90613f63565b934260058601541015613bb257613aa1906040840195613a93613a9b613a728988613948565b9190613a7e888a613039565b949091613a8b368c6129c2565b943691612815565b933691612a01565b92612d81565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312611d525760405193613ae2856127be565b613aec36846129c2565b8552356001600160401b038111611d5257613b0a903690840161284b565b602085015235906001600160401b038211611d52570136601f82011215611d5257613b3c903690602081359101612a01565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110613b905750505081520380825261381690602001826127d9565b82516001600160a01b0316855286955060209485019490920191600101613b73565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16613c1c4284613f3b565b613c34613c2e60168601548093612d6e565b8361357a565b918284108080613e59575b15613e2757508310613e1957613c55908361357a565b10613e0a57613c65905b82613e9a565b94601960f81b5f523060601b60025260165260365f209360028110156126c45780613cf657505060018103613ce75715612ab857613ca681613cad92613948565b3691612815565b916060835103613cd85782602061286694015160606040830151920151926001815491015490613f7e565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b919391600114613d095750505050505f90565b613d2e90600860048796970154910154906001600160801b038260801c921690613e6f565b925f9260035f9201915b86811015613dff57613d67613d5e613d58613ca68460051b860186613948565b866141df565b90929192614219565b6001600160a01b0381165f9081526020859052604090205460ff16613d92575b506001905b01613d38565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15613dd75750600190613d8c565b946001613de592965d612cf8565b93858514613df3575f613d87565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b9392915050428211613e4a57613c6592613e42575b50613c5f565b90505f613e3c565b6347860b9760e01b5f5260045ffd5b50613e6860188701548561357a565b4210613c3f565b6001600160801b03809216029116613e8781836129a4565b9181156129ae5706156128665760010190565b90613ea5908261417f565b15613eb057600f0190565b60090190565b60ff5f5160206143fd5f395f51905f525460401c1615613ed257565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103611d525790565b35908115158203611d5257565b35906001600160801b0382168203611d5257565b6040519190601f01601f191682016001600160401b03811183821017611d5257604052565b6016613f5a6128669365ffffffffffff600285015460201c1690612983565b910154906129a4565b613f6d428261417f565b15613f785760090190565b600f0190565b9293919490613f8d8587614279565b156141205782156141205770014551231950b75fc4402da1732fc9bebe19831015614120576001169061010e613fc281613f16565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c09088015613dff5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b614132612bf5565b5060028101546005820154604051929091614172916004916001600160a01b031661415c866127be565b61416582612965565b8652602086015201612a55565b6040830152606082015290565b906014600e8301549201548083146141d0578181841093119182159111159181906141c9575b156141ba57826141b457505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816141a5565b63f26224af60e01b5f5260045ffd5b815191906041830361420f576142089250602082015190606060408401519301515f1a906142fa565b9192909190565b50505f9160029190565b60048110156126c4578061422b575050565b600181036142425763f645eedf60e01b5f5260045ffd5b6002810361425d575063fce698f760e01b5f5260045260245ffd5b6003146142675750565b6335e2f38360e21b5f5260045260245ffd5b6401000003d01990600790829081818009900908906401000003d0199080091490565b906142c057508051156142b157602081519101fd5b63d6bda27560e01b5f5260045ffd5b815115806142f1575b6142d1575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156142c9565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614371579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156126a4575f516001600160a01b0381161561436757905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1237:23810:165:-:0;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;24752:19;;;1237:23810;24752:38;1237:23810;;-1:-1:-1;;;;;24861:9:165;1237:23810;24889:9;1237:23810;;24949:10;-1:-1:-1;1237:23810:165;;;24977:28;;;;;1237:23810;;;;;;24977:42;1237:23810;;;;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;:::i;:::-;8396:40;15198:37:169;-1:-1:-1;;;;;;;;;;;1237:23810:165;15219:15:169;15198:37;;:::i;:::-;8396:40:165;:52;1052:614:22;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;7489:34;;1237:23810;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;2357:1:29;1237:23810:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1237:23810:165;;;;;;;;;;;;;;;;9109:211;-1:-1:-1;;;;;;;;;;;1237:23810:165;9206:25;1237:23810;15198:37:169;15219:15;15198:37;;:::i;:::-;9147:38:165;1237:23810;9206:25;;1237:23810;;-1:-1:-1;;;;;1237:23810:165;;;;;9109:211;;:::i;:::-;1237:23810;;;;;;;;;;;;;;;;;;;;;15198:37:169;-1:-1:-1;;;;;;;;;;;1237:23810:165;15219:15:169;15198:37;;:::i;:::-;8918:41:165;1237:23810;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;7259:23;;1237:23810;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;8606:25;-1:-1:-1;;;;;;;;;;;1237:23810:165;8606:25;1237:23810;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;7137:40;1237:23810;;;;;;;;;;;;;;;;;;;;;;;6874:32;-1:-1:-1;;;;;;;;;;;1237:23810:165;6874:32;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;15198:37:169;-1:-1:-1;;;;;;;;;;;1237:23810:165;15219:15:169;15198:37;;:::i;:::-;8790:41:165;1237:23810;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;:::i;:::-;-1:-1:-1;18733:28:169;18740:20;;;18733:28;:::i;:::-;18819:20;18812:28;18819:20;;;18812:28;:::i;:::-;6165:25:165;;;1237:23810;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1237:23810:165;;;;;;;18857:241:169;;1237:23810:165;;18857:241:169;;1237:23810:165;;18857:241:169;;1237:23810:165;6554:33;;;1237:23810;6622:39;;;;1237:23810;;;;;;;:::i;:::-;;;;;;:::i;:::-;18740:20:169;6248:19:165;;1237:23810;;;6554:33;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6303:27;;;1237:23810;;;;;;;;;;;;;;6208:464;;1237:23810;;;;;;;;;:::i;:::-;6359:20;;;1237:23810;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;18819:20:169;1237:23810:165;;;;;;;;;;;;6208:464;;1237:23810;;;;6208:464;;1237:23810;;;;6462:22;;;1237:23810;:::i;:::-;6208:464;1237:23810;6208:464;;1237:23810;;;6509:16;;1237:23810;;;:::i;:::-;6208:464;1237:23810;6208:464;;1237:23810;;;;6208:464;;1237:23810;;;;6208:464;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:614:22;1237:23810:165;;1052:614:22;1237:23810:165;;;;;;;;;1052:614:22;1237:23810:165;;1052:614:22;1237:23810:165;;;;;;;;;;;1052:614:22;1237:23810:165;;1052:614:22;1237:23810:165;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;9687:22;-1:-1:-1;;;;;;;;;;;1237:23810:165;9687:22;1237:23810;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1237:23810:165;;;;10560:28;10492:13;10560:28;;10487:129;10507:23;;;;;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;10560:28;1237:23810;;;10532:3;10589:15;;;10560:28;10589:15;;;;:::i;:::-;;:::i;:::-;1237:23810;;;;;;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;10551:54;;;;:::i;:::-;1237:23810;;10492:13;;1237:23810;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1237:23810:165;13317:19;1948:4:38;13317:19:165;;1237:23810;13317:38;1237:23810;;;;13555:20;13551:233;;1237:23810;13897:27;;;1237:23810;;;;13933:33;1237:23810;13897:69;1237:23810;;;;14032:37;;1237:23810;;;14073:21;1237:23810;;;14073:21;;:::i;:::-;1237:23810;-1:-1:-1;1237:23810:165;;14163:28;1237:23810;;;;14163:28;;:::i;:::-;1237:23810;16929:22;;1237:23810;;16929:22;1237:23810;;;;16929:22;:::i;:::-;1237:23810;;;;;;;;;;;;;;;;17064:40;1237:23810;;;17064:40;:::i;:::-;17114:18;;;17163:22;;;;;;1237:23810;14961:146;1237:23810;;;;1083:131:25;;1237:23810:165;14303:30;1237:23810;;;;14303:30;;:::i;:::-;14379:33;1237:23810;;;;14379:33;;:::i;:::-;1237:23810;14512:21;1237:23810;;;14073:21;14512;:::i;:::-;1237:23810;14594:13;;1237:23810;;14594:13;;:::i;:::-;1237:23810;;;8378:303:169;1237:23810:165;8378:303:169;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;13933:33;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8378:303:169;;;;;;:::i;:::-;1237:23810:165;8355:336:169;;13897:27:165;;;;;1237:23810;;14866:21;1237:23810;;;14073:21;14866;:::i;:::-;1237:23810;;;;14032:37;;1237:23810;;;;14032:37;;1237:23810;14903:26;1237:23810;;;;;;14903:26;1237:23810;15072:21;1237:23810;;;14073:21;15072;:::i;:::-;1237:23810;;;;14961:146;;:::i;:::-;1751:66;;;3556:68:76;757:66:38;3556:68:76;1237:23810:165;;1751:66;-1:-1:-1;;;1751:66:165;;1237:23810;;1751:66;17187:3;17249:22;16929;1237:23810;;16929:22;1237:23810;;;;17249:22;:::i;:::-;1237:23810;;;;;;;;;;;;;17314:19;;;1237:23810;;;;;;;;13897:27;1237:23810;;;;;1948:4:38;17314:79:165;1237:23810;;1948:4:38;1237:23810:165;;;17892:17;1237:23810;;;;;;;;;17472:17;;;;;:::i;:::-;;;;1237:23810;;;;;;;-1:-1:-1;17314:19:165;;;1237:23810;;;;;;;-1:-1:-1;;1237:23810:165;;;;;17595:39;;;1237:23810;;17595:41;;;:::i;:::-;1237:23810;;17468:270;17790:17;17757:51;17790:17;;;;:::i;:::-;1237:23810;;;;;;;;;;;;;17757:51;17892:17;:::i;:::-;1237:23810;;;;;;7135:159:169;;;;;;;4093:83:22;;;;1237:23810:165;17187:3;1237:23810;17148:13;;;17468:270;1237:23810;;17314:19;1237:23810;;;;;;;;17314:19;1237:23810;;;;;;;;;;17468:270;;1237:23810;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;7135:159:169;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;13551:233;13599:56;13641:13;;1237:23810;;13641:13;;:::i;:::-;1237:23810;;;;;13599:56;:::i;:::-;1237:23810;;;;13724:21;1237:23810;;;13724:21;;:::i;:::-;1237:23810;13706:15;:39;13551:233;1237:23810;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1237:23810:165;1789:30:38;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;7826:91;-1:-1:-1;;;;;;;;;;;1237:23810:165;7839:77;15198:37:169;1052:614:22;1237:23810:165;;;;15219:15:169;;15198:37;;:::i;:::-;7839:77:165;1237:23810;;7826:91;:::i;:::-;1237:23810;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;10985:19;-1:-1:-1;;;;;;;;;;;1237:23810:165;10985:19;1237:23810;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10721:36;-1:-1:-1;;;;;;;;;;;1237:23810:165;10721:36;1237:23810;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;:::i;:::-;10211:31;-1:-1:-1;;;;;;;;;;;1237:23810:165;10211:31;:43;1052:614:22;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;11424:19;;;1237:23810;;;;;11531:26;;1237:23810;;;11521:37;;11577:25;;1237:23810;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;7372:35;;1237:23810;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9559:25;-1:-1:-1;;;;;;;;;;;1237:23810:165;9559:25;1237:23810;:::i;:::-;;;;;;-1:-1:-1;;;;;1237:23810:165;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1237:23810:165;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;3319:20:37;1237:23810:165;;;966:10:34;1237:23810:165;;3319:20:37;1237:23810:165;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1237:23810:165;;;;10038:19;9973:13;10038:19;;9968:120;9988:20;;;;;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;10010:3;10064:12;;;;;:::i;:::-;1237:23810;;;;;;;;;;;;10029:48;;;;:::i;:::-;1237:23810;;;;;;;;;9973:13;;1237:23810;-1:-1:-1;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;7002:30;-1:-1:-1;;;;;;;;;;;1237:23810:165;7002:30;1237:23810;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;;;;;1237:23810:165;;;;;;;-1:-1:-1;;;;;1237:23810:165;3975:40:29;1237:23810:165;;3975:40:29;1237:23810:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;;6429:44:30;;;;;1237:23810:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;1237:23810:165;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;6959:1:30;;-1:-1:-1;;;;;1237:23810:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;6654:20;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;;;1237:23810:165;;1800:178:73;;;;1237:23810:165;;-1:-1:-1;;;;;;;;;;;1237:23810:165;24612:24;1237:23810;;;;;;24612:24;4240:17;;:::i;:::-;1237:23810;;6591:4:30;4215:22:165;;1237:23810;3979:1;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;4409:23;;;;4383;;1237:23810;;;;;;;4557:28;;;;;-1:-1:-1;;;;;1237:23810:165;;;4507:28;4557;4507;;921:1:169;-1:-1:-1;;;;;921:1:169;;;;;;;1237:23810:165;-1:-1:-1;;;;;987:1:169;;921;;;987;;;;;;4995:339:165;15198:37:169;15219:15;15198:37;;:::i;:::-;5149:91:165;-1:-1:-1;;;;;3979:1:165;15198:37:169;15219:15;15198:37;;:::i;5149:91:165:-;1237:23810;;15198:37:169;15219:15;15198:37;;:::i;:::-;5254:41:165;1237:23810;;:::i;:::-;15219:15:169;1237:23810:165;15219:15:169;1237:23810:165;;:::i;:::-;5025:40;;;;4995:339;:::i;:::-;5431:25;;;;5403;;1237:23810;;;;;;;5536:19;;;;;;5514;;1237:23810;;;;;;;;;;;-1:-1:-1;;;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;3979:1;1237:23810;;6654:20:30;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;-1:-1:-1;;;;;;;987:1:169;;1237:23810:165;;;;987:1:169;-1:-1:-1;;;;;;;987:1:169;;;;;1237:23810:165;;;;;;;;-1:-1:-1;;;;;;1237:23810:165;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;6425:105:30;-1:-1:-1;;;6496:23:30;;1237:23810:165;;6496:23:30;6429:44;3979:1:165;1237:23810;;-1:-1:-1;;;;;1237:23810:165;6448:25:30;;6429:44;;;1237:23810:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;;;;1237:23810:165;;;;;4301:16:30;1237:23810:165;;4724:16:30;;:34;;;;1237:23810:165;;4788:16:30;:50;;;;1237:23810:165;4853:13:30;:30;;;;1237:23810:165;4849:91:30;;;6959:1;1237:23810:165;;;-1:-1:-1;;;;;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;4977:67:30;;1237:23810:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;;;:::i;:::-;2578:15:165;:19;1237:23810;;2636:21;;1237:23810;;2703:32;;;1237:23810;;;2984:2;2948:32;;;;:::i;:::-;1237:23810;2928:58;;1237:23810;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;1237:23810:165;1800:178:73;;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;;;;1800:178:73;;1237:23810:165;24612:24;;;3142:17;;:::i;:::-;1237:23810;;;3120:19;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1237:23810:165;;;;3192:52;;1237:23810;;;;;;3192:52;;;;1237:23810;;;3169:20;;;1237:23810;;;;;;-1:-1:-1;;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:1:169;3254:25:165;;;987:1:169;1237:23810:165;;:::i;:::-;;;;;;;:::i;:::-;799:13:169;1237:23810:165;;1081:18:169;1237:23810:165;10604:89:169;;;1237:23810:165;3442:22;;;1237:23810;;-1:-1:-1;;;;;;987:1:169;;;;;1237:23810:165;;;;;;;;;:::i;:::-;;;;3529:65;1237:23810;3529:65;;1237:23810;3529:65;1237:23810;3510:16;;;1237:23810;;987:1:169;;1237:23810:165;987:1:169;;;1237:23810:165;;;;;;;:::i;:::-;;;987:1:169;;;1237:23810:165;;987:1:169;;;;;1237:23810:165;;;;987:1:169;:::i;:::-;2578:15:165;;1237:23810;;987:1:169;;;;:::i;:::-;3676:37:165;;;3646:213;;;;:::i;:::-;5064:101:30;;1237:23810:165;;;5064:101:30;1237:23810:165;5140:14:30;1237:23810:165;-1:-1:-1;;;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;;5140:14:30;1237:23810:165;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;4977:67:30;-1:-1:-1;;;;;;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1237:23810:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1237:23810:165;4815:4:60;4807:23;4803:145;;1237:23810:165;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1237:23810:165;;4908:29:60;1237:23810:165;-1:-1:-1;1237:23810:165;;-1:-1:-1;;1237:23810:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1237:23810:165;4392:4:60;4384:23;;;:120;;;;1237:23810:165;4367:251:60;;;2303:62:29;;:::i;:::-;1237:23810:165;;-1:-1:-1;;;5865:52:60;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;5865:52:60;;;;;;;;1237:23810:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1237:23810:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;;;;;1237:23810:165;;;;;2407:36:53;;;;1237:23810:165;;;;2458:15:53;:11;;4065:25:66;;1237:23810:165;4107:55:66;4065:25;;;;;;;1237:23810:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1237:23810:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1237:23810:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1237:23810:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1237:23810:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1237:23810:165;;;6026:34:60;;5865:52;;;;1237:23810:165;5865:52:60;;1237:23810:165;5865:52:60;;;;;;1237:23810:165;5865:52:60;;;:::i;:::-;;;1237:23810:165;;;;;5865:52:60;;;;1237:23810:165;-1:-1:-1;1237:23810:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1237:23810:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1237:23810:165;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;2971:9:37;2967:62;;1237:23810:165;;;-1:-1:-1;;;;;;;;;;;1237:23810:165;3627:22:37;1237:23810:165;;;966:10:34;1237:23810:165;;3627:22:37;1237:23810:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1237:23810:165;3003:15:37;;1237:23810:165;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;11104:23;;1237:23810;;-1:-1:-1;;;;;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15198:37:169;-1:-1:-1;;;;;;;;;;;1237:23810:165;15219:15:169;15198:37;;:::i;:::-;1237:23810:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;;15368:19;;1237:23810;15368:38;1237:23810;;;;;15461:19;;;1237:23810;;;;;;;;;;;;;;15499:24;15461:62;1237:23810;;3543:209:25;;;1237:23810:165;;;3543:209:25;1237:23810:165;3543:209:25;;1237:23810:165;1052:614:22;1237:23810:165;1052:614:22;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;446:4:168;1052:614:22;1237:23810:165;1052:614:22;921:66:168;4093:83:22;;15860:4:165;1237:23810;;1067:66:168;1066:105;1237:23810:165;4093:83:22;;;1222:66:168;1237:23810:165;4093:83:22;;;1300:150:168;;;;;;;-1:-1:-1;;;;;1237:23810:165;;-1:-1:-1;1237:23810:165;;;15944:28;;;1237:23810;;;;;;;;16001:33;;1237:23810;;16001:35;;;:::i;:::-;1237:23810;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;16052:32;;1237:23810;;16052:32;-1:-1:-1;;;;;;1237:23810:165;;1052:614:22;;12539:10:165;;12502:70;-1:-1:-1;;;;;;;;;;;1237:23810:165;7259:23;;1237:23810;-1:-1:-1;;;;;1237:23810:165;12462:131;;;;;1237:23810;;-1:-1:-1;;;12462:131:165;;-1:-1:-1;;;;;1237:23810:165;;;;12462:131;;1237:23810;;;;;1052:614:22;1237:23810:165;;;;12462:131;1237:23810;12462:131;1237:23810;12462:131;;;;;;;;;;12502:70;1237:23810;;;;;;;;12462:131;;;;;;:::i;:::-;1237:23810;;12462:131;;;;1237:23810;;;;;;;;;12462:131;1237:23810;;;12502:70;;;1300:150:168;;;;1052:614:22;;;;1237:23810:165;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;6760:22;-1:-1:-1;;;;;;;;;;;1237:23810:165;6760:22;1237:23810;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;1944:72:37;;:::i;:::-;11803:11:165;;:16;1237:23810;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;11899:19;;1237:23810;11899:38;1237:23810;;11992:19;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;;12189:32;;;1237:23810;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;:::i;:::-;;;;:::i;:::-;1944:72:37;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1237:23810:165;15368:19;;;1237:23810;15368:38;1237:23810;;;;;15461:19;;;1237:23810;;;;;;;;;;;;;;15499:24;15461:62;1237:23810;;3543:209:25;1237:23810:165;3543:209:25;1237:23810:165;;;3543:209:25;1237:23810:165;;3543:209:25;1237:23810:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;441:6:167;1052:614:22;1237:23810:165;1052:614:22;654:66:167;4093:83:22;;764:66:167;1237:23810:165;4093:83:22;;;874:66:167;1237:23810:165;4093:83:22;;;984:66:167;976:6;4093:83:22;;;1094:66:167;1237:23810:165;4093:83:22;;;1204:66:167;1196:6;4093:83:22;;;1314:66:167;1306:6;4093:83:22;;;1424:66:167;1237:23810:165;4093:83:22;;;1534:66:167;1526:6;4093:83:22;;;1644:66:167;1636:6;4093:83:22;;;1754:66:167;1746:6;4093:83:22;;;1864:66:167;1856:6;4093:83:22;;;1974:66:167;1966:6;4093:83:22;;;2084:66:167;2076:6;4093:83:22;;;2194:66:167;2186:6;4093:83:22;;;2304:66:167;2296:6;4093:83:22;;;2414:66:167;2406:6;4093:83:22;;;2524:66:167;2516:6;4093:83:22;;;2634:66:167;2626:6;4093:83:22;;;15921:4:165;976:6:167;1237:23810:165;2782:66:167;2781:107;2761:6;4093:83:22;;;3042:66:167;15921:4:165;1196:6:167;1237:23810:165;2980:129:167;2958:6;4093:83:22;;;3164:66:167;;;3156:6;4093:83:22;;;1237:23810:165;3242:150:167;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;15944:28;;;1237:23810;;;;;;;;16001:33;;1237:23810;;16001:35;;;:::i;:::-;1237:23810;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;16052:32;;1237:23810;;16052:32;-1:-1:-1;;;;;;1237:23810:165;;1052:614:22;;12985:10:165;;12948:70;;12908:133;;;;;1237:23810;;-1:-1:-1;;;12908:133:165;;-1:-1:-1;;;;;1237:23810:165;;;;12908:133;;1237:23810;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;-1:-1:-1;12908:133:165;;;;;;;;1237:23810;12908:133;;;12948:70;1237:23810;;;;;;;12908:133;1237:23810;12908:133;;;:::i;:::-;1237:23810;12908:133;;;1237:23810;;;;;;;;;12948:70;;;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;10848:42;-1:-1:-1;;;;;;;;;;;1237:23810:165;10848:42;1237:23810;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;:::-;;;;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1237:23810:165;;;;;;-1:-1:-1;;1237:23810:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;-1:-1:-1;;1237:23810:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:614:22;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1237:23810:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;987:1:169;;;;;;;;;;;1237:23810:165;;;;:::i;:::-;987:1:169;;;1237:23810:165;;;987:1:169;;;1237:23810:165;987:1:169;;;:::o;:::-;-1:-1:-1;;;;;987:1:169;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1237:23810:165;;;;;;;:::i;:::-;987:1:169;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1237:23810:165;;;;;:::i;:::-;987:1:169;;;;;;;;1237:23810:165;;;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;7930:375::-;15198:37:169;-1:-1:-1;;;;;;;;;;;1237:23810:165;15219:15:169;15198:37;;:::i;:::-;8182:22:165;;;1237:23810;8134:22;;;;;;8287:11;;;;1237:23810;7930:375;:::o;8158:3::-;8205:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1237:23810:165;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;8181:39;8177:90;;1237:23810;;8119:13;;8177:90;8240:12;;;;1237:23810;8240:12;:::o;1237:23810::-;;;;;;;:::i;:::-;-1:-1:-1;1237:23810:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1237:23810:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1237:23810:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1237:23810:165;;-1:-1:-1;;;;;;1237:23810:165;;;;;;;-1:-1:-1;;;;;1237:23810:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1237:23810:165;;3509:1:29;3534:31;2709:128:37;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;1237:23810:165;-1:-1:-1;;1237:23810:165;;;;;;;:::o;2658:162:29:-;-1:-1:-1;;;;;;;;;;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1237:23810:165;;-1:-1:-1;2763:40:29;10706:196:169;1237:23810:165;;:::i;:::-;;;;;;;:::i;:::-;10825:1:169;1237:23810:165;;;10844:12:169;1237:23810:165;10793:102:169;;;1237:23810:165;;10877:15:169;1237:23810:165;;10793:102:169;;1237:23810:165;10706:196:169;:::o;1237:23810:165:-;;;;;;;;;;;;;;;;:::o;22644:1421::-;;;;987:1:169;;23344:25:165;;;;987:1:169;;;1145:66:27;;1837:24:26;;:71;;;;22644:1421:165;1237:23810;;;;;987:1:169;1237:23810:165;;987:1:169;1237:23810:165;;;;;;933:31:171;;1237:23810:165;933:31:171;23344:25:165;933:31:171;;;1237:23810:165;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;933:31:171;;1237:23810:165;;933:31:171;;;;;;:::i;:::-;1003:2074;1237:23810:165;;;1003:2074:171;;23344:25:165;1003:2074:171;;1237:23810:165;;;;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;1003:2074:171;;1237:23810:165;;1003:2074:171;;;;;;:::i;:::-;3088:265;;-1:-1:-1;3088:265:171;-1:-1:-1;;;;;1237:23810:165;;3371:21:171;1237:23810:165;;23504:52;;;1237:23810;;-1:-1:-1;;;;;;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;-1:-1:-1;23667:3:165;23642:16;;;1237:23810;;23638:27;;;;;-1:-1:-1;1237:23810:165;;;23344:25;1237:23810;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;23740:15;;1237:23810;;;;;;;-1:-1:-1;;1237:23810:165;;;;;23623:13;;23638:27;;;;-1:-1:-1;23842:3:165;1237:23810;;23815:25;;;;;1237:23810;;-1:-1:-1;;;;;23882:17:165;1237:23810;23882:17;;:::i;:::-;1237:23810;;;;;;;;-1:-1:-1;1237:23810:165;;23913:15;;1237:23810;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;23800:13;;23815:25;;;23642:16;23967;;1237:23810;;;-1:-1:-1;;;;;1237:23810:165;;;;-1:-1:-1;;;1237:23810:165;;;;;;;;;;;;;;23795:163;1237:23810;23344:25;1237:23810;;-1:-1:-1;1237:23810:165;23344:25;-1:-1:-1;1237:23810:165;-1:-1:-1;1237:23810:165;;;;;;24010:28;;;;;;1237:23810;22644:1421::o;1237:23810::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;23344:25;1237:23810;;;;;;;;;;-1:-1:-1;1237:23810:165;;;23344:25;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;3607:161:171;3727:19;;;-1:-1:-1;;1237:23810:165;;;;;;;;468:1:171;4568:807;;;1237:23810:165;4568:807:171;1237:23810:165;;4568:807:171;;;;;;;;;;;;;;;3607:161;:::o;9974:518:169:-;10085:12;-1:-1:-1;;1237:23810:165;;;9974:518:169;;1237:23810:165;;;;;;10085:12:169;10125:22;;10085:12;;10125:50;1237:23810:165;10125:50:169;;10209:8;;;;;;10185:278;-1:-1:-1;1237:23810:165;;-1:-1:-1;;9974:518:169:o;10190:17::-;10248:12;;10278:11;;;;;-1:-1:-1;10100:1:169;;-1:-1:-1;;;10309:11:169:o;10274:119::-;10345:8;10341:52;;-1:-1:-1;;1237:23810:165;10190:17:169;;10341:52;10373:5;;10125:50;10154:21;10085:12;;10154:21;:::i;:::-;10125:50;;;1237:23810:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;:::o;16122:652::-;;16250:22;;;16283:1;16250:22;;;;:::i;:::-;:34;;;1237:23810;;16327:22;;;;:::i;:::-;:34;;;16323:146;;16523:22;;;:::i;:::-;1237:23810;;;;;;;;;;;;;;;;;;16613:23;;;;;:::i;:::-;1237:23810;;;;;;;;;;21725:2;1237:23810;;;;;;;21771:36;;;;;;:::i;:::-;21817:18;1237:23810;21851:13;1237:23810;;21986:28;1237:23810;;;;;;21986:28;;21846:685;21886:3;21866:18;;;;;;1237:23810;;;;;;;;;;;;;;22015:18;;;:::i;:::-;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;21986:53;1237:23810;;;16250:22;22109:25;;-1:-1:-1;;;;;22109:25:165;;;:::i;:::-;1237:23810;22109:30;;:72;;;21886:3;22105:144;;21886:3;-1:-1:-1;;;;;22296:18:165;;;:::i;:::-;1237:23810;;-1:-1:-1;;;22288:76:165;;21725:2;22288:76;;;1237:23810;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;-1:-1:-1;;;;;1237:23810:165;;;:::i;:::-;;;;;;21725:2;1237:23810;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;;;;;;21725:2;1237:23810;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21725:2;1237:23810;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;17757:51;1237:23810;;;;;;;;;;;;21725:2;1237:23810;;;;;;;;;;;;;;;;;;;;;;;22288:76;;;;;;;21725:2;22288:76;;-1:-1:-1;;;;;22288:76:165;;;;1237:23810;;22288:76;;;;;;;;1237:23810;22288:76;;;1237:23810;4093:83:22;;21725:2:165;4093:83:22;16283:1:165;4093:83:22;;;;1237:23810:165;21886:3;1237:23810;21851:13;;;22288:76;;;21725:2;22288:76;;;;;;;;;1237:23810;22288:76;;;:::i;:::-;;;1237:23810;;;;;16283:1;22288:76;;;;;-1:-1:-1;22288:76:165;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;21725:2;1237:23810;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;:::i;:::-;;21725:2;1237:23810;;;;;;;-1:-1:-1;;1237:23810:165;;;;;;;;;;;;21725:2;1237:23810;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;16250:22;1237:23810;;;:::i;:::-;;;;;;;;;;16250:22;1237:23810;;;;;;;;;;;;;;;;;;21725:2;1237:23810;;;;;;;;16283:1;1237:23810;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16283:1;1237:23810;;;;;;;;;;;21725:2;1237:23810;;;:::i;:::-;;21725:2;1237:23810;;;-1:-1:-1;;;;;1237:23810:165;;;;;:::i;:::-;;;;;;;;;;;;;;22105:144;22209:25;;;;;:::i;:::-;22105:144;;;22109:72;22144:37;;1237:23810;22144:37;;;:::i;:::-;22143:38;22109:72;;21866:18;;;;;;;;;;21725:2;21866:18;;1083:131:25;16672:16:165;;1237:23810;;16653:36;21725:2;1237:23810;;;;;16653:36;1237:23810;3543:209:25;21725:2:165;3543:209:25;1237:23810:165;;3543:209:25;16122:652:165;:::o;16323:146::-;16438:20;;;16445:13;16438:20;:::o;1237:23810::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;18224:1668::-;18354:24;;;18389:1;18354:24;;;;:::i;:::-;:36;;;1237:23810;;18435:24;;;;:::i;:::-;:36;;;18431:148;;18635:24;;;;:::i;:::-;1237:23810;;;;;;;;;;;;;;;;;;18681:21;;;;;18705;18681;;;:::i;:::-;18705;;;1237:23810;18705:21;;;;:::i;:::-;1237:23810;;;18681:45;1237:23810;;;18784:21;;;:::i;:::-;1237:23810;18809:29;;;;1237:23810;18705:21;1237:23810;;;;18784:54;1237:23810;;18995:46;1237:23810;19019:21;18915:46;18939:21;;;;:::i;:::-;1237:23810;18915:46;;:::i;:::-;19019:21;;:::i;:::-;1237:23810;18995:46;;:::i;:::-;-1:-1:-1;1237:23810:165;;;19163:31;;;1237:23810;19226:32;;;;1237:23810;;;;;-1:-1:-1;;;;;1237:23810:165;;;;19325:19;;;;1237:23810;;;;18705:21;;1237:23810;19219:138;19294:62;18705:21;19325:19;;1237:23810;19325:19;:::i;:::-;:31;1237:23810;19294:62;;:::i;:::-;19325:19;1237:23810;;;;;;;;;19219:138;;;;;;1237:23810;;;;;19219:138;;;;;;;1237:23810;19219:138;;;18224:1668;1237:23810;;;;;19325:19;1237:23810;-1:-1:-1;;;19447:185:165;;-1:-1:-1;;;;;1237:23810:165;;;19219:138;19447:185;;1237:23810;;;;;;;;18705:21;19592:26;;;1237:23810;19219:138;1237:23810;;;;19447:185;1237:23810;-1:-1:-1;19447:185:165;;;;;;;;1237:23810;19447:185;;;18224:1668;19733:19;;;;;:::i;:::-;19754:21;;;;:::i;:::-;1237:23810;19325:19;1237:23810;;;;;19684:92;;19325:19;19219:138;19684:92;;1237:23810;;;;;;;;;;;;;;;;;;;;18705:21;1237:23810;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;19226:32;1237:23810;;;;;;;18681:21;19219:138;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;18705:21;1237:23810;;;;;;;;;;;19447:185;1237:23810;;;;19325:19;1052:614:22;1237:23810:165;;;;;;;:::i;:::-;;;;;;;;;;;19684:92;;;;;;;;;1237:23810;19684:92;;;1237:23810;19863:21;;;;:::i;:::-;19325:19;1237:23810;7537:70:169;18705:21:165;7537:70:169;;1237:23810:165;;;19325:19;1237:23810;;;;;;;;;;18681:21;1237:23810;;;7537:70:169;;;;;;;:::i;:::-;1237:23810:165;7527:81:169;;18224:1668:165;:::o;19684:92::-;;;;18705:21;19684:92;;18705:21;19684:92;;;;;;1237:23810;19684:92;;;:::i;:::-;;;1237:23810;;;;;;19863:21;19684:92;;;;;-1:-1:-1;19684:92:165;;1237:23810;;;;;;;19325:19;1237:23810;18389:1;1237:23810;;;;;;;;;:::i;:::-;;;;18705:21;1237:23810;;;18705:21;1237:23810;;;;;;;;;;;;;;;;19447:185;;;;;18705:21;19447:185;;18705:21;19447:185;;;;;;1237:23810;19447:185;;;:::i;:::-;;;1237:23810;;;;;;;19733:19;19447:185;;;;;-1:-1:-1;19447:185:165;;1237:23810;;;;;;19219:138;1237:23810;;19219:138;;;18705:21;19219:138;;18705:21;19219:138;;;;;;18705:21;19219:138;;;:::i;:::-;;;1237:23810;;;;;;;;;;;;19219:138;;;;;;-1:-1:-1;19219:138:165;;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;:::o;19944:1520::-;;20077:27;;;20115:1;20077:27;;;;:::i;:::-;:39;;;1237:23810;;20164:27;;;;:::i;:::-;:39;;;20160:151;;20370:27;;;:::i;:::-;1237:23810;;;;;;;;;;;;;;;;;;20419:22;;;;;;;;:::i;:::-;:33;;;1237:23810;;;20532:29;;;1237:23810;;;;20514:15;:47;:15;;:47;:::i;:::-;20513:72;20565:16;;;1237:23810;20513:72;;;:::i;:::-;20604:20;;;;1237:23810;;20115:1;1237:23810;;;;;;;20604:43;;1237:23810;;20738:43;;20706:75;20738:43;;:::i;:::-;20706:75;;:::i;:::-;20833:25;20818:40;20833:25;;;1237:23810;20818:40;;:::i;:::-;20514:15;20799:59;1237:23810;;20977:34;;;:::i;:::-;20514:15;;1237:23810;21029:28;;1237:23810;21029:46;1237:23810;;;21117:217;21217:45;;;;;987:1:169;;21217:45:165;;;;:::i;:::-;21276:22;;;;;;:::i;:::-;1237:23810;;;987:1:169;1237:23810:165;987:1:169;;:::i;:::-;1237:23810:165;;987:1:169;;:::i;:::-;1237:23810:165;;987:1:169;;:::i;:::-;21117:217:165;;:::i;:::-;21350:47;1237:23810;21217:45;1237:23810;;;;21350:47;1237:23810;;;;;;;21217:45;1237:23810;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21217:45;1237:23810;;;;20419:22;1237:23810;;;7806:30:169;987:1;1237:23810:165;987:1:169;;7856:32;;987:1;1237:23810:165;21217:45;1237:23810;7772:206:169;;;1237:23810:165;7772:206:169;;1237:23810:165;;;21217:45;1237:23810;;;20419:22;1237:23810;;;;;;;;;;;;;;;;-1:-1:-1;;;1237:23810:165;;7772:206:169;;;;;;1237:23810:165;7772:206:169;;;:::i;1237:23810:165:-;;;-1:-1:-1;;;;;1237:23810:165;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;20115:1;1237:23810;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11562:3508:169;;;;;;1237:23810:165;18017:29:169;;;1237:23810:165;;;;18049:22:169;11877:15;18049:22;;:::i;:::-;18017:77;18049:45;18074:16;;;1237:23810:165;18049:45:169;;;:::i;:::-;18017:77;;:::i;:::-;11907:15;;;;;;:82;;11562:3508;11903:676;;;12013:35;;;1237:23810:165;;12098:25:169;;;;:::i;:::-;:39;1237:23810:165;;12621:24:169;11903:676;;12621:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1237:23810:165;3226:200:80;12686:4:169;3226:200:80;;18017:29:169;3226:200:80;18074:16:169;3226:200:80;;1237:23810:165;3226:200:80;1237:23810:165;18017:29:169;1237:23810:165;;;;;12749:37:169;;;12810:23;;18017:19;12810:23;;1237:23810:165;;;;;;;987:1:169;1237:23810:165;;:::i;:::-;987:1:169;;;:::i;:::-;1237:23810:165;3226:200:80;1237:23810:165;;12941:23:169;1237:23810:165;;13131:240:169;1237:23810:165;13648:272:169;13131:240;;;3226:200:80;13131:240:169;;;;;;;1237:23810:165;18017:19:169;1237:23810:165;;13737:32:169;;1237:23810:165;13648:272:169;;:::i;1237:23810:165:-;;;;;;;;;;;;;;;;;;12745:2296:169;1237:23810:165;;;18017:19:169;13941:37;13937:1104;;12745:2296;;;;;1237:23810:165;11562:3508:169;:::o;13937:1104::-;14014:199;14051:15;14091:25;14051:15;;;;;1237:23810:165;14091:25:169;;1237:23810:165;;-1:-1:-1;;;;;1237:23810:165;;;;;14014:199:169;;:::i;:::-;14228:27;1237:23810:165;14275:13:169;14471:14;1237:23810:165;14471:14:169;;14270:734;14314:3;14290:22;;;;;;3927:8:77;3871:27;987:1:169;1237:23810:165;;;;;;;;:::i;987:1:169:-;3871:27:77;;:::i;:::-;3927:8;;;;;:::i;:::-;-1:-1:-1;;;;;1237:23810:165;;;;;;;;;;;;;;;;14467:523:169;;14314:3;;18017:19;14314:3;14275:13;1237:23810:165;14275:13:169;;14467:523;-1:-1:-1;;;;;2780:163:73;1237:23810:165;2780:163:73;;;1751:66:165;1237:23810;2780:163:73;;;;3327:69:76;;14635:50:169;;;14713:8;18017:19;14713:8;;;14631:223;3556:68:76;18017:19:169;14880:17;3556:68:76;;;14880:17:169;:::i;:::-;:30;;;;14876:96;;14467:523;;;14876:96;14938:11;;;;;;;18017:19;14938:11;:::o;14290:22::-;;;;;;;;1237:23810:165;15018:12:169;:::o;1237:23810:165:-;;;;;;;;;;;;;;;;;;11903:676:169;11877:15;;;;;;12372:21;;1237:23810:165;;12621:24:169;12430:69;;;11903:676;;;;12430:69;12469:15;;12430:69;;;1237:23810:165;;;;;;;;;11907:82:169;11957:32;11944:45;11957:32;;;1237:23810:165;11944:45:169;;:::i;:::-;11877:15;11926:63;11907:82;;17265:446;-1:-1:-1;;;;;17265:446:169;;1237:23810:165;;;;17564:24:169;;;;:::i;:::-;1237:23810:165;;;;;;17676:5:169;1237:23810:165;;17689:1:169;1237:23810:165;17265:446:169;:::o;15833:312::-;;15956:37;15833:312;15956:37;;:::i;:::-;;;;16016;;16009:44;:::o;15952:187::-;16091:37;;16084:44;:::o;7082:141:30:-;1237:23810:165;-1:-1:-1;;;;;;;;;;;1237:23810:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;1237:23810:165;;-1:-1:-1;;;;;1237:23810:165;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1237:23810:165;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;17717:179:169:-;17869:16;17831:34;17830:59;17717:179;1237:23810:165;17836:29:169;;;1237:23810:165;;;;17831:34:169;;:::i;:::-;17869:16;;1237:23810:165;17830:59:169;;:::i;15388:322::-;15508:50;15542:15;15508:50;;:::i;:::-;15542:15;;;15581:37;;15574:44;:::o;15504:200::-;15656:37;;15649:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;1237:23810:165;4010:31:20;;;:::i;:::-;1237:23810:165;425:3:20;1237:23810:165;;;4003:1:27;2933;2929:5;;1237:23810:165;425:3:20;4492:84:22;;;4093:83;1237:23810:165;4093:83:22;;;4003:1:27;1237:23810:165;;;4492:84:22;;;1237:23810:165;4093:83:22;;;;;1237:23810:165;4093:83:22;;;1581:66:20;1237:23810:165;4093:83:22;;;-1:-1:-1;;;1237:23810:165;4093:83:22;;;531:131:25;;1237:23810:165;4093:83:22;;;;;;4003:1:27;1237:23810:165;4492:84:22;;2933:1:27;4492:84:22;;1237:23810:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;1237:23810:165;1145:66:27;;531:131:25;;6084:3:20;1237:23810:165;-1:-1:-1;;;;;1237:23810:165;;;6084:3:20;1237:23810:165;;6062:44:20;1145:66:27;;;1860::20;1052:614:22;1860:66:20;;1237:23810:165;6037:2:20;1237:23810:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1237:23810:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1237:23810:165;4093:83:22;;1237:23810:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1237:23810:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1237:23810:165;1640:140:24;3543:209:25;1237:23810:165;3543:209:25;648:2:20;3543:209:25;1052:614:22;1237:23810:165;;;;6037:2:20;1237:23810:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1237:23810:165;8070:12:20;:::o;18107:424:169:-;1237:23810:165;;:::i;:::-;-1:-1:-1;18368:51:169;;;1237:23810:165;18486:27:169;;;1237:23810:165;;;;;;;;18439:15:169;;-1:-1:-1;;;;;1237:23810:165;;;;:::i;:::-;;;;:::i;:::-;;;18227:297:169;;;1237:23810:165;18439:15:169;1237:23810:165;:::i;:::-;;18227:297:169;;1237:23810:165;18227:297:169;;;1237:23810:165;18107:424:169;:::o;16432:827::-;;16642:54;16564;;;1237:23810:165;16642:54:169;;1237:23810:165;16770:10:169;;;1237:23810:165;;16841:9:169;;;;16873;;;;;16905;;;17006:14;;;;;16432:827;1237:23810:165;;;17222:30:169;;;17215:37;;16432:827;:::o;17222:30::-;17237:14;;16432:827;-1:-1:-1;16432:827:169:o;1237:23810:165:-;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;17006:14:169;;;;;1237:23810:165;;;;-1:-1:-1;1237:23810:165;;-1:-1:-1;1237:23810:165;2129:778:77;1237:23810:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;7280:532::-;1237:23810:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1237:23810:165;7462:38:77;;1237:23810:165;;7523:23:77;;;7375:20;7523:23;1237:23810:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1237:23810:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1237:23810:165;;;7375:20:77;7763:32;1767:250:27;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1237:23810:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1237:23810:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1237:23810:165;;;;4933:24:66;1237:23810:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;5203:1551:77;;;6283:66;6270:79;;6266:164;;1237:23810:165;;;;;;-1:-1:-1;1237:23810:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1237:23810:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{},"immutableReferences":{"45417":[{"start":6951,"length":32},{"start":7098,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"b24fcac0","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32)":"120e3f1e","setMirror(address)":"3d43b418","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"AnnouncesCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AnnouncesCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch keccak256 hash, see Gear.batchCommitmentHash.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated.\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, represented as a Blake2 hash.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program.\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AnnouncesCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its CodeStatus changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x42686e2aa96b94c7e583d6e841136964d6905db22a097b741577290f449f6780\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://97631d6308e2c678f08bc4030696d5f5dfb09e0198c1bc658b9cc2929aa9baa3\",\"dweb:/ipfs/QmcmCmDjXZ67jjqo1EP743npGFfeGn6euYsurDcnQSFSUE\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xb69ad2881333c466b4c115dce8795ed1f21b52b00fbc929b5d0c76ee336f253b\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://25f1d70354c1b804b0de6c779690401a9043037e26ee8bf0d55bc1bdd0c1a876\",\"dweb:/ipfs/QmS9DmLZHTSovhwyHykzCQf73yie2NBFN5qTEDdBiuAGpg\"]},\"src/IRouter.sol\":{\"keccak256\":\"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a\",\"dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF\"]},\"src/Router.sol\":{\"keccak256\":\"0x81ec229dd4eec1437c4d3b9595b89390d8427412df1c9f7f30c345f983adc34d\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://c34ad750f9fca34f3e2bbbe3323395ac0d61ac0e56c78cf6b47d9bd7a80802dd\",\"dweb:/ipfs/QmczJMxGApfWKFBqnXJpV6ZMziyMiFpafeMnqKdEV44DCH\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0x2ef3c9aa3b631e8623d0534ba8c4af94491eccae529cd326a43a1f394f7a688e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://305de5d415d10c219ed462a61cb6cdcc03ea36e67f1a8986bd3320f69225c052\",\"dweb:/ipfs/QmNarW2MSLJqCE9fzuVzFUY4HNgj5X42nqVbDZwpGA2o9h\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x169033917f7ee921a663c120122b572c5475ff083b75950a0178eb9476e3d9e3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f526d9f9bbd11b0210da6019531b070b54a059f9018c52cab268df46a5b52f6d\",\"dweb:/ipfs/QmSa1evQuouSyjePKryKr5p1cKQSv6Eh9hX3oFJyuQAo2a\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0x298f0408da388ed3c18e8ef5e6ecc3165c6c3a23c595f77986797f66495d07f3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5e146d38b37999363e3eed56edf4a9f49efb4504ec2cdf03e5bd1b75a8902fe9\",\"dweb:/ipfs/QmT1iZKV1YGQVUTk6ChqYcuajLmeEdaPhdEnB9MLopYpfh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"inputs":[],"type":"error","name":"DeploymentFailed"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"AnnouncesCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"storageView()":{"details":"Returns the storage view of the contract storage."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x42686e2aa96b94c7e583d6e841136964d6905db22a097b741577290f449f6780","urls":["bzz-raw://97631d6308e2c678f08bc4030696d5f5dfb09e0198c1bc658b9cc2929aa9baa3","dweb:/ipfs/QmcmCmDjXZ67jjqo1EP743npGFfeGn6euYsurDcnQSFSUE"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0xb69ad2881333c466b4c115dce8795ed1f21b52b00fbc929b5d0c76ee336f253b","urls":["bzz-raw://25f1d70354c1b804b0de6c779690401a9043037e26ee8bf0d55bc1bdd0c1a876","dweb:/ipfs/QmS9DmLZHTSovhwyHykzCQf73yie2NBFN5qTEDdBiuAGpg"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0xc933ed91b4e3da6b0880841f2423a1e71a9bc49aca6f33aebf6c902a60c146aa","urls":["bzz-raw://c8229438d62a62be114727c59bd0ab8c2e77cfcae6c14ac885c3902661f8c04a","dweb:/ipfs/QmeGw253fSke8BT3c6pvcxke3BYhr7DZCDA8Rd8Fy3QWJF"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0x81ec229dd4eec1437c4d3b9595b89390d8427412df1c9f7f30c345f983adc34d","urls":["bzz-raw://c34ad750f9fca34f3e2bbbe3323395ac0d61ac0e56c78cf6b47d9bd7a80802dd","dweb:/ipfs/QmczJMxGApfWKFBqnXJpV6ZMziyMiFpafeMnqKdEV44DCH"],"license":"UNLICENSED"},"src/libraries/Clones.sol":{"keccak256":"0x2ef3c9aa3b631e8623d0534ba8c4af94491eccae529cd326a43a1f394f7a688e","urls":["bzz-raw://305de5d415d10c219ed462a61cb6cdcc03ea36e67f1a8986bd3320f69225c052","dweb:/ipfs/QmNarW2MSLJqCE9fzuVzFUY4HNgj5X42nqVbDZwpGA2o9h"],"license":"UNLICENSED"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x169033917f7ee921a663c120122b572c5475ff083b75950a0178eb9476e3d9e3","urls":["bzz-raw://f526d9f9bbd11b0210da6019531b070b54a059f9018c52cab268df46a5b52f6d","dweb:/ipfs/QmSa1evQuouSyjePKryKr5p1cKQSv6Eh9hX3oFJyuQAo2a"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/SSTORE2.sol":{"keccak256":"0x298f0408da388ed3c18e8ef5e6ecc3165c6c3a23c595f77986797f66495d07f3","urls":["bzz-raw://5e146d38b37999363e3eed56edf4a9f49efb4504ec2cdf03e5bd1b75a8902fe9","dweb:/ipfs/QmT1iZKV1YGQVUTk6ChqYcuajLmeEdaPhdEnB9MLopYpfh"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":80596,"exportedSymbols":{"Clones":[80982],"ClonesSmall":[81063],"FROST":[40289],"Gear":[82248],"Hashes":[40807],"IERC20":[46160],"IMiddleware":[73432],"IMirror":[73658],"IRouter":[74052],"Memory":[40581],"OwnableUpgradeable":[41646],"PausableUpgradeable":[43182],"ReentrancyGuardTransientUpgradeable":[43267],"Router":[80595],"SSTORE2":[82670],"SlotDerivation":[48289],"StorageSlot":[48413],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:25009:165","nodes":[{"id":78411,"nodeType":"PragmaDirective","src":"39:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78413,"nodeType":"ImportDirective","src":"65:46:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"./IMiddleware.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":78412,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"73:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78415,"nodeType":"ImportDirective","src":"112:38:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"./IMirror.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":78414,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"120:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78417,"nodeType":"ImportDirective","src":"151:38:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"./IRouter.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":78416,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"159:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78419,"nodeType":"ImportDirective","src":"190:46:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"./libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":80983,"symbolAliases":[{"foreign":{"id":78418,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80982,"src":"198:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78421,"nodeType":"ImportDirective","src":"237:56:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"./libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":81064,"symbolAliases":[{"foreign":{"id":78420,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81063,"src":"245:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78423,"nodeType":"ImportDirective","src":"294:42:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"./libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":82249,"symbolAliases":[{"foreign":{"id":78422,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"302:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78425,"nodeType":"ImportDirective","src":"337:48:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"./libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":82671,"symbolAliases":[{"foreign":{"id":78424,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82670,"src":"345:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78427,"nodeType":"ImportDirective","src":"386:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":78426,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"394:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78429,"nodeType":"ImportDirective","src":"488:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":43183,"symbolAliases":[{"foreign":{"id":78428,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"496:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78431,"nodeType":"ImportDirective","src":"591:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":78430,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"604:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78433,"nodeType":"ImportDirective","src":"732:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":78432,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"740:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78435,"nodeType":"ImportDirective","src":"821:70:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":46161,"symbolAliases":[{"foreign":{"id":78434,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46160,"src":"829:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78437,"nodeType":"ImportDirective","src":"892:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":78436,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"900:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78439,"nodeType":"ImportDirective","src":"973:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":78438,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"981:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78441,"nodeType":"ImportDirective","src":"1048:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":40290,"symbolAliases":[{"foreign":{"id":78440,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"1056:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78443,"nodeType":"ImportDirective","src":"1101:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":40582,"symbolAliases":[{"foreign":{"id":78442,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"1109:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78445,"nodeType":"ImportDirective","src":"1162:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":80596,"sourceUnit":40808,"symbolAliases":[{"foreign":{"id":78444,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"1170:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80595,"nodeType":"ContractDefinition","src":"1237:23810:165","nodes":[{"id":78458,"nodeType":"VariableDeclaration","src":"1487:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1512:12:165","scope":80595,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1487:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":78457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1527:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":78461,"nodeType":"VariableDeclaration","src":"1706:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"1731:17:165","scope":80595,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78459,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1706:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":78460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1751:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":78469,"nodeType":"FunctionDefinition","src":"1877:53:165","nodes":[],"body":{"id":78468,"nodeType":"Block","src":"1891:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78465,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"1901:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78467,"nodeType":"ExpressionStatement","src":"1901:22:165"}]},"documentation":{"id":78462,"nodeType":"StructuredDocumentation","src":"1824:48:165","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78463,"nodeType":"ParameterList","parameters":[],"src":"1888:2:165"},"returnParameters":{"id":78464,"nodeType":"ParameterList","parameters":[],"src":"1891:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78622,"nodeType":"FunctionDefinition","src":"1936:1930:165","nodes":[],"body":{"id":78621,"nodeType":"Block","src":"2351:1515:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":78497,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78471,"src":"2376:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78496,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2361:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2361:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78499,"nodeType":"ExpressionStatement","src":"2361:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78500,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43086,"src":"2393:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2393:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78502,"nodeType":"ExpressionStatement","src":"2393:17:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78503,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"2420:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2420:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78505,"nodeType":"ExpressionStatement","src":"2420:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78507,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2578:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":78508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2584:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"2578:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2596:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2578:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78511,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73789,"src":"2599:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2599:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78506,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2570:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2570:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78514,"nodeType":"ExpressionStatement","src":"2570:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78516,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"2636:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2656:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2636:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78519,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"2659:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2659:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2628:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2628:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78522,"nodeType":"ExpressionStatement","src":"2628:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78524,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78479,"src":"2703:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":78525,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"2718:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2703:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78527,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"2737:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78523,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2695:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2695:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78530,"nodeType":"ExpressionStatement","src":"2695:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78532,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78483,"src":"2928:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78533,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78479,"src":"2948:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78534,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"2963:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2948:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78536,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2947:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":78537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2984:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"2947:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2928:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78540,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"2988:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2988:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78531,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2920:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2920:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78543,"nodeType":"ExpressionStatement","src":"2920:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":78545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3039:25:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":78544,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80536,"src":"3023:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3023:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78547,"nodeType":"ExpressionStatement","src":"3023:42:165"},{"assignments":[78550],"declarations":[{"constant":false,"id":78550,"mutability":"mutable","name":"router","nameLocation":"3091:6:165","nodeType":"VariableDeclaration","scope":78621,"src":"3075:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78549,"nodeType":"UserDefinedTypeName","pathNode":{"id":78548,"name":"Storage","nameLocations":["3075:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"3075:7:165"},"referencedDeclaration":73741,"src":"3075:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78553,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78551,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"3100:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3100:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3075:34:165"},{"expression":{"id":78560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78554,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3120:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3127:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"3120:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78557,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"3142:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78558,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3147:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":81677,"src":"3142:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$81260_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":78559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3142:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"3120:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78561,"nodeType":"ExpressionStatement","src":"3120:39:165"},{"expression":{"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78562,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3169:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3176:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"3169:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78567,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78473,"src":"3209:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78568,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78475,"src":"3218:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78569,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78477,"src":"3232:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78565,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"3192:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3197:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":81153,"src":"3192:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$81153_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":78570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3192:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"3169:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78572,"nodeType":"ExpressionStatement","src":"3169:75:165"},{"expression":{"id":78580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3254:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3261:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3254:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3280:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":81324,"src":"3254:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78578,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"3301:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3306:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":81095,"src":"3301:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3254:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78581,"nodeType":"ExpressionStatement","src":"3254:82:165"},{"expression":{"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78582,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3346:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3353:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3346:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3372:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":81326,"src":"3346:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78587,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"3395:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78588,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3400:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":81098,"src":"3395:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3346:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78590,"nodeType":"ExpressionStatement","src":"3346:86:165"},{"expression":{"id":78597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78591,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3442:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3449:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"3442:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78594,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"3467:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3472:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":81653,"src":"3467:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$81253_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":78596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"3442:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":78598,"nodeType":"ExpressionStatement","src":"3442:58:165"},{"expression":{"id":78608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78599,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3510:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3517:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"3510:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78604,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78479,"src":"3544:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78605,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78481,"src":"3558:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78606,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78483,"src":"3577:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78602,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"3529:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3534:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":81322,"src":"3529:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$81322_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":78607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3529:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"3510:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"id":78609,"nodeType":"ExpressionStatement","src":"3510:84:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":78611,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78550,"src":"3676:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3683:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3676:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3702:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":81329,"src":"3676:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage","typeString":"struct Gear.Validators storage ref"}},{"id":78614,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78486,"src":"3727:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":78615,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78488,"src":"3761:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":78616,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78491,"src":"3809:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":78617,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3834:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":78618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3840:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"3834:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$81135_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78610,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80483,"src":"3646:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$81135_storage_ptr_$_t_struct$_AggregatedPublicKey_$81120_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":78619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3646:213:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78620,"nodeType":"ExpressionStatement","src":"3646:213:165"}]},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":78494,"kind":"modifierInvocation","modifierName":{"id":78493,"name":"initializer","nameLocations":["2339:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"2339:11:165"},"nodeType":"ModifierInvocation","src":"2339:11:165"}],"name":"initialize","nameLocation":"1945:10:165","parameters":{"id":78492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78471,"mutability":"mutable","name":"_owner","nameLocation":"1973:6:165","nodeType":"VariableDeclaration","scope":78622,"src":"1965:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78470,"name":"address","nodeType":"ElementaryTypeName","src":"1965:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78473,"mutability":"mutable","name":"_mirror","nameLocation":"1997:7:165","nodeType":"VariableDeclaration","scope":78622,"src":"1989:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78472,"name":"address","nodeType":"ElementaryTypeName","src":"1989:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78475,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2022:12:165","nodeType":"VariableDeclaration","scope":78622,"src":"2014:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78474,"name":"address","nodeType":"ElementaryTypeName","src":"2014:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78477,"mutability":"mutable","name":"_middleware","nameLocation":"2052:11:165","nodeType":"VariableDeclaration","scope":78622,"src":"2044:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78476,"name":"address","nodeType":"ElementaryTypeName","src":"2044:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78479,"mutability":"mutable","name":"_eraDuration","nameLocation":"2081:12:165","nodeType":"VariableDeclaration","scope":78622,"src":"2073:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78478,"name":"uint256","nodeType":"ElementaryTypeName","src":"2073:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78481,"mutability":"mutable","name":"_electionDuration","nameLocation":"2111:17:165","nodeType":"VariableDeclaration","scope":78622,"src":"2103:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78480,"name":"uint256","nodeType":"ElementaryTypeName","src":"2103:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78483,"mutability":"mutable","name":"_validationDelay","nameLocation":"2146:16:165","nodeType":"VariableDeclaration","scope":78622,"src":"2138:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78482,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78486,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"2206:20:165","nodeType":"VariableDeclaration","scope":78622,"src":"2172:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":78485,"nodeType":"UserDefinedTypeName","pathNode":{"id":78484,"name":"Gear.AggregatedPublicKey","nameLocations":["2172:4:165","2177:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":81120,"src":"2172:24:165"},"referencedDeclaration":81120,"src":"2172:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":78488,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"2251:34:165","nodeType":"VariableDeclaration","scope":78622,"src":"2236:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78487,"name":"bytes","nodeType":"ElementaryTypeName","src":"2236:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":78491,"mutability":"mutable","name":"_validators","nameLocation":"2314:11:165","nodeType":"VariableDeclaration","scope":78622,"src":"2295:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78489,"name":"address","nodeType":"ElementaryTypeName","src":"2295:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78490,"nodeType":"ArrayTypeName","src":"2295:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1955:376:165"},"returnParameters":{"id":78495,"nodeType":"ParameterList","parameters":[],"src":"2351:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78728,"nodeType":"FunctionDefinition","src":"3924:1720:165","nodes":[],"body":{"id":78727,"nodeType":"Block","src":"3982:1662:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78632,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"4007:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4007:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78631,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"3992:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3992:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78635,"nodeType":"ExpressionStatement","src":"3992:23:165"},{"assignments":[78638],"declarations":[{"constant":false,"id":78638,"mutability":"mutable","name":"oldRouter","nameLocation":"4042:9:165","nodeType":"VariableDeclaration","scope":78727,"src":"4026:25:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78637,"nodeType":"UserDefinedTypeName","pathNode":{"id":78636,"name":"Storage","nameLocations":["4026:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"4026:7:165"},"referencedDeclaration":73741,"src":"4026:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78641,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78639,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"4054:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4054:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4026:37:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":78643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4090:25:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":78642,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80536,"src":"4074:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4074:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78645,"nodeType":"ExpressionStatement","src":"4074:42:165"},{"assignments":[78648],"declarations":[{"constant":false,"id":78648,"mutability":"mutable","name":"newRouter","nameLocation":"4142:9:165","nodeType":"VariableDeclaration","scope":78727,"src":"4126:25:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78647,"nodeType":"UserDefinedTypeName","pathNode":{"id":78646,"name":"Storage","nameLocations":["4126:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"4126:7:165"},"referencedDeclaration":73741,"src":"4126:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78651,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78649,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"4154:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4154:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4126:37:165"},{"expression":{"id":78658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78652,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"4215:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4225:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"4215:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78655,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"4240:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4245:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":81677,"src":"4240:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$81260_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":78657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4240:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"4215:42:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78659,"nodeType":"ExpressionStatement","src":"4215:42:165"},{"expression":{"id":78665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78660,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"4383:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4393:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"4383:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78663,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"4409:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4419:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"4409:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"src":"4383:49:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78666,"nodeType":"ExpressionStatement","src":"4383:49:165"},{"expression":{"id":78675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78667,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"4507:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4517:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4507:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4536:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":81324,"src":"4507:47:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":78672,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"4557:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4567:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4557:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4586:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":81324,"src":"4557:47:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4507:97:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78676,"nodeType":"ExpressionStatement","src":"4507:97:165"},{"expression":{"id":78685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78677,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"4614:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4624:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4614:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4643:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":81326,"src":"4614:49:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":78682,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"4666:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4676:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4666:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78684,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4695:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":81326,"src":"4666:49:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4614:101:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78686,"nodeType":"ExpressionStatement","src":"4614:101:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":78688,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"5025:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78689,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5035:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"5025:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5054:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":81329,"src":"5025:40:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage","typeString":"struct Gear.Validators storage ref"}},{"expression":{"arguments":[{"id":78693,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"5105:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78691,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"5079:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5084:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"5079:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5079:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78695,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5116:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":81123,"src":"5079:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"arguments":[{"expression":{"arguments":[{"id":78700,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"5188:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78698,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"5162:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5167:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"5162:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5162:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5199:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":81125,"src":"5162:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78696,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82670,"src":"5149:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$82670_$","typeString":"type(library SSTORE2)"}},"id":78697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5157:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":82594,"src":"5149:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":78703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5149:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"arguments":[{"id":78706,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"5280:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78704,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"5254:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5259:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"5254:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5254:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5291:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"5254:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":78709,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5309:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":78710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5315:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"5309:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$81135_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78687,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80483,"src":"4995:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$81135_storage_ptr_$_t_struct$_AggregatedPublicKey_$81120_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4995:339:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78712,"nodeType":"ExpressionStatement","src":"4995:339:165"},{"expression":{"id":78718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78713,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"5403:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5413:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"5403:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78716,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"5431:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5441:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"5431:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"src":"5403:53:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":78719,"nodeType":"ExpressionStatement","src":"5403:53:165"},{"expression":{"id":78725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78720,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78648,"src":"5514:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5524:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"5514:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78723,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78638,"src":"5536:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5546:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"5536:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"src":"5514:41:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"id":78726,"nodeType":"ExpressionStatement","src":"5514:41:165"}]},"documentation":{"id":78623,"nodeType":"StructuredDocumentation","src":"3872:47:165","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78626,"kind":"modifierInvocation","modifierName":{"id":78625,"name":"onlyOwner","nameLocations":["3955:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"3955:9:165"},"nodeType":"ModifierInvocation","src":"3955:9:165"},{"arguments":[{"hexValue":"32","id":78628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3979:1:165","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78629,"kind":"modifierInvocation","modifierName":{"id":78627,"name":"reinitializer","nameLocations":["3965:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"3965:13:165"},"nodeType":"ModifierInvocation","src":"3965:16:165"}],"name":"reinitialize","nameLocation":"3933:12:165","parameters":{"id":78624,"nodeType":"ParameterList","parameters":[],"src":"3945:2:165"},"returnParameters":{"id":78630,"nodeType":"ParameterList","parameters":[],"src":"3982:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78738,"nodeType":"FunctionDefinition","src":"5809:84:165","nodes":[],"body":{"id":78737,"nodeType":"Block","src":"5891:2:165","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":78729,"nodeType":"StructuredDocumentation","src":"5650:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78735,"kind":"modifierInvocation","modifierName":{"id":78734,"name":"onlyOwner","nameLocations":["5881:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"5881:9:165"},"nodeType":"ModifierInvocation","src":"5881:9:165"}],"name":"_authorizeUpgrade","nameLocation":"5818:17:165","overrides":{"id":78733,"nodeType":"OverrideSpecifier","overrides":[],"src":"5872:8:165"},"parameters":{"id":78732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78731,"mutability":"mutable","name":"newImplementation","nameLocation":"5844:17:165","nodeType":"VariableDeclaration","scope":78738,"src":"5836:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78730,"name":"address","nodeType":"ElementaryTypeName","src":"5836:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5835:27:165"},"returnParameters":{"id":78736,"nodeType":"ParameterList","parameters":[],"src":"5891:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78783,"nodeType":"FunctionDefinition","src":"5979:700:165","nodes":[],"body":{"id":78782,"nodeType":"Block","src":"6043:636:165","nodes":[],"statements":[{"assignments":[78747],"declarations":[{"constant":false,"id":78747,"mutability":"mutable","name":"router","nameLocation":"6069:6:165","nodeType":"VariableDeclaration","scope":78782,"src":"6053:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78746,"nodeType":"UserDefinedTypeName","pathNode":{"id":78745,"name":"Storage","nameLocations":["6053:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"6053:7:165"},"referencedDeclaration":73741,"src":"6053:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78750,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78748,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"6078:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6078:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6053:34:165"},{"assignments":[78755],"declarations":[{"constant":false,"id":78755,"mutability":"mutable","name":"validationSettings","nameLocation":"6132:18:165","nodeType":"VariableDeclaration","scope":78782,"src":"6097:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$81344_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":78754,"nodeType":"UserDefinedTypeName","pathNode":{"id":78753,"name":"Gear.ValidationSettingsView","nameLocations":["6097:4:165","6102:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":81344,"src":"6097:27:165"},"referencedDeclaration":81344,"src":"6097:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$81344_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":78761,"initialValue":{"arguments":[{"expression":{"id":78758,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6165:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6172:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"6165:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":78756,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"6153:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6158:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":82247,"src":"6153:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$81333_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$81344_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":78760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6153:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$81344_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"6097:94:165"},{"expression":{"arguments":[{"expression":{"id":78763,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6248:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6255:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6248:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":78765,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6303:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6310:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"6303:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":78767,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6359:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78768,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6366:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"6359:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":78769,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78755,"src":"6413:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$81344_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":78770,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6462:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78771,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6469:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"6462:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":78772,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6509:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78773,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6516:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"6509:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":78774,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6554:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6561:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"6554:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":78776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6574:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":81285,"src":"6554:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":78777,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78747,"src":"6622:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6629:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"6622:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":78779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6642:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":81287,"src":"6622:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$81344_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78762,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"6208:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$73708_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":78780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6234:12:165","6281:20:165","6344:13:165","6393:18:165","6445:15:165","6498:9:165","6539:13:165","6601:19:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount"],"nodeType":"FunctionCall","src":"6208:464:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":78744,"id":78781,"nodeType":"Return","src":"6201:471:165"}]},"documentation":{"id":78739,"nodeType":"StructuredDocumentation","src":"5916:58:165","text":"@dev Returns the storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"5988:11:165","parameters":{"id":78740,"nodeType":"ParameterList","parameters":[],"src":"5999:2:165"},"returnParameters":{"id":78744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78743,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78783,"src":"6023:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":78742,"nodeType":"UserDefinedTypeName","pathNode":{"id":78741,"name":"StorageView","nameLocations":["6023:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":73708,"src":"6023:11:165"},"referencedDeclaration":73708,"src":"6023:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"6022:20:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78794,"nodeType":"FunctionDefinition","src":"6685:109:165","nodes":[],"body":{"id":78793,"nodeType":"Block","src":"6743:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78788,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"6760:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6760:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78790,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6770:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6760:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6783:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"6760:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78787,"id":78792,"nodeType":"Return","src":"6753:34:165"}]},"baseFunctions":[73852],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"6694:16:165","parameters":{"id":78784,"nodeType":"ParameterList","parameters":[],"src":"6710:2:165"},"returnParameters":{"id":78787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78786,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78794,"src":"6734:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6734:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6733:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78805,"nodeType":"FunctionDefinition","src":"6800:113:165","nodes":[],"body":{"id":78804,"nodeType":"Block","src":"6857:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78799,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"6874:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6884:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6874:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6897:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81259,"src":"6874:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78798,"id":78803,"nodeType":"Return","src":"6867:39:165"}]},"baseFunctions":[73857],"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"6809:16:165","parameters":{"id":78795,"nodeType":"ParameterList","parameters":[],"src":"6825:2:165"},"returnParameters":{"id":78798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78805,"src":"6849:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78796,"name":"uint48","nodeType":"ElementaryTypeName","src":"6849:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"6848:8:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78816,"nodeType":"FunctionDefinition","src":"6919:125:165","nodes":[],"body":{"id":78815,"nodeType":"Block","src":"6985:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78810,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7002:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7012:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"7002:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":78813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7033:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81245,"src":"7002:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78809,"id":78814,"nodeType":"Return","src":"6995:42:165"}]},"baseFunctions":[73862],"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"6928:24:165","parameters":{"id":78806,"nodeType":"ParameterList","parameters":[],"src":"6952:2:165"},"returnParameters":{"id":78809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78816,"src":"6976:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78807,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6976:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6975:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78827,"nodeType":"FunctionDefinition","src":"7050:134:165","nodes":[],"body":{"id":78826,"nodeType":"Block","src":"7120:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78821,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7137:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7137:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7147:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"7137:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":78824,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7168:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81247,"src":"7137:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78820,"id":78825,"nodeType":"Return","src":"7130:47:165"}]},"baseFunctions":[73867],"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"7059:29:165","parameters":{"id":78817,"nodeType":"ParameterList","parameters":[],"src":"7088:2:165"},"returnParameters":{"id":78820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78819,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78827,"src":"7112:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78818,"name":"uint48","nodeType":"ElementaryTypeName","src":"7112:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7111:8:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78838,"nodeType":"FunctionDefinition","src":"7190:106:165","nodes":[],"body":{"id":78837,"nodeType":"Block","src":"7242:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78832,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7259:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7259:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7269:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7259:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7283:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":81148,"src":"7259:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78831,"id":78836,"nodeType":"Return","src":"7252:37:165"}]},"baseFunctions":[73872],"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"7199:10:165","parameters":{"id":78828,"nodeType":"ParameterList","parameters":[],"src":"7209:2:165"},"returnParameters":{"id":78831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78830,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78838,"src":"7233:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78829,"name":"address","nodeType":"ElementaryTypeName","src":"7233:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7232:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78849,"nodeType":"FunctionDefinition","src":"7302:112:165","nodes":[],"body":{"id":78848,"nodeType":"Block","src":"7355:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78843,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7372:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7372:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7382:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7372:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7396:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":81150,"src":"7372:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78842,"id":78847,"nodeType":"Return","src":"7365:42:165"}]},"baseFunctions":[73877],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"7311:11:165","parameters":{"id":78839,"nodeType":"ParameterList","parameters":[],"src":"7322:2:165"},"returnParameters":{"id":78842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78849,"src":"7346:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78840,"name":"address","nodeType":"ElementaryTypeName","src":"7346:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7345:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78860,"nodeType":"FunctionDefinition","src":"7420:110:165","nodes":[],"body":{"id":78859,"nodeType":"Block","src":"7472:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78854,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7489:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7489:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78856,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7499:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7489:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7513:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":81152,"src":"7489:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78853,"id":78858,"nodeType":"Return","src":"7482:41:165"}]},"baseFunctions":[73882],"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"7429:10:165","parameters":{"id":78850,"nodeType":"ParameterList","parameters":[],"src":"7439:2:165"},"returnParameters":{"id":78853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78852,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78860,"src":"7463:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78851,"name":"address","nodeType":"ElementaryTypeName","src":"7463:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7462:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78874,"nodeType":"FunctionDefinition","src":"7536:175:165","nodes":[],"body":{"id":78873,"nodeType":"Block","src":"7631:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78868,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7674:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7674:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78866,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"7648:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7653:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"7648:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7648:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7685:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":81123,"src":"7648:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":78865,"id":78872,"nodeType":"Return","src":"7641:63:165"}]},"baseFunctions":[73888],"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"7545:29:165","parameters":{"id":78861,"nodeType":"ParameterList","parameters":[],"src":"7574:2:165"},"returnParameters":{"id":78865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78874,"src":"7598:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":78863,"nodeType":"UserDefinedTypeName","pathNode":{"id":78862,"name":"Gear.AggregatedPublicKey","nameLocations":["7598:4:165","7603:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":81120,"src":"7598:24:165"},"referencedDeclaration":81120,"src":"7598:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"7597:33:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78890,"nodeType":"FunctionDefinition","src":"7717:207:165","nodes":[],"body":{"id":78889,"nodeType":"Block","src":"7809:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78883,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"7865:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7865:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78881,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"7839:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7844:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"7839:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7839:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7876:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":81125,"src":"7839:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78879,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82670,"src":"7826:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$82670_$","typeString":"type(library SSTORE2)"}},"id":78880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7834:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":82594,"src":"7826:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":78887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7826:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":78878,"id":78888,"nodeType":"Return","src":"7819:98:165"}]},"baseFunctions":[73893],"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"7726:43:165","parameters":{"id":78875,"nodeType":"ParameterList","parameters":[],"src":"7769:2:165"},"returnParameters":{"id":78878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78877,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78890,"src":"7795:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78876,"name":"bytes","nodeType":"ElementaryTypeName","src":"7795:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7794:14:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78936,"nodeType":"FunctionDefinition","src":"7930:375:165","nodes":[],"body":{"id":78935,"nodeType":"Block","src":"8012:293:165","nodes":[],"statements":[{"assignments":[78902],"declarations":[{"constant":false,"id":78902,"mutability":"mutable","name":"_currentValidators","nameLocation":"8046:18:165","nodeType":"VariableDeclaration","scope":78935,"src":"8022:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":78901,"nodeType":"UserDefinedTypeName","pathNode":{"id":78900,"name":"Gear.Validators","nameLocations":["8022:4:165","8027:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":81135,"src":"8022:15:165"},"referencedDeclaration":81135,"src":"8022:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":78908,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78905,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"8093:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8093:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78903,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"8067:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8072:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"8067:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8067:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8022:81:165"},{"body":{"id":78931,"nodeType":"Block","src":"8163:114:165","statements":[{"condition":{"id":78926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8181:39:165","subExpression":{"baseExpression":{"expression":{"id":78920,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78902,"src":"8182:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8201:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":81129,"src":"8182:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78925,"indexExpression":{"baseExpression":{"id":78922,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78893,"src":"8205:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":78924,"indexExpression":{"id":78923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78910,"src":"8217:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8205:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8182:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78930,"nodeType":"IfStatement","src":"8177:90:165","trueBody":{"id":78929,"nodeType":"Block","src":"8222:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":78927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8247:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78897,"id":78928,"nodeType":"Return","src":"8240:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78913,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78910,"src":"8134:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78914,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78893,"src":"8138:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":78915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8150:6:165","memberName":"length","nodeType":"MemberAccess","src":"8138:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8134:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78932,"initializationExpression":{"assignments":[78910],"declarations":[{"constant":false,"id":78910,"mutability":"mutable","name":"i","nameLocation":"8127:1:165","nodeType":"VariableDeclaration","scope":78932,"src":"8119:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78909,"name":"uint256","nodeType":"ElementaryTypeName","src":"8119:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78912,"initialValue":{"hexValue":"30","id":78911,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8131:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8119:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8158:3:165","subExpression":{"id":78917,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78910,"src":"8158:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78919,"nodeType":"ExpressionStatement","src":"8158:3:165"},"nodeType":"ForStatement","src":"8114:163:165"},{"expression":{"hexValue":"74727565","id":78933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8294:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78897,"id":78934,"nodeType":"Return","src":"8287:11:165"}]},"baseFunctions":[73901],"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"7939:13:165","parameters":{"id":78894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78893,"mutability":"mutable","name":"_validators","nameLocation":"7972:11:165","nodeType":"VariableDeclaration","scope":78936,"src":"7953:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78891,"name":"address","nodeType":"ElementaryTypeName","src":"7953:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78892,"nodeType":"ArrayTypeName","src":"7953:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"7952:32:165"},"returnParameters":{"id":78897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78896,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78936,"src":"8006:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78895,"name":"bool","nodeType":"ElementaryTypeName","src":"8006:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8005:6:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78953,"nodeType":"FunctionDefinition","src":"8311:144:165","nodes":[],"body":{"id":78952,"nodeType":"Block","src":"8379:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78945,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"8422:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8422:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78943,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"8396:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8401:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"8396:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8396:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78948,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8433:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":81129,"src":"8396:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78950,"indexExpression":{"id":78949,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78938,"src":"8437:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8396:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78942,"id":78951,"nodeType":"Return","src":"8389:59:165"}]},"baseFunctions":[73908],"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"8320:11:165","parameters":{"id":78939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78938,"mutability":"mutable","name":"_validator","nameLocation":"8340:10:165","nodeType":"VariableDeclaration","scope":78953,"src":"8332:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78937,"name":"address","nodeType":"ElementaryTypeName","src":"8332:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8331:20:165"},"returnParameters":{"id":78942,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78941,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78953,"src":"8373:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78940,"name":"bool","nodeType":"ElementaryTypeName","src":"8373:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8372:6:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78977,"nodeType":"FunctionDefinition","src":"8461:245:165","nodes":[],"body":{"id":78976,"nodeType":"Block","src":"8536:170:165","nodes":[],"statements":[{"assignments":[78964],"declarations":[{"constant":false,"id":78964,"mutability":"mutable","name":"router","nameLocation":"8570:6:165","nodeType":"VariableDeclaration","scope":78976,"src":"8546:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78963,"nodeType":"UserDefinedTypeName","pathNode":{"id":78962,"name":"IRouter.Storage","nameLocations":["8546:7:165","8554:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"8546:15:165"},"referencedDeclaration":73741,"src":"8546:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78967,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78965,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"8579:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8579:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8546:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":78968,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78964,"src":"8606:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8613:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"8606:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8632:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":81324,"src":"8606:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":78971,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78964,"src":"8652:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8659:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"8652:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8678:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":81326,"src":"8652:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":78974,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8605:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":78959,"id":78975,"nodeType":"Return","src":"8598:101:165"}]},"baseFunctions":[73915],"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"8470:24:165","parameters":{"id":78954,"nodeType":"ParameterList","parameters":[],"src":"8494:2:165"},"returnParameters":{"id":78959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78956,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78977,"src":"8518:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78955,"name":"uint128","nodeType":"ElementaryTypeName","src":"8518:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":78958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78977,"src":"8527:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":78957,"name":"uint128","nodeType":"ElementaryTypeName","src":"8527:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8517:18:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78991,"nodeType":"FunctionDefinition","src":"8712:126:165","nodes":[],"body":{"id":78990,"nodeType":"Block","src":"8773:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78985,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"8816:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8816:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78983,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"8790:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8795:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"8790:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8790:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8827:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"8790:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":78982,"id":78989,"nodeType":"Return","src":"8783:48:165"}]},"baseFunctions":[73921],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"8721:10:165","parameters":{"id":78978,"nodeType":"ParameterList","parameters":[],"src":"8731:2:165"},"returnParameters":{"id":78982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78981,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78991,"src":"8755:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78979,"name":"address","nodeType":"ElementaryTypeName","src":"8755:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78980,"nodeType":"ArrayTypeName","src":"8755:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8754:18:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79005,"nodeType":"FunctionDefinition","src":"8844:129:165","nodes":[],"body":{"id":79004,"nodeType":"Block","src":"8901:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78998,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"8944:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8944:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78996,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"8918:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":78997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8923:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"8918:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8918:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79001,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8955:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"8918:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8960:6:165","memberName":"length","nodeType":"MemberAccess","src":"8918:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78995,"id":79003,"nodeType":"Return","src":"8911:55:165"}]},"baseFunctions":[73926],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"8853:15:165","parameters":{"id":78992,"nodeType":"ParameterList","parameters":[],"src":"8868:2:165"},"returnParameters":{"id":78995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79005,"src":"8892:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78993,"name":"uint256","nodeType":"ElementaryTypeName","src":"8892:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8891:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79035,"nodeType":"FunctionDefinition","src":"8979:348:165","nodes":[],"body":{"id":79034,"nodeType":"Block","src":"9040:287:165","nodes":[],"statements":[{"assignments":[79014],"declarations":[{"constant":false,"id":79014,"mutability":"mutable","name":"router","nameLocation":"9074:6:165","nodeType":"VariableDeclaration","scope":79034,"src":"9050:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79013,"nodeType":"UserDefinedTypeName","pathNode":{"id":79012,"name":"IRouter.Storage","nameLocations":["9050:7:165","9058:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"9050:15:165"},"referencedDeclaration":73741,"src":"9050:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79017,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79015,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"9083:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9083:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9050:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79022,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79014,"src":"9173:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79020,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"9147:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9152:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":81972,"src":"9147:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9147:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9181:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"9147:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9186:6:165","memberName":"length","nodeType":"MemberAccess","src":"9147:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79026,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79014,"src":"9206:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9213:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"9206:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9232:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":81324,"src":"9206:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":79029,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79014,"src":"9264:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9271:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"9264:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$81333_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9290:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":81326,"src":"9264:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":79018,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"9109:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9114:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":82139,"src":"9109:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":79032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9109:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79009,"id":79033,"nodeType":"Return","src":"9102:218:165"}]},"baseFunctions":[73931],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"8988:19:165","parameters":{"id":79006,"nodeType":"ParameterList","parameters":[],"src":"9007:2:165"},"returnParameters":{"id":79009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79035,"src":"9031:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79007,"name":"uint256","nodeType":"ElementaryTypeName","src":"9031:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9030:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79048,"nodeType":"FunctionDefinition","src":"9333:122:165","nodes":[],"body":{"id":79047,"nodeType":"Block","src":"9417:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79043,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9434:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$80595_$","typeString":"type(contract super Router)"}},"id":79044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9440:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43108,"src":"9434:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":79045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9434:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79042,"id":79046,"nodeType":"Return","src":"9427:21:165"}]},"baseFunctions":[43108,73936],"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"9342:6:165","overrides":{"id":79039,"nodeType":"OverrideSpecifier","overrides":[{"id":79037,"name":"IRouter","nameLocations":["9372:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"9372:7:165"},{"id":79038,"name":"PausableUpgradeable","nameLocations":["9381:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43182,"src":"9381:19:165"}],"src":"9363:38:165"},"parameters":{"id":79036,"nodeType":"ParameterList","parameters":[],"src":"9348:2:165"},"returnParameters":{"id":79042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79041,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79048,"src":"9411:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79040,"name":"bool","nodeType":"ElementaryTypeName","src":"9411:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9410:6:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79059,"nodeType":"FunctionDefinition","src":"9461:130:165","nodes":[],"body":{"id":79058,"nodeType":"Block","src":"9542:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79054,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"9559:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9559:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9569:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"9559:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":79053,"id":79057,"nodeType":"Return","src":"9552:32:165"}]},"baseFunctions":[73942],"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"9470:15:165","parameters":{"id":79049,"nodeType":"ParameterList","parameters":[],"src":"9485:2:165"},"returnParameters":{"id":79053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79059,"src":"9509:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":79051,"nodeType":"UserDefinedTypeName","pathNode":{"id":79050,"name":"Gear.ComputationSettings","nameLocations":["9509:4:165","9514:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":81253,"src":"9509:24:165"},"referencedDeclaration":81253,"src":"9509:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$81253_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"9508:33:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79075,"nodeType":"FunctionDefinition","src":"9597:134:165","nodes":[],"body":{"id":79074,"nodeType":"Block","src":"9670:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79067,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"9687:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9687:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79069,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9697:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"9687:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9710:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"9687:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79072,"indexExpression":{"id":79071,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79061,"src":"9716:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9687:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"functionReturnParameters":79066,"id":79073,"nodeType":"Return","src":"9680:44:165"}]},"baseFunctions":[73950],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"9606:9:165","parameters":{"id":79062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79061,"mutability":"mutable","name":"_codeId","nameLocation":"9624:7:165","nodeType":"VariableDeclaration","scope":79075,"src":"9616:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79060,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9616:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9615:17:165"},"returnParameters":{"id":79066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79065,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79075,"src":"9654:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"},"typeName":{"id":79064,"nodeType":"UserDefinedTypeName","pathNode":{"id":79063,"name":"Gear.CodeState","nameLocations":["9654:4:165","9659:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":81243,"src":"9654:14:165"},"referencedDeclaration":81243,"src":"9654:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"9653:16:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79133,"nodeType":"FunctionDefinition","src":"9737:378:165","nodes":[],"body":{"id":79132,"nodeType":"Block","src":"9834:281:165","nodes":[],"statements":[{"assignments":[79087],"declarations":[{"constant":false,"id":79087,"mutability":"mutable","name":"router","nameLocation":"9860:6:165","nodeType":"VariableDeclaration","scope":79132,"src":"9844:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79086,"nodeType":"UserDefinedTypeName","pathNode":{"id":79085,"name":"Storage","nameLocations":["9844:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"9844:7:165"},"referencedDeclaration":73741,"src":"9844:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79090,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79088,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"9869:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9869:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9844:34:165"},{"assignments":[79096],"declarations":[{"constant":false,"id":79096,"mutability":"mutable","name":"res","nameLocation":"9913:3:165","nodeType":"VariableDeclaration","scope":79132,"src":"9889:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":79094,"nodeType":"UserDefinedTypeName","pathNode":{"id":79093,"name":"Gear.CodeState","nameLocations":["9889:4:165","9894:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":81243,"src":"9889:14:165"},"referencedDeclaration":81243,"src":"9889:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"id":79095,"nodeType":"ArrayTypeName","src":"9889:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":79104,"initialValue":{"arguments":[{"expression":{"id":79101,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79078,"src":"9940:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":79102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9950:6:165","memberName":"length","nodeType":"MemberAccess","src":"9940:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9919:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$81243_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":79098,"nodeType":"UserDefinedTypeName","pathNode":{"id":79097,"name":"Gear.CodeState","nameLocations":["9923:4:165","9928:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":81243,"src":"9923:14:165"},"referencedDeclaration":81243,"src":"9923:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"id":79099,"nodeType":"ArrayTypeName","src":"9923:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":79103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9919:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9889:68:165"},{"body":{"id":79128,"nodeType":"Block","src":"10015:73:165","statements":[{"expression":{"id":79126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79116,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79096,"src":"10029:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":79118,"indexExpression":{"id":79117,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79106,"src":"10033:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10029:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":79119,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79087,"src":"10038:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10045:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10038:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10058:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"10038:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79125,"indexExpression":{"baseExpression":{"id":79122,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79078,"src":"10064:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":79124,"indexExpression":{"id":79123,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79106,"src":"10074:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10064:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10038:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"src":"10029:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"id":79127,"nodeType":"ExpressionStatement","src":"10029:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79109,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79106,"src":"9988:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79110,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79078,"src":"9992:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":79111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10002:6:165","memberName":"length","nodeType":"MemberAccess","src":"9992:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9988:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79129,"initializationExpression":{"assignments":[79106],"declarations":[{"constant":false,"id":79106,"mutability":"mutable","name":"i","nameLocation":"9981:1:165","nodeType":"VariableDeclaration","scope":79129,"src":"9973:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79105,"name":"uint256","nodeType":"ElementaryTypeName","src":"9973:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79108,"initialValue":{"hexValue":"30","id":79107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9985:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9973:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10010:3:165","subExpression":{"id":79113,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79106,"src":"10010:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79115,"nodeType":"ExpressionStatement","src":"10010:3:165"},"nodeType":"ForStatement","src":"9968:120:165"},{"expression":{"id":79130,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79096,"src":"10105:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":79084,"id":79131,"nodeType":"Return","src":"10098:10:165"}]},"baseFunctions":[73960],"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"9746:11:165","parameters":{"id":79079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79078,"mutability":"mutable","name":"_codesIds","nameLocation":"9777:9:165","nodeType":"VariableDeclaration","scope":79133,"src":"9758:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9758:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79077,"nodeType":"ArrayTypeName","src":"9758:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9757:30:165"},"returnParameters":{"id":79084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79083,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79133,"src":"9809:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":79081,"nodeType":"UserDefinedTypeName","pathNode":{"id":79080,"name":"Gear.CodeState","nameLocations":["9809:4:165","9814:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":81243,"src":"9809:14:165"},"referencedDeclaration":81243,"src":"9809:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"id":79082,"nodeType":"ArrayTypeName","src":"9809:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$81243_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"9808:25:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79148,"nodeType":"FunctionDefinition","src":"10121:140:165","nodes":[],"body":{"id":79147,"nodeType":"Block","src":"10194:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79140,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"10211:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10211:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79142,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10221:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10211:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10234:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":81283,"src":"10211:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":79145,"indexExpression":{"id":79144,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79135,"src":"10243:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10211:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79139,"id":79146,"nodeType":"Return","src":"10204:50:165"}]},"baseFunctions":[73967],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"10130:13:165","parameters":{"id":79136,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79135,"mutability":"mutable","name":"_programId","nameLocation":"10152:10:165","nodeType":"VariableDeclaration","scope":79148,"src":"10144:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79134,"name":"address","nodeType":"ElementaryTypeName","src":"10144:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10143:20:165"},"returnParameters":{"id":79139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79138,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79148,"src":"10185:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10185:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10184:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79203,"nodeType":"FunctionDefinition","src":"10267:376:165","nodes":[],"body":{"id":79202,"nodeType":"Block","src":"10364:279:165","nodes":[],"statements":[{"assignments":[79159],"declarations":[{"constant":false,"id":79159,"mutability":"mutable","name":"router","nameLocation":"10390:6:165","nodeType":"VariableDeclaration","scope":79202,"src":"10374:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79158,"nodeType":"UserDefinedTypeName","pathNode":{"id":79157,"name":"Storage","nameLocations":["10374:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"10374:7:165"},"referencedDeclaration":73741,"src":"10374:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79162,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79160,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"10399:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10399:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10374:34:165"},{"assignments":[79167],"declarations":[{"constant":false,"id":79167,"mutability":"mutable","name":"res","nameLocation":"10436:3:165","nodeType":"VariableDeclaration","scope":79202,"src":"10419:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79165,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10419:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79166,"nodeType":"ArrayTypeName","src":"10419:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":79174,"initialValue":{"arguments":[{"expression":{"id":79171,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79151,"src":"10456:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10469:6:165","memberName":"length","nodeType":"MemberAccess","src":"10456:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10442:13:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":79168,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10446:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79169,"nodeType":"ArrayTypeName","src":"10446:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":79173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10442:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10419:57:165"},{"body":{"id":79198,"nodeType":"Block","src":"10537:79:165","statements":[{"expression":{"id":79196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79186,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79167,"src":"10551:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":79188,"indexExpression":{"id":79187,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"10555:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10551:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":79189,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79159,"src":"10560:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10567:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10560:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10580:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":81283,"src":"10560:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":79195,"indexExpression":{"baseExpression":{"id":79192,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79151,"src":"10589:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79194,"indexExpression":{"id":79193,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"10602:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10589:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10560:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10551:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79197,"nodeType":"ExpressionStatement","src":"10551:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79179,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"10507:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79180,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79151,"src":"10511:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10524:6:165","memberName":"length","nodeType":"MemberAccess","src":"10511:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10507:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79199,"initializationExpression":{"assignments":[79176],"declarations":[{"constant":false,"id":79176,"mutability":"mutable","name":"i","nameLocation":"10500:1:165","nodeType":"VariableDeclaration","scope":79199,"src":"10492:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79175,"name":"uint256","nodeType":"ElementaryTypeName","src":"10492:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79178,"initialValue":{"hexValue":"30","id":79177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10504:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10492:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10532:3:165","subExpression":{"id":79183,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79176,"src":"10532:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79185,"nodeType":"ExpressionStatement","src":"10532:3:165"},"nodeType":"ForStatement","src":"10487:129:165"},{"expression":{"id":79200,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79167,"src":"10633:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":79156,"id":79201,"nodeType":"Return","src":"10626:10:165"}]},"baseFunctions":[73976],"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"10276:15:165","parameters":{"id":79152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79151,"mutability":"mutable","name":"_programsIds","nameLocation":"10311:12:165","nodeType":"VariableDeclaration","scope":79203,"src":"10292:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79149,"name":"address","nodeType":"ElementaryTypeName","src":"10292:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79150,"nodeType":"ArrayTypeName","src":"10292:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10291:33:165"},"returnParameters":{"id":79156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79155,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79203,"src":"10346:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79153,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10346:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79154,"nodeType":"ArrayTypeName","src":"10346:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"10345:18:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79214,"nodeType":"FunctionDefinition","src":"10649:115:165","nodes":[],"body":{"id":79213,"nodeType":"Block","src":"10704:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79208,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"10721:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10721:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79210,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10731:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10721:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10744:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":81285,"src":"10721:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79207,"id":79212,"nodeType":"Return","src":"10714:43:165"}]},"baseFunctions":[73981],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"10658:13:165","parameters":{"id":79204,"nodeType":"ParameterList","parameters":[],"src":"10671:2:165"},"returnParameters":{"id":79207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79214,"src":"10695:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79205,"name":"uint256","nodeType":"ElementaryTypeName","src":"10695:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10694:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79225,"nodeType":"FunctionDefinition","src":"10770:127:165","nodes":[],"body":{"id":79224,"nodeType":"Block","src":"10831:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79219,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"10848:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10848:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10858:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10848:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10871:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":81287,"src":"10848:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79218,"id":79223,"nodeType":"Return","src":"10841:49:165"}]},"baseFunctions":[73986],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"10779:19:165","parameters":{"id":79215,"nodeType":"ParameterList","parameters":[],"src":"10798:2:165"},"returnParameters":{"id":79218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79225,"src":"10822:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79216,"name":"uint256","nodeType":"ElementaryTypeName","src":"10822:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10821:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79236,"nodeType":"FunctionDefinition","src":"10903:108:165","nodes":[],"body":{"id":79235,"nodeType":"Block","src":"10968:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79231,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"10985:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10985:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10995:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"10985:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":79230,"id":79234,"nodeType":"Return","src":"10978:26:165"}]},"baseFunctions":[73992],"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"10912:9:165","parameters":{"id":79226,"nodeType":"ParameterList","parameters":[],"src":"10921:2:165"},"returnParameters":{"id":79230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79236,"src":"10945:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":79228,"nodeType":"UserDefinedTypeName","pathNode":{"id":79227,"name":"Gear.Timelines","nameLocations":["10945:4:165","10950:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":81322,"src":"10945:14:165"},"referencedDeclaration":81322,"src":"10945:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"10944:23:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79251,"nodeType":"FunctionDefinition","src":"11037:116:165","nodes":[],"body":{"id":79250,"nodeType":"Block","src":"11094:59:165","nodes":[],"statements":[{"expression":{"id":79248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79243,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"11104:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11104:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79245,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11114:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"11104:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11128:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":81148,"src":"11104:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79247,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79238,"src":"11137:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11104:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79249,"nodeType":"ExpressionStatement","src":"11104:42:165"}]},"baseFunctions":[73997],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":79241,"kind":"modifierInvocation","modifierName":{"id":79240,"name":"onlyOwner","nameLocations":["11084:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11084:9:165"},"nodeType":"ModifierInvocation","src":"11084:9:165"}],"name":"setMirror","nameLocation":"11046:9:165","parameters":{"id":79239,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79238,"mutability":"mutable","name":"newMirror","nameLocation":"11064:9:165","nodeType":"VariableDeclaration","scope":79251,"src":"11056:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79237,"name":"address","nodeType":"ElementaryTypeName","src":"11056:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11055:19:165"},"returnParameters":{"id":79242,"nodeType":"ParameterList","parameters":[],"src":"11094:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79260,"nodeType":"FunctionDefinition","src":"11159:59:165","nodes":[],"body":{"id":79259,"nodeType":"Block","src":"11193:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79256,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43157,"src":"11203:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11203:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79258,"nodeType":"ExpressionStatement","src":"11203:8:165"}]},"baseFunctions":[74000],"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":79254,"kind":"modifierInvocation","modifierName":{"id":79253,"name":"onlyOwner","nameLocations":["11183:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11183:9:165"},"nodeType":"ModifierInvocation","src":"11183:9:165"}],"name":"pause","nameLocation":"11168:5:165","parameters":{"id":79252,"nodeType":"ParameterList","parameters":[],"src":"11173:2:165"},"returnParameters":{"id":79255,"nodeType":"ParameterList","parameters":[],"src":"11193:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79269,"nodeType":"FunctionDefinition","src":"11224:63:165","nodes":[],"body":{"id":79268,"nodeType":"Block","src":"11260:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79265,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43181,"src":"11270:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11270:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79267,"nodeType":"ExpressionStatement","src":"11270:10:165"}]},"baseFunctions":[74003],"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":79263,"kind":"modifierInvocation","modifierName":{"id":79262,"name":"onlyOwner","nameLocations":["11250:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11250:9:165"},"nodeType":"ModifierInvocation","src":"11250:9:165"}],"name":"unpause","nameLocation":"11233:7:165","parameters":{"id":79261,"nodeType":"ParameterList","parameters":[],"src":"11240:2:165"},"returnParameters":{"id":79264,"nodeType":"ParameterList","parameters":[],"src":"11260:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79325,"nodeType":"FunctionDefinition","src":"11309:399:165","nodes":[],"body":{"id":79324,"nodeType":"Block","src":"11361:347:165","nodes":[],"statements":[{"assignments":[79276],"declarations":[{"constant":false,"id":79276,"mutability":"mutable","name":"router","nameLocation":"11387:6:165","nodeType":"VariableDeclaration","scope":79324,"src":"11371:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79275,"nodeType":"UserDefinedTypeName","pathNode":{"id":79274,"name":"Storage","nameLocations":["11371:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"11371:7:165"},"referencedDeclaration":73741,"src":"11371:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79279,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79277,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"11396:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11396:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11371:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79281,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"11424:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11431:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11424:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11444:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"11424:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11460:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11452:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79284,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11452:7:165","typeDescriptions":{}}},"id":79287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11452:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11424:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79289,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"11464:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11464:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11416:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11416:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79292,"nodeType":"ExpressionStatement","src":"11416:72:165"},{"assignments":[79294],"declarations":[{"constant":false,"id":79294,"mutability":"mutable","name":"genesisHash","nameLocation":"11507:11:165","nodeType":"VariableDeclaration","scope":79324,"src":"11499:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11499:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79300,"initialValue":{"arguments":[{"expression":{"expression":{"id":79296,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"11531:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79297,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11538:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11531:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11551:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":81257,"src":"11531:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":79295,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"11521:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":79299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11521:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11499:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79302,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79294,"src":"11577:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11600:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11592:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11592:7:165","typeDescriptions":{}}},"id":79306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11592:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11577:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79308,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73799,"src":"11604:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11604:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11569:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11569:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79311,"nodeType":"ExpressionStatement","src":"11569:57:165"},{"expression":{"id":79322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79312,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"11637:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11644:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11637:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11657:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"11637:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":79318,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79276,"src":"11674:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11681:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11674:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11694:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":81257,"src":"11674:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":79317,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"11664:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":79321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11664:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11637:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79323,"nodeType":"ExpressionStatement","src":"11637:64:165"}]},"baseFunctions":[74006],"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[{"id":79272,"kind":"modifierInvocation","modifierName":{"id":79271,"name":"whenNotPaused","nameLocations":["11347:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"11347:13:165"},"nodeType":"ModifierInvocation","src":"11347:13:165"}],"name":"lookupGenesisHash","nameLocation":"11318:17:165","parameters":{"id":79270,"nodeType":"ParameterList","parameters":[],"src":"11335:2:165"},"returnParameters":{"id":79273,"nodeType":"ParameterList","parameters":[],"src":"11361:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79392,"nodeType":"FunctionDefinition","src":"11714:514:165","nodes":[],"body":{"id":79391,"nodeType":"Block","src":"11785:443:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":79334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11812:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79333,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"11803:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":79335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11803:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11818:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11803:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79338,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73801,"src":"11821:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11821:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79332,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11795:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11795:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79341,"nodeType":"ExpressionStatement","src":"11795:41:165"},{"assignments":[79344],"declarations":[{"constant":false,"id":79344,"mutability":"mutable","name":"router","nameLocation":"11863:6:165","nodeType":"VariableDeclaration","scope":79391,"src":"11847:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79343,"nodeType":"UserDefinedTypeName","pathNode":{"id":79342,"name":"Storage","nameLocations":["11847:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"11847:7:165"},"referencedDeclaration":73741,"src":"11847:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79347,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79345,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"11872:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11872:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11847:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79349,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79344,"src":"11899:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11906:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11899:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11919:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"11899:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11935:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11927:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79352,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11927:7:165","typeDescriptions":{}}},"id":79355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11927:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11899:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79357,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"11939:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11939:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79348,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11891:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11891:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79360,"nodeType":"ExpressionStatement","src":"11891:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"},"id":79370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":79362,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79344,"src":"11992:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11999:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"11992:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12012:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"11992:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79366,"indexExpression":{"id":79365,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79327,"src":"12018:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11992:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":79367,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"12030:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12035:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":81243,"src":"12030:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$81243_$","typeString":"type(enum Gear.CodeState)"}},"id":79369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12045:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":81240,"src":"12030:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"src":"11992:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79371,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73805,"src":"12054:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12054:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79361,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11984:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11984:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79374,"nodeType":"ExpressionStatement","src":"11984:107:165"},{"expression":{"id":79385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":79375,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79344,"src":"12102:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79379,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12109:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"12102:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12122:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"12102:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79381,"indexExpression":{"id":79378,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79327,"src":"12128:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12102:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":79382,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"12139:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12144:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":81243,"src":"12139:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$81243_$","typeString":"type(enum Gear.CodeState)"}},"id":79384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12154:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":81241,"src":"12139:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"src":"12102:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"id":79386,"nodeType":"ExpressionStatement","src":"12102:71:165"},{"eventCall":{"arguments":[{"id":79388,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79327,"src":"12213:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79387,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"12189:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12189:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79390,"nodeType":"EmitStatement","src":"12184:37:165"}]},"baseFunctions":[74012],"functionSelector":"120e3f1e","implemented":true,"kind":"function","modifiers":[{"id":79330,"kind":"modifierInvocation","modifierName":{"id":79329,"name":"whenNotPaused","nameLocations":["11771:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"11771:13:165"},"nodeType":"ModifierInvocation","src":"11771:13:165"}],"name":"requestCodeValidation","nameLocation":"11723:21:165","parameters":{"id":79328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79327,"mutability":"mutable","name":"_codeId","nameLocation":"11753:7:165","nodeType":"VariableDeclaration","scope":79392,"src":"11745:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79326,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11745:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11744:17:165"},"returnParameters":{"id":79331,"nodeType":"ParameterList","parameters":[],"src":"11785:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79435,"nodeType":"FunctionDefinition","src":"12234:390:165","nodes":[],"body":{"id":79434,"nodeType":"Block","src":"12388:236:165","nodes":[],"statements":[{"assignments":[79406],"declarations":[{"constant":false,"id":79406,"mutability":"mutable","name":"mirror","nameLocation":"12406:6:165","nodeType":"VariableDeclaration","scope":79434,"src":"12398:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79405,"name":"address","nodeType":"ElementaryTypeName","src":"12398:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79412,"initialValue":{"arguments":[{"id":79408,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79394,"src":"12430:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79409,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79396,"src":"12439:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":79410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12446:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79407,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79743,"src":"12415:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bool) returns (address)"}},"id":79411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12415:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12398:53:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79417,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79398,"src":"12502:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12534:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12526:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79418,"name":"address","nodeType":"ElementaryTypeName","src":"12526:7:165","typeDescriptions":{}}},"id":79421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12526:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12502:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":79425,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79398,"src":"12552:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12502:70:165","trueExpression":{"expression":{"id":79423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12539:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12543:6:165","memberName":"sender","nodeType":"MemberAccess","src":"12539:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79427,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78838,"src":"12574:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12574:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":79429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12588:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":79414,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79406,"src":"12470:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79413,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"12462:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":79415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12462:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":79416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12491:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73649,"src":"12462:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool) external"}},"id":79430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12462:131:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79431,"nodeType":"ExpressionStatement","src":"12462:131:165"},{"expression":{"id":79432,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79406,"src":"12611:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79404,"id":79433,"nodeType":"Return","src":"12604:13:165"}]},"baseFunctions":[74024],"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":79401,"kind":"modifierInvocation","modifierName":{"id":79400,"name":"whenNotPaused","nameLocations":["12344:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"12344:13:165"},"nodeType":"ModifierInvocation","src":"12344:13:165"}],"name":"createProgram","nameLocation":"12243:13:165","parameters":{"id":79399,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79394,"mutability":"mutable","name":"_codeId","nameLocation":"12265:7:165","nodeType":"VariableDeclaration","scope":79435,"src":"12257:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79393,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12257:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79396,"mutability":"mutable","name":"_salt","nameLocation":"12282:5:165","nodeType":"VariableDeclaration","scope":79435,"src":"12274:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12274:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79398,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"12297:20:165","nodeType":"VariableDeclaration","scope":79435,"src":"12289:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79397,"name":"address","nodeType":"ElementaryTypeName","src":"12289:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12256:62:165"},"returnParameters":{"id":79404,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79403,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79435,"src":"12375:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79402,"name":"address","nodeType":"ElementaryTypeName","src":"12375:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12374:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79479,"nodeType":"FunctionDefinition","src":"12630:442:165","nodes":[],"body":{"id":79478,"nodeType":"Block","src":"12833:239:165","nodes":[],"statements":[{"assignments":[79451],"declarations":[{"constant":false,"id":79451,"mutability":"mutable","name":"mirror","nameLocation":"12851:6:165","nodeType":"VariableDeclaration","scope":79478,"src":"12843:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79450,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79457,"initialValue":{"arguments":[{"id":79453,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79437,"src":"12875:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79454,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79439,"src":"12884:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":79455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12891:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79452,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79743,"src":"12860:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bool) returns (address)"}},"id":79456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12860:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12843:54:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79462,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79441,"src":"12948:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12980:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79464,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12972:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79463,"name":"address","nodeType":"ElementaryTypeName","src":"12972:7:165","typeDescriptions":{}}},"id":79466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12972:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12948:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":79470,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79441,"src":"12998:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12948:70:165","trueExpression":{"expression":{"id":79468,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12985:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12989:6:165","memberName":"sender","nodeType":"MemberAccess","src":"12985:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79472,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79443,"src":"13020:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":79473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13035:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":79459,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79451,"src":"12916:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79458,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"12908:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":79460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12908:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":79461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12937:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73649,"src":"12908:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool) external"}},"id":79474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12908:133:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79475,"nodeType":"ExpressionStatement","src":"12908:133:165"},{"expression":{"id":79476,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79451,"src":"13059:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79449,"id":79477,"nodeType":"Return","src":"13052:13:165"}]},"baseFunctions":[74038],"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":79446,"kind":"modifierInvocation","modifierName":{"id":79445,"name":"whenNotPaused","nameLocations":["12801:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"12801:13:165"},"nodeType":"ModifierInvocation","src":"12801:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"12639:29:165","parameters":{"id":79444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79437,"mutability":"mutable","name":"_codeId","nameLocation":"12686:7:165","nodeType":"VariableDeclaration","scope":79479,"src":"12678:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12678:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79439,"mutability":"mutable","name":"_salt","nameLocation":"12711:5:165","nodeType":"VariableDeclaration","scope":79479,"src":"12703:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79438,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12703:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79441,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"12734:20:165","nodeType":"VariableDeclaration","scope":79479,"src":"12726:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79440,"name":"address","nodeType":"ElementaryTypeName","src":"12726:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79443,"mutability":"mutable","name":"_abiInterface","nameLocation":"12772:13:165","nodeType":"VariableDeclaration","scope":79479,"src":"12764:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79442,"name":"address","nodeType":"ElementaryTypeName","src":"12764:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12668:123:165"},"returnParameters":{"id":79449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79448,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79479,"src":"12824:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79447,"name":"address","nodeType":"ElementaryTypeName","src":"12824:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12823:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79645,"nodeType":"FunctionDefinition","src":"13078:2089:165","nodes":[],"body":{"id":79644,"nodeType":"Block","src":"13254:1913:165","nodes":[],"statements":[{"assignments":[79495],"declarations":[{"constant":false,"id":79495,"mutability":"mutable","name":"router","nameLocation":"13280:6:165","nodeType":"VariableDeclaration","scope":79644,"src":"13264:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79494,"nodeType":"UserDefinedTypeName","pathNode":{"id":79493,"name":"Storage","nameLocations":["13264:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"13264:7:165"},"referencedDeclaration":73741,"src":"13264:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79498,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79496,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"13289:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13289:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13264:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79500,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"13317:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13324:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"13317:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13337:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"13317:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13353:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13345:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79503,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13345:7:165","typeDescriptions":{}}},"id":79506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13345:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13317:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79508,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"13357:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13357:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13309:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13309:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79511,"nodeType":"ExpressionStatement","src":"13309:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79512,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"13555:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79513,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13562:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":73712,"src":"13555:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13574:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13555:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79539,"nodeType":"IfStatement","src":"13551:233:165","trueBody":{"id":79538,"nodeType":"Block","src":"13577:207:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":79519,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"13623:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13630:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":81181,"src":"13623:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79521,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"13641:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13648:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":81190,"src":"13641:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":79517,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"13599:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13604:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":81641,"src":"13599:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":79523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13599:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79524,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73807,"src":"13657:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13657:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79516,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13591:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13591:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79527,"nodeType":"ExpressionStatement","src":"13591:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79529,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13706:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13712:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"13706:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":79531,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"13724:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13731:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"13724:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"13706:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79534,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"13747:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13747:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79528,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13698:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13698:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79537,"nodeType":"ExpressionStatement","src":"13698:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79541,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"13897:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13904:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"13897:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13925:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81245,"src":"13897:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":79544,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"13933:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13940:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":81187,"src":"13933:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13897:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79547,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73811,"src":"13968:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13968:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79540,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13876:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13876:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79550,"nodeType":"ExpressionStatement","src":"13876:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79552,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14032:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79553,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14039:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14032:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14060:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81247,"src":"14032:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":79555,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14073:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14080:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"14073:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14032:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79558,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73813,"src":"14096:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14096:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79551,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14024:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14024:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79561,"nodeType":"ExpressionStatement","src":"14024:97:165"},{"assignments":[79563],"declarations":[{"constant":false,"id":79563,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"14140:20:165","nodeType":"VariableDeclaration","scope":79644,"src":"14132:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79562,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14132:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79568,"initialValue":{"arguments":[{"id":79565,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14176:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79566,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14184:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79564,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79806,"src":"14163:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$81211_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14163:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14132:59:165"},{"assignments":[79570],"declarations":[{"constant":false,"id":79570,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"14209:20:165","nodeType":"VariableDeclaration","scope":79644,"src":"14201:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79569,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14201:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79575,"initialValue":{"arguments":[{"id":79572,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14245:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79573,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14253:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79571,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79948,"src":"14232:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$81211_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14232:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14201:59:165"},{"assignments":[79577],"declarations":[{"constant":false,"id":79577,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"14278:22:165","nodeType":"VariableDeclaration","scope":79644,"src":"14270:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14270:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79582,"initialValue":{"arguments":[{"id":79579,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14318:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79580,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14326:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79578,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80105,"src":"14303:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$81211_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14303:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14270:63:165"},{"assignments":[79584],"declarations":[{"constant":false,"id":79584,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"14351:25:165","nodeType":"VariableDeclaration","scope":79644,"src":"14343:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79583,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14343:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79589,"initialValue":{"arguments":[{"id":79586,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14397:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79587,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14405:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79585,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80251,"src":"14379:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$81211_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14379:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14343:69:165"},{"assignments":[79591],"declarations":[{"constant":false,"id":79591,"mutability":"mutable","name":"_batchHash","nameLocation":"14431:10:165","nodeType":"VariableDeclaration","scope":79644,"src":"14423:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14423:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79607,"initialValue":{"arguments":[{"expression":{"id":79594,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14482:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14489:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":81181,"src":"14482:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79596,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14512:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14519:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"14512:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":79598,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14547:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14554:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":81187,"src":"14547:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79600,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14594:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14601:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":81190,"src":"14594:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":79602,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79563,"src":"14621:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79603,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79570,"src":"14655:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79604,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79577,"src":"14689:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79605,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79584,"src":"14725:25:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79592,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"14444:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14449:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":81489,"src":"14444:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":79606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14444:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14423:337:165"},{"expression":{"id":79614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79608,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14771:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14778:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14771:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14799:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81245,"src":"14771:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79613,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79591,"src":"14806:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14771:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79615,"nodeType":"ExpressionStatement","src":"14771:45:165"},{"expression":{"id":79623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79616,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"14826:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79619,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14833:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14826:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$81248_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14854:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81247,"src":"14826:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79621,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"14866:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14873:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"14866:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14826:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":79624,"nodeType":"ExpressionStatement","src":"14826:61:165"},{"eventCall":{"arguments":[{"id":79626,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79591,"src":"14918:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79625,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73746,"src":"14903:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14903:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79628,"nodeType":"EmitStatement","src":"14898:31:165"},{"expression":{"arguments":[{"arguments":[{"id":79632,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79495,"src":"15004:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79633,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78461,"src":"15012:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79634,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79591,"src":"15031:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79635,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79485,"src":"15043:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$81375","typeString":"enum Gear.SignatureType"}},{"id":79636,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79488,"src":"15059:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":79637,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79482,"src":"15072:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15079:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"15072:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$81375","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":79630,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"14961:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14966:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":81956,"src":"14961:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$81375_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":79639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14961:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79640,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"15121:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15121:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14940:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14940:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79643,"nodeType":"ExpressionStatement","src":"14940:220:165"}]},"baseFunctions":[74051],"functionSelector":"b24fcac0","implemented":true,"kind":"function","modifiers":[{"id":79491,"kind":"modifierInvocation","modifierName":{"id":79490,"name":"nonReentrant","nameLocations":["13241:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43210,"src":"13241:12:165"},"nodeType":"ModifierInvocation","src":"13241:12:165"}],"name":"commitBatch","nameLocation":"13087:11:165","parameters":{"id":79489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79482,"mutability":"mutable","name":"_batch","nameLocation":"13138:6:165","nodeType":"VariableDeclaration","scope":79645,"src":"13108:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79481,"nodeType":"UserDefinedTypeName","pathNode":{"id":79480,"name":"Gear.BatchCommitment","nameLocations":["13108:4:165","13113:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81211,"src":"13108:20:165"},"referencedDeclaration":81211,"src":"13108:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":79485,"mutability":"mutable","name":"_signatureType","nameLocation":"13173:14:165","nodeType":"VariableDeclaration","scope":79645,"src":"13154:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$81375","typeString":"enum Gear.SignatureType"},"typeName":{"id":79484,"nodeType":"UserDefinedTypeName","pathNode":{"id":79483,"name":"Gear.SignatureType","nameLocations":["13154:4:165","13159:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":81375,"src":"13154:18:165"},"referencedDeclaration":81375,"src":"13154:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$81375","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":79488,"mutability":"mutable","name":"_signatures","nameLocation":"13214:11:165","nodeType":"VariableDeclaration","scope":79645,"src":"13197:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":79486,"name":"bytes","nodeType":"ElementaryTypeName","src":"13197:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":79487,"nodeType":"ArrayTypeName","src":"13197:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"13098:133:165"},"returnParameters":{"id":79492,"nodeType":"ParameterList","parameters":[],"src":"13254:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79743,"nodeType":"FunctionDefinition","src":"15209:907:165","nodes":[],"body":{"id":79742,"nodeType":"Block","src":"15306:810:165","nodes":[],"statements":[{"assignments":[79658],"declarations":[{"constant":false,"id":79658,"mutability":"mutable","name":"router","nameLocation":"15332:6:165","nodeType":"VariableDeclaration","scope":79742,"src":"15316:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79657,"nodeType":"UserDefinedTypeName","pathNode":{"id":79656,"name":"Storage","nameLocations":["15316:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"15316:7:165"},"referencedDeclaration":73741,"src":"15316:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79661,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79659,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"15341:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15341:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15316:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79663,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79658,"src":"15368:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15375:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"15368:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79665,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15388:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"15368:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15404:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15396:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79666,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15396:7:165","typeDescriptions":{}}},"id":79669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15396:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15368:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79671,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"15408:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15408:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79662,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15360:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15360:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79674,"nodeType":"ExpressionStatement","src":"15360:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"},"id":79684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":79676,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79658,"src":"15461:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15468:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"15461:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79678,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15481:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"15461:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79680,"indexExpression":{"id":79679,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79647,"src":"15487:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15461:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":79681,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"15499:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15504:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":81243,"src":"15499:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$81243_$","typeString":"type(enum Gear.CodeState)"}},"id":79683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15514:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":81242,"src":"15499:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"src":"15461:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79685,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73817,"src":"15525:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15525:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79675,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15453:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15453:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79688,"nodeType":"ExpressionStatement","src":"15453:91:165"},{"assignments":[79690],"declarations":[{"constant":false,"id":79690,"mutability":"mutable","name":"salt","nameLocation":"15713:4:165","nodeType":"VariableDeclaration","scope":79742,"src":"15705:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79689,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15705:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79696,"initialValue":{"arguments":[{"id":79693,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79647,"src":"15755:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79694,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79649,"src":"15764:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79691,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"15720:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15727:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40806,"src":"15720:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":79695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15720:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"15705:65:165"},{"assignments":[79698],"declarations":[{"constant":false,"id":79698,"mutability":"mutable","name":"actorId","nameLocation":"15788:7:165","nodeType":"VariableDeclaration","scope":79742,"src":"15780:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79697,"name":"address","nodeType":"ElementaryTypeName","src":"15780:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79717,"initialValue":{"condition":{"id":79699,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79651,"src":"15798:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":79712,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15921:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$80595","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$80595","typeString":"contract Router"}],"id":79711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15913:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79710,"name":"address","nodeType":"ElementaryTypeName","src":"15913:7:165","typeDescriptions":{}}},"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15913:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79714,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79690,"src":"15928:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79708,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80982,"src":"15887:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$80982_$","typeString":"type(library Clones)"}},"id":79709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15894:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":80754,"src":"15887:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":79715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15887:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"15798:135:165","trueExpression":{"arguments":[{"arguments":[{"id":79704,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15860:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$80595","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$80595","typeString":"contract Router"}],"id":79703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15852:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79702,"name":"address","nodeType":"ElementaryTypeName","src":"15852:7:165","typeDescriptions":{}}},"id":79705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15852:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79706,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79690,"src":"15867:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79700,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81063,"src":"15821:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$81063_$","typeString":"type(library ClonesSmall)"}},"id":79701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15833:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":81002,"src":"15821:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":79707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15821:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15780:153:165"},{"expression":{"id":79726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":79718,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79658,"src":"15944:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79722,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15951:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"15944:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15964:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":81283,"src":"15944:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":79724,"indexExpression":{"id":79721,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79698,"src":"15973:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15944:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79725,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79647,"src":"15984:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15944:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79727,"nodeType":"ExpressionStatement","src":"15944:47:165"},{"expression":{"id":79733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16001:35:165","subExpression":{"expression":{"expression":{"id":79728,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79658,"src":"16001:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16008:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"16001:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16021:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":81285,"src":"16001:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79734,"nodeType":"ExpressionStatement","src":"16001:35:165"},{"eventCall":{"arguments":[{"id":79736,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79698,"src":"16067:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79737,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79647,"src":"16076:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79735,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"16052:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":79738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16052:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79739,"nodeType":"EmitStatement","src":"16047:37:165"},{"expression":{"id":79740,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79698,"src":"16102:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79655,"id":79741,"nodeType":"Return","src":"16095:14:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"15218:14:165","parameters":{"id":79652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79647,"mutability":"mutable","name":"_codeId","nameLocation":"15241:7:165","nodeType":"VariableDeclaration","scope":79743,"src":"15233:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79646,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15233:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79649,"mutability":"mutable","name":"_salt","nameLocation":"15258:5:165","nodeType":"VariableDeclaration","scope":79743,"src":"15250:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79648,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15250:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79651,"mutability":"mutable","name":"_isSmall","nameLocation":"15270:8:165","nodeType":"VariableDeclaration","scope":79743,"src":"15265:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79650,"name":"bool","nodeType":"ElementaryTypeName","src":"15265:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15232:47:165"},"returnParameters":{"id":79655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79743,"src":"15297:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79653,"name":"address","nodeType":"ElementaryTypeName","src":"15297:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15296:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79806,"nodeType":"FunctionDefinition","src":"16122:652:165","nodes":[],"body":{"id":79805,"nodeType":"Block","src":"16232:542:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79755,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79749,"src":"16250:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16257:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":81195,"src":"16250:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$81167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":79757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16273:6:165","memberName":"length","nodeType":"MemberAccess","src":"16250:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":79758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16283:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16250:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79760,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73819,"src":"16286:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16286:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16242:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16242:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79763,"nodeType":"ExpressionStatement","src":"16242:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79764,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79749,"src":"16327:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16334:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":81195,"src":"16327:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$81167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":79766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16350:6:165","memberName":"length","nodeType":"MemberAccess","src":"16327:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16360:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16327:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79774,"nodeType":"IfStatement","src":"16323:146:165","trueBody":{"id":79773,"nodeType":"Block","src":"16363:106:165","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":79770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16455:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":79769,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16445:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":79771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16445:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79753,"id":79772,"nodeType":"Return","src":"16438:20:165"}]}},{"assignments":[79779],"declarations":[{"constant":false,"id":79779,"mutability":"mutable","name":"_commitment","nameLocation":"16509:11:165","nodeType":"VariableDeclaration","scope":79805,"src":"16479:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$81167_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":79778,"nodeType":"UserDefinedTypeName","pathNode":{"id":79777,"name":"Gear.ChainCommitment","nameLocations":["16479:4:165","16484:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81167,"src":"16479:20:165"},"referencedDeclaration":81167,"src":"16479:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$81167_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":79784,"initialValue":{"baseExpression":{"expression":{"id":79780,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79749,"src":"16523:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16530:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":81195,"src":"16523:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$81167_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":79783,"indexExpression":{"hexValue":"30","id":79782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16546:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16523:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$81167_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"16479:69:165"},{"assignments":[79786],"declarations":[{"constant":false,"id":79786,"mutability":"mutable","name":"_transitionsHash","nameLocation":"16567:16:165","nodeType":"VariableDeclaration","scope":79805,"src":"16559:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79785,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16559:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79792,"initialValue":{"arguments":[{"id":79788,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79746,"src":"16605:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":79789,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79779,"src":"16613:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$81167_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":79790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16625:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":81163,"src":"16613:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$81315_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$81315_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":79787,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80371,"src":"16586:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_array$_t_struct$_StateTransition_$81315_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":79791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16586:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16559:78:165"},{"eventCall":{"arguments":[{"expression":{"id":79794,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79779,"src":"16672:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$81167_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":79795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16684:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":81166,"src":"16672:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79793,"name":"AnnouncesCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73751,"src":"16653:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16653:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79797,"nodeType":"EmitStatement","src":"16648:41:165"},{"expression":{"arguments":[{"id":79800,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79786,"src":"16732:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79801,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79779,"src":"16750:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$81167_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":79802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16762:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":81166,"src":"16750:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79798,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"16707:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16712:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":81391,"src":"16707:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":79803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16707:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79753,"id":79804,"nodeType":"Return","src":"16700:67:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"16131:12:165","parameters":{"id":79750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79746,"mutability":"mutable","name":"router","nameLocation":"16160:6:165","nodeType":"VariableDeclaration","scope":79806,"src":"16144:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79745,"nodeType":"UserDefinedTypeName","pathNode":{"id":79744,"name":"Storage","nameLocations":["16144:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"16144:7:165"},"referencedDeclaration":73741,"src":"16144:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":79749,"mutability":"mutable","name":"_batch","nameLocation":"16198:6:165","nodeType":"VariableDeclaration","scope":79806,"src":"16168:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79748,"nodeType":"UserDefinedTypeName","pathNode":{"id":79747,"name":"Gear.BatchCommitment","nameLocations":["16168:4:165","16173:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81211,"src":"16168:20:165"},"referencedDeclaration":81211,"src":"16168:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"16143:62:165"},"returnParameters":{"id":79753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79806,"src":"16223:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16223:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16222:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79948,"nodeType":"FunctionDefinition","src":"16780:1402:165","nodes":[],"body":{"id":79947,"nodeType":"Block","src":"16890:1292:165","nodes":[],"statements":[{"assignments":[79818],"declarations":[{"constant":false,"id":79818,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"16908:18:165","nodeType":"VariableDeclaration","scope":79947,"src":"16900:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79817,"name":"uint256","nodeType":"ElementaryTypeName","src":"16900:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79822,"initialValue":{"expression":{"expression":{"id":79819,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79812,"src":"16929:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16936:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":81200,"src":"16929:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$81158_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":79821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16952:6:165","memberName":"length","nodeType":"MemberAccess","src":"16929:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16900:58:165"},{"assignments":[79824],"declarations":[{"constant":false,"id":79824,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"16976:23:165","nodeType":"VariableDeclaration","scope":79947,"src":"16968:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79823,"name":"uint256","nodeType":"ElementaryTypeName","src":"16968:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79828,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79825,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79818,"src":"17002:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":79826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17023:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"17002:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16968:57:165"},{"assignments":[79830],"declarations":[{"constant":false,"id":79830,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"17043:18:165","nodeType":"VariableDeclaration","scope":79947,"src":"17035:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79829,"name":"uint256","nodeType":"ElementaryTypeName","src":"17035:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79835,"initialValue":{"arguments":[{"id":79833,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79824,"src":"17080:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79831,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"17064:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":79832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17071:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"17064:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":79834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17064:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17035:69:165"},{"assignments":[79837],"declarations":[{"constant":false,"id":79837,"mutability":"mutable","name":"offset","nameLocation":"17122:6:165","nodeType":"VariableDeclaration","scope":79947,"src":"17114:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79836,"name":"uint256","nodeType":"ElementaryTypeName","src":"17114:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79839,"initialValue":{"hexValue":"30","id":79838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17131:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17114:18:165"},{"body":{"id":79938,"nodeType":"Block","src":"17192:884:165","statements":[{"assignments":[79854],"declarations":[{"constant":false,"id":79854,"mutability":"mutable","name":"_commitment","nameLocation":"17235:11:165","nodeType":"VariableDeclaration","scope":79938,"src":"17206:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":79853,"nodeType":"UserDefinedTypeName","pathNode":{"id":79852,"name":"Gear.CodeCommitment","nameLocations":["17206:4:165","17211:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":81158,"src":"17206:19:165"},"referencedDeclaration":81158,"src":"17206:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":79859,"initialValue":{"baseExpression":{"expression":{"id":79855,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79812,"src":"17249:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17256:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":81200,"src":"17249:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$81158_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":79858,"indexExpression":{"id":79857,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79841,"src":"17272:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17249:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"17206:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"},"id":79870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":79861,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79809,"src":"17314:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17321:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17314:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17334:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"17314:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79866,"indexExpression":{"expression":{"id":79864,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17340:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17352:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81155,"src":"17340:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17314:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":79867,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"17359:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17364:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":81243,"src":"17359:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$81243_$","typeString":"type(enum Gear.CodeState)"}},"id":79869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17374:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":81241,"src":"17359:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"src":"17314:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79871,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"17411:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17411:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17289:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17289:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79874,"nodeType":"ExpressionStatement","src":"17289:164:165"},{"condition":{"expression":{"id":79875,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17472:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17484:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":81157,"src":"17472:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":79906,"nodeType":"Block","src":"17657:81:165","statements":[{"expression":{"id":79904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"17675:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":79898,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79809,"src":"17682:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79899,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17689:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17682:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17702:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"17682:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79903,"indexExpression":{"expression":{"id":79901,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17708:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17720:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81155,"src":"17708:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17682:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79905,"nodeType":"ExpressionStatement","src":"17675:48:165"}]},"id":79907,"nodeType":"IfStatement","src":"17468:270:165","trueBody":{"id":79897,"nodeType":"Block","src":"17491:160:165","statements":[{"expression":{"id":79888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":79877,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79809,"src":"17509:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79882,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17516:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17509:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17529:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":81279,"src":"17509:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$81243_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79884,"indexExpression":{"expression":{"id":79880,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17535:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17547:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81155,"src":"17535:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17509:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":79885,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"17553:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17558:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":81243,"src":"17553:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$81243_$","typeString":"type(enum Gear.CodeState)"}},"id":79887,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17568:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":81242,"src":"17553:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"src":"17509:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$81243","typeString":"enum Gear.CodeState"}},"id":79889,"nodeType":"ExpressionStatement","src":"17509:68:165"},{"expression":{"id":79895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17595:41:165","subExpression":{"expression":{"expression":{"id":79890,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79809,"src":"17595:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79893,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17602:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17595:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17615:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":81287,"src":"17595:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79896,"nodeType":"ExpressionStatement","src":"17595:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":79909,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17774:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17786:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81155,"src":"17774:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79911,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17790:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79912,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17802:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":81157,"src":"17790:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79908,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"17757:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":79913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17757:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79914,"nodeType":"EmitStatement","src":"17752:56:165"},{"assignments":[79916],"declarations":[{"constant":false,"id":79916,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"17831:18:165","nodeType":"VariableDeclaration","scope":79938,"src":"17823:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79915,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17823:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79924,"initialValue":{"arguments":[{"expression":{"id":79919,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17876:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17888:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":81155,"src":"17876:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79921,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"17892:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$81158_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17904:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":81157,"src":"17892:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":79917,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"17852:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":79918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17857:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":81407,"src":"17852:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":79923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17852:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"17823:87:165"},{"expression":{"arguments":[{"id":79928,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79830,"src":"17950:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79929,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79837,"src":"17970:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79930,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79916,"src":"17978:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79925,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"17924:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":79927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17931:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"17924:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17924:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79932,"nodeType":"ExpressionStatement","src":"17924:73:165"},{"id":79937,"nodeType":"UncheckedBlock","src":"18011:55:165","statements":[{"expression":{"id":79935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79933,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79837,"src":"18039:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":79934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18049:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18039:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79936,"nodeType":"ExpressionStatement","src":"18039:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79844,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79841,"src":"17163:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":79845,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79818,"src":"17167:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17163:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79939,"initializationExpression":{"assignments":[79841],"declarations":[{"constant":false,"id":79841,"mutability":"mutable","name":"i","nameLocation":"17156:1:165","nodeType":"VariableDeclaration","scope":79939,"src":"17148:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79840,"name":"uint256","nodeType":"ElementaryTypeName","src":"17148:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79843,"initialValue":{"hexValue":"30","id":79842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17160:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17148:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17187:3:165","subExpression":{"id":79847,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79841,"src":"17187:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79849,"nodeType":"ExpressionStatement","src":"17187:3:165"},"nodeType":"ForStatement","src":"17143:933:165"},{"expression":{"arguments":[{"id":79942,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79830,"src":"18128:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":79943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18148:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":79944,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79824,"src":"18151:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79940,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"18093:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":79941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18100:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"18093:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":79945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18093:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79816,"id":79946,"nodeType":"Return","src":"18086:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"16789:12:165","parameters":{"id":79813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79809,"mutability":"mutable","name":"router","nameLocation":"16818:6:165","nodeType":"VariableDeclaration","scope":79948,"src":"16802:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79808,"nodeType":"UserDefinedTypeName","pathNode":{"id":79807,"name":"Storage","nameLocations":["16802:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"16802:7:165"},"referencedDeclaration":73741,"src":"16802:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":79812,"mutability":"mutable","name":"_batch","nameLocation":"16856:6:165","nodeType":"VariableDeclaration","scope":79948,"src":"16826:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79811,"nodeType":"UserDefinedTypeName","pathNode":{"id":79810,"name":"Gear.BatchCommitment","nameLocations":["16826:4:165","16831:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81211,"src":"16826:20:165"},"referencedDeclaration":81211,"src":"16826:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"16801:62:165"},"returnParameters":{"id":79816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79815,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79948,"src":"16881:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16881:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16880:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80105,"nodeType":"FunctionDefinition","src":"18224:1668:165","nodes":[],"body":{"id":80104,"nodeType":"Block","src":"18336:1556:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79960,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79954,"src":"18354:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18361:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":81205,"src":"18354:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$81220_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":79962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18379:6:165","memberName":"length","nodeType":"MemberAccess","src":"18354:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":79963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18389:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18354:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79965,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73823,"src":"18392:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18392:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79959,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18346:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18346:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79968,"nodeType":"ExpressionStatement","src":"18346:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79969,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79954,"src":"18435:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18442:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":81205,"src":"18435:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$81220_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18460:6:165","memberName":"length","nodeType":"MemberAccess","src":"18435:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18470:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18435:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79979,"nodeType":"IfStatement","src":"18431:148:165","trueBody":{"id":79978,"nodeType":"Block","src":"18473:106:165","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":79975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18565:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":79974,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18555:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":79976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18555:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79958,"id":79977,"nodeType":"Return","src":"18548:20:165"}]}},{"assignments":[79984],"declarations":[{"constant":false,"id":79984,"mutability":"mutable","name":"_commitment","nameLocation":"18621:11:165","nodeType":"VariableDeclaration","scope":80104,"src":"18589:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":79983,"nodeType":"UserDefinedTypeName","pathNode":{"id":79982,"name":"Gear.RewardsCommitment","nameLocations":["18589:4:165","18594:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":81220,"src":"18589:22:165"},"referencedDeclaration":81220,"src":"18589:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":79989,"initialValue":{"baseExpression":{"expression":{"id":79985,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79954,"src":"18635:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18642:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":81205,"src":"18635:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$81220_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":79988,"indexExpression":{"hexValue":"30","id":79987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18660:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18635:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"18589:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79991,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"18681:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":79992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18693:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81219,"src":"18681:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79993,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79954,"src":"18705:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18712:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"18705:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18681:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79996,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73825,"src":"18728:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18728:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79990,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18673:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18673:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79999,"nodeType":"ExpressionStatement","src":"18673:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":80006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80001,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"18784:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18796:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81219,"src":"18784:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":80003,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"18809:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18816:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"18809:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80005,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18829:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81259,"src":"18809:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"18784:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80007,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"18840:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18840:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80000,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18776:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18776:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80010,"nodeType":"ExpressionStatement","src":"18776:99:165"},{"assignments":[80012],"declarations":[{"constant":false,"id":80012,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"18894:18:165","nodeType":"VariableDeclaration","scope":80104,"src":"18886:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80011,"name":"uint256","nodeType":"ElementaryTypeName","src":"18886:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80019,"initialValue":{"arguments":[{"id":80015,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"18931:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":80016,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"18939:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18951:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81219,"src":"18939:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":80013,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"18915:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":80014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18920:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":82161,"src":"18915:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":80018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18915:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18886:75:165"},{"assignments":[80021],"declarations":[{"constant":false,"id":80021,"mutability":"mutable","name":"batchEraIndex","nameLocation":"18979:13:165","nodeType":"VariableDeclaration","scope":80104,"src":"18971:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80020,"name":"uint256","nodeType":"ElementaryTypeName","src":"18971:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80028,"initialValue":{"arguments":[{"id":80024,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"19011:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":80025,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79954,"src":"19019:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19026:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":81184,"src":"19019:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":80022,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"18995:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":80023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19000:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":82161,"src":"18995:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":80027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18995:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18971:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80030,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19060:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80031,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80021,"src":"19081:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19060:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80033,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73829,"src":"19096:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19096:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80029,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19052:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19052:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80036,"nodeType":"ExpressionStatement","src":"19052:78:165"},{"assignments":[80038],"declarations":[{"constant":false,"id":80038,"mutability":"mutable","name":"_middleware","nameLocation":"19149:11:165","nodeType":"VariableDeclaration","scope":80104,"src":"19141:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80037,"name":"address","nodeType":"ElementaryTypeName","src":"19141:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80042,"initialValue":{"expression":{"expression":{"id":80039,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"19163:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19170:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19163:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80041,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19184:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":81152,"src":"19163:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19141:53:165"},{"assignments":[80044],"declarations":[{"constant":false,"id":80044,"mutability":"mutable","name":"success","nameLocation":"19209:7:165","nodeType":"VariableDeclaration","scope":80104,"src":"19204:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80043,"name":"bool","nodeType":"ElementaryTypeName","src":"19204:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80060,"initialValue":{"arguments":[{"id":80051,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80038,"src":"19281:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80052,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19294:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19306:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":81214,"src":"19294:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$81225_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":80054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19316:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":81222,"src":"19294:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80055,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19325:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19337:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":81217,"src":"19325:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":80057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19345:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":81231,"src":"19325:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19294:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":80046,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"19226:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19233:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19226:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19247:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":81150,"src":"19226:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80045,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46160,"src":"19219:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$46160_$","typeString":"type(contract IERC20)"}},"id":80049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19219:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$46160","typeString":"contract IERC20"}},"id":80050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19273:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46147,"src":"19219:61:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":80059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19219:138:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"19204:153:165"},{"expression":{"arguments":[{"id":80062,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80044,"src":"19375:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80063,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73831,"src":"19384:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19384:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19367:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19367:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80066,"nodeType":"ExpressionStatement","src":"19367:38:165"},{"assignments":[80068],"declarations":[{"constant":false,"id":80068,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"19424:20:165","nodeType":"VariableDeclaration","scope":80104,"src":"19416:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80067,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19416:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80083,"initialValue":{"arguments":[{"expression":{"expression":{"id":80073,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79951,"src":"19528:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19535:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19528:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$81153_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19549:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":81150,"src":"19528:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":80076,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19562:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19574:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":81214,"src":"19562:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$81225_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":80078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19584:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":81222,"src":"19562:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80079,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19592:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19604:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":81214,"src":"19592:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$81225_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":80081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19614:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":81224,"src":"19592:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":80070,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80038,"src":"19459:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80069,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"19447:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$73432_$","typeString":"type(contract IMiddleware)"}},"id":80071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19447:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$73432","typeString":"contract IMiddleware"}},"id":80072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19485:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":73420,"src":"19447:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":80082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19447:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19416:216:165"},{"assignments":[80085],"declarations":[{"constant":false,"id":80085,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"19651:18:165","nodeType":"VariableDeclaration","scope":80104,"src":"19643:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80084,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19643:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80095,"initialValue":{"arguments":[{"expression":{"id":80090,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19733:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19745:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":81217,"src":"19733:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":80092,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19754:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19766:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81219,"src":"19754:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$81234_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":80087,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80038,"src":"19696:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80086,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"19684:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$73432_$","typeString":"type(contract IMiddleware)"}},"id":80088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19684:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$73432","typeString":"contract IMiddleware"}},"id":80089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19709:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":73431,"src":"19684:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$81234_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":80094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19684:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19643:133:165"},{"expression":{"arguments":[{"id":80098,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80068,"src":"19821:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80099,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80085,"src":"19843:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80100,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79984,"src":"19863:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$81220_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19875:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81219,"src":"19863:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":80096,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"19794:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":80097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19799:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":81428,"src":"19794:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":80102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19794:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79958,"id":80103,"nodeType":"Return","src":"19787:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"18233:14:165","parameters":{"id":79955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79951,"mutability":"mutable","name":"router","nameLocation":"18264:6:165","nodeType":"VariableDeclaration","scope":80105,"src":"18248:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79950,"nodeType":"UserDefinedTypeName","pathNode":{"id":79949,"name":"Storage","nameLocations":["18248:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"18248:7:165"},"referencedDeclaration":73741,"src":"18248:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":79954,"mutability":"mutable","name":"_batch","nameLocation":"18302:6:165","nodeType":"VariableDeclaration","scope":80105,"src":"18272:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79953,"nodeType":"UserDefinedTypeName","pathNode":{"id":79952,"name":"Gear.BatchCommitment","nameLocations":["18272:4:165","18277:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81211,"src":"18272:20:165"},"referencedDeclaration":81211,"src":"18272:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"18247:62:165"},"returnParameters":{"id":79958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80105,"src":"18327:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79956,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18327:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18326:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80251,"nodeType":"FunctionDefinition","src":"19944:1520:165","nodes":[],"body":{"id":80250,"nodeType":"Block","src":"20059:1405:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80118,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"20077:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20084:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":81210,"src":"20077:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$81178_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":80120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20105:6:165","memberName":"length","nodeType":"MemberAccess","src":"20077:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":80121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20115:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20077:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80123,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"20118:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20118:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80117,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20069:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20069:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80126,"nodeType":"ExpressionStatement","src":"20069:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80127,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"20164:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20171:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":81210,"src":"20164:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$81178_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":80129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20192:6:165","memberName":"length","nodeType":"MemberAccess","src":"20164:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20202:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20164:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80137,"nodeType":"IfStatement","src":"20160:151:165","trueBody":{"id":80136,"nodeType":"Block","src":"20205:106:165","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":80133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20297:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":80132,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20287:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20287:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80116,"id":80135,"nodeType":"Return","src":"20280:20:165"}]}},{"assignments":[80142],"declarations":[{"constant":false,"id":80142,"mutability":"mutable","name":"_commitment","nameLocation":"20356:11:165","nodeType":"VariableDeclaration","scope":80250,"src":"20321:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":80141,"nodeType":"UserDefinedTypeName","pathNode":{"id":80140,"name":"Gear.ValidatorsCommitment","nameLocations":["20321:4:165","20326:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":81178,"src":"20321:25:165"},"referencedDeclaration":81178,"src":"20321:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":80147,"initialValue":{"baseExpression":{"expression":{"id":80143,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80112,"src":"20370:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20377:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":81210,"src":"20370:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$81178_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":80146,"indexExpression":{"hexValue":"30","id":80145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20398:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20370:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"20321:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80149,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"20419:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20431:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":81175,"src":"20419:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80151,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20442:6:165","memberName":"length","nodeType":"MemberAccess","src":"20419:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20451:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20419:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80154,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73835,"src":"20454:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20454:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80148,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20411:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20411:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80157,"nodeType":"ExpressionStatement","src":"20411:65:165"},{"assignments":[80159],"declarations":[{"constant":false,"id":80159,"mutability":"mutable","name":"currentEraIndex","nameLocation":"20495:15:165","nodeType":"VariableDeclaration","scope":80250,"src":"20487:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80158,"name":"uint256","nodeType":"ElementaryTypeName","src":"20487:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80171,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80160,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20514:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20520:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"20514:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":80162,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"20532:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20539:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"20532:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20552:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81259,"src":"20532:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20514:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":80166,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20513:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":80167,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"20565:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20572:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"20565:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"id":80169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20582:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":81317,"src":"20565:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20513:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20487:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80173,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"20604:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20616:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":81177,"src":"20604:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80175,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80159,"src":"20628:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":80176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20646:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20628:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20604:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80179,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73837,"src":"20649:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20649:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80172,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20596:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20596:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80182,"nodeType":"ExpressionStatement","src":"20596:76:165"},{"assignments":[80184],"declarations":[{"constant":false,"id":80184,"mutability":"mutable","name":"nextEraStart","nameLocation":"20691:12:165","nodeType":"VariableDeclaration","scope":80250,"src":"20683:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80183,"name":"uint256","nodeType":"ElementaryTypeName","src":"20683:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80195,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80185,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"20706:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20713:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"20706:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20726:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":81259,"src":"20706:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80188,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"20738:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20745:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"20738:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"id":80190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20755:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":81317,"src":"20738:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":80191,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"20761:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20773:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":81177,"src":"20761:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20738:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20706:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20683:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80197,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20799:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20805:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"20799:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80199,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80184,"src":"20818:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":80200,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"20833:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80201,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20840:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"20833:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$81322_storage","typeString":"struct Gear.Timelines storage ref"}},"id":80202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20850:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":81319,"src":"20833:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20818:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20799:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80205,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"20860:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20860:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80196,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20791:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20791:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80208,"nodeType":"ExpressionStatement","src":"20791:90:165"},{"assignments":[80213],"declarations":[{"constant":false,"id":80213,"mutability":"mutable","name":"_validators","nameLocation":"20963:11:165","nodeType":"VariableDeclaration","scope":80250,"src":"20939:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80212,"nodeType":"UserDefinedTypeName","pathNode":{"id":80211,"name":"Gear.Validators","nameLocations":["20939:4:165","20944:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":81135,"src":"20939:15:165"},"referencedDeclaration":81135,"src":"20939:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80218,"initialValue":{"arguments":[{"id":80216,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80109,"src":"21004:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80214,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"20977:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":80215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20982:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":81999,"src":"20977:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$81135_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20977:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"20939:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80220,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80213,"src":"21029:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21041:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":81134,"src":"21029:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80222,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21060:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21066:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"21060:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21029:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80225,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73841,"src":"21077:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21077:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80219,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21021:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21021:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80228,"nodeType":"ExpressionStatement","src":"21021:85:165"},{"expression":{"arguments":[{"id":80230,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80213,"src":"21147:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":80231,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"21172:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21184:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":81170,"src":"21172:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":80233,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"21217:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21229:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":81172,"src":"21217:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":80235,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"21276:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21288:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":81175,"src":"21276:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":80237,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80184,"src":"21312:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80229,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80483,"src":"21117:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$81135_storage_ptr_$_t_struct$_AggregatedPublicKey_$81120_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":80238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21117:217:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80239,"nodeType":"ExpressionStatement","src":"21117:217:165"},{"eventCall":{"arguments":[{"expression":{"id":80241,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"21376:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21388:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":81177,"src":"21376:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80240,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73768,"src":"21350:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":80243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21350:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80244,"nodeType":"EmitStatement","src":"21345:52:165"},{"expression":{"arguments":[{"id":80247,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80142,"src":"21445:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$81178_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":80245,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82248,"src":"21415:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$82248_$","typeString":"type(library Gear)"}},"id":80246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21420:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":81453,"src":"21415:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$81178_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":80248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21415:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80116,"id":80249,"nodeType":"Return","src":"21408:49:165"}]},"documentation":{"id":80106,"nodeType":"StructuredDocumentation","src":"19898:41:165","text":"@dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"19953:17:165","parameters":{"id":80113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80109,"mutability":"mutable","name":"router","nameLocation":"19987:6:165","nodeType":"VariableDeclaration","scope":80251,"src":"19971:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80108,"nodeType":"UserDefinedTypeName","pathNode":{"id":80107,"name":"Storage","nameLocations":["19971:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"19971:7:165"},"referencedDeclaration":73741,"src":"19971:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":80112,"mutability":"mutable","name":"_batch","nameLocation":"20025:6:165","nodeType":"VariableDeclaration","scope":80251,"src":"19995:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":80111,"nodeType":"UserDefinedTypeName","pathNode":{"id":80110,"name":"Gear.BatchCommitment","nameLocations":["19995:4:165","20000:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81211,"src":"19995:20:165"},"referencedDeclaration":81211,"src":"19995:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$81211_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"19970:62:165"},"returnParameters":{"id":80116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80115,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80251,"src":"20050:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20050:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20049:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80371,"nodeType":"FunctionDefinition","src":"21470:1168:165","nodes":[],"body":{"id":80370,"nodeType":"Block","src":"21614:1024:165","nodes":[],"statements":[{"assignments":[80264],"declarations":[{"constant":false,"id":80264,"mutability":"mutable","name":"transitionsLen","nameLocation":"21632:14:165","nodeType":"VariableDeclaration","scope":80370,"src":"21624:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80263,"name":"uint256","nodeType":"ElementaryTypeName","src":"21624:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80267,"initialValue":{"expression":{"id":80265,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80258,"src":"21649:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$81315_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":80266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21662:6:165","memberName":"length","nodeType":"MemberAccess","src":"21649:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21624:44:165"},{"assignments":[80269],"declarations":[{"constant":false,"id":80269,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"21686:19:165","nodeType":"VariableDeclaration","scope":80370,"src":"21678:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80268,"name":"uint256","nodeType":"ElementaryTypeName","src":"21678:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80273,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80270,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80264,"src":"21708:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21725:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"21708:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21678:49:165"},{"assignments":[80275],"declarations":[{"constant":false,"id":80275,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"21745:23:165","nodeType":"VariableDeclaration","scope":80370,"src":"21737:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80274,"name":"uint256","nodeType":"ElementaryTypeName","src":"21737:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80280,"initialValue":{"arguments":[{"id":80278,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80269,"src":"21787:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80276,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"21771:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":80277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21778:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"21771:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":80279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21771:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21737:70:165"},{"assignments":[80282],"declarations":[{"constant":false,"id":80282,"mutability":"mutable","name":"offset","nameLocation":"21825:6:165","nodeType":"VariableDeclaration","scope":80370,"src":"21817:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80281,"name":"uint256","nodeType":"ElementaryTypeName","src":"21817:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80284,"initialValue":{"hexValue":"30","id":80283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21834:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21817:18:165"},{"body":{"id":80361,"nodeType":"Block","src":"21891:640:165","statements":[{"assignments":[80299],"declarations":[{"constant":false,"id":80299,"mutability":"mutable","name":"transition","nameLocation":"21935:10:165","nodeType":"VariableDeclaration","scope":80361,"src":"21905:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":80298,"nodeType":"UserDefinedTypeName","pathNode":{"id":80297,"name":"Gear.StateTransition","nameLocations":["21905:4:165","21910:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81315,"src":"21905:20:165"},"referencedDeclaration":81315,"src":"21905:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":80303,"initialValue":{"baseExpression":{"id":80300,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80258,"src":"21948:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$81315_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":80302,"indexExpression":{"id":80301,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80286,"src":"21961:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21948:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"21905:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80305,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80254,"src":"21986:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21993:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"21986:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22006:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":81283,"src":"21986:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80310,"indexExpression":{"expression":{"id":80308,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80299,"src":"22015:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22026:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":81295,"src":"22015:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21986:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22038:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21986:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80313,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73843,"src":"22041:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22041:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80304,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21978:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21978:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80316,"nodeType":"ExpressionStatement","src":"21978:80:165"},{"assignments":[80318],"declarations":[{"constant":false,"id":80318,"mutability":"mutable","name":"value","nameLocation":"22081:5:165","nodeType":"VariableDeclaration","scope":80361,"src":"22073:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80317,"name":"uint128","nodeType":"ElementaryTypeName","src":"22073:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80320,"initialValue":{"hexValue":"30","id":80319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22089:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22073:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80321,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80299,"src":"22109:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22120:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":81304,"src":"22109:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22138:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22109:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":80327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22143:38:165","subExpression":{"expression":{"id":80325,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80299,"src":"22144:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22155:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":81306,"src":"22144:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22109:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80335,"nodeType":"IfStatement","src":"22105:144:165","trueBody":{"id":80334,"nodeType":"Block","src":"22183:66:165","statements":[{"expression":{"id":80332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80329,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80318,"src":"22201:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":80330,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80299,"src":"22209:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80331,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22220:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":81304,"src":"22209:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"22201:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":80333,"nodeType":"ExpressionStatement","src":"22201:33:165"}]}},{"assignments":[80337],"declarations":[{"constant":false,"id":80337,"mutability":"mutable","name":"transitionHash","nameLocation":"22271:14:165","nodeType":"VariableDeclaration","scope":80361,"src":"22263:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80336,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22263:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80347,"initialValue":{"arguments":[{"id":80345,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80299,"src":"22353:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":80339,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80299,"src":"22296:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22307:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":81295,"src":"22296:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80338,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"22288:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":80341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22288:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":80342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22316:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":73657,"src":"22288:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$81315_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":80344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":80343,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80318,"src":"22346:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"22288:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$81315_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":80346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22288:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22263:101:165"},{"expression":{"arguments":[{"id":80351,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80275,"src":"22404:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80352,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80282,"src":"22429:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80353,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80337,"src":"22437:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80348,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"22378:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":80350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22385:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"22378:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":80354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22378:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80355,"nodeType":"ExpressionStatement","src":"22378:74:165"},{"id":80360,"nodeType":"UncheckedBlock","src":"22466:55:165","statements":[{"expression":{"id":80358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80356,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80282,"src":"22494:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":80357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22504:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22494:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80359,"nodeType":"ExpressionStatement","src":"22494:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80289,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80286,"src":"21866:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80290,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80264,"src":"21870:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21866:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80362,"initializationExpression":{"assignments":[80286],"declarations":[{"constant":false,"id":80286,"mutability":"mutable","name":"i","nameLocation":"21859:1:165","nodeType":"VariableDeclaration","scope":80362,"src":"21851:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80285,"name":"uint256","nodeType":"ElementaryTypeName","src":"21851:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80288,"initialValue":{"hexValue":"30","id":80287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21863:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"21851:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"21886:3:165","subExpression":{"id":80292,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80286,"src":"21886:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80294,"nodeType":"ExpressionStatement","src":"21886:3:165"},"nodeType":"ForStatement","src":"21846:685:165"},{"expression":{"arguments":[{"id":80365,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80275,"src":"22583:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":80366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22608:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":80367,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80269,"src":"22611:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80363,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"22548:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":80364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22555:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"22548:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":80368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22548:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80262,"id":80369,"nodeType":"Return","src":"22541:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"21479:18:165","parameters":{"id":80259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80254,"mutability":"mutable","name":"router","nameLocation":"21514:6:165","nodeType":"VariableDeclaration","scope":80371,"src":"21498:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80253,"nodeType":"UserDefinedTypeName","pathNode":{"id":80252,"name":"Storage","nameLocations":["21498:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"21498:7:165"},"referencedDeclaration":73741,"src":"21498:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":80258,"mutability":"mutable","name":"_transitions","nameLocation":"21554:12:165","nodeType":"VariableDeclaration","scope":80371,"src":"21522:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$81315_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":80256,"nodeType":"UserDefinedTypeName","pathNode":{"id":80255,"name":"Gear.StateTransition","nameLocations":["21522:4:165","21527:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":81315,"src":"21522:20:165"},"referencedDeclaration":81315,"src":"21522:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$81315_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":80257,"nodeType":"ArrayTypeName","src":"21522:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$81315_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"21497:70:165"},"returnParameters":{"id":80262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80371,"src":"21601:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21601:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21600:9:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80483,"nodeType":"FunctionDefinition","src":"22644:1421:165","nodes":[],"body":{"id":80482,"nodeType":"Block","src":"22927:1138:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":80390,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80377,"src":"23317:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":80391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23341:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":81117,"src":"23317:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":80392,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80377,"src":"23344:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":80393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23368:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":81119,"src":"23344:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80388,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"23294:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40289_$","typeString":"type(library FROST)"}},"id":80389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23300:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":39958,"src":"23294:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":80394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23294:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80395,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"23384:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23384:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80387,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23273:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23273:154:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80398,"nodeType":"ExpressionStatement","src":"23273:154:165"},{"expression":{"id":80403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80399,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23437:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23449:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":81123,"src":"23437:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80402,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80377,"src":"23471:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"23437:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":80404,"nodeType":"ExpressionStatement","src":"23437:57:165"},{"expression":{"id":80412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80405,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23504:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23516:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":81125,"src":"23504:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":80410,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80379,"src":"23573:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":80408,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82670,"src":"23559:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$82670_$","typeString":"type(library SSTORE2)"}},"id":80409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23567:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":82576,"src":"23559:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":80411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23559:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23504:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80413,"nodeType":"ExpressionStatement","src":"23504:104:165"},{"body":{"id":80441,"nodeType":"Block","src":"23672:114:165","statements":[{"assignments":[80427],"declarations":[{"constant":false,"id":80427,"mutability":"mutable","name":"_validator","nameLocation":"23694:10:165","nodeType":"VariableDeclaration","scope":80441,"src":"23686:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80426,"name":"address","nodeType":"ElementaryTypeName","src":"23686:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80432,"initialValue":{"baseExpression":{"expression":{"id":80428,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23707:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23719:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"23707:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80431,"indexExpression":{"id":80430,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80415,"src":"23724:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23707:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"23686:40:165"},{"expression":{"id":80439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":80433,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23740:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23752:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":81129,"src":"23740:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80437,"indexExpression":{"id":80435,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80427,"src":"23756:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23740:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":80438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23770:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"23740:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80440,"nodeType":"ExpressionStatement","src":"23740:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80418,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80415,"src":"23638:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":80419,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23642:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23654:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"23642:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23659:6:165","memberName":"length","nodeType":"MemberAccess","src":"23642:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23638:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80442,"initializationExpression":{"assignments":[80415],"declarations":[{"constant":false,"id":80415,"mutability":"mutable","name":"i","nameLocation":"23631:1:165","nodeType":"VariableDeclaration","scope":80442,"src":"23623:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80414,"name":"uint256","nodeType":"ElementaryTypeName","src":"23623:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80417,"initialValue":{"hexValue":"30","id":80416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23635:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23623:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23667:3:165","subExpression":{"id":80423,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80415,"src":"23667:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80425,"nodeType":"ExpressionStatement","src":"23667:3:165"},"nodeType":"ForStatement","src":"23618:168:165"},{"body":{"id":80468,"nodeType":"Block","src":"23847:111:165","statements":[{"assignments":[80455],"declarations":[{"constant":false,"id":80455,"mutability":"mutable","name":"_validator","nameLocation":"23869:10:165","nodeType":"VariableDeclaration","scope":80468,"src":"23861:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80454,"name":"address","nodeType":"ElementaryTypeName","src":"23861:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80459,"initialValue":{"baseExpression":{"id":80456,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80382,"src":"23882:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":80458,"indexExpression":{"id":80457,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"23897:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23882:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"23861:38:165"},{"expression":{"id":80466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":80460,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23913:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23925:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":81129,"src":"23913:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80464,"indexExpression":{"id":80462,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80455,"src":"23929:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23913:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":80465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"23943:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"23913:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80467,"nodeType":"ExpressionStatement","src":"23913:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"23815:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80448,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80382,"src":"23819:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":80449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23834:6:165","memberName":"length","nodeType":"MemberAccess","src":"23819:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23815:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80469,"initializationExpression":{"assignments":[80444],"declarations":[{"constant":false,"id":80444,"mutability":"mutable","name":"i","nameLocation":"23808:1:165","nodeType":"VariableDeclaration","scope":80469,"src":"23800:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80443,"name":"uint256","nodeType":"ElementaryTypeName","src":"23800:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80446,"initialValue":{"hexValue":"30","id":80445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23812:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23800:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23842:3:165","subExpression":{"id":80451,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80444,"src":"23842:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80453,"nodeType":"ExpressionStatement","src":"23842:3:165"},"nodeType":"ForStatement","src":"23795:163:165"},{"expression":{"id":80474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80470,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"23967:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80472,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23979:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":81132,"src":"23967:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80473,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80382,"src":"23986:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"23967:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80475,"nodeType":"ExpressionStatement","src":"23967:33:165"},{"expression":{"id":80480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80476,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80374,"src":"24010:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24022:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":81134,"src":"24010:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80479,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80384,"src":"24041:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24010:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80481,"nodeType":"ExpressionStatement","src":"24010:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"22653:16:165","parameters":{"id":80385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80374,"mutability":"mutable","name":"_validators","nameLocation":"22703:11:165","nodeType":"VariableDeclaration","scope":80483,"src":"22679:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80373,"nodeType":"UserDefinedTypeName","pathNode":{"id":80372,"name":"Gear.Validators","nameLocations":["22679:4:165","22684:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":81135,"src":"22679:15:165"},"referencedDeclaration":81135,"src":"22679:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$81135_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":80377,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"22756:23:165","nodeType":"VariableDeclaration","scope":80483,"src":"22724:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":80376,"nodeType":"UserDefinedTypeName","pathNode":{"id":80375,"name":"Gear.AggregatedPublicKey","nameLocations":["22724:4:165","22729:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":81120,"src":"22724:24:165"},"referencedDeclaration":81120,"src":"22724:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$81120_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":80379,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"22802:34:165","nodeType":"VariableDeclaration","scope":80483,"src":"22789:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80378,"name":"bytes","nodeType":"ElementaryTypeName","src":"22789:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80382,"mutability":"mutable","name":"_newValidators","nameLocation":"22863:14:165","nodeType":"VariableDeclaration","scope":80483,"src":"22846:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80380,"name":"address","nodeType":"ElementaryTypeName","src":"22846:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80381,"nodeType":"ArrayTypeName","src":"22846:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":80384,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"22895:17:165","nodeType":"VariableDeclaration","scope":80483,"src":"22887:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80383,"name":"uint256","nodeType":"ElementaryTypeName","src":"22887:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22669:249:165"},"returnParameters":{"id":80386,"nodeType":"ParameterList","parameters":[],"src":"22927:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80496,"nodeType":"FunctionDefinition","src":"24071:192:165","nodes":[],"body":{"id":80495,"nodeType":"Block","src":"24136:127:165","nodes":[],"statements":[{"assignments":[80490],"declarations":[{"constant":false,"id":80490,"mutability":"mutable","name":"slot","nameLocation":"24154:4:165","nodeType":"VariableDeclaration","scope":80495,"src":"24146:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80489,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24146:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80493,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80491,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80508,"src":"24161:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24161:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24146:32:165"},{"AST":{"nativeSrc":"24214:43:165","nodeType":"YulBlock","src":"24214:43:165","statements":[{"nativeSrc":"24228:19:165","nodeType":"YulAssignment","src":"24228:19:165","value":{"name":"slot","nativeSrc":"24243:4:165","nodeType":"YulIdentifier","src":"24243:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"24228:11:165","nodeType":"YulIdentifier","src":"24228:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80487,"isOffset":false,"isSlot":true,"src":"24228:11:165","suffix":"slot","valueSize":1},{"declaration":80490,"isOffset":false,"isSlot":false,"src":"24243:4:165","valueSize":1}],"flags":["memory-safe"],"id":80494,"nodeType":"InlineAssembly","src":"24189:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"24080:7:165","parameters":{"id":80484,"nodeType":"ParameterList","parameters":[],"src":"24087:2:165"},"returnParameters":{"id":80488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80487,"mutability":"mutable","name":"router","nameLocation":"24128:6:165","nodeType":"VariableDeclaration","scope":80496,"src":"24112:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80486,"nodeType":"UserDefinedTypeName","pathNode":{"id":80485,"name":"Storage","nameLocations":["24112:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"24112:7:165"},"referencedDeclaration":73741,"src":"24112:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"24111:24:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80508,"nodeType":"FunctionDefinition","src":"24269:128:165","nodes":[],"body":{"id":80507,"nodeType":"Block","src":"24327:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":80503,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78458,"src":"24371:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80501,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"24344:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":80502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24356:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"24344:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24344:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24385:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"24344:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80500,"id":80506,"nodeType":"Return","src":"24337:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"24278:15:165","parameters":{"id":80497,"nodeType":"ParameterList","parameters":[],"src":"24293:2:165"},"returnParameters":{"id":80500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80508,"src":"24318:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24318:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24317:9:165"},"scope":80595,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80536,"nodeType":"FunctionDefinition","src":"24403:240:165","nodes":[],"body":{"id":80535,"nodeType":"Block","src":"24471:172:165","nodes":[],"statements":[{"assignments":[80516],"declarations":[{"constant":false,"id":80516,"mutability":"mutable","name":"slot","nameLocation":"24489:4:165","nodeType":"VariableDeclaration","scope":80535,"src":"24481:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24481:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80521,"initialValue":{"arguments":[{"id":80519,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80510,"src":"24523:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":80517,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"24496:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":80518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24511:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"24496:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":80520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24496:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24481:52:165"},{"expression":{"id":80529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":80525,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78458,"src":"24570:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80522,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"24543:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":80524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24555:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"24543:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24543:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24584:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"24543:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80528,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80516,"src":"24592:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24543:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80530,"nodeType":"ExpressionStatement","src":"24543:53:165"},{"eventCall":{"arguments":[{"id":80532,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80516,"src":"24631:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80531,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73787,"src":"24612:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24612:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80534,"nodeType":"EmitStatement","src":"24607:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":80513,"kind":"modifierInvocation","modifierName":{"id":80512,"name":"onlyOwner","nameLocations":["24461:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"24461:9:165"},"nodeType":"ModifierInvocation","src":"24461:9:165"}],"name":"_setStorageSlot","nameLocation":"24412:15:165","parameters":{"id":80511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80510,"mutability":"mutable","name":"namespace","nameLocation":"24442:9:165","nodeType":"VariableDeclaration","scope":80536,"src":"24428:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80509,"name":"string","nodeType":"ElementaryTypeName","src":"24428:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24427:25:165"},"returnParameters":{"id":80514,"nodeType":"ParameterList","parameters":[],"src":"24471:0:165"},"scope":80595,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80594,"nodeType":"FunctionDefinition","src":"24649:396:165","nodes":[],"body":{"id":80593,"nodeType":"Block","src":"24690:355:165","nodes":[],"statements":[{"assignments":[80543],"declarations":[{"constant":false,"id":80543,"mutability":"mutable","name":"router","nameLocation":"24716:6:165","nodeType":"VariableDeclaration","scope":80593,"src":"24700:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80542,"nodeType":"UserDefinedTypeName","pathNode":{"id":80541,"name":"Storage","nameLocations":["24700:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"24700:7:165"},"referencedDeclaration":73741,"src":"24700:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80546,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80544,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80496,"src":"24725:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24725:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"24700:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80548,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80543,"src":"24752:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24759:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"24752:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$81260_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24772:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":81255,"src":"24752:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24788:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24780:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80551,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24780:7:165","typeDescriptions":{}}},"id":80554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24780:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24752:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80556,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"24792:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24792:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24744:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24744:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80559,"nodeType":"ExpressionStatement","src":"24744:82:165"},{"assignments":[80561],"declarations":[{"constant":false,"id":80561,"mutability":"mutable","name":"value","nameLocation":"24845:5:165","nodeType":"VariableDeclaration","scope":80593,"src":"24837:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80560,"name":"uint128","nodeType":"ElementaryTypeName","src":"24837:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80567,"initialValue":{"arguments":[{"expression":{"id":80564,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24861:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24865:5:165","memberName":"value","nodeType":"MemberAccess","src":"24861:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80563,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24853:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80562,"name":"uint128","nodeType":"ElementaryTypeName","src":"24853:7:165","typeDescriptions":{}}},"id":80566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24853:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"24837:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80569,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80561,"src":"24889:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24897:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24889:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80572,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73847,"src":"24900:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24900:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80568,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24881:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24881:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80575,"nodeType":"ExpressionStatement","src":"24881:39:165"},{"assignments":[80577],"declarations":[{"constant":false,"id":80577,"mutability":"mutable","name":"actorId","nameLocation":"24939:7:165","nodeType":"VariableDeclaration","scope":80593,"src":"24931:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80576,"name":"address","nodeType":"ElementaryTypeName","src":"24931:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80580,"initialValue":{"expression":{"id":80578,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24949:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24953:6:165","memberName":"sender","nodeType":"MemberAccess","src":"24949:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24931:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80582,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80543,"src":"24977:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24984:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"24977:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$81288_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24997:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":81283,"src":"24977:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80586,"indexExpression":{"id":80585,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80577,"src":"25006:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24977:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25018:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24977:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80589,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73843,"src":"25021:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25021:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"24969:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24969:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80592,"nodeType":"ExpressionStatement","src":"24969:69:165"}]},"implemented":true,"kind":"receive","modifiers":[{"id":80539,"kind":"modifierInvocation","modifierName":{"id":80538,"name":"whenNotPaused","nameLocations":["24676:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"24676:13:165"},"nodeType":"ModifierInvocation","src":"24676:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":80537,"nodeType":"ParameterList","parameters":[],"src":"24656:2:165"},"returnParameters":{"id":80540,"nodeType":"ParameterList","parameters":[],"src":"24690:0:165"},"scope":80595,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":78446,"name":"IRouter","nameLocations":["1260:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"1260:7:165"},"id":78447,"nodeType":"InheritanceSpecifier","src":"1260:7:165"},{"baseName":{"id":78448,"name":"OwnableUpgradeable","nameLocations":["1273:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"1273:18:165"},"id":78449,"nodeType":"InheritanceSpecifier","src":"1273:18:165"},{"baseName":{"id":78450,"name":"PausableUpgradeable","nameLocations":["1297:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43182,"src":"1297:19:165"},"id":78451,"nodeType":"InheritanceSpecifier","src":"1297:19:165"},{"baseName":{"id":78452,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1322:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"1322:35:165"},"id":78453,"nodeType":"InheritanceSpecifier","src":"1322:35:165"},{"baseName":{"id":78454,"name":"UUPSUpgradeable","nameLocations":["1363:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"1363:15:165"},"id":78455,"nodeType":"InheritanceSpecifier","src":"1363:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[80595,45567,44157,43267,43182,41646,42808,41914,74052],"name":"Router","nameLocation":"1246:6:165","scope":80596,"usedErrors":[41482,41487,41663,41666,43061,43064,43199,44751,44764,45424,45429,46696,48098,50025,50030,50035,73789,73791,73793,73795,73797,73799,73801,73803,73805,73807,73809,73811,73813,73815,73817,73819,73821,73823,73825,73827,73829,73831,73833,73835,73837,73839,73841,73843,73845,73847,81103,81105,81107,81109,81111,81113,81115,82535],"usedEvents":[41493,41671,43053,43058,44105,73746,73751,73758,73763,73768,73775,73782,73787]}],"license":"UNLICENSED"},"id":165} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"COMMIT_BATCH_AFTER_COMMIT_CODES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AnnouncesCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"DebugEvent","inputs":[{"name":"topic0","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":true},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"type":"error","name":"DeploymentFailed","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206145325f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161446b90816100c78239608051818181611b590152611bec0152f35b6001600160401b0319166001600160401b039081175f5160206145325f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022612d1f565b5f51602061440b5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714612726575080630c18d27714612238578063120e3f1e1461215957806328e24b3d1461212b5780633683c4d214611f005780633bd109fa14611eb15780633d43b41814611e5d5780633f4ba83a14611ddd5780634429e24b14611dc15780634f1ef28614611bad57806352d1902d14611b4657806353f7fd48146116c75780635c975abb146116985780636c2eb35014611333578063715018a6146112ca57806371a8cf2d1461129c57806382bdeaad146111845780638456cb591461111157806384d22a4f146110b357806388f50cf01461107a5780638b1edf1e146110135780638da5cb5b14610fde5780638f381dbe14610f985780639067088e14610f4f57806396a2ddfa14610f215780639eb939a814610eca578063a5d53a4414610e74578063ad2b3d9a14610e58578063ad3cb1cc14610e0f578063b24fcac014610965578063baaf020114610864578063c13911e814610820578063c2eb812f146104f4578063ca1e7819146104a4578063cacf66ab1461046c578063d456fd5114610436578063e3a6684f146103f7578063e6fabc09146103be578063ed612f8c14610386578063edc8722514610331578063f2fde38b14610304578063f4f20ac0146102cb5763facd743b0361000f57346102c85760203660031901126102c85761028a61277c565b60036102a55f51602061440b5f395f51905f52544290613ee8565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346102c857806003193601126102c8575f51602061440b5f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346102c85760203660031901126102c85761032e61032161277c565b610329612d54565b612cae565b80f35b50346102c857806003193601126102c857602061037e5f51602061440b5f395f51905f5254600860046103644284613ee8565b0154910154906001600160801b038260801c921690613ebd565b604051908152f35b50346102c857806003193601126102c857602060046103b45f51602061440b5f395f51905f52544290613ee8565b0154604051908152f35b50346102c857806003193601126102c8575f51602061440b5f395f51905f5254600501546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c857604060085f51602061440b5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b50346102c857806003193601126102c857602065ffffffffffff60045f51602061440b5f395f51905f5254015416604051908152f35b50346102c857806003193601126102c857602065ffffffffffff60025f51602061440b5f395f51905f52540154821c16604051908152f35b50346102c857806003193601126102c8576104f06104dc60046104d65f51602061440b5f395f51905f52544290613ee8565b01612aa3565b604051918291602083526020830190612918565b0390f35b50346102c857806003193601126102c857604051610511816127f0565b610519612bdc565b8152604051610527816127d5565b5f8152602081015f9052602082015261053e612bdc565b604082015261054b612c7b565b606082015260405161055c816127d5565b5f80825260208201526080820152610572612bdc565b60a08201528160c082015260e001525f51602061440b5f395f51905f5254610598612c7b565b506105a560098201614178565b906105b2600f8201614178565b600882015492604051936105c58561280c565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154604051926105fb846127f0565b604051610607816127a6565b60018401548152600284015463ffffffff8116602083015260201c65ffffffffffff16604082015284526040519461063e866127d5565b60038401548652600484015465ffffffffffff166020870152602085019586526040519061066b826127a6565b60058501546001600160a01b0390811683526006860154811660208401526007860154166040808401919091528601918252606086019081526106b060158601612b2e565b94608087019586526016016106c490612bfa565b9160a0870192835260c0870193845260e087019485526040519788976020895251805160208a0152602081015163ffffffff1660408a01526040015165ffffffffffff16606089015251805160808901526020015165ffffffffffff1660a088015251600160a01b6001900381511660c0880152600160a01b6001900360208201511660e0880152600160a01b60019003906040015116610100870152516101208601610200905280516001600160801b031661022087015260208101516001600160801b031661024087015260408101516102608701608090526102a087016107ad91612954565b90606001519061021f19878203016102808801526107ca91612954565b935180516001600160401b0316610140870152602001516001600160801b031661016086015251805161018086015260208101516101a0860152604001516101c0850152516101e0840152516102008301520390f35b50346102c85760203660031901126102c85760ff604060209260195f51602061440b5f395f51905f5254016004358252845220541661086260405180926128e7565bf35b50346102c85760203660031901126102c8576004356001600160401b038111610961576108959036906004016128b7565b905f51602061440b5f395f51905f5254906108af83612a38565b916108bd6040519384612827565b8383526108c984612a38565b602084019490601f1901368637601a869201915b81811061092857868587604051928392602084019060208552518091526040840192915b81811061090f575050500390f35b8251845285945060209384019390920191600101610901565b8061093e6109396001938588612af6565b612b5c565b828060a01b03165f528360205260405f205461095a8288612b1a565b52016108dd565b5080fd5b50346102c85760603660031901126102c8576001600160401b03600435116102c857610100600435360360031901126102c857600260243510156102c8576044356001600160401b038111610961576109c29036906004016128b7565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610e005760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f51602061440b5f395f51905f525490600182015415610df157815415610d95575b60038201546044600435013503610d865765ffffffffffff60048301541665ffffffffffff610a61602460043501612c30565b1610610d7857610a76600435600401836130bc565b92610a8b60a460043501600435600401613571565b808096925060051b0460201485151715610d6457610aab8560051b613f64565b8695865b818810610c1b5750610be1965060051b902090610ad1600435600401866135d5565b610ae0600435600401876139c8565b90610aef602460043501612c30565b93610afe606460043501612c22565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610b6360e782612827565b5190209283600382015565ffffffffffff610b82602460043501612c30565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610bd6602460043501612c30565b169360243591613c4b565b15610c0c57807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610c2f60a460043501600435600401613571565b891015610d50578860061b8101358a526019880160205260ff60408b2054166003811015610d3c57600103610d2d57600191602091610cf28b8b8e868360061b86010192610c7c846135a6565b15610d0e5760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610cae90612d46565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610cdd846135a6565b1515926040519060061b8701358152a26135a6565b908b60061b01358c52825360218b208186015201970196610aaf565b60409260199160061b87013583520187522060ff198154169055610cb1565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610db2610da6606460043501612c22565b60043560040135613027565b15610de25765ffffffffffff610dcc602460043501612c30565b164211610a2e57631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346102c857806003193601126102c857506104f0604051610e32604082612827565b60058152640352e302e360dc1b60208201526040519182916020835260208301906128f4565b50346102c857806003193601126102c857602060405160018152f35b50346102c857806003193601126102c8576104f0610eb65f51602061440b5f395f51905f52546002610eae60018060a01b03924290613ee8565b015416612ff8565b6040519182916020835260208301906128f4565b50346102c857806003193601126102c857610ee3612bdc565b506060610f0060165f51602061440b5f395f51905f525401612bfa565b61086260405180926040809180518452602081015160208501520151910152565b50346102c857806003193601126102c8576020601b5f51602061440b5f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857610f6961277c565b601a5f51602061440b5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346102c85760203660031901126102c857600435906001600160401b0382116102c8576020610fd4610fce36600486016128b7565b90612b70565b6040519015158152f35b50346102c857806003193601126102c8575f5160206143cb5f395f51905f52546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c85761102c612d1f565b5f51602061440b5f395f51905f52546001810190815461106b576002015463ffffffff164090811561105c575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346102c857806003193601126102c8575f51602061440b5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c8576110cc61299b565b5060406110e960155f51602061440b5f395f51905f525401612b2e565b610862825180926001600160801b03602080926001600160401b038151168552015116910152565b50346102c857806003193601126102c85761112a612d54565b611132612d1f565b600160ff195f51602061442b5f395f51905f525416175f51602061442b5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c85760203660031901126102c8576004356001600160401b038111610961576111b59036906004016128b7565b905f51602061440b5f395f51905f5254906111cf83612a38565b916111dd6040519384612827565b8383526111e984612a38565b602084019490601f19013686376019869201915b81811061125257868587604051928392602084019060208552518091526040840192915b81811061122f575050500390f35b919350916020808261124460019488516128e7565b019401910191849392611221565b61125d818386612af6565b3587528260205260ff6040882054166112768287612b1a565b600382101561128857526001016111fd565b634e487b7160e01b89526021600452602489fd5b50346102c857806003193601126102c857602060035f51602061440b5f395f51905f52540154604051908152f35b50346102c857806003193601126102c8576112e3612d54565b5f5160206143cb5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102c857806003193601126102c85761134c612d54565b5f51602061444b5f395f51905f525460ff8160401c16908115611683575b50611674575f51602061444b5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206143cb5f395f51905f52546113c4906001600160a01b03166113bc613f04565b610329613f04565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f51602061440b5f395f51905f525460409081516114058382612827565b601781528381017f726f757465722e73746f726167652e526f7574657256320000000000000000008152611437612d54565b5f199151902001855260ff198386201690815f51602061440b5f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc848451848152a1611488612d87565b80516001840155600283019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff191617179055600581016005830190808203611626575b5050600881016001600160801b038154169060088401916001600160801b0319835416178255546001600160801b03825491811916911617905561155e61151c4283613ee8565b6115336001600160a01b036002610eae4287613ee8565b61154960046115424287613ee8565b01926129b3565b906115544293612aa3565b9160098701612dcf565b6015810160158301908082036115d4575b50506016810160168301918183036115b4575b5050505060ff60401b195f51602061444b5f395f51905f5254165f51602061444b5f395f51905f52555160028152a180f35b60189283925490556017810154601785015501549101555f808080611582565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f8061156f565b5481546001600160a01b03199081166001600160a01b039283161790925560068381015490850180548416918316919091179055600780840154908501805490931691161790555f806114d5565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f61136a565b50346102c857806003193601126102c857602060ff5f51602061442b5f395f51905f5254166040519015158152f35b50346102c8576101603660031901126102c8576116e261277c565b6024356001600160a01b0381169190829003611b4257611700612750565b91611709612766565b9260c43591608435919060a43560403660e3190112611b3e5761012435946001600160401b038611611b3a5736602387011215611b3a578560040135916001600160401b038311611b36573660248489010111611b3657610144356001600160401b038111611b32576117809036906004016128b7565b9690945f51602061444b5f395f51905f5254996001600160401b0360ff8c60401c16159b1680159081611b2a575b6001149081611b20575b159081611b17575b50611b0857611802908b60016001600160401b03195f51602061444b5f395f51905f525416175f51602061444b5f395f51905f5255611ad8575b6113bc613f04565b61180a613f04565b611812613f04565b4215611ac9578215611aba5782821115611aab57600a61183284846129d1565b04841015611a9c5760409a8b918d835161184c8582612827565b60178152602081017f726f757465722e73746f726167652e526f757465725631000000000000000000815261187f612d54565b905190205f190190526020808f2060ff19165f51602061440b5f395f51905f528190558451818152909a917f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16118d5612d87565b805160018c015560028b0190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061191f826127a6565b8282526001600160a01b03908116602083018190529381169490910184905260058a018054919092166001600160a01b03199182161790915560068901805482169092179091556007880180549091169091179055700300000000000000000000000000000002600887015561199361299b565b50895161199f816127d5565b639502f90081526509184e72a0006020909101526015860180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906119e4816127a6565b8381528460208201520152601686015560178501556018840155865194611a0a866127d5565b60e4358652610104356020870152611a26913691602401612863565b9042933690611a3492612a4f565b9160090193611a4294612dcf565b611a4a575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f51602061444b5f395f51905f5254165f51602061444b5f395f51905f52555160018152a180f35b63145e348f60e01b8c5260048cfd5b6353b2bbed60e01b8c5260048cfd5b63f7ba6bdb60e01b8c5260048cfd5b63b7d0949760e01b8c5260048cfd5b600160401b60ff60401b195f51602061444b5f395f51905f525416175f51602061444b5f395f51905f52556117fa565b63f92ee8a960e01b8d5260048dfd5b9050155f6117c0565b303b1591506117b8565b8c91506117ae565b8a80fd5b8980fd5b8880fd5b8780fd5b8280fd5b50346102c857806003193601126102c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611b9e5760206040515f5160206143eb5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c857611bc261277c565b906024356001600160401b03811161096157611be2903690600401612899565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611d9f575b50611d9057611c24612d54565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611d58575b50611c6957634c9c8ce360e01b84526004839052602484fd5b9091845f5160206143eb5f395f51905f528103611d465750813b15611d34575f5160206143eb5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611d1a5780836020611d0e95519101845af43d15611d12573d91611cf283612848565b92611d006040519485612827565b83523d85602085013e6142ea565b5080f35b6060916142ea565b50505034611d255780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611d88575b81611d7460209383612827565b81010312611d845751945f611c50565b5f80fd5b3d9150611d67565b63703e46dd60e11b8252600482fd5b5f5160206143eb5f395f51905f52546001600160a01b0316141590505f611c17565b50346102c857806003193601126102c857602060405160028152f35b50346102c857806003193601126102c857611df6612d54565b5f51602061442b5f395f51905f525460ff811615611e4e5760ff19165f51602061442b5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c85760203660031901126102c857611e7761277c565b611e7f612d54565b5f51602061440b5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b50346102c857806003193601126102c857611eca61299b565b506040611eee611ee95f51602061440b5f395f51905f52544290613ee8565b6129b3565b60208251918051835201516020820152f35b50346102c85760603660031901126102c857600435611f1d612750565b611f25612d1f565b5f51602061440b5f395f51905f5254600181015415610df1578284526019810160205260ff604085205416600381101561211757600203612108578284526024356020526040842060405160608101908082106001600160401b0383111761210457605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd000000000000604082015286f5908115612100576001600160a01b0382165f908152601a820160205260409020849055601b01805461202090612d46565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166120fb5750335b5f51602061440b5f395f51905f5254600501546001600160a01b0316823b156120f757604051631c9776b560e31b81526001600160a01b039092166004830152602482015260016044820152828160648183865af180156120ec576120d7575b602082604051908152f35b6120e2838092612827565b61096157816120cc565b6040513d85823e3d90fd5b8380fd5b61206c565b8480fd5b8680fd5b630e2637d160e01b8452600484fd5b634e487b7160e01b85526021600452602485fd5b50346102c857806003193601126102c857602060015f51602061440b5f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857600435612176612d1f565b814915612229575f51602061440b5f395f51905f525460018101541561221a576019018183528060205260ff6040842054166003811015612206576121f75781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b6304c51a3360e31b8352600483fd5b634e487b7160e01b84526021600452602484fd5b63580683f360e01b8352600483fd5b637bb2fa2f60e11b8252600482fd5b34611d84576080366003190112611d8457600435612254612750565b9061225d612766565b91612266612d1f565b5f51602061440b5f395f51905f525460018101541561008257825f526019810160205260ff60405f20541660038110156127125760020361270357825f5260243560205260405f206040516102c08101908082106001600160401b03831117611d84576102b0916040527f60808060405261029e90816100128239f3fe608060405260043610610254575f81527f3560e01c806336a52a18146100ab57806342129d00146100a65780635ce6c32760208201527f146100a1578063701da98e1461009c578063704ed542146100975780637a8e0c60408201527fdd1461009257806391d5a64c1461008d5780639ce110d714610088578063affe60608201527fd0e0146100835763e43f3433036102545761023f565b610222565b6101fa565b60808201527f6101e4565b6101b1565b610181565b610165565b610143565b610106565b346160a08201527ed4575f3660031901126100d45760025460081c6001600160a01b031660809060c08201527f8152602090f35b5f80fd5b9181601f840112156100d45782359167ffffffffff60e08201527fffffff83116100d457602083818601950101116100d457565b604036600319016101008201527f126100d45760043567ffffffffffffffff81116100d4576101329036906004016101208201527f6100d8565b505060243580151514610254575f80fd5b346100d4575f366003196101408201527f01126100d457602060ff600254166040519015158152f35b346100d4575f36606101608201527f031901126100d45760205f54604051908152f35b346100d457602036600319016101808201527f126100d4576004356fffffffffffffffffffffffffffffffff811614610254576101a08201527f5f80fd5b60403660031901126100d45760243567ffffffffffffffff811161006101c08201527fd4576101dd9036906004016100d8565b5050610254565b346100d457602036606101e08201527f0319011215610254575f80fd5b346100d4575f3660031901126100d4576003546102008201527f6040516001600160a01b039091168152602090f35b346100d4575f36600319016102208201527f126100d4576020600154604051908152f35b346100d4575f36600319011215616102408201523060601c7f0254575f80fd5b63e6fabc0960e01b5f5260205f60048173000000000000000017610260820152735afa156100d4575f808051368280378136915af43060a01b176102808201526f3d5f803e1561029a573d5ff35b3d5ffd60801b6102a08201525ff5908115611d84576001600160a01b0382165f908152601a820160205260409020849055601b01805461264290612d46565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166126fd575033915b813b15611d8457604051631c9776b560e31b81526001600160a01b039384166004820152921660248301525f604483018190528260648183855af19182156126f2576020926126e2575b50604051908152f35b5f6126ec91612827565b5f6126d9565b6040513d5f823e3d90fd5b9161268f565b630e2637d160e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b34611d84575f366003190112611d8457602090601c5f51602061440b5f395f51905f525401548152f35b604435906001600160a01b0382168203611d8457565b606435906001600160a01b0382168203611d8457565b600435906001600160a01b0382168203611d8457565b35906001600160a01b0382168203611d8457565b606081019081106001600160401b038211176127c157604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176127c157604052565b61010081019081106001600160401b038211176127c157604052565b608081019081106001600160401b038211176127c157604052565b90601f801991011681019081106001600160401b038211176127c157604052565b6001600160401b0381116127c157601f01601f191660200190565b92919261286f82612848565b9161287d6040519384612827565b829481845281830111611d84578281602093845f960137010152565b9080601f83011215611d84578160206128b493359101612863565b90565b9181601f84011215611d84578235916001600160401b038311611d84576020808501948460051b010111611d8457565b9060038210156127125752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106129355750505090565b82516001600160a01b0316845260209384019390920191600101612928565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060612992604085015160a08386015260a0850190612918565b93015191015290565b604051906129a8826127d5565b5f6020838281520152565b906040516129c0816127d5565b602060018294805484520154910152565b919082039182116129de57565b634e487b7160e01b5f52601160045260245ffd5b81156129fc570490565b634e487b7160e01b5f52601260045260245ffd5b9190826040910312611d8457604051612a28816127d5565b6020808294803584520135910152565b6001600160401b0381116127c15760051b60200190565b929190612a5b81612a38565b93612a696040519586612827565b602085838152019160051b8101928311611d8457905b828210612a8b57505050565b60208091612a9884612792565b815201910190612a7f565b90604051918281549182825260208201905f5260205f20925f5b818110612ad4575050612ad292500383612827565b565b84546001600160a01b0316835260019485019487945060209093019201612abd565b9190811015612b065760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015612b065760209160051b010190565b90604051612b3b816127d5565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103611d845790565b612b895f51602061440b5f395f51905f52544290613ee8565b600301905f5b838110612b9f5750505050600190565b612bad610939828685612af6565b6001600160a01b03165f9081526020849052604090205460ff1615612bd457600101612b8f565b505050505f90565b60405190612be9826127a6565b5f6040838281528260208201520152565b90604051612c07816127a6565b60406002829480548452600181015460208501520154910152565b3560ff81168103611d845790565b3565ffffffffffff81168103611d845790565b60405190612c508261280c565b5f606083604051612c60816127d5565b83815283602082015281528260208201528160408201520152565b60405190612c888261280c565b815f81525f6020820152612c9a612c43565b60408201526060612ca9612c43565b910152565b6001600160a01b03168015612d0c575f5160206143cb5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f51602061442b5f395f51905f525416612d3757565b63d93c066560e01b5f5260045ffd5b5f1981146129de5760010190565b5f5160206143cb5f395f51905f52546001600160a01b03163303612d7457565b63118cdaa760e01b5f523360045260245ffd5b612d8f612bdc565b50604051612d9c816127a6565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b818102929181159184041417156129de57565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182612fe7575b505015612fd85751845551600184015560405190612e3b6021836020808201945f86528051918291018484015e81015f838201520301601f198101845283612827565b612e78602b604051809360208201956a600b5981380380925939f360a81b87525180918484015e81015f838201520301601f198101835282612827565b51905ff06001600160a01b03811615612fc9576002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015612eec575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff19169055600101612eae565b5050925f5b8451811015612f35576001906001600160a01b03612f0f8288612b1a565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501612ef1565b5092600482018151916001600160401b0383116127c157600160401b83116127c1578154838355808410612f9f575b50602001905f5260205f205f5b838110612f82575050505060050155565b82516001600160a01b031681830155602090920191600101612f71565b825f52838060205f20019103905f5b828110612fbc575050612f64565b5f82820155600101612fae565b633011642560e01b5f5260045ffd5b63375f0aab60e11b5f5260045ffd5b612ff192506142c7565b5f80612df8565b803b905f198201908282116129de5760019060405193603e601f19910116840160405282845260208401903c90565b435f19810193929084116129de5760ff1643811061307757505f925b83811015613053575b505f925050565b80408281036130655750600193505050565b15613072575f1901613043565b61304c565b61308190436129d1565b92613043565b903590601e1981360301821215611d8457018035906001600160401b038211611d8457602001918160051b36038313611d8457565b906080810160016130cd8284613087565b905011613562576130de8183613087565b90501561353b576130ee91613087565b15612b0657803590603e1981360301821215611d845701916131108380613087565b9190928260051b93838504602014841517156129de5761313285969495613f64565b925f945f97601a60fe19853603019501965b888a10156134f3578960051b85013586811215611d8457850161316681612b5c565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b0361319882613f2f565b161515806134e0575b6134cf575b6001600160a01b036131b784612b5c565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b0390613236906001600160a01b036131f485612792565b1660248901526020840135604489015261321060408501613f43565b151560648901526001600160a01b0361322b60608601612792565b166084890152613f50565b1660a486015261324860a08201613f43565b151560c486015236819003601e190160c082013581811215611d84578201602081359101936001600160401b038211611d84576060820236038513611d8457819061010060e48a015252610144870193905f905b8082106134855750505060e082013590811215611d845701803560208201926001600160401b038211611d84578160051b908136038513611d845791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106133785750505050505050602093916001600160801b03848093039316905af19081156126f2575f91613346575b50816020916001938a015201990198613144565b90506020813d8211613370575b8161336060209383612827565b81010312611d8457516001613332565b3d9150613353565b919395979850919395601f19848203018752873582811215611d84578301602081013582526001600160a01b036133b160408301612792565b1660208301526060810135603e193683900301811215611d84578101602081013591906040016001600160401b038311611d84578236038113611d8457829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361342060808301613f50565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103611d84578360209361346260e086956101009560a060019a015201613f43565b151560c0830152601f80199101160101990197019401918a989796959391613301565b90919460608060019288358152838060a01b036134a460208b01612792565b1660208201526001600160801b036134be60408b01613f50565b16604082015201960192019061329c565b90506134da81613f2f565b906131a6565b506134ed60a084016135a6565b156131a1565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215611d8457018035906001600160401b038211611d8457602001918160061b36038313611d8457565b358015158103611d845790565b903590605e1981360301821215611d84570190565b919082018092116129de57565b60c0820160016135e58285613087565b905011613987576135f68184613087565b90501561353b576136079083613087565b15612b0657803590607e1981360301821215611d845701916060830190602061362f83612c30565b91019065ffffffffffff8061364384612c30565b16911610156139785761365582612c30565b65ffffffffffff80600286015460201c169116106139695761369b65ffffffffffff61369461368e8261368787612c30565b1687613f89565b93612c30565b1684613f89565b111561395a576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446136e1836136d989896135b3565b01358b6135c8565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156126f2575f9161391f575b5015613910575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156126f2575f956138d8575b5090613766916135b3565b9161377082612c30565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215611d84578101602081359101936001600160401b038211611d84578160061b36038513611d845760606044890152819052869360c485019392915f5b8181106138a057505050836020959365ffffffffffff829484895f9601356064860152613809604060018060a01b039201612792565b16608485015216602483015203925af19182156126f2575f9261386a575b5061383190612c30565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152613864606682612827565b51902090565b9091506020813d602011613898575b8161388660209383612827565b81010312611d84575190613831613827565b3d9150613879565b919550919293604080600192838060a01b036138bb8a612792565b1681526020890135602082015201960191019188959493926137d3565b919094506020823d602011613908575b816138f560209383612827565b81010312611d845790519361376661375b565b3d91506138e8565b6367b9145160e01b5f5260045ffd5b90506020813d602011613952575b8161393a60209383612827565b81010312611d8457518015158103611d84575f61370e565b3d915061392d565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215611d8457018035906001600160401b038211611d8457602001918136038313611d8457565b9060e0810160016139d98284613087565b905011613c3c576139ea8183613087565b90501561353b576139fa91613087565b15612b0657803590609e1981360301821215611d8457016060810190613a208282613087565b905015613c2d5765ffffffffffff600284015460201c1691613a4283426129d1565b613a51601686015480926129f2565b93608084013594600181018091116129de578503613c1e57613a7685613a7c93612dbc565b906135c8565b93613a8b6017820154866129d1565b4210613c0f57613a9a90613fb1565b934260058601541015613c0057613aef906040840195613ae1613ae9613ac08988613996565b9190613acc888a613087565b949091613ad9368c612a10565b943691612863565b933691612a4f565b92612dcf565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312611d845760405193613b308561280c565b613b3a3684612a10565b8552356001600160401b038111611d8457613b589036908401612899565b602085015235906001600160401b038211611d84570136601f82011215611d8457613b8a903690602081359101612a4f565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110613bde575050508152038082526138649060200182612827565b82516001600160a01b0316855286955060209485019490920191600101613bc1565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16613c6a4284613f89565b613c82613c7c60168601548093612dbc565b836135c8565b918284108080613ea7575b15613e7557508310613e6757613ca390836135c8565b10613e5857613cb3905b82613ee8565b94601960f81b5f523060601b60025260165260365f209360028110156127125780613d4457505060018103613d355715612b0657613cf481613cfb92613996565b3691612863565b916060835103613d26578260206128b494015160606040830151920151926001815491015490613fcc565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b919391600114613d575750505050505f90565b613d7c90600860048796970154910154906001600160801b038260801c921690613ebd565b925f9260035f9201915b86811015613e4d57613db5613dac613da6613cf48460051b860186613996565b8661422d565b90929192614267565b6001600160a01b0381165f9081526020859052604090205460ff16613de0575b506001905b01613d86565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15613e255750600190613dda565b946001613e3392965d612d46565b93858514613e41575f613dd5565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b9392915050428211613e9857613cb392613e90575b50613cad565b90505f613e8a565b6347860b9760e01b5f5260045ffd5b50613eb66018870154856135c8565b4210613c8d565b6001600160801b03809216029116613ed581836129f2565b9181156129fc5706156128b45760010190565b90613ef390826141cd565b15613efe57600f0190565b60090190565b60ff5f51602061444b5f395f51905f525460401c1615613f2057565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103611d845790565b35908115158203611d8457565b35906001600160801b0382168203611d8457565b6040519190601f01601f191682016001600160401b03811183821017611d8457604052565b6016613fa86128b49365ffffffffffff600285015460201c16906129d1565b910154906129f2565b613fbb42826141cd565b15613fc65760090190565b600f0190565b9293919490613fdb85876142c7565b1561416e57821561416e5770014551231950b75fc4402da1732fc9bebe1983101561416e576001169061010e61401081613f64565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c09088015613e4d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b614180612c43565b50600281015460058201546040519290916141c0916004916001600160a01b03166141aa8661280c565b6141b3826129b3565b8652602086015201612aa3565b6040830152606082015290565b906014600e83015492015480831461421e57818184109311918215911115918190614217575b15614208578261420257505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816141f3565b63f26224af60e01b5f5260045ffd5b815191906041830361425d576142569250602082015190606060408401519301515f1a90614348565b9192909190565b50505f9160029190565b60048110156127125780614279575050565b600181036142905763f645eedf60e01b5f5260045ffd5b600281036142ab575063fce698f760e01b5f5260045260245ffd5b6003146142b55750565b6335e2f38360e21b5f5260045260245ffd5b6401000003d01990600790829081818009900908906401000003d0199080091490565b9061430e57508051156142ff57602081519101fd5b63d6bda27560e01b5f5260045ffd5b8151158061433f575b61431f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614317565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116143bf579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156126f2575f516001600160a01b038116156143b557905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1251:24124:165:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;7983:34:30;7979:146;;-1:-1:-1;1251:24124:165;;;;;;;;1052:13:60;1251:24124:165;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;8085:29:30;;1251:24124:165;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1251:24124:165;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022612d1f565b5f51602061440b5f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714612726575080630c18d27714612238578063120e3f1e1461215957806328e24b3d1461212b5780633683c4d214611f005780633bd109fa14611eb15780633d43b41814611e5d5780633f4ba83a14611ddd5780634429e24b14611dc15780634f1ef28614611bad57806352d1902d14611b4657806353f7fd48146116c75780635c975abb146116985780636c2eb35014611333578063715018a6146112ca57806371a8cf2d1461129c57806382bdeaad146111845780638456cb591461111157806384d22a4f146110b357806388f50cf01461107a5780638b1edf1e146110135780638da5cb5b14610fde5780638f381dbe14610f985780639067088e14610f4f57806396a2ddfa14610f215780639eb939a814610eca578063a5d53a4414610e74578063ad2b3d9a14610e58578063ad3cb1cc14610e0f578063b24fcac014610965578063baaf020114610864578063c13911e814610820578063c2eb812f146104f4578063ca1e7819146104a4578063cacf66ab1461046c578063d456fd5114610436578063e3a6684f146103f7578063e6fabc09146103be578063ed612f8c14610386578063edc8722514610331578063f2fde38b14610304578063f4f20ac0146102cb5763facd743b0361000f57346102c85760203660031901126102c85761028a61277c565b60036102a55f51602061440b5f395f51905f52544290613ee8565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346102c857806003193601126102c8575f51602061440b5f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346102c85760203660031901126102c85761032e61032161277c565b610329612d54565b612cae565b80f35b50346102c857806003193601126102c857602061037e5f51602061440b5f395f51905f5254600860046103644284613ee8565b0154910154906001600160801b038260801c921690613ebd565b604051908152f35b50346102c857806003193601126102c857602060046103b45f51602061440b5f395f51905f52544290613ee8565b0154604051908152f35b50346102c857806003193601126102c8575f51602061440b5f395f51905f5254600501546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c857604060085f51602061440b5f395f51905f525401548151906001600160801b038116825260801c6020820152f35b50346102c857806003193601126102c857602065ffffffffffff60045f51602061440b5f395f51905f5254015416604051908152f35b50346102c857806003193601126102c857602065ffffffffffff60025f51602061440b5f395f51905f52540154821c16604051908152f35b50346102c857806003193601126102c8576104f06104dc60046104d65f51602061440b5f395f51905f52544290613ee8565b01612aa3565b604051918291602083526020830190612918565b0390f35b50346102c857806003193601126102c857604051610511816127f0565b610519612bdc565b8152604051610527816127d5565b5f8152602081015f9052602082015261053e612bdc565b604082015261054b612c7b565b606082015260405161055c816127d5565b5f80825260208201526080820152610572612bdc565b60a08201528160c082015260e001525f51602061440b5f395f51905f5254610598612c7b565b506105a560098201614178565b906105b2600f8201614178565b600882015492604051936105c58561280c565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154604051926105fb846127f0565b604051610607816127a6565b60018401548152600284015463ffffffff8116602083015260201c65ffffffffffff16604082015284526040519461063e866127d5565b60038401548652600484015465ffffffffffff166020870152602085019586526040519061066b826127a6565b60058501546001600160a01b0390811683526006860154811660208401526007860154166040808401919091528601918252606086019081526106b060158601612b2e565b94608087019586526016016106c490612bfa565b9160a0870192835260c0870193845260e087019485526040519788976020895251805160208a0152602081015163ffffffff1660408a01526040015165ffffffffffff16606089015251805160808901526020015165ffffffffffff1660a088015251600160a01b6001900381511660c0880152600160a01b6001900360208201511660e0880152600160a01b60019003906040015116610100870152516101208601610200905280516001600160801b031661022087015260208101516001600160801b031661024087015260408101516102608701608090526102a087016107ad91612954565b90606001519061021f19878203016102808801526107ca91612954565b935180516001600160401b0316610140870152602001516001600160801b031661016086015251805161018086015260208101516101a0860152604001516101c0850152516101e0840152516102008301520390f35b50346102c85760203660031901126102c85760ff604060209260195f51602061440b5f395f51905f5254016004358252845220541661086260405180926128e7565bf35b50346102c85760203660031901126102c8576004356001600160401b038111610961576108959036906004016128b7565b905f51602061440b5f395f51905f5254906108af83612a38565b916108bd6040519384612827565b8383526108c984612a38565b602084019490601f1901368637601a869201915b81811061092857868587604051928392602084019060208552518091526040840192915b81811061090f575050500390f35b8251845285945060209384019390920191600101610901565b8061093e6109396001938588612af6565b612b5c565b828060a01b03165f528360205260405f205461095a8288612b1a565b52016108dd565b5080fd5b50346102c85760603660031901126102c8576001600160401b03600435116102c857610100600435360360031901126102c857600260243510156102c8576044356001600160401b038111610961576109c29036906004016128b7565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610e005760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f51602061440b5f395f51905f525490600182015415610df157815415610d95575b60038201546044600435013503610d865765ffffffffffff60048301541665ffffffffffff610a61602460043501612c30565b1610610d7857610a76600435600401836130bc565b92610a8b60a460043501600435600401613571565b808096925060051b0460201485151715610d6457610aab8560051b613f64565b8695865b818810610c1b5750610be1965060051b902090610ad1600435600401866135d5565b610ae0600435600401876139c8565b90610aef602460043501612c30565b93610afe606460043501612c22565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610b6360e782612827565b5190209283600382015565ffffffffffff610b82602460043501612c30565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610bd6602460043501612c30565b169360243591613c4b565b15610c0c57807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610c2f60a460043501600435600401613571565b891015610d50578860061b8101358a526019880160205260ff60408b2054166003811015610d3c57600103610d2d57600191602091610cf28b8b8e868360061b86010192610c7c846135a6565b15610d0e5760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610cae90612d46565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610cdd846135a6565b1515926040519060061b8701358152a26135a6565b908b60061b01358c52825360218b208186015201970196610aaf565b60409260199160061b87013583520187522060ff198154169055610cb1565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610db2610da6606460043501612c22565b60043560040135613027565b15610de25765ffffffffffff610dcc602460043501612c30565b164211610a2e57631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346102c857806003193601126102c857506104f0604051610e32604082612827565b60058152640352e302e360dc1b60208201526040519182916020835260208301906128f4565b50346102c857806003193601126102c857602060405160018152f35b50346102c857806003193601126102c8576104f0610eb65f51602061440b5f395f51905f52546002610eae60018060a01b03924290613ee8565b015416612ff8565b6040519182916020835260208301906128f4565b50346102c857806003193601126102c857610ee3612bdc565b506060610f0060165f51602061440b5f395f51905f525401612bfa565b61086260405180926040809180518452602081015160208501520151910152565b50346102c857806003193601126102c8576020601b5f51602061440b5f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857610f6961277c565b601a5f51602061440b5f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346102c85760203660031901126102c857600435906001600160401b0382116102c8576020610fd4610fce36600486016128b7565b90612b70565b6040519015158152f35b50346102c857806003193601126102c8575f5160206143cb5f395f51905f52546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c85761102c612d1f565b5f51602061440b5f395f51905f52546001810190815461106b576002015463ffffffff164090811561105c575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346102c857806003193601126102c8575f51602061440b5f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c8576110cc61299b565b5060406110e960155f51602061440b5f395f51905f525401612b2e565b610862825180926001600160801b03602080926001600160401b038151168552015116910152565b50346102c857806003193601126102c85761112a612d54565b611132612d1f565b600160ff195f51602061442b5f395f51905f525416175f51602061442b5f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c85760203660031901126102c8576004356001600160401b038111610961576111b59036906004016128b7565b905f51602061440b5f395f51905f5254906111cf83612a38565b916111dd6040519384612827565b8383526111e984612a38565b602084019490601f19013686376019869201915b81811061125257868587604051928392602084019060208552518091526040840192915b81811061122f575050500390f35b919350916020808261124460019488516128e7565b019401910191849392611221565b61125d818386612af6565b3587528260205260ff6040882054166112768287612b1a565b600382101561128857526001016111fd565b634e487b7160e01b89526021600452602489fd5b50346102c857806003193601126102c857602060035f51602061440b5f395f51905f52540154604051908152f35b50346102c857806003193601126102c8576112e3612d54565b5f5160206143cb5f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102c857806003193601126102c85761134c612d54565b5f51602061444b5f395f51905f525460ff8160401c16908115611683575b50611674575f51602061444b5f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206143cb5f395f51905f52546113c4906001600160a01b03166113bc613f04565b610329613f04565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f51602061440b5f395f51905f525460409081516114058382612827565b601781528381017f726f757465722e73746f726167652e526f7574657256320000000000000000008152611437612d54565b5f199151902001855260ff198386201690815f51602061440b5f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc848451848152a1611488612d87565b80516001840155600283019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff191617179055600581016005830190808203611626575b5050600881016001600160801b038154169060088401916001600160801b0319835416178255546001600160801b03825491811916911617905561155e61151c4283613ee8565b6115336001600160a01b036002610eae4287613ee8565b61154960046115424287613ee8565b01926129b3565b906115544293612aa3565b9160098701612dcf565b6015810160158301908082036115d4575b50506016810160168301918183036115b4575b5050505060ff60401b195f51602061444b5f395f51905f5254165f51602061444b5f395f51905f52555160028152a180f35b60189283925490556017810154601785015501549101555f808080611582565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f8061156f565b5481546001600160a01b03199081166001600160a01b039283161790925560068381015490850180548416918316919091179055600780840154908501805490931691161790555f806114d5565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f61136a565b50346102c857806003193601126102c857602060ff5f51602061442b5f395f51905f5254166040519015158152f35b50346102c8576101603660031901126102c8576116e261277c565b6024356001600160a01b0381169190829003611b4257611700612750565b91611709612766565b9260c43591608435919060a43560403660e3190112611b3e5761012435946001600160401b038611611b3a5736602387011215611b3a578560040135916001600160401b038311611b36573660248489010111611b3657610144356001600160401b038111611b32576117809036906004016128b7565b9690945f51602061444b5f395f51905f5254996001600160401b0360ff8c60401c16159b1680159081611b2a575b6001149081611b20575b159081611b17575b50611b0857611802908b60016001600160401b03195f51602061444b5f395f51905f525416175f51602061444b5f395f51905f5255611ad8575b6113bc613f04565b61180a613f04565b611812613f04565b4215611ac9578215611aba5782821115611aab57600a61183284846129d1565b04841015611a9c5760409a8b918d835161184c8582612827565b60178152602081017f726f757465722e73746f726167652e526f757465725631000000000000000000815261187f612d54565b905190205f190190526020808f2060ff19165f51602061440b5f395f51905f528190558451818152909a917f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16118d5612d87565b805160018c015560028b0190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff19161717905583519061191f826127a6565b8282526001600160a01b03908116602083018190529381169490910184905260058a018054919092166001600160a01b03199182161790915560068901805482169092179091556007880180549091169091179055700300000000000000000000000000000002600887015561199361299b565b50895161199f816127d5565b639502f90081526509184e72a0006020909101526015860180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906119e4816127a6565b8381528460208201520152601686015560178501556018840155865194611a0a866127d5565b60e4358652610104356020870152611a26913691602401612863565b9042933690611a3492612a4f565b9160090193611a4294612dcf565b611a4a575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f51602061444b5f395f51905f5254165f51602061444b5f395f51905f52555160018152a180f35b63145e348f60e01b8c5260048cfd5b6353b2bbed60e01b8c5260048cfd5b63f7ba6bdb60e01b8c5260048cfd5b63b7d0949760e01b8c5260048cfd5b600160401b60ff60401b195f51602061444b5f395f51905f525416175f51602061444b5f395f51905f52556117fa565b63f92ee8a960e01b8d5260048dfd5b9050155f6117c0565b303b1591506117b8565b8c91506117ae565b8a80fd5b8980fd5b8880fd5b8780fd5b8280fd5b50346102c857806003193601126102c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611b9e5760206040515f5160206143eb5f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c857611bc261277c565b906024356001600160401b03811161096157611be2903690600401612899565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611d9f575b50611d9057611c24612d54565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611d58575b50611c6957634c9c8ce360e01b84526004839052602484fd5b9091845f5160206143eb5f395f51905f528103611d465750813b15611d34575f5160206143eb5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611d1a5780836020611d0e95519101845af43d15611d12573d91611cf283612848565b92611d006040519485612827565b83523d85602085013e6142ea565b5080f35b6060916142ea565b50505034611d255780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611d88575b81611d7460209383612827565b81010312611d845751945f611c50565b5f80fd5b3d9150611d67565b63703e46dd60e11b8252600482fd5b5f5160206143eb5f395f51905f52546001600160a01b0316141590505f611c17565b50346102c857806003193601126102c857602060405160028152f35b50346102c857806003193601126102c857611df6612d54565b5f51602061442b5f395f51905f525460ff811615611e4e5760ff19165f51602061442b5f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c85760203660031901126102c857611e7761277c565b611e7f612d54565b5f51602061440b5f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b50346102c857806003193601126102c857611eca61299b565b506040611eee611ee95f51602061440b5f395f51905f52544290613ee8565b6129b3565b60208251918051835201516020820152f35b50346102c85760603660031901126102c857600435611f1d612750565b611f25612d1f565b5f51602061440b5f395f51905f5254600181015415610df1578284526019810160205260ff604085205416600381101561211757600203612108578284526024356020526040842060405160608101908082106001600160401b0383111761210457605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd000000000000604082015286f5908115612100576001600160a01b0382165f908152601a820160205260409020849055601b01805461202090612d46565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166120fb5750335b5f51602061440b5f395f51905f5254600501546001600160a01b0316823b156120f757604051631c9776b560e31b81526001600160a01b039092166004830152602482015260016044820152828160648183865af180156120ec576120d7575b602082604051908152f35b6120e2838092612827565b61096157816120cc565b6040513d85823e3d90fd5b8380fd5b61206c565b8480fd5b8680fd5b630e2637d160e01b8452600484fd5b634e487b7160e01b85526021600452602485fd5b50346102c857806003193601126102c857602060015f51602061440b5f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857600435612176612d1f565b814915612229575f51602061440b5f395f51905f525460018101541561221a576019018183528060205260ff6040842054166003811015612206576121f75781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b6304c51a3360e31b8352600483fd5b634e487b7160e01b84526021600452602484fd5b63580683f360e01b8352600483fd5b637bb2fa2f60e11b8252600482fd5b34611d84576080366003190112611d8457600435612254612750565b9061225d612766565b91612266612d1f565b5f51602061440b5f395f51905f525460018101541561008257825f526019810160205260ff60405f20541660038110156127125760020361270357825f5260243560205260405f206040516102c08101908082106001600160401b03831117611d84576102b0916040527f60808060405261029e90816100128239f3fe608060405260043610610254575f81527f3560e01c806336a52a18146100ab57806342129d00146100a65780635ce6c32760208201527f146100a1578063701da98e1461009c578063704ed542146100975780637a8e0c60408201527fdd1461009257806391d5a64c1461008d5780639ce110d714610088578063affe60608201527fd0e0146100835763e43f3433036102545761023f565b610222565b6101fa565b60808201527f6101e4565b6101b1565b610181565b610165565b610143565b610106565b346160a08201527ed4575f3660031901126100d45760025460081c6001600160a01b031660809060c08201527f8152602090f35b5f80fd5b9181601f840112156100d45782359167ffffffffff60e08201527fffffff83116100d457602083818601950101116100d457565b604036600319016101008201527f126100d45760043567ffffffffffffffff81116100d4576101329036906004016101208201527f6100d8565b505060243580151514610254575f80fd5b346100d4575f366003196101408201527f01126100d457602060ff600254166040519015158152f35b346100d4575f36606101608201527f031901126100d45760205f54604051908152f35b346100d457602036600319016101808201527f126100d4576004356fffffffffffffffffffffffffffffffff811614610254576101a08201527f5f80fd5b60403660031901126100d45760243567ffffffffffffffff811161006101c08201527fd4576101dd9036906004016100d8565b5050610254565b346100d457602036606101e08201527f0319011215610254575f80fd5b346100d4575f3660031901126100d4576003546102008201527f6040516001600160a01b039091168152602090f35b346100d4575f36600319016102208201527f126100d4576020600154604051908152f35b346100d4575f36600319011215616102408201523060601c7f0254575f80fd5b63e6fabc0960e01b5f5260205f60048173000000000000000017610260820152735afa156100d4575f808051368280378136915af43060a01b176102808201526f3d5f803e1561029a573d5ff35b3d5ffd60801b6102a08201525ff5908115611d84576001600160a01b0382165f908152601a820160205260409020849055601b01805461264290612d46565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166126fd575033915b813b15611d8457604051631c9776b560e31b81526001600160a01b039384166004820152921660248301525f604483018190528260648183855af19182156126f2576020926126e2575b50604051908152f35b5f6126ec91612827565b5f6126d9565b6040513d5f823e3d90fd5b9161268f565b630e2637d160e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b34611d84575f366003190112611d8457602090601c5f51602061440b5f395f51905f525401548152f35b604435906001600160a01b0382168203611d8457565b606435906001600160a01b0382168203611d8457565b600435906001600160a01b0382168203611d8457565b35906001600160a01b0382168203611d8457565b606081019081106001600160401b038211176127c157604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176127c157604052565b61010081019081106001600160401b038211176127c157604052565b608081019081106001600160401b038211176127c157604052565b90601f801991011681019081106001600160401b038211176127c157604052565b6001600160401b0381116127c157601f01601f191660200190565b92919261286f82612848565b9161287d6040519384612827565b829481845281830111611d84578281602093845f960137010152565b9080601f83011215611d84578160206128b493359101612863565b90565b9181601f84011215611d84578235916001600160401b038311611d84576020808501948460051b010111611d8457565b9060038210156127125752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106129355750505090565b82516001600160a01b0316845260209384019390920191600101612928565b9060208251805183520151602082015260018060a01b03602083015116604082015260806060612992604085015160a08386015260a0850190612918565b93015191015290565b604051906129a8826127d5565b5f6020838281520152565b906040516129c0816127d5565b602060018294805484520154910152565b919082039182116129de57565b634e487b7160e01b5f52601160045260245ffd5b81156129fc570490565b634e487b7160e01b5f52601260045260245ffd5b9190826040910312611d8457604051612a28816127d5565b6020808294803584520135910152565b6001600160401b0381116127c15760051b60200190565b929190612a5b81612a38565b93612a696040519586612827565b602085838152019160051b8101928311611d8457905b828210612a8b57505050565b60208091612a9884612792565b815201910190612a7f565b90604051918281549182825260208201905f5260205f20925f5b818110612ad4575050612ad292500383612827565b565b84546001600160a01b0316835260019485019487945060209093019201612abd565b9190811015612b065760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015612b065760209160051b010190565b90604051612b3b816127d5565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103611d845790565b612b895f51602061440b5f395f51905f52544290613ee8565b600301905f5b838110612b9f5750505050600190565b612bad610939828685612af6565b6001600160a01b03165f9081526020849052604090205460ff1615612bd457600101612b8f565b505050505f90565b60405190612be9826127a6565b5f6040838281528260208201520152565b90604051612c07816127a6565b60406002829480548452600181015460208501520154910152565b3560ff81168103611d845790565b3565ffffffffffff81168103611d845790565b60405190612c508261280c565b5f606083604051612c60816127d5565b83815283602082015281528260208201528160408201520152565b60405190612c888261280c565b815f81525f6020820152612c9a612c43565b60408201526060612ca9612c43565b910152565b6001600160a01b03168015612d0c575f5160206143cb5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f51602061442b5f395f51905f525416612d3757565b63d93c066560e01b5f5260045ffd5b5f1981146129de5760010190565b5f5160206143cb5f395f51905f52546001600160a01b03163303612d7457565b63118cdaa760e01b5f523360045260245ffd5b612d8f612bdc565b50604051612d9c816127a6565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b818102929181159184041417156129de57565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182612fe7575b505015612fd85751845551600184015560405190612e3b6021836020808201945f86528051918291018484015e81015f838201520301601f198101845283612827565b612e78602b604051809360208201956a600b5981380380925939f360a81b87525180918484015e81015f838201520301601f198101835282612827565b51905ff06001600160a01b03811615612fc9576002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015612eec575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff19169055600101612eae565b5050925f5b8451811015612f35576001906001600160a01b03612f0f8288612b1a565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501612ef1565b5092600482018151916001600160401b0383116127c157600160401b83116127c1578154838355808410612f9f575b50602001905f5260205f205f5b838110612f82575050505060050155565b82516001600160a01b031681830155602090920191600101612f71565b825f52838060205f20019103905f5b828110612fbc575050612f64565b5f82820155600101612fae565b633011642560e01b5f5260045ffd5b63375f0aab60e11b5f5260045ffd5b612ff192506142c7565b5f80612df8565b803b905f198201908282116129de5760019060405193603e601f19910116840160405282845260208401903c90565b435f19810193929084116129de5760ff1643811061307757505f925b83811015613053575b505f925050565b80408281036130655750600193505050565b15613072575f1901613043565b61304c565b61308190436129d1565b92613043565b903590601e1981360301821215611d8457018035906001600160401b038211611d8457602001918160051b36038313611d8457565b906080810160016130cd8284613087565b905011613562576130de8183613087565b90501561353b576130ee91613087565b15612b0657803590603e1981360301821215611d845701916131108380613087565b9190928260051b93838504602014841517156129de5761313285969495613f64565b925f945f97601a60fe19853603019501965b888a10156134f3578960051b85013586811215611d8457850161316681612b5c565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b0361319882613f2f565b161515806134e0575b6134cf575b6001600160a01b036131b784612b5c565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b0390613236906001600160a01b036131f485612792565b1660248901526020840135604489015261321060408501613f43565b151560648901526001600160a01b0361322b60608601612792565b166084890152613f50565b1660a486015261324860a08201613f43565b151560c486015236819003601e190160c082013581811215611d84578201602081359101936001600160401b038211611d84576060820236038513611d8457819061010060e48a015252610144870193905f905b8082106134855750505060e082013590811215611d845701803560208201926001600160401b038211611d84578160051b908136038513611d845791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106133785750505050505050602093916001600160801b03848093039316905af19081156126f2575f91613346575b50816020916001938a015201990198613144565b90506020813d8211613370575b8161336060209383612827565b81010312611d8457516001613332565b3d9150613353565b919395979850919395601f19848203018752873582811215611d84578301602081013582526001600160a01b036133b160408301612792565b1660208301526060810135603e193683900301811215611d84578101602081013591906040016001600160401b038311611d84578236038113611d8457829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361342060808301613f50565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103611d84578360209361346260e086956101009560a060019a015201613f43565b151560c0830152601f80199101160101990197019401918a989796959391613301565b90919460608060019288358152838060a01b036134a460208b01612792565b1660208201526001600160801b036134be60408b01613f50565b16604082015201960192019061329c565b90506134da81613f2f565b906131a6565b506134ed60a084016135a6565b156131a1565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215611d8457018035906001600160401b038211611d8457602001918160061b36038313611d8457565b358015158103611d845790565b903590605e1981360301821215611d84570190565b919082018092116129de57565b60c0820160016135e58285613087565b905011613987576135f68184613087565b90501561353b576136079083613087565b15612b0657803590607e1981360301821215611d845701916060830190602061362f83612c30565b91019065ffffffffffff8061364384612c30565b16911610156139785761365582612c30565b65ffffffffffff80600286015460201c169116106139695761369b65ffffffffffff61369461368e8261368787612c30565b1687613f89565b93612c30565b1684613f89565b111561395a576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446136e1836136d989896135b3565b01358b6135c8565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156126f2575f9161391f575b5015613910575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156126f2575f956138d8575b5090613766916135b3565b9161377082612c30565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215611d84578101602081359101936001600160401b038211611d84578160061b36038513611d845760606044890152819052869360c485019392915f5b8181106138a057505050836020959365ffffffffffff829484895f9601356064860152613809604060018060a01b039201612792565b16608485015216602483015203925af19182156126f2575f9261386a575b5061383190612c30565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b16606082015260468152613864606682612827565b51902090565b9091506020813d602011613898575b8161388660209383612827565b81010312611d84575190613831613827565b3d9150613879565b919550919293604080600192838060a01b036138bb8a612792565b1681526020890135602082015201960191019188959493926137d3565b919094506020823d602011613908575b816138f560209383612827565b81010312611d845790519361376661375b565b3d91506138e8565b6367b9145160e01b5f5260045ffd5b90506020813d602011613952575b8161393a60209383612827565b81010312611d8457518015158103611d84575f61370e565b3d915061392d565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215611d8457018035906001600160401b038211611d8457602001918136038313611d8457565b9060e0810160016139d98284613087565b905011613c3c576139ea8183613087565b90501561353b576139fa91613087565b15612b0657803590609e1981360301821215611d8457016060810190613a208282613087565b905015613c2d5765ffffffffffff600284015460201c1691613a4283426129d1565b613a51601686015480926129f2565b93608084013594600181018091116129de578503613c1e57613a7685613a7c93612dbc565b906135c8565b93613a8b6017820154866129d1565b4210613c0f57613a9a90613fb1565b934260058601541015613c0057613aef906040840195613ae1613ae9613ac08988613996565b9190613acc888a613087565b949091613ad9368c612a10565b943691612863565b933691612a4f565b92612dcf565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312611d845760405193613b308561280c565b613b3a3684612a10565b8552356001600160401b038111611d8457613b589036908401612899565b602085015235906001600160401b038211611d84570136601f82011215611d8457613b8a903690602081359101612a4f565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110613bde575050508152038082526138649060200182612827565b82516001600160a01b0316855286955060209485019490920191600101613bc1565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16613c6a4284613f89565b613c82613c7c60168601548093612dbc565b836135c8565b918284108080613ea7575b15613e7557508310613e6757613ca390836135c8565b10613e5857613cb3905b82613ee8565b94601960f81b5f523060601b60025260165260365f209360028110156127125780613d4457505060018103613d355715612b0657613cf481613cfb92613996565b3691612863565b916060835103613d26578260206128b494015160606040830151920151926001815491015490613fcc565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b919391600114613d575750505050505f90565b613d7c90600860048796970154910154906001600160801b038260801c921690613ebd565b925f9260035f9201915b86811015613e4d57613db5613dac613da6613cf48460051b860186613996565b8661422d565b90929192614267565b6001600160a01b0381165f9081526020859052604090205460ff16613de0575b506001905b01613d86565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15613e255750600190613dda565b946001613e3392965d612d46565b93858514613e41575f613dd5565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b9392915050428211613e9857613cb392613e90575b50613cad565b90505f613e8a565b6347860b9760e01b5f5260045ffd5b50613eb66018870154856135c8565b4210613c8d565b6001600160801b03809216029116613ed581836129f2565b9181156129fc5706156128b45760010190565b90613ef390826141cd565b15613efe57600f0190565b60090190565b60ff5f51602061444b5f395f51905f525460401c1615613f2057565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103611d845790565b35908115158203611d8457565b35906001600160801b0382168203611d8457565b6040519190601f01601f191682016001600160401b03811183821017611d8457604052565b6016613fa86128b49365ffffffffffff600285015460201c16906129d1565b910154906129f2565b613fbb42826141cd565b15613fc65760090190565b600f0190565b9293919490613fdb85876142c7565b1561416e57821561416e5770014551231950b75fc4402da1732fc9bebe1983101561416e576001169061010e61401081613f64565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c09088015613e4d5784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b614180612c43565b50600281015460058201546040519290916141c0916004916001600160a01b03166141aa8661280c565b6141b3826129b3565b8652602086015201612aa3565b6040830152606082015290565b906014600e83015492015480831461421e57818184109311918215911115918190614217575b15614208578261420257505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816141f3565b63f26224af60e01b5f5260045ffd5b815191906041830361425d576142569250602082015190606060408401519301515f1a90614348565b9192909190565b50505f9160029190565b60048110156127125780614279575050565b600181036142905763f645eedf60e01b5f5260045ffd5b600281036142ab575063fce698f760e01b5f5260045260245ffd5b6003146142b55750565b6335e2f38360e21b5f5260045260245ffd5b6401000003d01990600790829081818009900908906401000003d0199080091490565b9061430e57508051156142ff57602081519101fd5b63d6bda27560e01b5f5260045ffd5b8151158061433f575b61431f575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614317565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116143bf579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156126f2575f516001600160a01b038116156143b557905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1251:24124:165:-:0;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;25080:19;;;1251:24124;25080:38;1251:24124;;-1:-1:-1;;;;;25189:9:165;1251:24124;25217:9;1251:24124;;25277:10;-1:-1:-1;1251:24124:165;;;25305:28;;;;;1251:24124;;;;;;25305:42;1251:24124;;;;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;:::i;:::-;8599:40;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24124:165;15219:15:171;15198:37;;:::i;:::-;8599:40:165;:52;1052:614:22;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;7692:34;;1251:24124;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;2357:1:29;1251:24124:165;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1251:24124:165;;;;;;;;;;;;;;;;9312:211;-1:-1:-1;;;;;;;;;;;1251:24124:165;9409:25;1251:24124;15198:37:171;15219:15;15198:37;;:::i;:::-;9350:38:165;1251:24124;9409:25;;1251:24124;;-1:-1:-1;;;;;1251:24124:165;;;;;9312:211;;:::i;:::-;1251:24124;;;;;;;;;;;;;;;;;;;;;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24124:165;15219:15:171;15198:37;;:::i;:::-;9121:41:165;1251:24124;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;7462:23;;1251:24124;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;8809:25;-1:-1:-1;;;;;;;;;;;1251:24124:165;8809:25;1251:24124;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;7340:40;1251:24124;;;;;;;;;;;;;;;;;;;;;;;7077:32;-1:-1:-1;;;;;;;;;;;1251:24124:165;7077:32;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24124:165;15219:15:171;15198:37;;:::i;:::-;8993:41:165;1251:24124;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;:::i;:::-;-1:-1:-1;18733:28:171;18740:20;;;18733:28;:::i;:::-;18819:20;18812:28;18819:20;;;18812:28;:::i;:::-;6368:25:165;;;1251:24124;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1251:24124:165;;;;;;;18857:241:171;;1251:24124:165;;18857:241:171;;1251:24124:165;;18857:241:171;;1251:24124:165;6757:33;;;1251:24124;6825:39;;;;1251:24124;;;;;;;:::i;:::-;;;;;;:::i;:::-;18740:20:171;6451:19:165;;1251:24124;;;6757:33;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6506:27;;;1251:24124;;;;;;;;;;;;;;6411:464;;1251:24124;;;;;;;;;:::i;:::-;6562:20;;;1251:24124;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;18819:20:171;1251:24124:165;;;;;;;;;;;;6411:464;;1251:24124;;;;6411:464;;1251:24124;;;;6665:22;;;1251:24124;:::i;:::-;6411:464;1251:24124;6411:464;;1251:24124;;;6712:16;;1251:24124;;;:::i;:::-;6411:464;1251:24124;6411:464;;1251:24124;;;;6411:464;;1251:24124;;;;6411:464;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:614:22;1251:24124:165;;1052:614:22;1251:24124:165;;;;;;;;;1052:614:22;1251:24124:165;;1052:614:22;1251:24124:165;;;;;;;;;;;1052:614:22;1251:24124:165;;1052:614:22;1251:24124:165;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;9890:22;-1:-1:-1;;;;;;;;;;;1251:24124:165;9890:22;1251:24124;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1251:24124:165;;;;10763:28;10695:13;10763:28;;10690:129;10710:23;;;;;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;10763:28;1251:24124;;;10735:3;10792:15;;;10763:28;10792:15;;;;:::i;:::-;;:::i;:::-;1251:24124;;;;;;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;10754:54;;;;:::i;:::-;1251:24124;;10695:13;;1251:24124;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1251:24124:165;13520:19;1948:4:38;13520:19:165;;1251:24124;13520:38;1251:24124;;;;13758:20;13754:233;;1251:24124;14100:27;;;1251:24124;;;;14136:33;1251:24124;14100:69;1251:24124;;;;14235:37;;1251:24124;;;14276:21;1251:24124;;;14276:21;;:::i;:::-;1251:24124;-1:-1:-1;1251:24124:165;;14366:28;1251:24124;;;;14366:28;;:::i;:::-;1251:24124;17257:22;;1251:24124;;17257:22;1251:24124;;;;17257:22;:::i;:::-;1251:24124;;;;;;;;;;;;;;;;17392:40;1251:24124;;;17392:40;:::i;:::-;17442:18;;;17491:22;;;;;;1251:24124;15289:146;1251:24124;;;;1083:131:25;;1251:24124:165;14631:30;1251:24124;;;;14631:30;;:::i;:::-;14707:33;1251:24124;;;;14707:33;;:::i;:::-;1251:24124;14840:21;1251:24124;;;14276:21;14840;:::i;:::-;1251:24124;14922:13;;1251:24124;;14922:13;;:::i;:::-;1251:24124;;;8378:303:171;1251:24124:165;8378:303:171;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;14136:33;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8378:303:171;;;;;;:::i;:::-;1251:24124:165;8355:336:171;;14100:27:165;;;;;1251:24124;;15194:21;1251:24124;;;14276:21;15194;:::i;:::-;1251:24124;;;;14235:37;;1251:24124;;;;14235:37;;1251:24124;15231:26;1251:24124;;;;;;15231:26;1251:24124;15400:21;1251:24124;;;14276:21;15400;:::i;:::-;1251:24124;;;;15289:146;;:::i;:::-;1765:66;;;3556:68:76;757:66:38;3556:68:76;1251:24124:165;;1765:66;-1:-1:-1;;;1765:66:165;;1251:24124;;1765:66;17515:3;17577:22;17257;1251:24124;;17257:22;1251:24124;;;;17577:22;:::i;:::-;1251:24124;;;;;;;;;;;;;17642:19;;;1251:24124;;;;;;;;14100:27;1251:24124;;;;;1948:4:38;17642:79:165;1251:24124;;1948:4:38;1251:24124:165;;;18220:17;1251:24124;;;;;;;;;17800:17;;;;;:::i;:::-;;;;1251:24124;;;;;;;-1:-1:-1;17642:19:165;;;1251:24124;;;;;;;-1:-1:-1;;1251:24124:165;;;;;17923:39;;;1251:24124;;17923:41;;;:::i;:::-;1251:24124;;17796:270;18118:17;18085:51;18118:17;;;;:::i;:::-;1251:24124;;;;;;;;;;;;;18085:51;18220:17;:::i;:::-;1251:24124;;;;;;7135:159:171;;;;;;;4093:83:22;;;;1251:24124:165;17515:3;1251:24124;17476:13;;;17796:270;1251:24124;;17642:19;1251:24124;;;;;;;;17642:19;1251:24124;;;;;;;;;;17796:270;;1251:24124;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;7135:159:171;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;13754:233;13802:56;13844:13;;1251:24124;;13844:13;;:::i;:::-;1251:24124;;;;;13802:56;:::i;:::-;1251:24124;;;;13927:21;1251:24124;;;13927:21;;:::i;:::-;1251:24124;13909:15;:39;13754:233;1251:24124;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1251:24124:165;1789:30:38;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1897:1;1251:24124;;;;;;;;;;;;;;;;;8029:91;-1:-1:-1;;;;;;;;;;;1251:24124:165;8042:77;15198:37:171;1052:614:22;1251:24124:165;;;;15219:15:171;;15198:37;;:::i;:::-;8042:77:165;1251:24124;;8029:91;:::i;:::-;1251:24124;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;11188:19;-1:-1:-1;;;;;;;;;;;1251:24124:165;11188:19;1251:24124;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10924:36;-1:-1:-1;;;;;;;;;;;1251:24124:165;10924:36;1251:24124;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;:::i;:::-;10414:31;-1:-1:-1;;;;;;;;;;;1251:24124:165;10414:31;:43;1052:614:22;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;11627:19;;;1251:24124;;;;;11734:26;;1251:24124;;;11724:37;;11780:25;;1251:24124;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;7575:35;;1251:24124;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9762:25;-1:-1:-1;;;;;;;;;;;1251:24124:165;9762:25;1251:24124;:::i;:::-;;;;;;-1:-1:-1;;;;;1251:24124:165;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1251:24124:165;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;3319:20:37;1251:24124:165;;;966:10:34;1251:24124:165;;3319:20:37;1251:24124:165;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1251:24124:165;;;;10241:19;10176:13;10241:19;;10171:120;10191:20;;;;;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;10213:3;10267:12;;;;;:::i;:::-;1251:24124;;;;;;;;;;;;10232:48;;;;:::i;:::-;1251:24124;;;;;;;;;10176:13;;1251:24124;-1:-1:-1;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;7205:30;-1:-1:-1;;;;;;;;;;;1251:24124:165;7205:30;1251:24124;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;;;;;1251:24124:165;;;;;;;-1:-1:-1;;;;;1251:24124:165;3975:40:29;1251:24124:165;;3975:40:29;1251:24124:165;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;;6429:44:30;;;;;1251:24124:165;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;1251:24124:165;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;6959:1:30;;-1:-1:-1;;;;;1251:24124:165;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;6654:20;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;;;1251:24124:165;;1800:178:73;;;;1251:24124:165;;-1:-1:-1;;;;;;;;;;;1251:24124:165;24940:24;1251:24124;;;;;;24940:24;4443:17;;:::i;:::-;1251:24124;;6591:4:30;4418:22:165;;1251:24124;4182:1;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;4612:23;;;;4586;;1251:24124;;;;;;;4760:28;;;;;-1:-1:-1;;;;;1251:24124:165;;;4710:28;4760;4710;;921:1:171;-1:-1:-1;;;;;921:1:171;;;;;;;1251:24124:165;-1:-1:-1;;;;;987:1:171;;921;;;987;;;;;;5198:339:165;15198:37:171;15219:15;15198:37;;:::i;:::-;5352:91:165;-1:-1:-1;;;;;4182:1:165;15198:37:171;15219:15;15198:37;;:::i;5352:91:165:-;1251:24124;;15198:37:171;15219:15;15198:37;;:::i;:::-;5457:41:165;1251:24124;;:::i;:::-;15219:15:171;1251:24124:165;15219:15:171;1251:24124:165;;:::i;:::-;5228:40;;;;5198:339;:::i;:::-;5634:25;;;;5606;;1251:24124;;;;;;;5739:19;;;;;;5717;;1251:24124;;;;;;;;;;;-1:-1:-1;;;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;4182:1;1251:24124;;6654:20:30;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;-1:-1:-1;;;;;;;987:1:171;;1251:24124:165;;;;987:1:171;-1:-1:-1;;;;;;;987:1:171;;;;;1251:24124:165;;;;;;;;-1:-1:-1;;;;;;1251:24124:165;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;6425:105:30;-1:-1:-1;;;6496:23:30;;1251:24124:165;;6496:23:30;6429:44;4182:1:165;1251:24124;;-1:-1:-1;;;;;1251:24124:165;6448:25:30;;6429:44;;;1251:24124:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;;;;1251:24124:165;;;;;4301:16:30;1251:24124:165;;4724:16:30;;:34;;;;1251:24124:165;;4788:16:30;:50;;;;1251:24124:165;4853:13:30;:30;;;;1251:24124:165;4849:91:30;;;6959:1;1251:24124:165;;;-1:-1:-1;;;;;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;4977:67:30;;1251:24124:165;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;;;:::i;:::-;2781:15:165;:19;1251:24124;;2839:21;;1251:24124;;2906:32;;;1251:24124;;;3187:2;3151:32;;;;:::i;:::-;1251:24124;3131:58;;1251:24124;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;1251:24124:165;1800:178:73;;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;;;;1800:178:73;;1251:24124:165;24940:24;;;3345:17;;:::i;:::-;1251:24124;;;3323:19;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1251:24124:165;;;;3395:52;;1251:24124;;;;;;3395:52;;;;1251:24124;;;3372:20;;;1251:24124;;;;;;-1:-1:-1;;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:1:171;3457:25:165;;;987:1:171;1251:24124:165;;:::i;:::-;;;;;;;:::i;:::-;799:13:171;1251:24124:165;;1081:18:171;1251:24124:165;10604:89:171;;;1251:24124:165;3645:22;;;1251:24124;;-1:-1:-1;;;;;;987:1:171;;;;;1251:24124:165;;;;;;;;;:::i;:::-;;;;3732:65;1251:24124;3732:65;;1251:24124;3732:65;1251:24124;3713:16;;;1251:24124;;987:1:171;;1251:24124:165;987:1:171;;;1251:24124:165;;;;;;;:::i;:::-;;;987:1:171;;;1251:24124:165;;987:1:171;;;;;1251:24124:165;;;;987:1:171;:::i;:::-;2781:15:165;;1251:24124;;987:1:171;;;;:::i;:::-;3879:37:165;;;3849:213;;;;:::i;:::-;5064:101:30;;1251:24124:165;;;5064:101:30;1251:24124:165;5140:14:30;1251:24124:165;-1:-1:-1;;;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;;5140:14:30;1251:24124:165;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;4977:67:30;-1:-1:-1;;;;;;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1251:24124:165;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1251:24124:165;4815:4:60;4807:23;4803:145;;1251:24124:165;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1251:24124:165;;4908:29:60;1251:24124:165;-1:-1:-1;1251:24124:165;;-1:-1:-1;;1251:24124:165;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1251:24124:165;4392:4:60;4384:23;;;:120;;;;1251:24124:165;4367:251:60;;;2303:62:29;;:::i;:::-;1251:24124:165;;-1:-1:-1;;;5865:52:60;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;5865:52:60;;;;;;;;1251:24124:165;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1251:24124:165;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;;;;;1251:24124:165;;;;;2407:36:53;;;;1251:24124:165;;;;2458:15:53;:11;;4065:25:66;;1251:24124:165;4107:55:66;4065:25;;;;;;;1251:24124:165;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1251:24124:165;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1251:24124:165;;6159:70:53;-1:-1:-1;;;6199:19:53;;1251:24124:165;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1251:24124:165;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1251:24124:165;;;6026:34:60;;5865:52;;;;1251:24124:165;5865:52:60;;1251:24124:165;5865:52:60;;;;;;1251:24124:165;5865:52:60;;;:::i;:::-;;;1251:24124:165;;;;;5865:52:60;;;;1251:24124:165;-1:-1:-1;1251:24124:165;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1251:24124:165;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;4462:42:60;;;-1:-1:-1;4384:120:60;;;1251:24124:165;;;;;;;;;;;;;;;;1962:1;1251:24124;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;2971:9:37;2967:62;;1251:24124:165;;;-1:-1:-1;;;;;;;;;;;1251:24124:165;3627:22:37;1251:24124:165;;;966:10:34;1251:24124:165;;3627:22:37;1251:24124:165;;2967:62:37;-1:-1:-1;;;3003:15:37;;1251:24124:165;3003:15:37;;1251:24124:165;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;11307:23;;1251:24124;;-1:-1:-1;;;;;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24124:165;15219:15:171;15198:37;;:::i;:::-;1251:24124:165;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;;15696:19;;1251:24124;15696:38;1251:24124;;;;;15789:19;;;1251:24124;;;;;;;;;;;;;;15827:24;15789:62;1251:24124;;3543:209:25;;;1251:24124:165;;;3543:209:25;1251:24124:165;3543:209:25;;1251:24124:165;1052:614:22;1251:24124:165;1052:614:22;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;446:4:170;1052:614:22;1251:24124:165;1052:614:22;921:66:170;4093:83:22;;16188:4:165;1251:24124;;1067:66:170;1066:105;1251:24124:165;4093:83:22;;;1222:66:170;1251:24124:165;4093:83:22;;;1300:150:170;;;;;;;-1:-1:-1;;;;;1251:24124:165;;-1:-1:-1;1251:24124:165;;;16272:28;;;1251:24124;;;;;;;;16329:33;;1251:24124;;16329:35;;;:::i;:::-;1251:24124;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;16380:32;;1251:24124;;16380:32;-1:-1:-1;;;;;;1251:24124:165;;1052:614:22;;12742:10:165;;12705:70;-1:-1:-1;;;;;;;;;;;1251:24124:165;7462:23;;1251:24124;-1:-1:-1;;;;;1251:24124:165;12665:131;;;;;1251:24124;;-1:-1:-1;;;12665:131:165;;-1:-1:-1;;;;;1251:24124:165;;;;12665:131;;1251:24124;;;;;1052:614:22;1251:24124:165;;;;12665:131;1251:24124;12665:131;1251:24124;12665:131;;;;;;;;;;12705:70;1251:24124;;;;;;;;12665:131;;;;;;:::i;:::-;1251:24124;;12665:131;;;;1251:24124;;;;;;;;;12665:131;1251:24124;;;12705:70;;;1300:150:170;;;;1052:614:22;;;;1251:24124:165;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;6963:22;-1:-1:-1;;;;;;;;;;;1251:24124:165;6963:22;1251:24124;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;1944:72:37;;:::i;:::-;12006:11:165;;:16;1251:24124;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;12102:19;;1251:24124;12102:38;1251:24124;;12195:19;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;;12392:32;;;1251:24124;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;:::i;:::-;;;;:::i;:::-;1944:72:37;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24124:165;15696:19;;;1251:24124;15696:38;1251:24124;;;;;15789:19;;;1251:24124;;;;;;;;;;;;;;15827:24;15789:62;1251:24124;;3543:209:25;1251:24124:165;3543:209:25;1251:24124:165;;;3543:209:25;1251:24124:165;;3543:209:25;1251:24124:165;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;441:6:169;1052:614:22;1251:24124:165;1052:614:22;654:66:169;4093:83:22;;764:66:169;1251:24124:165;4093:83:22;;;874:66:169;1251:24124:165;4093:83:22;;;984:66:169;976:6;4093:83:22;;;1094:66:169;1251:24124:165;4093:83:22;;;1204:66:169;1196:6;4093:83:22;;;1314:66:169;1306:6;4093:83:22;;;1424:66:169;1251:24124:165;4093:83:22;;;1534:66:169;1526:6;4093:83:22;;;1644:66:169;1636:6;4093:83:22;;;1754:66:169;1746:6;4093:83:22;;;1864:66:169;1856:6;4093:83:22;;;1974:66:169;1966:6;4093:83:22;;;2084:66:169;2076:6;4093:83:22;;;2194:66:169;2186:6;4093:83:22;;;2304:66:169;2296:6;4093:83:22;;;2414:66:169;2406:6;4093:83:22;;;2524:66:169;2516:6;4093:83:22;;;2634:66:169;2626:6;4093:83:22;;;16249:4:165;976:6:169;1251:24124:165;2782:66:169;2781:107;2761:6;4093:83:22;;;3042:66:169;16249:4:165;1196:6:169;1251:24124:165;2980:129:169;2958:6;4093:83:22;;;3164:66:169;;;3156:6;4093:83:22;;;1251:24124:165;3242:150:169;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;16272:28;;;1251:24124;;;;;;;;16329:33;;1251:24124;;16329:35;;;:::i;:::-;1251:24124;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;16380:32;;1251:24124;;16380:32;-1:-1:-1;;;;;;1251:24124:165;;1052:614:22;;13188:10:165;;13151:70;;13111:133;;;;;1251:24124;;-1:-1:-1;;;13111:133:165;;-1:-1:-1;;;;;1251:24124:165;;;;13111:133;;1251:24124;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;-1:-1:-1;13111:133:165;;;;;;;;1251:24124;13111:133;;;13151:70;1251:24124;;;;;;;13111:133;1251:24124;13111:133;;;:::i;:::-;1251:24124;13111:133;;;1251:24124;;;;;;;;;13151:70;;;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;11051:42;-1:-1:-1;;;;;;;;;;;1251:24124:165;11051:42;1251:24124;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;:::-;;;;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;:::-;-1:-1:-1;;;;;1251:24124:165;;;;;;-1:-1:-1;;1251:24124:165;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;-1:-1:-1;;1251:24124:165;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:614:22;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1251:24124:165;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;987:1:171;;;;;;;;;;;1251:24124:165;;;;:::i;:::-;987:1:171;;;1251:24124:165;;;987:1:171;;;1251:24124:165;987:1:171;;;:::o;:::-;-1:-1:-1;;;;;987:1:171;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1251:24124:165;;;;;;;:::i;:::-;987:1:171;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1251:24124:165;;;;;:::i;:::-;987:1:171;;;;;;;;1251:24124:165;;;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;:::o;:::-;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;8133:375::-;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24124:165;15219:15:171;15198:37;;:::i;:::-;8385:22:165;;;1251:24124;8337:22;;;;;;8490:11;;;;1251:24124;8133:375;:::o;8361:3::-;8408:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1251:24124:165;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;8384:39;8380:90;;1251:24124;;8322:13;;8380:90;8443:12;;;;1251:24124;8443:12;:::o;1251:24124::-;;;;;;;:::i;:::-;-1:-1:-1;1251:24124:165;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1251:24124:165;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1251:24124:165;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1251:24124:165;;-1:-1:-1;;;;;;1251:24124:165;;;;;;;-1:-1:-1;;;;;1251:24124:165;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1251:24124:165;;3509:1:29;3534:31;2709:128:37;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;1251:24124:165;-1:-1:-1;;1251:24124:165;;;;;;;:::o;2658:162:29:-;-1:-1:-1;;;;;;;;;;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1251:24124:165;;-1:-1:-1;2763:40:29;10706:196:171;1251:24124:165;;:::i;:::-;;;;;;;:::i;:::-;10825:1:171;1251:24124:165;;;10844:12:171;1251:24124:165;10793:102:171;;;1251:24124:165;;10877:15:171;1251:24124:165;;10793:102:171;;1251:24124:165;10706:196:171;:::o;1251:24124:165:-;;;;;;;;;;;;;;;;:::o;22972:1421::-;;;;987:1:171;;23672:25:165;;;;987:1:171;;;1145:66:27;;1837:24:26;;:71;;;;22972:1421:165;1251:24124;;;;;987:1:171;1251:24124:165;;987:1:171;1251:24124:165;;;;;;933:31:173;;1251:24124:165;933:31:173;23672:25:165;933:31:173;;;1251:24124:165;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;933:31:173;;1251:24124:165;;933:31:173;;;;;;:::i;:::-;1003:2074;1251:24124:165;;;1003:2074:173;;23672:25:165;1003:2074:173;;1251:24124:165;;;;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;1003:2074:173;;1251:24124:165;;1003:2074:173;;;;;;:::i;:::-;3088:265;;-1:-1:-1;3088:265:173;-1:-1:-1;;;;;1251:24124:165;;3371:21:173;1251:24124:165;;23832:52;;;1251:24124;;-1:-1:-1;;;;;;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;-1:-1:-1;23995:3:165;23970:16;;;1251:24124;;23966:27;;;;;-1:-1:-1;1251:24124:165;;;23672:25;1251:24124;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;24068:15;;1251:24124;;;;;;;-1:-1:-1;;1251:24124:165;;;;;23951:13;;23966:27;;;;-1:-1:-1;24170:3:165;1251:24124;;24143:25;;;;;1251:24124;;-1:-1:-1;;;;;24210:17:165;1251:24124;24210:17;;:::i;:::-;1251:24124;;;;;;;;-1:-1:-1;1251:24124:165;;24241:15;;1251:24124;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;24128:13;;24143:25;;;23970:16;24295;;1251:24124;;;-1:-1:-1;;;;;1251:24124:165;;;;-1:-1:-1;;;1251:24124:165;;;;;;;;;;;;;;24123:163;1251:24124;23672:25;1251:24124;;-1:-1:-1;1251:24124:165;23672:25;-1:-1:-1;1251:24124:165;-1:-1:-1;1251:24124:165;;;;;;24338:28;;;;;;1251:24124;22972:1421::o;1251:24124::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;23672:25;1251:24124;;;;;;;;;;-1:-1:-1;1251:24124:165;;;23672:25;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;3607:161:173;3727:19;;;-1:-1:-1;;1251:24124:165;;;;;;;;1897:1;4568:807:173;;;1251:24124:165;4568:807:173;1251:24124:165;;4568:807:173;;;;;;;;;;;;;;;3607:161;:::o;9974:518:171:-;10085:12;-1:-1:-1;;1251:24124:165;;;9974:518:171;;1251:24124:165;;;;;;10085:12:171;10125:22;;10085:12;;10125:50;1251:24124:165;10125:50:171;;10209:8;;;;;;10185:278;-1:-1:-1;1251:24124:165;;-1:-1:-1;;9974:518:171:o;10190:17::-;10248:12;;10278:11;;;;;-1:-1:-1;10100:1:171;;-1:-1:-1;;;10309:11:171:o;10274:119::-;10345:8;10341:52;;-1:-1:-1;;1251:24124:165;10190:17:171;;10341:52;10373:5;;10125:50;10154:21;10085:12;;10154:21;:::i;:::-;10125:50;;;1251:24124:165;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;:::o;16450:652::-;;16578:22;;;16611:1;16578:22;;;;:::i;:::-;:34;;;1251:24124;;16655:22;;;;:::i;:::-;:34;;;16651:146;;16851:22;;;:::i;:::-;1251:24124;;;;;;;;;;;;;;;;;;16941:23;;;;;:::i;:::-;1251:24124;;;;;;;;;;22053:2;1251:24124;;;;;;;22099:36;;;;;;:::i;:::-;22145:18;1251:24124;22179:13;1251:24124;;22314:28;1251:24124;;;;;;22314:28;;22174:685;22214:3;22194:18;;;;;;1251:24124;;;;;;;;;;;;;;22343:18;;;:::i;:::-;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;22314:53;1251:24124;;;16578:22;22437:25;;-1:-1:-1;;;;;22437:25:165;;;:::i;:::-;1251:24124;22437:30;;:72;;;22214:3;22433:144;;22214:3;-1:-1:-1;;;;;22624:18:165;;;:::i;:::-;1251:24124;;-1:-1:-1;;;22616:76:165;;22053:2;22616:76;;;1251:24124;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;-1:-1:-1;;;;;1251:24124:165;;;:::i;:::-;;;;;;22053:2;1251:24124;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;;;;;;22053:2;1251:24124;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22053:2;1251:24124;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;18085:51;1251:24124;;;;;;;;;;;;22053:2;1251:24124;;;;;;;;;;;;;;;;;;;;;;;22616:76;;;;;;;22053:2;22616:76;;-1:-1:-1;;;;;22616:76:165;;;;1251:24124;;22616:76;;;;;;;;1251:24124;22616:76;;;1251:24124;4093:83:22;;22053:2:165;4093:83:22;16611:1:165;4093:83:22;;;;1251:24124:165;22214:3;1251:24124;22179:13;;;22616:76;;;22053:2;22616:76;;;;;;;;;1251:24124;22616:76;;;:::i;:::-;;;1251:24124;;;;;16611:1;22616:76;;;;;-1:-1:-1;22616:76:165;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;22053:2;1251:24124;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;:::i;:::-;;22053:2;1251:24124;;;;;;;-1:-1:-1;;1251:24124:165;;;;;;;;;;;;22053:2;1251:24124;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;16578:22;1251:24124;;;:::i;:::-;;;;;;;;;;16578:22;1251:24124;;;;;;;;;;;;;;;;;;22053:2;1251:24124;;;;;;;;16611:1;1251:24124;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16611:1;1251:24124;;;;;;;;;;;22053:2;1251:24124;;;:::i;:::-;;22053:2;1251:24124;;;-1:-1:-1;;;;;1251:24124:165;;;;;:::i;:::-;;;;;;;;;;;;;;22433:144;22537:25;;;;;:::i;:::-;22433:144;;;22437:72;22472:37;;1251:24124;22472:37;;;:::i;:::-;22471:38;22437:72;;22194:18;;;;;;;;;;22053:2;22194:18;;1083:131:25;17000:16:165;;1251:24124;;16981:36;22053:2;1251:24124;;;;;16981:36;1251:24124;3543:209:25;22053:2:165;3543:209:25;1251:24124:165;;3543:209:25;16450:652:165;:::o;16651:146::-;16766:20;;;16773:13;16766:20;:::o;1251:24124::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;18552:1668::-;18682:24;;;18717:1;18682:24;;;;:::i;:::-;:36;;;1251:24124;;18763:24;;;;:::i;:::-;:36;;;18759:148;;18963:24;;;;:::i;:::-;1251:24124;;;;;;;;;;;;;;;;;;19009:21;;;;;19033;19009;;;:::i;:::-;19033;;;1251:24124;19033:21;;;;:::i;:::-;1251:24124;;;19009:45;1251:24124;;;19112:21;;;:::i;:::-;1251:24124;19137:29;;;;1251:24124;19033:21;1251:24124;;;;19112:54;1251:24124;;19323:46;1251:24124;19347:21;19243:46;19267:21;;;;:::i;:::-;1251:24124;19243:46;;:::i;:::-;19347:21;;:::i;:::-;1251:24124;19323:46;;:::i;:::-;-1:-1:-1;1251:24124:165;;;19491:31;;;1251:24124;19554:32;;;;1251:24124;;;;;-1:-1:-1;;;;;1251:24124:165;;;;19653:19;;;;1251:24124;;;;19033:21;;1251:24124;19547:138;19622:62;19033:21;19653:19;;1251:24124;19653:19;:::i;:::-;:31;1251:24124;19622:62;;:::i;:::-;19653:19;1251:24124;;;;;;;;;19547:138;;;;;;1251:24124;;;;;19547:138;;;;;;;1251:24124;19547:138;;;18552:1668;1251:24124;;;;;19653:19;1251:24124;-1:-1:-1;;;19775:185:165;;-1:-1:-1;;;;;1251:24124:165;;;19547:138;19775:185;;1251:24124;;;;;;;;19033:21;19920:26;;;1251:24124;19547:138;1251:24124;;;;19775:185;1251:24124;-1:-1:-1;19775:185:165;;;;;;;;1251:24124;19775:185;;;18552:1668;20061:19;;;;;:::i;:::-;20082:21;;;;:::i;:::-;1251:24124;19653:19;1251:24124;;;;;20012:92;;19653:19;19547:138;20012:92;;1251:24124;;;;;;;;;;;;;;;;;;;;19033:21;1251:24124;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;19554:32;1251:24124;;;;;;;19009:21;19547:138;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;19033:21;1251:24124;;;;;;;;;;;19775:185;1251:24124;;;;19653:19;1052:614:22;1251:24124:165;;;;;;;:::i;:::-;;;;;;;;;;;20012:92;;;;;;;;;1251:24124;20012:92;;;1251:24124;20191:21;;;;:::i;:::-;19653:19;1251:24124;7537:70:171;19033:21:165;7537:70:171;;1251:24124:165;;;19653:19;1251:24124;;;;;;;;;;19009:21;1251:24124;;;7537:70:171;;;;;;;:::i;:::-;1251:24124:165;7527:81:171;;18552:1668:165;:::o;20012:92::-;;;;19033:21;20012:92;;19033:21;20012:92;;;;;;1251:24124;20012:92;;;:::i;:::-;;;1251:24124;;;;;;20191:21;20012:92;;;;;-1:-1:-1;20012:92:165;;1251:24124;;;;;;;19653:19;1251:24124;18717:1;1251:24124;;;;;;;;;:::i;:::-;;;;19033:21;1251:24124;;;19033:21;1251:24124;;;;;;;;;;;;;;;;19775:185;;;;;19033:21;19775:185;;19033:21;19775:185;;;;;;1251:24124;19775:185;;;:::i;:::-;;;1251:24124;;;;;;;20061:19;19775:185;;;;;-1:-1:-1;19775:185:165;;1251:24124;;;;;;19547:138;1251:24124;;19547:138;;;19033:21;19547:138;;19033:21;19547:138;;;;;;19033:21;19547:138;;;:::i;:::-;;;1251:24124;;;;;;;;;;;;19547:138;;;;;;-1:-1:-1;19547:138:165;;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;:::o;20272:1520::-;;20405:27;;;20443:1;20405:27;;;;:::i;:::-;:39;;;1251:24124;;20492:27;;;;:::i;:::-;:39;;;20488:151;;20698:27;;;:::i;:::-;1251:24124;;;;;;;;;;;;;;;;;;20747:22;;;;;;;;:::i;:::-;:33;;;1251:24124;;;20860:29;;;1251:24124;;;;20842:15;:47;:15;;:47;:::i;:::-;20841:72;20893:16;;;1251:24124;20841:72;;;:::i;:::-;20932:20;;;;1251:24124;;20443:1;1251:24124;;;;;;;20932:43;;1251:24124;;21066:43;;21034:75;21066:43;;:::i;:::-;21034:75;;:::i;:::-;21161:25;21146:40;21161:25;;;1251:24124;21146:40;;:::i;:::-;20842:15;21127:59;1251:24124;;21305:34;;;:::i;:::-;20842:15;;1251:24124;21357:28;;1251:24124;21357:46;1251:24124;;;21445:217;21545:45;;;;;987:1:171;;21545:45:165;;;;:::i;:::-;21604:22;;;;;;:::i;:::-;1251:24124;;;987:1:171;1251:24124:165;987:1:171;;:::i;:::-;1251:24124:165;;987:1:171;;:::i;:::-;1251:24124:165;;987:1:171;;:::i;:::-;21445:217:165;;:::i;:::-;21678:47;1251:24124;21545:45;1251:24124;;;;21678:47;1251:24124;;;;;;;21545:45;1251:24124;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21545:45;1251:24124;;;;20747:22;1251:24124;;;7806:30:171;987:1;1251:24124:165;987:1:171;;7856:32;;987:1;1251:24124:165;21545:45;1251:24124;7772:206:171;;;1251:24124:165;7772:206:171;;1251:24124:165;;;21545:45;1251:24124;;;20747:22;1251:24124;;;;;;;;;;;;;;;;-1:-1:-1;;;1251:24124:165;;7772:206:171;;;;;;1251:24124:165;7772:206:171;;;:::i;1251:24124:165:-;;;-1:-1:-1;;;;;1251:24124:165;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;20443:1;1251:24124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11562:3508:171;;;;;;1251:24124:165;18017:29:171;;;1251:24124:165;;;;18049:22:171;11877:15;18049:22;;:::i;:::-;18017:77;18049:45;18074:16;;;1251:24124:165;18049:45:171;;;:::i;:::-;18017:77;;:::i;:::-;11907:15;;;;;;:82;;11562:3508;11903:676;;;12013:35;;;1251:24124:165;;12098:25:171;;;;:::i;:::-;:39;1251:24124:165;;12621:24:171;11903:676;;12621:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1251:24124:165;3226:200:80;12686:4:171;3226:200:80;;18017:29:171;3226:200:80;18074:16:171;3226:200:80;;1251:24124:165;3226:200:80;1251:24124:165;18017:29:171;1251:24124:165;;;;;12749:37:171;;;12810:23;;18017:19;12810:23;;1251:24124:165;;;;;;;987:1:171;1251:24124:165;;:::i;:::-;987:1:171;;;:::i;:::-;1251:24124:165;3226:200:80;1251:24124:165;;12941:23:171;1251:24124:165;;13131:240:171;1251:24124:165;13648:272:171;13131:240;;;3226:200:80;13131:240:171;;;;;;;1251:24124:165;18017:19:171;1251:24124:165;;13737:32:171;;1251:24124:165;13648:272:171;;:::i;1251:24124:165:-;;;;;;;;;;;;;;;;;;12745:2296:171;1251:24124:165;;;18017:19:171;13941:37;13937:1104;;12745:2296;;;;;1251:24124:165;11562:3508:171;:::o;13937:1104::-;14014:199;14051:15;14091:25;14051:15;;;;;1251:24124:165;14091:25:171;;1251:24124:165;;-1:-1:-1;;;;;1251:24124:165;;;;;14014:199:171;;:::i;:::-;14228:27;1251:24124:165;14275:13:171;14471:14;1251:24124:165;14471:14:171;;14270:734;14314:3;14290:22;;;;;;3927:8:77;3871:27;987:1:171;1251:24124:165;;;;;;;;:::i;987:1:171:-;3871:27:77;;:::i;:::-;3927:8;;;;;:::i;:::-;-1:-1:-1;;;;;1251:24124:165;;;;;;;;;;;;;;;;14467:523:171;;14314:3;;18017:19;14314:3;14275:13;1251:24124:165;14275:13:171;;14467:523;-1:-1:-1;;;;;2780:163:73;1251:24124:165;2780:163:73;;;1765:66:165;1251:24124;2780:163:73;;;;3327:69:76;;14635:50:171;;;14713:8;18017:19;14713:8;;;14631:223;3556:68:76;18017:19:171;14880:17;3556:68:76;;;14880:17:171;:::i;:::-;:30;;;;14876:96;;14467:523;;;14876:96;14938:11;;;;;;;18017:19;14938:11;:::o;14290:22::-;;;;;;;;1251:24124:165;15018:12:171;:::o;1251:24124:165:-;;;;;;;;;;;;;;;;;;11903:676:171;11877:15;;;;;;12372:21;;1251:24124:165;;12621:24:171;12430:69;;;11903:676;;;;12430:69;12469:15;;12430:69;;;1251:24124:165;;;;;;;;;11907:82:171;11957:32;11944:45;11957:32;;;1251:24124:165;11944:45:171;;:::i;:::-;11877:15;11926:63;11907:82;;17265:446;-1:-1:-1;;;;;17265:446:171;;1251:24124:165;;;;17564:24:171;;;;:::i;:::-;1251:24124:165;;;;;;17676:5:171;1251:24124:165;;17689:1:171;1251:24124:165;17265:446:171;:::o;15833:312::-;;15956:37;15833:312;15956:37;;:::i;:::-;;;;16016;;16009:44;:::o;15952:187::-;16091:37;;16084:44;:::o;7082:141:30:-;1251:24124:165;-1:-1:-1;;;;;;;;;;;1251:24124:165;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;1251:24124:165;;-1:-1:-1;;;;;1251:24124:165;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1251:24124:165;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;17717:179:171:-;17869:16;17831:34;17830:59;17717:179;1251:24124:165;17836:29:171;;;1251:24124:165;;;;17831:34:171;;:::i;:::-;17869:16;;1251:24124:165;17830:59:171;;:::i;15388:322::-;15508:50;15542:15;15508:50;;:::i;:::-;15542:15;;;15581:37;;15574:44;:::o;15504:200::-;15656:37;;15649:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;1251:24124:165;4010:31:20;;;:::i;:::-;1251:24124:165;425:3:20;1251:24124:165;;;4003:1:27;2933;2929:5;;1251:24124:165;425:3:20;4492:84:22;;;4093:83;1251:24124:165;4093:83:22;;;4003:1:27;1251:24124:165;;;4492:84:22;;;1251:24124:165;4093:83:22;;;;;1251:24124:165;4093:83:22;;;1581:66:20;1251:24124:165;4093:83:22;;;-1:-1:-1;;;1251:24124:165;4093:83:22;;;531:131:25;;1251:24124:165;4093:83:22;;;;;;4003:1:27;1251:24124:165;4492:84:22;;2933:1:27;4492:84:22;;1251:24124:165;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;1251:24124:165;1145:66:27;;531:131:25;;6084:3:20;1251:24124:165;-1:-1:-1;;;;;1251:24124:165;;;6084:3:20;1251:24124:165;;6062:44:20;1145:66:27;;;1860::20;1052:614:22;1860:66:20;;1251:24124:165;6037:2:20;1251:24124:165;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1251:24124:165;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1251:24124:165;4093:83:22;;1251:24124:165;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1251:24124:165;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1251:24124:165;1640:140:24;3543:209:25;1251:24124:165;3543:209:25;648:2:20;3543:209:25;1052:614:22;1251:24124:165;;;;6037:2:20;1251:24124:165;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1251:24124:165;8070:12:20;:::o;18107:424:171:-;1251:24124:165;;:::i;:::-;-1:-1:-1;18368:51:171;;;1251:24124:165;18486:27:171;;;1251:24124:165;;;;;;;;18439:15:171;;-1:-1:-1;;;;;1251:24124:165;;;;:::i;:::-;;;;:::i;:::-;;;18227:297:171;;;1251:24124:165;18439:15:171;1251:24124:165;:::i;:::-;;18227:297:171;;1251:24124:165;18227:297:171;;;1251:24124:165;18107:424:171;:::o;16432:827::-;;16642:54;16564;;;1251:24124:165;16642:54:171;;1251:24124:165;16770:10:171;;;1251:24124:165;;16841:9:171;;;;16873;;;;;16905;;;17006:14;;;;;16432:827;1251:24124:165;;;17222:30:171;;;17215:37;;16432:827;:::o;17222:30::-;17237:14;;16432:827;-1:-1:-1;16432:827:171:o;1251:24124:165:-;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;17006:14:171;;;;;1251:24124:165;;;;-1:-1:-1;1251:24124:165;;-1:-1:-1;1251:24124:165;2129:778:77;1251:24124:165;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;7280:532::-;1251:24124:165;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1251:24124:165;7462:38:77;;1251:24124:165;;7523:23:77;;;7375:20;7523:23;1251:24124:165;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1251:24124:165;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1251:24124:165;;;7375:20:77;7763:32;1767:250:27;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1251:24124:165;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1251:24124:165;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1251:24124:165;;;;4933:24:66;1251:24124:165;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;5203:1551:77;;;6283:66;6270:79;;6266:164;;1251:24124:165;;;;;;-1:-1:-1;1251:24124:165;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1251:24124:165;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{},"immutableReferences":{"45417":[{"start":7001,"length":32},{"start":7148,"length":32}]}},"methodIdentifiers":{"COMMIT_BATCH_AFTER_COMMIT_CODES()":"4429e24b","COMMIT_BATCH_BEFORE_COMMIT_CODES()":"ad2b3d9a","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"b24fcac0","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32)":"120e3f1e","setMirror(address)":"3d43b418","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"AnnouncesCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic0\",\"type\":\"uint256\"}],\"name\":\"DebugEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COMMIT_BATCH_AFTER_COMMIT_CODES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMMIT_BATCH_BEFORE_COMMIT_CODES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AnnouncesCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch keccak256 hash, see Gear.batchCommitmentHash.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated.\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, represented as a Blake2 hash.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program.\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AnnouncesCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its CodeStatus changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Router.sol\":\"Router\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626\",\"dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852\",\"dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/Router.sol\":{\"keccak256\":\"0xb0d92deebae948befe784aba8164e1792b0a30bb472111ce4d0e11e7634dca44\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://bde5c105d4cb17b885963de182c59e2e253f7cc1d463f7591a039caef1834954\",\"dweb:/ipfs/QmVm8gvxrQDw5warW7Rp3mKfC76Q6kASX7SjkNbuxFFWhN\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0x2ef3c9aa3b631e8623d0534ba8c4af94491eccae529cd326a43a1f394f7a688e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://305de5d415d10c219ed462a61cb6cdcc03ea36e67f1a8986bd3320f69225c052\",\"dweb:/ipfs/QmNarW2MSLJqCE9fzuVzFUY4HNgj5X42nqVbDZwpGA2o9h\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x169033917f7ee921a663c120122b572c5475ff083b75950a0178eb9476e3d9e3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f526d9f9bbd11b0210da6019531b070b54a059f9018c52cab268df46a5b52f6d\",\"dweb:/ipfs/QmSa1evQuouSyjePKryKr5p1cKQSv6Eh9hX3oFJyuQAo2a\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0x298f0408da388ed3c18e8ef5e6ecc3165c6c3a23c595f77986797f66495d07f3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5e146d38b37999363e3eed56edf4a9f49efb4504ec2cdf03e5bd1b75a8902fe9\",\"dweb:/ipfs/QmT1iZKV1YGQVUTk6ChqYcuajLmeEdaPhdEnB9MLopYpfh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"inputs":[],"type":"error","name":"DeploymentFailed"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"AnnouncesCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"topic0","type":"uint256","indexed":true}],"type":"event","name":"DebugEvent","anonymous":true},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMIT_BATCH_AFTER_COMMIT_CODES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"storageView()":{"details":"Returns the storage view of the contract storage."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/Router.sol":"Router"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca","urls":["bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626","dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0","urls":["bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852","dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/Router.sol":{"keccak256":"0xb0d92deebae948befe784aba8164e1792b0a30bb472111ce4d0e11e7634dca44","urls":["bzz-raw://bde5c105d4cb17b885963de182c59e2e253f7cc1d463f7591a039caef1834954","dweb:/ipfs/QmVm8gvxrQDw5warW7Rp3mKfC76Q6kASX7SjkNbuxFFWhN"],"license":"UNLICENSED"},"src/libraries/Clones.sol":{"keccak256":"0x2ef3c9aa3b631e8623d0534ba8c4af94491eccae529cd326a43a1f394f7a688e","urls":["bzz-raw://305de5d415d10c219ed462a61cb6cdcc03ea36e67f1a8986bd3320f69225c052","dweb:/ipfs/QmNarW2MSLJqCE9fzuVzFUY4HNgj5X42nqVbDZwpGA2o9h"],"license":"UNLICENSED"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x169033917f7ee921a663c120122b572c5475ff083b75950a0178eb9476e3d9e3","urls":["bzz-raw://f526d9f9bbd11b0210da6019531b070b54a059f9018c52cab268df46a5b52f6d","dweb:/ipfs/QmSa1evQuouSyjePKryKr5p1cKQSv6Eh9hX3oFJyuQAo2a"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/SSTORE2.sol":{"keccak256":"0x298f0408da388ed3c18e8ef5e6ecc3165c6c3a23c595f77986797f66495d07f3","urls":["bzz-raw://5e146d38b37999363e3eed56edf4a9f49efb4504ec2cdf03e5bd1b75a8902fe9","dweb:/ipfs/QmT1iZKV1YGQVUTk6ChqYcuajLmeEdaPhdEnB9MLopYpfh"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/Router.sol","id":80657,"exportedSymbols":{"Clones":[84707],"ClonesSmall":[84788],"FROST":[40289],"Gear":[85973],"Hashes":[40807],"IERC20":[46160],"IMiddleware":[73432],"IMirror":[73658],"IRouter":[74052],"Memory":[40581],"OwnableUpgradeable":[41646],"PausableUpgradeable":[43182],"ReentrancyGuardTransientUpgradeable":[43267],"Router":[80656],"SSTORE2":[86395],"SlotDerivation":[48289],"StorageSlot":[48413],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:25337:165","nodes":[{"id":78462,"nodeType":"PragmaDirective","src":"39:24:165","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":78464,"nodeType":"ImportDirective","src":"65:101:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":78463,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"73:18:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78466,"nodeType":"ImportDirective","src":"167:102:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":43183,"symbolAliases":[{"foreign":{"id":78465,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"175:19:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78468,"nodeType":"ImportDirective","src":"270:140:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":78467,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"283:35:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78470,"nodeType":"ImportDirective","src":"411:88:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":78469,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"419:15:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78472,"nodeType":"ImportDirective","src":"500:70:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":46161,"symbolAliases":[{"foreign":{"id":78471,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46160,"src":"508:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78474,"nodeType":"ImportDirective","src":"571:80:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":78473,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"579:14:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78476,"nodeType":"ImportDirective","src":"652:74:165","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":78475,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"660:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78478,"nodeType":"ImportDirective","src":"727:52:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":40290,"symbolAliases":[{"foreign":{"id":78477,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"735:5:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78480,"nodeType":"ImportDirective","src":"780:60:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":40582,"symbolAliases":[{"foreign":{"id":78479,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"788:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78482,"nodeType":"ImportDirective","src":"841:73:165","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":40808,"symbolAliases":[{"foreign":{"id":78481,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"849:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78484,"nodeType":"ImportDirective","src":"915:48:165","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":78483,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"923:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78486,"nodeType":"ImportDirective","src":"964:40:165","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":78485,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"972:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78488,"nodeType":"ImportDirective","src":"1005:40:165","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":78487,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"1013:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78490,"nodeType":"ImportDirective","src":"1046:48:165","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":84708,"symbolAliases":[{"foreign":{"id":78489,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84707,"src":"1054:6:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78492,"nodeType":"ImportDirective","src":"1095:58:165","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":84789,"symbolAliases":[{"foreign":{"id":78491,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84788,"src":"1103:11:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78494,"nodeType":"ImportDirective","src":"1154:44:165","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":85974,"symbolAliases":[{"foreign":{"id":78493,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"1162:4:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78496,"nodeType":"ImportDirective","src":"1199:50:165","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":80657,"sourceUnit":86396,"symbolAliases":[{"foreign":{"id":78495,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"1207:7:165","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80656,"nodeType":"ContractDefinition","src":"1251:24124:165","nodes":[{"id":78509,"nodeType":"VariableDeclaration","src":"1501:106:165","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1526:12:165","scope":80656,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78507,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1501:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":78508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1541:66:165","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":78512,"nodeType":"VariableDeclaration","src":"1720:111:165","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"1745:17:165","scope":80656,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1720:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":78511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1765:66:165","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":78515,"nodeType":"VariableDeclaration","src":"1838:60:165","nodes":[],"constant":true,"functionSelector":"ad2b3d9a","mutability":"constant","name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","nameLocation":"1862:32:165","scope":80656,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78513,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":78514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1897:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":78518,"nodeType":"VariableDeclaration","src":"1904:59:165","nodes":[],"constant":true,"functionSelector":"4429e24b","mutability":"constant","name":"COMMIT_BATCH_AFTER_COMMIT_CODES","nameLocation":"1928:31:165","scope":80656,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78516,"name":"uint256","nodeType":"ElementaryTypeName","src":"1904:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":78517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1962:1:165","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":78522,"nodeType":"EventDefinition","src":"1970:51:165","nodes":[],"anonymous":true,"eventSelector":"e6fc1df15bb41e2a123ea1d440db6747be3ed04da67b92ac280ad10a97b799d8","name":"DebugEvent","nameLocation":"1976:10:165","parameters":{"id":78521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78520,"indexed":true,"mutability":"mutable","name":"topic0","nameLocation":"2003:6:165","nodeType":"VariableDeclaration","scope":78522,"src":"1987:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78519,"name":"uint256","nodeType":"ElementaryTypeName","src":"1987:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1986:24:165"}},{"id":78530,"nodeType":"FunctionDefinition","src":"2080:53:165","nodes":[],"body":{"id":78529,"nodeType":"Block","src":"2094:39:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78526,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"2104:20:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2104:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78528,"nodeType":"ExpressionStatement","src":"2104:22:165"}]},"documentation":{"id":78523,"nodeType":"StructuredDocumentation","src":"2027:48:165","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":78524,"nodeType":"ParameterList","parameters":[],"src":"2091:2:165"},"returnParameters":{"id":78525,"nodeType":"ParameterList","parameters":[],"src":"2094:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78683,"nodeType":"FunctionDefinition","src":"2139:1930:165","nodes":[],"body":{"id":78682,"nodeType":"Block","src":"2554:1515:165","nodes":[],"statements":[{"expression":{"arguments":[{"id":78558,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78532,"src":"2579:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78557,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2564:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2564:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78560,"nodeType":"ExpressionStatement","src":"2564:22:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78561,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43086,"src":"2596:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2596:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78563,"nodeType":"ExpressionStatement","src":"2596:17:165"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78564,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"2623:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2623:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78566,"nodeType":"ExpressionStatement","src":"2623:33:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78568,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2781:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":78569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2787:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"2781:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2781:19:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78572,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73789,"src":"2802:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2802:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78567,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2773:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2773:48:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78575,"nodeType":"ExpressionStatement","src":"2773:48:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78577,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78542,"src":"2839:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":78578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2839:21:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78580,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"2862:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2862:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78576,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2831:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78583,"nodeType":"ExpressionStatement","src":"2831:57:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78585,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"2906:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":78586,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78542,"src":"2921:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2906:32:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78588,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"2940:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2940:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2898:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2898:64:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78591,"nodeType":"ExpressionStatement","src":"2898:64:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78593,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78544,"src":"3131:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78594,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"3151:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78595,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78542,"src":"3166:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3151:32:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":78597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3150:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":78598,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3187:2:165","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"3150:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3131:58:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":78601,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"3191:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3191:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":78592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3123:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":78603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3123:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78604,"nodeType":"ExpressionStatement","src":"3123:92:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":78606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3242:25:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":78605,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80597,"src":"3226:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3226:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78608,"nodeType":"ExpressionStatement","src":"3226:42:165"},{"assignments":[78611],"declarations":[{"constant":false,"id":78611,"mutability":"mutable","name":"router","nameLocation":"3294:6:165","nodeType":"VariableDeclaration","scope":78682,"src":"3278:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78610,"nodeType":"UserDefinedTypeName","pathNode":{"id":78609,"name":"Storage","nameLocations":["3278:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"3278:7:165"},"referencedDeclaration":73741,"src":"3278:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78614,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78612,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"3303:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3303:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3278:34:165"},{"expression":{"id":78621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78615,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3323:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3330:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"3323:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78618,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3345:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3350:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":85402,"src":"3345:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$84985_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":78620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3345:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"3323:39:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78622,"nodeType":"ExpressionStatement","src":"3323:39:165"},{"expression":{"id":78632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78623,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3372:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78625,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3379:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"3372:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78628,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78534,"src":"3412:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78629,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78536,"src":"3421:12:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78630,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78538,"src":"3435:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78626,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3395:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3400:11:165","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":84878,"src":"3395:16:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$84878_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":78631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3395:52:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"3372:75:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78633,"nodeType":"ExpressionStatement","src":"3372:75:165"},{"expression":{"id":78641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78634,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3457:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3464:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3457:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3483:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"3457:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78639,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3504:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3509:30:165","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":84820,"src":"3504:35:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3457:82:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78642,"nodeType":"ExpressionStatement","src":"3457:82:165"},{"expression":{"id":78650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78643,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3549:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3556:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3549:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3575:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"3549:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78648,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3598:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3603:32:165","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":84823,"src":"3598:37:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3549:86:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78651,"nodeType":"ExpressionStatement","src":"3549:86:165"},{"expression":{"id":78658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78652,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3645:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78654,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3652:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"3645:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78655,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3670:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3675:26:165","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":85378,"src":"3670:31:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$84978_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":78657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3670:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"3645:58:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":78659,"nodeType":"ExpressionStatement","src":"3645:58:165"},{"expression":{"id":78669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78660,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3713:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78662,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3720:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"3713:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78665,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78540,"src":"3747:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78666,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78542,"src":"3761:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78667,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78544,"src":"3780:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78663,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3732:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3737:9:165","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":85047,"src":"3732:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$85047_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":78668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3732:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"3713:84:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":78670,"nodeType":"ExpressionStatement","src":"3713:84:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":78672,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78611,"src":"3879:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3886:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3879:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3905:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85054,"src":"3879:37:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"}},{"id":78675,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78547,"src":"3930:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":78676,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78549,"src":"3964:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":78677,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78552,"src":"4012:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":78678,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4037:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":78679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4043:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"4037:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78671,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"3849:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$84860_storage_ptr_$_t_struct$_AggregatedPublicKey_$84845_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":78680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3849:213:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78681,"nodeType":"ExpressionStatement","src":"3849:213:165"}]},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":78555,"kind":"modifierInvocation","modifierName":{"id":78554,"name":"initializer","nameLocations":["2542:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"2542:11:165"},"nodeType":"ModifierInvocation","src":"2542:11:165"}],"name":"initialize","nameLocation":"2148:10:165","parameters":{"id":78553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78532,"mutability":"mutable","name":"_owner","nameLocation":"2176:6:165","nodeType":"VariableDeclaration","scope":78683,"src":"2168:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78531,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78534,"mutability":"mutable","name":"_mirror","nameLocation":"2200:7:165","nodeType":"VariableDeclaration","scope":78683,"src":"2192:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78533,"name":"address","nodeType":"ElementaryTypeName","src":"2192:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78536,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2225:12:165","nodeType":"VariableDeclaration","scope":78683,"src":"2217:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78535,"name":"address","nodeType":"ElementaryTypeName","src":"2217:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78538,"mutability":"mutable","name":"_middleware","nameLocation":"2255:11:165","nodeType":"VariableDeclaration","scope":78683,"src":"2247:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78537,"name":"address","nodeType":"ElementaryTypeName","src":"2247:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78540,"mutability":"mutable","name":"_eraDuration","nameLocation":"2284:12:165","nodeType":"VariableDeclaration","scope":78683,"src":"2276:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78539,"name":"uint256","nodeType":"ElementaryTypeName","src":"2276:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78542,"mutability":"mutable","name":"_electionDuration","nameLocation":"2314:17:165","nodeType":"VariableDeclaration","scope":78683,"src":"2306:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78541,"name":"uint256","nodeType":"ElementaryTypeName","src":"2306:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78544,"mutability":"mutable","name":"_validationDelay","nameLocation":"2349:16:165","nodeType":"VariableDeclaration","scope":78683,"src":"2341:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78543,"name":"uint256","nodeType":"ElementaryTypeName","src":"2341:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78547,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"2409:20:165","nodeType":"VariableDeclaration","scope":78683,"src":"2375:54:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":78546,"nodeType":"UserDefinedTypeName","pathNode":{"id":78545,"name":"Gear.AggregatedPublicKey","nameLocations":["2375:4:165","2380:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":84845,"src":"2375:24:165"},"referencedDeclaration":84845,"src":"2375:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":78549,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"2454:34:165","nodeType":"VariableDeclaration","scope":78683,"src":"2439:49:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":78548,"name":"bytes","nodeType":"ElementaryTypeName","src":"2439:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":78552,"mutability":"mutable","name":"_validators","nameLocation":"2517:11:165","nodeType":"VariableDeclaration","scope":78683,"src":"2498:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78550,"name":"address","nodeType":"ElementaryTypeName","src":"2498:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78551,"nodeType":"ArrayTypeName","src":"2498:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2158:376:165"},"returnParameters":{"id":78556,"nodeType":"ParameterList","parameters":[],"src":"2554:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78789,"nodeType":"FunctionDefinition","src":"4127:1720:165","nodes":[],"body":{"id":78788,"nodeType":"Block","src":"4185:1662:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78693,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"4210:5:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":78694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4210:7:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78692,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"4195:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4195:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78696,"nodeType":"ExpressionStatement","src":"4195:23:165"},{"assignments":[78699],"declarations":[{"constant":false,"id":78699,"mutability":"mutable","name":"oldRouter","nameLocation":"4245:9:165","nodeType":"VariableDeclaration","scope":78788,"src":"4229:25:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78698,"nodeType":"UserDefinedTypeName","pathNode":{"id":78697,"name":"Storage","nameLocations":["4229:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"4229:7:165"},"referencedDeclaration":73741,"src":"4229:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78702,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78700,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"4257:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4257:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4229:37:165"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":78704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4293:25:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":78703,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80597,"src":"4277:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":78705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4277:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78706,"nodeType":"ExpressionStatement","src":"4277:42:165"},{"assignments":[78709],"declarations":[{"constant":false,"id":78709,"mutability":"mutable","name":"newRouter","nameLocation":"4345:9:165","nodeType":"VariableDeclaration","scope":78788,"src":"4329:25:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78708,"nodeType":"UserDefinedTypeName","pathNode":{"id":78707,"name":"Storage","nameLocations":["4329:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"4329:7:165"},"referencedDeclaration":73741,"src":"4329:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78712,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78710,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"4357:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4357:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4329:37:165"},{"expression":{"id":78719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78713,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"4418:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4428:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"4418:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78716,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"4443:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4448:10:165","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":85402,"src":"4443:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$84985_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":78718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4443:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"4418:42:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78720,"nodeType":"ExpressionStatement","src":"4418:42:165"},{"expression":{"id":78726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78721,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"4586:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4596:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"4586:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78724,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"4612:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4622:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"4612:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"src":"4586:49:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78727,"nodeType":"ExpressionStatement","src":"4586:49:165"},{"expression":{"id":78736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78728,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"4710:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4720:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4710:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4739:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"4710:47:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":78733,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"4760:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4770:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4760:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4789:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"4760:47:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4710:97:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78737,"nodeType":"ExpressionStatement","src":"4710:97:165"},{"expression":{"id":78746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":78738,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"4817:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4827:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4817:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4846:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"4817:49:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":78743,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"4869:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4879:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4869:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78745,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4898:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"4869:49:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4817:101:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":78747,"nodeType":"ExpressionStatement","src":"4817:101:165"},{"expression":{"arguments":[{"expression":{"expression":{"id":78749,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"5228:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5238:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"5228:28:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":78751,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5257:11:165","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85054,"src":"5228:40:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"}},{"expression":{"arguments":[{"id":78754,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"5308:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78752,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"5282:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5287:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"5282:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5282:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5319:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84848,"src":"5282:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"arguments":[{"expression":{"arguments":[{"id":78761,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"5391:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78759,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"5365:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5370:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"5365:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5365:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5402:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":84850,"src":"5365:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78757,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"5352:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$86395_$","typeString":"type(library SSTORE2)"}},"id":78758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5360:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":86319,"src":"5352:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":78764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5352:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"arguments":[{"id":78767,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"5483:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78765,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"5457:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5462:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"5457:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5457:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5494:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"5457:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":78770,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5512:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":78771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5518:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"5512:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78748,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"5198:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$84860_storage_ptr_$_t_struct$_AggregatedPublicKey_$84845_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":78772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5198:339:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78773,"nodeType":"ExpressionStatement","src":"5198:339:165"},{"expression":{"id":78779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78774,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"5606:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78776,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5616:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"5606:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78777,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"5634:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78778,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5644:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"5634:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"src":"5606:53:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":78780,"nodeType":"ExpressionStatement","src":"5606:53:165"},{"expression":{"id":78786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78781,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78709,"src":"5717:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5727:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"5717:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78784,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78699,"src":"5739:9:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5749:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"5739:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"src":"5717:41:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":78787,"nodeType":"ExpressionStatement","src":"5717:41:165"}]},"documentation":{"id":78684,"nodeType":"StructuredDocumentation","src":"4075:47:165","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":78687,"kind":"modifierInvocation","modifierName":{"id":78686,"name":"onlyOwner","nameLocations":["4158:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"4158:9:165"},"nodeType":"ModifierInvocation","src":"4158:9:165"},{"arguments":[{"hexValue":"32","id":78689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4182:1:165","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78690,"kind":"modifierInvocation","modifierName":{"id":78688,"name":"reinitializer","nameLocations":["4168:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"4168:13:165"},"nodeType":"ModifierInvocation","src":"4168:16:165"}],"name":"reinitialize","nameLocation":"4136:12:165","parameters":{"id":78685,"nodeType":"ParameterList","parameters":[],"src":"4148:2:165"},"returnParameters":{"id":78691,"nodeType":"ParameterList","parameters":[],"src":"4185:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78799,"nodeType":"FunctionDefinition","src":"6012:84:165","nodes":[],"body":{"id":78798,"nodeType":"Block","src":"6094:2:165","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":78790,"nodeType":"StructuredDocumentation","src":"5853:154:165","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":78796,"kind":"modifierInvocation","modifierName":{"id":78795,"name":"onlyOwner","nameLocations":["6084:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"6084:9:165"},"nodeType":"ModifierInvocation","src":"6084:9:165"}],"name":"_authorizeUpgrade","nameLocation":"6021:17:165","overrides":{"id":78794,"nodeType":"OverrideSpecifier","overrides":[],"src":"6075:8:165"},"parameters":{"id":78793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78792,"mutability":"mutable","name":"newImplementation","nameLocation":"6047:17:165","nodeType":"VariableDeclaration","scope":78799,"src":"6039:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78791,"name":"address","nodeType":"ElementaryTypeName","src":"6039:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6038:27:165"},"returnParameters":{"id":78797,"nodeType":"ParameterList","parameters":[],"src":"6094:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78844,"nodeType":"FunctionDefinition","src":"6182:700:165","nodes":[],"body":{"id":78843,"nodeType":"Block","src":"6246:636:165","nodes":[],"statements":[{"assignments":[78808],"declarations":[{"constant":false,"id":78808,"mutability":"mutable","name":"router","nameLocation":"6272:6:165","nodeType":"VariableDeclaration","scope":78843,"src":"6256:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":78807,"nodeType":"UserDefinedTypeName","pathNode":{"id":78806,"name":"Storage","nameLocations":["6256:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"6256:7:165"},"referencedDeclaration":73741,"src":"6256:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":78811,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78809,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"6281:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6281:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6256:34:165"},{"assignments":[78816],"declarations":[{"constant":false,"id":78816,"mutability":"mutable","name":"validationSettings","nameLocation":"6335:18:165","nodeType":"VariableDeclaration","scope":78843,"src":"6300:53:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":78815,"nodeType":"UserDefinedTypeName","pathNode":{"id":78814,"name":"Gear.ValidationSettingsView","nameLocations":["6300:4:165","6305:22:165"],"nodeType":"IdentifierPath","referencedDeclaration":85069,"src":"6300:27:165"},"referencedDeclaration":85069,"src":"6300:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":78822,"initialValue":{"arguments":[{"expression":{"id":78819,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6368:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6375:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"6368:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":78817,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"6356:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6361:6:165","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"6356:11:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$85058_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$85069_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":78821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6356:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"6300:94:165"},{"expression":{"arguments":[{"expression":{"id":78824,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6451:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6458:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6451:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":78826,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6506:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78827,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6513:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"6506:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":78828,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6562:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6569:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"6562:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":78830,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78816,"src":"6616:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":78831,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6665:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78832,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6672:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"6665:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":78833,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6712:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78834,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6719:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"6712:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":78835,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6757:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78836,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6764:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"6757:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":78837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6777:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85010,"src":"6757:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":78838,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78808,"src":"6825:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6832:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"6825:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":78840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6845:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85012,"src":"6825:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78823,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"6411:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$73708_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":78841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6437:12:165","6484:20:165","6547:13:165","6596:18:165","6648:15:165","6701:9:165","6742:13:165","6804:19:165"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount"],"nodeType":"FunctionCall","src":"6411:464:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":78805,"id":78842,"nodeType":"Return","src":"6404:471:165"}]},"documentation":{"id":78800,"nodeType":"StructuredDocumentation","src":"6119:58:165","text":"@dev Returns the storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"6191:11:165","parameters":{"id":78801,"nodeType":"ParameterList","parameters":[],"src":"6202:2:165"},"returnParameters":{"id":78805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78844,"src":"6226:18:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":78803,"nodeType":"UserDefinedTypeName","pathNode":{"id":78802,"name":"StorageView","nameLocations":["6226:11:165"],"nodeType":"IdentifierPath","referencedDeclaration":73708,"src":"6226:11:165"},"referencedDeclaration":73708,"src":"6226:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"6225:20:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78855,"nodeType":"FunctionDefinition","src":"6888:109:165","nodes":[],"body":{"id":78854,"nodeType":"Block","src":"6946:51:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78849,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"6963:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6963:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6973:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6963:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6986:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"6963:27:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78848,"id":78853,"nodeType":"Return","src":"6956:34:165"}]},"baseFunctions":[73852],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"6897:16:165","parameters":{"id":78845,"nodeType":"ParameterList","parameters":[],"src":"6913:2:165"},"returnParameters":{"id":78848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78847,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78855,"src":"6937:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6937:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6936:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78866,"nodeType":"FunctionDefinition","src":"7003:113:165","nodes":[],"body":{"id":78865,"nodeType":"Block","src":"7060:56:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78860,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7077:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7077:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78862,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7087:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"7077:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":78863,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7100:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"7077:32:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78859,"id":78864,"nodeType":"Return","src":"7070:39:165"}]},"baseFunctions":[73857],"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"7012:16:165","parameters":{"id":78856,"nodeType":"ParameterList","parameters":[],"src":"7028:2:165"},"returnParameters":{"id":78859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78858,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78866,"src":"7052:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78857,"name":"uint48","nodeType":"ElementaryTypeName","src":"7052:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7051:8:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78877,"nodeType":"FunctionDefinition","src":"7122:125:165","nodes":[],"body":{"id":78876,"nodeType":"Block","src":"7188:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78871,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7205:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7205:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78873,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"7205:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":78874,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7236:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84970,"src":"7205:35:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":78870,"id":78875,"nodeType":"Return","src":"7198:42:165"}]},"baseFunctions":[73862],"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"7131:24:165","parameters":{"id":78867,"nodeType":"ParameterList","parameters":[],"src":"7155:2:165"},"returnParameters":{"id":78870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78877,"src":"7179:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":78868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7179:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7178:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78888,"nodeType":"FunctionDefinition","src":"7253:134:165","nodes":[],"body":{"id":78887,"nodeType":"Block","src":"7323:64:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78882,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7340:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7340:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7350:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"7340:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":78885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7371:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84972,"src":"7340:40:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":78881,"id":78886,"nodeType":"Return","src":"7333:47:165"}]},"baseFunctions":[73867],"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"7262:29:165","parameters":{"id":78878,"nodeType":"ParameterList","parameters":[],"src":"7291:2:165"},"returnParameters":{"id":78881,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78880,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78888,"src":"7315:6:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":78879,"name":"uint48","nodeType":"ElementaryTypeName","src":"7315:6:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7314:8:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78899,"nodeType":"FunctionDefinition","src":"7393:106:165","nodes":[],"body":{"id":78898,"nodeType":"Block","src":"7445:54:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78893,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7462:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7462:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7472:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7462:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78896,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7486:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":84873,"src":"7462:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78892,"id":78897,"nodeType":"Return","src":"7455:37:165"}]},"baseFunctions":[73872],"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"7402:10:165","parameters":{"id":78889,"nodeType":"ParameterList","parameters":[],"src":"7412:2:165"},"returnParameters":{"id":78892,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78891,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78899,"src":"7436:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78890,"name":"address","nodeType":"ElementaryTypeName","src":"7436:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7435:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78910,"nodeType":"FunctionDefinition","src":"7505:112:165","nodes":[],"body":{"id":78909,"nodeType":"Block","src":"7558:59:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78904,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7575:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7575:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78906,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7585:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7575:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7599:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":84875,"src":"7575:35:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78903,"id":78908,"nodeType":"Return","src":"7568:42:165"}]},"baseFunctions":[73877],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"7514:11:165","parameters":{"id":78900,"nodeType":"ParameterList","parameters":[],"src":"7525:2:165"},"returnParameters":{"id":78903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78902,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78910,"src":"7549:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78901,"name":"address","nodeType":"ElementaryTypeName","src":"7549:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7548:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78921,"nodeType":"FunctionDefinition","src":"7623:110:165","nodes":[],"body":{"id":78920,"nodeType":"Block","src":"7675:58:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78915,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7692:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7692:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":78917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7702:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7692:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":78918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7716:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":84877,"src":"7692:34:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78914,"id":78919,"nodeType":"Return","src":"7685:41:165"}]},"baseFunctions":[73882],"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"7632:10:165","parameters":{"id":78911,"nodeType":"ParameterList","parameters":[],"src":"7642:2:165"},"returnParameters":{"id":78914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78921,"src":"7666:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78912,"name":"address","nodeType":"ElementaryTypeName","src":"7666:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7665:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78935,"nodeType":"FunctionDefinition","src":"7739:175:165","nodes":[],"body":{"id":78934,"nodeType":"Block","src":"7834:80:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78929,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"7877:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7877:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78927,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"7851:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7856:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"7851:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7851:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7888:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84848,"src":"7851:56:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":78926,"id":78933,"nodeType":"Return","src":"7844:63:165"}]},"baseFunctions":[73888],"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"7748:29:165","parameters":{"id":78922,"nodeType":"ParameterList","parameters":[],"src":"7777:2:165"},"returnParameters":{"id":78926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78925,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78935,"src":"7801:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":78924,"nodeType":"UserDefinedTypeName","pathNode":{"id":78923,"name":"Gear.AggregatedPublicKey","nameLocations":["7801:4:165","7806:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":84845,"src":"7801:24:165"},"referencedDeclaration":84845,"src":"7801:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"7800:33:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78951,"nodeType":"FunctionDefinition","src":"7920:207:165","nodes":[],"body":{"id":78950,"nodeType":"Block","src":"8012:115:165","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78944,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"8068:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8068:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78942,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8042:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8047:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8042:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8042:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78947,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8079:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":84850,"src":"8042:77:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":78940,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"8029:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$86395_$","typeString":"type(library SSTORE2)"}},"id":78941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8037:4:165","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":86319,"src":"8029:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":78948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8029:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":78939,"id":78949,"nodeType":"Return","src":"8022:98:165"}]},"baseFunctions":[73893],"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"7929:43:165","parameters":{"id":78936,"nodeType":"ParameterList","parameters":[],"src":"7972:2:165"},"returnParameters":{"id":78939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78951,"src":"7998:12:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78937,"name":"bytes","nodeType":"ElementaryTypeName","src":"7998:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7997:14:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78997,"nodeType":"FunctionDefinition","src":"8133:375:165","nodes":[],"body":{"id":78996,"nodeType":"Block","src":"8215:293:165","nodes":[],"statements":[{"assignments":[78963],"declarations":[{"constant":false,"id":78963,"mutability":"mutable","name":"_currentValidators","nameLocation":"8249:18:165","nodeType":"VariableDeclaration","scope":78996,"src":"8225:42:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":78962,"nodeType":"UserDefinedTypeName","pathNode":{"id":78961,"name":"Gear.Validators","nameLocations":["8225:4:165","8230:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":84860,"src":"8225:15:165"},"referencedDeclaration":84860,"src":"8225:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":78969,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":78966,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"8296:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":78967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8296:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":78964,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8270:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":78965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8275:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8270:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":78968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8270:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8225:81:165"},{"body":{"id":78992,"nodeType":"Block","src":"8366:114:165","statements":[{"condition":{"id":78987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8384:39:165","subExpression":{"baseExpression":{"expression":{"id":78981,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78963,"src":"8385:18:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":78982,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8404:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"8385:22:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78986,"indexExpression":{"baseExpression":{"id":78983,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78954,"src":"8408:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":78985,"indexExpression":{"id":78984,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78971,"src":"8420:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8408:14:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8385:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78991,"nodeType":"IfStatement","src":"8380:90:165","trueBody":{"id":78990,"nodeType":"Block","src":"8425:45:165","statements":[{"expression":{"hexValue":"66616c7365","id":78988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8450:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":78958,"id":78989,"nodeType":"Return","src":"8443:12:165"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78974,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78971,"src":"8337:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78975,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78954,"src":"8341:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":78976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8353:6:165","memberName":"length","nodeType":"MemberAccess","src":"8341:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8337:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78993,"initializationExpression":{"assignments":[78971],"declarations":[{"constant":false,"id":78971,"mutability":"mutable","name":"i","nameLocation":"8330:1:165","nodeType":"VariableDeclaration","scope":78993,"src":"8322:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78970,"name":"uint256","nodeType":"ElementaryTypeName","src":"8322:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78973,"initialValue":{"hexValue":"30","id":78972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8334:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8322:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":78979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8361:3:165","subExpression":{"id":78978,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78971,"src":"8361:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78980,"nodeType":"ExpressionStatement","src":"8361:3:165"},"nodeType":"ForStatement","src":"8317:163:165"},{"expression":{"hexValue":"74727565","id":78994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8497:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":78958,"id":78995,"nodeType":"Return","src":"8490:11:165"}]},"baseFunctions":[73901],"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"8142:13:165","parameters":{"id":78955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78954,"mutability":"mutable","name":"_validators","nameLocation":"8175:11:165","nodeType":"VariableDeclaration","scope":78997,"src":"8156:30:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78952,"name":"address","nodeType":"ElementaryTypeName","src":"8156:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78953,"nodeType":"ArrayTypeName","src":"8156:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8155:32:165"},"returnParameters":{"id":78958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78957,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78997,"src":"8209:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78956,"name":"bool","nodeType":"ElementaryTypeName","src":"8209:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8208:6:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79014,"nodeType":"FunctionDefinition","src":"8514:144:165","nodes":[],"body":{"id":79013,"nodeType":"Block","src":"8582:76:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79006,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"8625:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79004,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8599:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8604:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8599:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8599:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8636:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"8599:40:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":79011,"indexExpression":{"id":79010,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78999,"src":"8640:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8599:52:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79003,"id":79012,"nodeType":"Return","src":"8592:59:165"}]},"baseFunctions":[73908],"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"8523:11:165","parameters":{"id":79000,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78999,"mutability":"mutable","name":"_validator","nameLocation":"8543:10:165","nodeType":"VariableDeclaration","scope":79014,"src":"8535:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78998,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8534:20:165"},"returnParameters":{"id":79003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79002,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79014,"src":"8576:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79001,"name":"bool","nodeType":"ElementaryTypeName","src":"8576:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8575:6:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79038,"nodeType":"FunctionDefinition","src":"8664:245:165","nodes":[],"body":{"id":79037,"nodeType":"Block","src":"8739:170:165","nodes":[],"statements":[{"assignments":[79025],"declarations":[{"constant":false,"id":79025,"mutability":"mutable","name":"router","nameLocation":"8773:6:165","nodeType":"VariableDeclaration","scope":79037,"src":"8749:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79024,"nodeType":"UserDefinedTypeName","pathNode":{"id":79023,"name":"IRouter.Storage","nameLocations":["8749:7:165","8757:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"8749:15:165"},"referencedDeclaration":73741,"src":"8749:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79028,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79026,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"8782:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8782:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8749:42:165"},{"expression":{"components":[{"expression":{"expression":{"id":79029,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79025,"src":"8809:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8816:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"8809:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8835:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"8809:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":79032,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79025,"src":"8855:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8862:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"8855:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79034,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8881:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"8855:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":79035,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8808:94:165","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":79020,"id":79036,"nodeType":"Return","src":"8801:101:165"}]},"baseFunctions":[73915],"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"8673:24:165","parameters":{"id":79015,"nodeType":"ParameterList","parameters":[],"src":"8697:2:165"},"returnParameters":{"id":79020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79017,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79038,"src":"8721:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79016,"name":"uint128","nodeType":"ElementaryTypeName","src":"8721:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":79019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79038,"src":"8730:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":79018,"name":"uint128","nodeType":"ElementaryTypeName","src":"8730:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8720:18:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79052,"nodeType":"FunctionDefinition","src":"8915:126:165","nodes":[],"body":{"id":79051,"nodeType":"Block","src":"8976:65:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79046,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"9019:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9019:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79044,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8993:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8998:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8993:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79049,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9030:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"8993:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":79043,"id":79050,"nodeType":"Return","src":"8986:48:165"}]},"baseFunctions":[73921],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"8924:10:165","parameters":{"id":79039,"nodeType":"ParameterList","parameters":[],"src":"8934:2:165"},"returnParameters":{"id":79043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79052,"src":"8958:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79040,"name":"address","nodeType":"ElementaryTypeName","src":"8958:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79041,"nodeType":"ArrayTypeName","src":"8958:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8957:18:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79066,"nodeType":"FunctionDefinition","src":"9047:129:165","nodes":[],"body":{"id":79065,"nodeType":"Block","src":"9104:72:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79059,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"9147:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9147:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79057,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9121:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9126:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"9121:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9121:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9158:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"9121:41:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9163:6:165","memberName":"length","nodeType":"MemberAccess","src":"9121:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79056,"id":79064,"nodeType":"Return","src":"9114:55:165"}]},"baseFunctions":[73926],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"9056:15:165","parameters":{"id":79053,"nodeType":"ParameterList","parameters":[],"src":"9071:2:165"},"returnParameters":{"id":79056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79066,"src":"9095:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79054,"name":"uint256","nodeType":"ElementaryTypeName","src":"9095:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9094:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79096,"nodeType":"FunctionDefinition","src":"9182:348:165","nodes":[],"body":{"id":79095,"nodeType":"Block","src":"9243:287:165","nodes":[],"statements":[{"assignments":[79075],"declarations":[{"constant":false,"id":79075,"mutability":"mutable","name":"router","nameLocation":"9277:6:165","nodeType":"VariableDeclaration","scope":79095,"src":"9253:30:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79074,"nodeType":"UserDefinedTypeName","pathNode":{"id":79073,"name":"IRouter.Storage","nameLocations":["9253:7:165","9261:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"9253:15:165"},"referencedDeclaration":73741,"src":"9253:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79078,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79076,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"9286:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9286:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9253:42:165"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":79083,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79075,"src":"9376:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":79081,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9350:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9355:20:165","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"9350:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":79084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9350:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":79085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9384:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"9350:38:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":79086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9389:6:165","memberName":"length","nodeType":"MemberAccess","src":"9350:45:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":79087,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79075,"src":"9409:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79088,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9416:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"9409:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9435:18:165","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"9409:44:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":79090,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79075,"src":"9467:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9474:18:165","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"9467:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":79092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9493:20:165","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"9467:46:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":79079,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9312:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9317:19:165","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":85864,"src":"9312:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":79093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9312:211:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79070,"id":79094,"nodeType":"Return","src":"9305:218:165"}]},"baseFunctions":[73931],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"9191:19:165","parameters":{"id":79067,"nodeType":"ParameterList","parameters":[],"src":"9210:2:165"},"returnParameters":{"id":79070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79069,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79096,"src":"9234:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79068,"name":"uint256","nodeType":"ElementaryTypeName","src":"9234:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9233:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79109,"nodeType":"FunctionDefinition","src":"9536:122:165","nodes":[],"body":{"id":79108,"nodeType":"Block","src":"9620:38:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79104,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9637:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Router_$80656_$","typeString":"type(contract super Router)"}},"id":79105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9643:6:165","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43108,"src":"9637:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":79106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9637:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79103,"id":79107,"nodeType":"Return","src":"9630:21:165"}]},"baseFunctions":[43108,73936],"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"9545:6:165","overrides":{"id":79100,"nodeType":"OverrideSpecifier","overrides":[{"id":79098,"name":"IRouter","nameLocations":["9575:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"9575:7:165"},{"id":79099,"name":"PausableUpgradeable","nameLocations":["9584:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43182,"src":"9584:19:165"}],"src":"9566:38:165"},"parameters":{"id":79097,"nodeType":"ParameterList","parameters":[],"src":"9551:2:165"},"returnParameters":{"id":79103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79109,"src":"9614:4:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79101,"name":"bool","nodeType":"ElementaryTypeName","src":"9614:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9613:6:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79120,"nodeType":"FunctionDefinition","src":"9664:130:165","nodes":[],"body":{"id":79119,"nodeType":"Block","src":"9745:49:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79115,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"9762:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9762:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9772:15:165","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"9762:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":79114,"id":79118,"nodeType":"Return","src":"9755:32:165"}]},"baseFunctions":[73942],"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"9673:15:165","parameters":{"id":79110,"nodeType":"ParameterList","parameters":[],"src":"9688:2:165"},"returnParameters":{"id":79114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79113,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79120,"src":"9712:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":79112,"nodeType":"UserDefinedTypeName","pathNode":{"id":79111,"name":"Gear.ComputationSettings","nameLocations":["9712:4:165","9717:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":84978,"src":"9712:24:165"},"referencedDeclaration":84978,"src":"9712:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"9711:33:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79136,"nodeType":"FunctionDefinition","src":"9800:134:165","nodes":[],"body":{"id":79135,"nodeType":"Block","src":"9873:61:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79128,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"9890:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9890:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9900:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"9890:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79131,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9913:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"9890:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79133,"indexExpression":{"id":79132,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79122,"src":"9919:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9890:37:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"functionReturnParameters":79127,"id":79134,"nodeType":"Return","src":"9883:44:165"}]},"baseFunctions":[73950],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"9809:9:165","parameters":{"id":79123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79122,"mutability":"mutable","name":"_codeId","nameLocation":"9827:7:165","nodeType":"VariableDeclaration","scope":79136,"src":"9819:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79121,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9819:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9818:17:165"},"returnParameters":{"id":79127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79136,"src":"9857:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"typeName":{"id":79125,"nodeType":"UserDefinedTypeName","pathNode":{"id":79124,"name":"Gear.CodeState","nameLocations":["9857:4:165","9862:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"9857:14:165"},"referencedDeclaration":84968,"src":"9857:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"9856:16:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79194,"nodeType":"FunctionDefinition","src":"9940:378:165","nodes":[],"body":{"id":79193,"nodeType":"Block","src":"10037:281:165","nodes":[],"statements":[{"assignments":[79148],"declarations":[{"constant":false,"id":79148,"mutability":"mutable","name":"router","nameLocation":"10063:6:165","nodeType":"VariableDeclaration","scope":79193,"src":"10047:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79147,"nodeType":"UserDefinedTypeName","pathNode":{"id":79146,"name":"Storage","nameLocations":["10047:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"10047:7:165"},"referencedDeclaration":73741,"src":"10047:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79151,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79149,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"10072:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10072:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10047:34:165"},{"assignments":[79157],"declarations":[{"constant":false,"id":79157,"mutability":"mutable","name":"res","nameLocation":"10116:3:165","nodeType":"VariableDeclaration","scope":79193,"src":"10092:27:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":79155,"nodeType":"UserDefinedTypeName","pathNode":{"id":79154,"name":"Gear.CodeState","nameLocations":["10092:4:165","10097:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"10092:14:165"},"referencedDeclaration":84968,"src":"10092:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":79156,"nodeType":"ArrayTypeName","src":"10092:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":79165,"initialValue":{"arguments":[{"expression":{"id":79162,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79139,"src":"10143:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":79163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10153:6:165","memberName":"length","nodeType":"MemberAccess","src":"10143:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10122:20:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":79159,"nodeType":"UserDefinedTypeName","pathNode":{"id":79158,"name":"Gear.CodeState","nameLocations":["10126:4:165","10131:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"10126:14:165"},"referencedDeclaration":84968,"src":"10126:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":79160,"nodeType":"ArrayTypeName","src":"10126:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":79164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10122:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10092:68:165"},{"body":{"id":79189,"nodeType":"Block","src":"10218:73:165","statements":[{"expression":{"id":79187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79177,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79157,"src":"10232:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":79179,"indexExpression":{"id":79178,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79167,"src":"10236:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10232:6:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":79180,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79148,"src":"10241:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10248:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10241:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10261:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"10241:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79186,"indexExpression":{"baseExpression":{"id":79183,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79139,"src":"10267:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":79185,"indexExpression":{"id":79184,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79167,"src":"10277:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10267:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10241:39:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"10232:48:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":79188,"nodeType":"ExpressionStatement","src":"10232:48:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79170,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79167,"src":"10191:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79171,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79139,"src":"10195:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":79172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10205:6:165","memberName":"length","nodeType":"MemberAccess","src":"10195:16:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10191:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79190,"initializationExpression":{"assignments":[79167],"declarations":[{"constant":false,"id":79167,"mutability":"mutable","name":"i","nameLocation":"10184:1:165","nodeType":"VariableDeclaration","scope":79190,"src":"10176:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79166,"name":"uint256","nodeType":"ElementaryTypeName","src":"10176:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79169,"initialValue":{"hexValue":"30","id":79168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10188:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10176:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10213:3:165","subExpression":{"id":79174,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79167,"src":"10213:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79176,"nodeType":"ExpressionStatement","src":"10213:3:165"},"nodeType":"ForStatement","src":"10171:120:165"},{"expression":{"id":79191,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79157,"src":"10308:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":79145,"id":79192,"nodeType":"Return","src":"10301:10:165"}]},"baseFunctions":[73960],"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"9949:11:165","parameters":{"id":79140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79139,"mutability":"mutable","name":"_codesIds","nameLocation":"9980:9:165","nodeType":"VariableDeclaration","scope":79194,"src":"9961:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79137,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9961:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79138,"nodeType":"ArrayTypeName","src":"9961:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9960:30:165"},"returnParameters":{"id":79145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79144,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79194,"src":"10012:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":79142,"nodeType":"UserDefinedTypeName","pathNode":{"id":79141,"name":"Gear.CodeState","nameLocations":["10012:4:165","10017:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"10012:14:165"},"referencedDeclaration":84968,"src":"10012:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":79143,"nodeType":"ArrayTypeName","src":"10012:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"10011:25:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79209,"nodeType":"FunctionDefinition","src":"10324:140:165","nodes":[],"body":{"id":79208,"nodeType":"Block","src":"10397:67:165","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79201,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"10414:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10414:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10424:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10414:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10437:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"10414:31:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":79206,"indexExpression":{"id":79205,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79196,"src":"10446:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10414:43:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79200,"id":79207,"nodeType":"Return","src":"10407:50:165"}]},"baseFunctions":[73967],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"10333:13:165","parameters":{"id":79197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79196,"mutability":"mutable","name":"_programId","nameLocation":"10355:10:165","nodeType":"VariableDeclaration","scope":79209,"src":"10347:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79195,"name":"address","nodeType":"ElementaryTypeName","src":"10347:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10346:20:165"},"returnParameters":{"id":79200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79199,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79209,"src":"10388:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10388:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10387:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79264,"nodeType":"FunctionDefinition","src":"10470:376:165","nodes":[],"body":{"id":79263,"nodeType":"Block","src":"10567:279:165","nodes":[],"statements":[{"assignments":[79220],"declarations":[{"constant":false,"id":79220,"mutability":"mutable","name":"router","nameLocation":"10593:6:165","nodeType":"VariableDeclaration","scope":79263,"src":"10577:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79219,"nodeType":"UserDefinedTypeName","pathNode":{"id":79218,"name":"Storage","nameLocations":["10577:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"10577:7:165"},"referencedDeclaration":73741,"src":"10577:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79223,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79221,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"10602:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10602:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10577:34:165"},{"assignments":[79228],"declarations":[{"constant":false,"id":79228,"mutability":"mutable","name":"res","nameLocation":"10639:3:165","nodeType":"VariableDeclaration","scope":79263,"src":"10622:20:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10622:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79227,"nodeType":"ArrayTypeName","src":"10622:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":79235,"initialValue":{"arguments":[{"expression":{"id":79232,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79212,"src":"10659:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10672:6:165","memberName":"length","nodeType":"MemberAccess","src":"10659:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10645:13:165","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":79229,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10649:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79230,"nodeType":"ArrayTypeName","src":"10649:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":79234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10645:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10622:57:165"},{"body":{"id":79259,"nodeType":"Block","src":"10740:79:165","statements":[{"expression":{"id":79257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79247,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79228,"src":"10754:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":79249,"indexExpression":{"id":79248,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79237,"src":"10758:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10754:6:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":79250,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79220,"src":"10763:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10770:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10763:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10783:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"10763:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":79256,"indexExpression":{"baseExpression":{"id":79253,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79212,"src":"10792:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79255,"indexExpression":{"id":79254,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79237,"src":"10805:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10792:15:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10763:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10754:54:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79258,"nodeType":"ExpressionStatement","src":"10754:54:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79240,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79237,"src":"10710:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79241,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79212,"src":"10714:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":79242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10727:6:165","memberName":"length","nodeType":"MemberAccess","src":"10714:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10710:23:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79260,"initializationExpression":{"assignments":[79237],"declarations":[{"constant":false,"id":79237,"mutability":"mutable","name":"i","nameLocation":"10703:1:165","nodeType":"VariableDeclaration","scope":79260,"src":"10695:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79236,"name":"uint256","nodeType":"ElementaryTypeName","src":"10695:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79239,"initialValue":{"hexValue":"30","id":79238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10707:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10695:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10735:3:165","subExpression":{"id":79244,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79237,"src":"10735:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79246,"nodeType":"ExpressionStatement","src":"10735:3:165"},"nodeType":"ForStatement","src":"10690:129:165"},{"expression":{"id":79261,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79228,"src":"10836:3:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":79217,"id":79262,"nodeType":"Return","src":"10829:10:165"}]},"baseFunctions":[73976],"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"10479:15:165","parameters":{"id":79213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79212,"mutability":"mutable","name":"_programsIds","nameLocation":"10514:12:165","nodeType":"VariableDeclaration","scope":79264,"src":"10495:31:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79210,"name":"address","nodeType":"ElementaryTypeName","src":"10495:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79211,"nodeType":"ArrayTypeName","src":"10495:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10494:33:165"},"returnParameters":{"id":79217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79216,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79264,"src":"10549:16:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":79214,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10549:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79215,"nodeType":"ArrayTypeName","src":"10549:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"10548:18:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79275,"nodeType":"FunctionDefinition","src":"10852:115:165","nodes":[],"body":{"id":79274,"nodeType":"Block","src":"10907:60:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79269,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"10924:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10924:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10934:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10924:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79272,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10947:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85010,"src":"10924:36:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79268,"id":79273,"nodeType":"Return","src":"10917:43:165"}]},"baseFunctions":[73981],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"10861:13:165","parameters":{"id":79265,"nodeType":"ParameterList","parameters":[],"src":"10874:2:165"},"returnParameters":{"id":79268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79267,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79275,"src":"10898:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79266,"name":"uint256","nodeType":"ElementaryTypeName","src":"10898:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10897:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79286,"nodeType":"FunctionDefinition","src":"10973:127:165","nodes":[],"body":{"id":79285,"nodeType":"Block","src":"11034:66:165","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79280,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"11051:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11051:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11061:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"11051:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11074:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85012,"src":"11051:42:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79279,"id":79284,"nodeType":"Return","src":"11044:49:165"}]},"baseFunctions":[73986],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"10982:19:165","parameters":{"id":79276,"nodeType":"ParameterList","parameters":[],"src":"11001:2:165"},"returnParameters":{"id":79279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79286,"src":"11025:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79277,"name":"uint256","nodeType":"ElementaryTypeName","src":"11025:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11024:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79297,"nodeType":"FunctionDefinition","src":"11106:108:165","nodes":[],"body":{"id":79296,"nodeType":"Block","src":"11171:43:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79292,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"11188:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11188:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11198:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"11188:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":79291,"id":79295,"nodeType":"Return","src":"11181:26:165"}]},"baseFunctions":[73992],"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"11115:9:165","parameters":{"id":79287,"nodeType":"ParameterList","parameters":[],"src":"11124:2:165"},"returnParameters":{"id":79291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79297,"src":"11148:21:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":79289,"nodeType":"UserDefinedTypeName","pathNode":{"id":79288,"name":"Gear.Timelines","nameLocations":["11148:4:165","11153:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":85047,"src":"11148:14:165"},"referencedDeclaration":85047,"src":"11148:14:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"11147:23:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79312,"nodeType":"FunctionDefinition","src":"11240:116:165","nodes":[],"body":{"id":79311,"nodeType":"Block","src":"11297:59:165","nodes":[],"statements":[{"expression":{"id":79309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79304,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"11307:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11307:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11317:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"11307:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":79307,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11331:6:165","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":84873,"src":"11307:30:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79308,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79299,"src":"11340:9:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11307:42:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79310,"nodeType":"ExpressionStatement","src":"11307:42:165"}]},"baseFunctions":[73997],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":79302,"kind":"modifierInvocation","modifierName":{"id":79301,"name":"onlyOwner","nameLocations":["11287:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11287:9:165"},"nodeType":"ModifierInvocation","src":"11287:9:165"}],"name":"setMirror","nameLocation":"11249:9:165","parameters":{"id":79300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79299,"mutability":"mutable","name":"newMirror","nameLocation":"11267:9:165","nodeType":"VariableDeclaration","scope":79312,"src":"11259:17:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79298,"name":"address","nodeType":"ElementaryTypeName","src":"11259:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11258:19:165"},"returnParameters":{"id":79303,"nodeType":"ParameterList","parameters":[],"src":"11297:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79321,"nodeType":"FunctionDefinition","src":"11362:59:165","nodes":[],"body":{"id":79320,"nodeType":"Block","src":"11396:25:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79317,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43157,"src":"11406:6:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11406:8:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79319,"nodeType":"ExpressionStatement","src":"11406:8:165"}]},"baseFunctions":[74000],"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":79315,"kind":"modifierInvocation","modifierName":{"id":79314,"name":"onlyOwner","nameLocations":["11386:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11386:9:165"},"nodeType":"ModifierInvocation","src":"11386:9:165"}],"name":"pause","nameLocation":"11371:5:165","parameters":{"id":79313,"nodeType":"ParameterList","parameters":[],"src":"11376:2:165"},"returnParameters":{"id":79316,"nodeType":"ParameterList","parameters":[],"src":"11396:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79330,"nodeType":"FunctionDefinition","src":"11427:63:165","nodes":[],"body":{"id":79329,"nodeType":"Block","src":"11463:27:165","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79326,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43181,"src":"11473:8:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11473:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79328,"nodeType":"ExpressionStatement","src":"11473:10:165"}]},"baseFunctions":[74003],"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":79324,"kind":"modifierInvocation","modifierName":{"id":79323,"name":"onlyOwner","nameLocations":["11453:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11453:9:165"},"nodeType":"ModifierInvocation","src":"11453:9:165"}],"name":"unpause","nameLocation":"11436:7:165","parameters":{"id":79322,"nodeType":"ParameterList","parameters":[],"src":"11443:2:165"},"returnParameters":{"id":79325,"nodeType":"ParameterList","parameters":[],"src":"11463:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79386,"nodeType":"FunctionDefinition","src":"11512:399:165","nodes":[],"body":{"id":79385,"nodeType":"Block","src":"11564:347:165","nodes":[],"statements":[{"assignments":[79337],"declarations":[{"constant":false,"id":79337,"mutability":"mutable","name":"router","nameLocation":"11590:6:165","nodeType":"VariableDeclaration","scope":79385,"src":"11574:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79336,"nodeType":"UserDefinedTypeName","pathNode":{"id":79335,"name":"Storage","nameLocations":["11574:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"11574:7:165"},"referencedDeclaration":73741,"src":"11574:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79340,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79338,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"11599:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11599:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11574:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79342,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79337,"src":"11627:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11634:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11627:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11647:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"11627:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11663:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11655:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79345,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11655:7:165","typeDescriptions":{}}},"id":79348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11655:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11627:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79350,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"11667:21:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11667:23:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11619:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11619:72:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79353,"nodeType":"ExpressionStatement","src":"11619:72:165"},{"assignments":[79355],"declarations":[{"constant":false,"id":79355,"mutability":"mutable","name":"genesisHash","nameLocation":"11710:11:165","nodeType":"VariableDeclaration","scope":79385,"src":"11702:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79354,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11702:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79361,"initialValue":{"arguments":[{"expression":{"expression":{"id":79357,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79337,"src":"11734:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11741:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11734:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79359,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11754:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":84982,"src":"11734:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":79356,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"11724:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":79360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11724:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11702:59:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79363,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79355,"src":"11780:11:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11803:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11795:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79364,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11795:7:165","typeDescriptions":{}}},"id":79367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11795:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11780:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79369,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73799,"src":"11807:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11807:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79362,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11772:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11772:57:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79372,"nodeType":"ExpressionStatement","src":"11772:57:165"},{"expression":{"id":79383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79373,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79337,"src":"11840:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11847:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11840:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11860:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"11840:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":79379,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79337,"src":"11877:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11884:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11877:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11897:6:165","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":84982,"src":"11877:26:165","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":79378,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"11867:9:165","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":79382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11867:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11840:64:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79384,"nodeType":"ExpressionStatement","src":"11840:64:165"}]},"baseFunctions":[74006],"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[{"id":79333,"kind":"modifierInvocation","modifierName":{"id":79332,"name":"whenNotPaused","nameLocations":["11550:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"11550:13:165"},"nodeType":"ModifierInvocation","src":"11550:13:165"}],"name":"lookupGenesisHash","nameLocation":"11521:17:165","parameters":{"id":79331,"nodeType":"ParameterList","parameters":[],"src":"11538:2:165"},"returnParameters":{"id":79334,"nodeType":"ParameterList","parameters":[],"src":"11564:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79453,"nodeType":"FunctionDefinition","src":"11917:514:165","nodes":[],"body":{"id":79452,"nodeType":"Block","src":"11988:443:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":79395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12015:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79394,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"12006:8:165","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":79396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12006:11:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":79397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12021:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12006:16:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79399,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73801,"src":"12024:12:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12024:14:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11998:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11998:41:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79402,"nodeType":"ExpressionStatement","src":"11998:41:165"},{"assignments":[79405],"declarations":[{"constant":false,"id":79405,"mutability":"mutable","name":"router","nameLocation":"12066:6:165","nodeType":"VariableDeclaration","scope":79452,"src":"12050:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79404,"nodeType":"UserDefinedTypeName","pathNode":{"id":79403,"name":"Storage","nameLocations":["12050:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"12050:7:165"},"referencedDeclaration":73741,"src":"12050:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79408,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79406,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"12075:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12075:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12050:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79410,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79405,"src":"12102:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12109:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"12102:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12122:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"12102:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12138:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12130:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79413,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12130:7:165","typeDescriptions":{}}},"id":79416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12130:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12102:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79418,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"12142:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12142:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12094:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12094:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79421,"nodeType":"ExpressionStatement","src":"12094:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"id":79431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":79423,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79405,"src":"12195:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12202:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"12195:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12215:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"12195:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79427,"indexExpression":{"id":79426,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79388,"src":"12221:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12195:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":79428,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"12233:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12238:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"12233:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":79430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12248:7:165","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":84965,"src":"12233:22:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"12195:60:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79432,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73805,"src":"12257:34:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12257:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12187:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12187:107:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79435,"nodeType":"ExpressionStatement","src":"12187:107:165"},{"expression":{"id":79446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":79436,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79405,"src":"12305:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79440,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12312:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"12305:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12325:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"12305:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79442,"indexExpression":{"id":79439,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79388,"src":"12331:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12305:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":79443,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"12342:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12347:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"12342:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":79445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12357:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":84966,"src":"12342:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"12305:71:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":79447,"nodeType":"ExpressionStatement","src":"12305:71:165"},{"eventCall":{"arguments":[{"id":79449,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79388,"src":"12416:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79448,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"12392:23:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12392:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79451,"nodeType":"EmitStatement","src":"12387:37:165"}]},"baseFunctions":[74012],"functionSelector":"120e3f1e","implemented":true,"kind":"function","modifiers":[{"id":79391,"kind":"modifierInvocation","modifierName":{"id":79390,"name":"whenNotPaused","nameLocations":["11974:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"11974:13:165"},"nodeType":"ModifierInvocation","src":"11974:13:165"}],"name":"requestCodeValidation","nameLocation":"11926:21:165","parameters":{"id":79389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79388,"mutability":"mutable","name":"_codeId","nameLocation":"11956:7:165","nodeType":"VariableDeclaration","scope":79453,"src":"11948:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79387,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11948:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11947:17:165"},"returnParameters":{"id":79392,"nodeType":"ParameterList","parameters":[],"src":"11988:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79496,"nodeType":"FunctionDefinition","src":"12437:390:165","nodes":[],"body":{"id":79495,"nodeType":"Block","src":"12591:236:165","nodes":[],"statements":[{"assignments":[79467],"declarations":[{"constant":false,"id":79467,"mutability":"mutable","name":"mirror","nameLocation":"12609:6:165","nodeType":"VariableDeclaration","scope":79495,"src":"12601:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79466,"name":"address","nodeType":"ElementaryTypeName","src":"12601:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79473,"initialValue":{"arguments":[{"id":79469,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79455,"src":"12633:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79470,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79457,"src":"12642:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":79471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12649:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79468,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79804,"src":"12618:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bool) returns (address)"}},"id":79472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12618:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12601:53:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79478,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79459,"src":"12705:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12737:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12729:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79479,"name":"address","nodeType":"ElementaryTypeName","src":"12729:7:165","typeDescriptions":{}}},"id":79482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12729:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12705:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":79486,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79459,"src":"12755:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12705:70:165","trueExpression":{"expression":{"id":79484,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12742:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12746:6:165","memberName":"sender","nodeType":"MemberAccess","src":"12742:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79488,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78899,"src":"12777:10:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":79489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:12:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":79490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12791:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":79475,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79467,"src":"12673:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79474,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"12665:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":79476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12665:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":79477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12694:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73649,"src":"12665:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool) external"}},"id":79491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12665:131:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79492,"nodeType":"ExpressionStatement","src":"12665:131:165"},{"expression":{"id":79493,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79467,"src":"12814:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79465,"id":79494,"nodeType":"Return","src":"12807:13:165"}]},"baseFunctions":[74024],"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":79462,"kind":"modifierInvocation","modifierName":{"id":79461,"name":"whenNotPaused","nameLocations":["12547:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"12547:13:165"},"nodeType":"ModifierInvocation","src":"12547:13:165"}],"name":"createProgram","nameLocation":"12446:13:165","parameters":{"id":79460,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79455,"mutability":"mutable","name":"_codeId","nameLocation":"12468:7:165","nodeType":"VariableDeclaration","scope":79496,"src":"12460:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12460:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79457,"mutability":"mutable","name":"_salt","nameLocation":"12485:5:165","nodeType":"VariableDeclaration","scope":79496,"src":"12477:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12477:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79459,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"12500:20:165","nodeType":"VariableDeclaration","scope":79496,"src":"12492:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79458,"name":"address","nodeType":"ElementaryTypeName","src":"12492:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12459:62:165"},"returnParameters":{"id":79465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79496,"src":"12578:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79463,"name":"address","nodeType":"ElementaryTypeName","src":"12578:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12577:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79540,"nodeType":"FunctionDefinition","src":"12833:442:165","nodes":[],"body":{"id":79539,"nodeType":"Block","src":"13036:239:165","nodes":[],"statements":[{"assignments":[79512],"declarations":[{"constant":false,"id":79512,"mutability":"mutable","name":"mirror","nameLocation":"13054:6:165","nodeType":"VariableDeclaration","scope":79539,"src":"13046:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79511,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79518,"initialValue":{"arguments":[{"id":79514,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79498,"src":"13078:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79515,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79500,"src":"13087:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":79516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13094:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79513,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79804,"src":"13063:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bool) returns (address)"}},"id":79517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13063:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13046:54:165"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79523,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79502,"src":"13151:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13183:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13175:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79524,"name":"address","nodeType":"ElementaryTypeName","src":"13175:7:165","typeDescriptions":{}}},"id":79527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13175:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13151:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":79531,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79502,"src":"13201:20:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13151:70:165","trueExpression":{"expression":{"id":79529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13188:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13192:6:165","memberName":"sender","nodeType":"MemberAccess","src":"13188:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79533,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79504,"src":"13223:13:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":79534,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13238:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":79520,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79512,"src":"13119:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79519,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"13111:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":79521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13111:15:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":79522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13140:10:165","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73649,"src":"13111:39:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool) external"}},"id":79535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13111:133:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79536,"nodeType":"ExpressionStatement","src":"13111:133:165"},{"expression":{"id":79537,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79512,"src":"13262:6:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79510,"id":79538,"nodeType":"Return","src":"13255:13:165"}]},"baseFunctions":[74038],"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":79507,"kind":"modifierInvocation","modifierName":{"id":79506,"name":"whenNotPaused","nameLocations":["13004:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"13004:13:165"},"nodeType":"ModifierInvocation","src":"13004:13:165"}],"name":"createProgramWithAbiInterface","nameLocation":"12842:29:165","parameters":{"id":79505,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79498,"mutability":"mutable","name":"_codeId","nameLocation":"12889:7:165","nodeType":"VariableDeclaration","scope":79540,"src":"12881:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12881:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79500,"mutability":"mutable","name":"_salt","nameLocation":"12914:5:165","nodeType":"VariableDeclaration","scope":79540,"src":"12906:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12906:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79502,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"12937:20:165","nodeType":"VariableDeclaration","scope":79540,"src":"12929:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79501,"name":"address","nodeType":"ElementaryTypeName","src":"12929:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79504,"mutability":"mutable","name":"_abiInterface","nameLocation":"12975:13:165","nodeType":"VariableDeclaration","scope":79540,"src":"12967:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79503,"name":"address","nodeType":"ElementaryTypeName","src":"12967:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12871:123:165"},"returnParameters":{"id":79510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79509,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79540,"src":"13027:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79508,"name":"address","nodeType":"ElementaryTypeName","src":"13027:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13026:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79706,"nodeType":"FunctionDefinition","src":"13281:2214:165","nodes":[],"body":{"id":79705,"nodeType":"Block","src":"13457:2038:165","nodes":[],"statements":[{"assignments":[79556],"declarations":[{"constant":false,"id":79556,"mutability":"mutable","name":"router","nameLocation":"13483:6:165","nodeType":"VariableDeclaration","scope":79705,"src":"13467:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79555,"nodeType":"UserDefinedTypeName","pathNode":{"id":79554,"name":"Storage","nameLocations":["13467:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"13467:7:165"},"referencedDeclaration":73741,"src":"13467:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79559,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79557,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"13492:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13492:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13467:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79561,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"13520:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13527:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"13520:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13540:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"13520:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13556:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79565,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13548:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79564,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13548:7:165","typeDescriptions":{}}},"id":79567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13548:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13520:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79569,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"13560:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13560:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79560,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13512:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13512:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79572,"nodeType":"ExpressionStatement","src":"13512:82:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79573,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"13758:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13765:8:165","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":73712,"src":"13758:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13777:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13758:20:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79600,"nodeType":"IfStatement","src":"13754:233:165","trueBody":{"id":79599,"nodeType":"Block","src":"13780:207:165","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":79580,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"13826:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13833:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":84906,"src":"13826:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79582,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"13844:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13851:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":84915,"src":"13844:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":79578,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"13802:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13807:18:165","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":85366,"src":"13802:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":79584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13802:56:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79585,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73807,"src":"13860:24:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13860:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79577,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13794:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13794:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79588,"nodeType":"ExpressionStatement","src":"13794:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79590,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13909:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":79591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13915:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"13909:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":79592,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"13927:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13934:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"13927:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"13909:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79595,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"13950:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13950:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13901:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13901:75:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79598,"nodeType":"ExpressionStatement","src":"13901:75:165"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79602,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"14100:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79603,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14107:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14100:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79604,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14128:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84970,"src":"14100:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":79605,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14136:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14143:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":84912,"src":"14136:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14100:69:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79608,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73811,"src":"14171:33:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14171:35:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14079:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14079:137:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79611,"nodeType":"ExpressionStatement","src":"14079:137:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":79618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79613,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"14235:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14242:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14235:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14263:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84972,"src":"14235:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":79616,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14276:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14283:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"14276:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14235:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79619,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73813,"src":"14299:22:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14299:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79612,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14227:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14227:97:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79622,"nodeType":"ExpressionStatement","src":"14227:97:165"},{"assignments":[79624],"declarations":[{"constant":false,"id":79624,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"14343:20:165","nodeType":"VariableDeclaration","scope":79705,"src":"14335:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79623,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14335:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79629,"initialValue":{"arguments":[{"id":79626,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"14379:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79627,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14387:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79625,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79867,"src":"14366:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14366:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14335:59:165"},{"assignments":[79631],"declarations":[{"constant":false,"id":79631,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"14475:20:165","nodeType":"VariableDeclaration","scope":79705,"src":"14467:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14467:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79636,"initialValue":{"arguments":[{"id":79633,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"14511:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79634,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14519:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79632,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80009,"src":"14498:12:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14498:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14467:59:165"},{"assignments":[79638],"declarations":[{"constant":false,"id":79638,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"14606:22:165","nodeType":"VariableDeclaration","scope":79705,"src":"14598:30:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79637,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14598:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79643,"initialValue":{"arguments":[{"id":79640,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"14646:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79641,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14654:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79639,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80166,"src":"14631:14:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14631:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14598:63:165"},{"assignments":[79645],"declarations":[{"constant":false,"id":79645,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"14679:25:165","nodeType":"VariableDeclaration","scope":79705,"src":"14671:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79644,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14671:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79650,"initialValue":{"arguments":[{"id":79647,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"14725:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79648,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14733:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":79646,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80312,"src":"14707:17:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":79649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14707:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14671:69:165"},{"assignments":[79652],"declarations":[{"constant":false,"id":79652,"mutability":"mutable","name":"_batchHash","nameLocation":"14759:10:165","nodeType":"VariableDeclaration","scope":79705,"src":"14751:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79651,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14751:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79668,"initialValue":{"arguments":[{"expression":{"id":79655,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14810:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14817:9:165","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":84906,"src":"14810:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79657,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14840:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14847:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"14840:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":79659,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14875:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14882:26:165","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":84912,"src":"14875:33:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79661,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"14922:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14929:6:165","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":84915,"src":"14922:13:165","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":79663,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79624,"src":"14949:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79664,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79631,"src":"14983:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79665,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79638,"src":"15017:22:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79666,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79645,"src":"15053:25:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79653,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"14772:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14777:19:165","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85214,"src":"14772:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":79667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14772:316:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14751:337:165"},{"expression":{"id":79675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79669,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"15099:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15106:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"15099:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15127:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84970,"src":"15099:32:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79674,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79652,"src":"15134:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15099:45:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79676,"nodeType":"ExpressionStatement","src":"15099:45:165"},{"expression":{"id":79684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":79677,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"15154:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15161:20:165","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"15154:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":79681,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15182:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84972,"src":"15154:37:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":79682,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"15194:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15201:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"15194:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"15154:61:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":79685,"nodeType":"ExpressionStatement","src":"15154:61:165"},{"eventCall":{"arguments":[{"id":79687,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79652,"src":"15246:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79686,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73746,"src":"15231:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15231:26:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79689,"nodeType":"EmitStatement","src":"15226:31:165"},{"expression":{"arguments":[{"arguments":[{"id":79693,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79556,"src":"15332:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":79694,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78512,"src":"15340:17:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79695,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79652,"src":"15359:10:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79696,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"15371:14:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"}},{"id":79697,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79549,"src":"15387:11:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":79698,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79543,"src":"15400:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15407:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"15400:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":79691,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"15289:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15294:20:165","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":85681,"src":"15289:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$85100_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":79700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15289:146:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79701,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"15449:27:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15449:29:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79690,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15268:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15268:220:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79704,"nodeType":"ExpressionStatement","src":"15268:220:165"}]},"baseFunctions":[74051],"functionSelector":"b24fcac0","implemented":true,"kind":"function","modifiers":[{"id":79552,"kind":"modifierInvocation","modifierName":{"id":79551,"name":"nonReentrant","nameLocations":["13444:12:165"],"nodeType":"IdentifierPath","referencedDeclaration":43210,"src":"13444:12:165"},"nodeType":"ModifierInvocation","src":"13444:12:165"}],"name":"commitBatch","nameLocation":"13290:11:165","parameters":{"id":79550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79543,"mutability":"mutable","name":"_batch","nameLocation":"13341:6:165","nodeType":"VariableDeclaration","scope":79706,"src":"13311:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79542,"nodeType":"UserDefinedTypeName","pathNode":{"id":79541,"name":"Gear.BatchCommitment","nameLocations":["13311:4:165","13316:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"13311:20:165"},"referencedDeclaration":84936,"src":"13311:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":79546,"mutability":"mutable","name":"_signatureType","nameLocation":"13376:14:165","nodeType":"VariableDeclaration","scope":79706,"src":"13357:33:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"},"typeName":{"id":79545,"nodeType":"UserDefinedTypeName","pathNode":{"id":79544,"name":"Gear.SignatureType","nameLocations":["13357:4:165","13362:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":85100,"src":"13357:18:165"},"referencedDeclaration":85100,"src":"13357:18:165","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":79549,"mutability":"mutable","name":"_signatures","nameLocation":"13417:11:165","nodeType":"VariableDeclaration","scope":79706,"src":"13400:28:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":79547,"name":"bytes","nodeType":"ElementaryTypeName","src":"13400:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":79548,"nodeType":"ArrayTypeName","src":"13400:7:165","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"13301:133:165"},"returnParameters":{"id":79553,"nodeType":"ParameterList","parameters":[],"src":"13457:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79804,"nodeType":"FunctionDefinition","src":"15537:907:165","nodes":[],"body":{"id":79803,"nodeType":"Block","src":"15634:810:165","nodes":[],"statements":[{"assignments":[79719],"declarations":[{"constant":false,"id":79719,"mutability":"mutable","name":"router","nameLocation":"15660:6:165","nodeType":"VariableDeclaration","scope":79803,"src":"15644:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79718,"nodeType":"UserDefinedTypeName","pathNode":{"id":79717,"name":"Storage","nameLocations":["15644:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"15644:7:165"},"referencedDeclaration":73741,"src":"15644:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":79722,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79720,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"15669:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":79721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15669:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15644:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":79731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79724,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79719,"src":"15696:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15703:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"15696:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":79726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15716:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"15696:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":79729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15732:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":79728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15724:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":79727,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15724:7:165","typeDescriptions":{}}},"id":79730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15724:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15696:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79732,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"15736:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15736:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15688:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15688:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79735,"nodeType":"ExpressionStatement","src":"15688:82:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"id":79745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":79737,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79719,"src":"15789:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15796:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"15789:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15809:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"15789:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79741,"indexExpression":{"id":79740,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79708,"src":"15815:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15789:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":79742,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"15827:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15832:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"15827:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":79744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15842:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":84967,"src":"15827:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"15789:62:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79746,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73817,"src":"15853:16:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15853:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79736,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15781:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15781:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79749,"nodeType":"ExpressionStatement","src":"15781:91:165"},{"assignments":[79751],"declarations":[{"constant":false,"id":79751,"mutability":"mutable","name":"salt","nameLocation":"16041:4:165","nodeType":"VariableDeclaration","scope":79803,"src":"16033:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79750,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16033:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79757,"initialValue":{"arguments":[{"id":79754,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79708,"src":"16083:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79755,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79710,"src":"16092:5:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79752,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"16048:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":79753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16055:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40806,"src":"16048:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":79756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16048:50:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16033:65:165"},{"assignments":[79759],"declarations":[{"constant":false,"id":79759,"mutability":"mutable","name":"actorId","nameLocation":"16116:7:165","nodeType":"VariableDeclaration","scope":79803,"src":"16108:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79758,"name":"address","nodeType":"ElementaryTypeName","src":"16108:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79778,"initialValue":{"condition":{"id":79760,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79712,"src":"16126:8:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":79773,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16249:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$80656","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$80656","typeString":"contract Router"}],"id":79772,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16241:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79771,"name":"address","nodeType":"ElementaryTypeName","src":"16241:7:165","typeDescriptions":{}}},"id":79774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16241:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79775,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79751,"src":"16256:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79769,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84707,"src":"16215:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$84707_$","typeString":"type(library Clones)"}},"id":79770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16222:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":84479,"src":"16215:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":79776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16215:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"16126:135:165","trueExpression":{"arguments":[{"arguments":[{"id":79765,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16188:4:165","typeDescriptions":{"typeIdentifier":"t_contract$_Router_$80656","typeString":"contract Router"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Router_$80656","typeString":"contract Router"}],"id":79764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16180:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79763,"name":"address","nodeType":"ElementaryTypeName","src":"16180:7:165","typeDescriptions":{}}},"id":79766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16180:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79767,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79751,"src":"16195:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79761,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84788,"src":"16149:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$84788_$","typeString":"type(library ClonesSmall)"}},"id":79762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16161:18:165","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":84727,"src":"16149:30:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":79768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16149:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16108:153:165"},{"expression":{"id":79787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":79779,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79719,"src":"16272:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79783,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16279:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"16272:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16292:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"16272:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":79785,"indexExpression":{"id":79782,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"16301:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16272:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79786,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79708,"src":"16312:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16272:47:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":79788,"nodeType":"ExpressionStatement","src":"16272:47:165"},{"expression":{"id":79794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16329:35:165","subExpression":{"expression":{"expression":{"id":79789,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79719,"src":"16329:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79792,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16336:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"16329:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16349:13:165","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85010,"src":"16329:33:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79795,"nodeType":"ExpressionStatement","src":"16329:35:165"},{"eventCall":{"arguments":[{"id":79797,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"16395:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79798,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79708,"src":"16404:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79796,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"16380:14:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":79799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16380:32:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79800,"nodeType":"EmitStatement","src":"16375:37:165"},{"expression":{"id":79801,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79759,"src":"16430:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79716,"id":79802,"nodeType":"Return","src":"16423:14:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"15546:14:165","parameters":{"id":79713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79708,"mutability":"mutable","name":"_codeId","nameLocation":"15569:7:165","nodeType":"VariableDeclaration","scope":79804,"src":"15561:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15561:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79710,"mutability":"mutable","name":"_salt","nameLocation":"15586:5:165","nodeType":"VariableDeclaration","scope":79804,"src":"15578:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79709,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15578:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":79712,"mutability":"mutable","name":"_isSmall","nameLocation":"15598:8:165","nodeType":"VariableDeclaration","scope":79804,"src":"15593:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79711,"name":"bool","nodeType":"ElementaryTypeName","src":"15593:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15560:47:165"},"returnParameters":{"id":79716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79804,"src":"15625:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79714,"name":"address","nodeType":"ElementaryTypeName","src":"15625:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15624:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":79867,"nodeType":"FunctionDefinition","src":"16450:652:165","nodes":[],"body":{"id":79866,"nodeType":"Block","src":"16560:542:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79816,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79810,"src":"16578:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16585:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":84920,"src":"16578:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$84892_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":79818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16601:6:165","memberName":"length","nodeType":"MemberAccess","src":"16578:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":79819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16611:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16578:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79821,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73819,"src":"16614:23:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16614:25:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79815,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16570:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16570:70:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79824,"nodeType":"ExpressionStatement","src":"16570:70:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":79825,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79810,"src":"16655:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16662:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":84920,"src":"16655:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$84892_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":79827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16678:6:165","memberName":"length","nodeType":"MemberAccess","src":"16655:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":79828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16688:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16655:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79835,"nodeType":"IfStatement","src":"16651:146:165","trueBody":{"id":79834,"nodeType":"Block","src":"16691:106:165","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":79831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16783:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":79830,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16773:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":79832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16773:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79814,"id":79833,"nodeType":"Return","src":"16766:20:165"}]}},{"assignments":[79840],"declarations":[{"constant":false,"id":79840,"mutability":"mutable","name":"_commitment","nameLocation":"16837:11:165","nodeType":"VariableDeclaration","scope":79866,"src":"16807:41:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":79839,"nodeType":"UserDefinedTypeName","pathNode":{"id":79838,"name":"Gear.ChainCommitment","nameLocations":["16807:4:165","16812:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":84892,"src":"16807:20:165"},"referencedDeclaration":84892,"src":"16807:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":79845,"initialValue":{"baseExpression":{"expression":{"id":79841,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79810,"src":"16851:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16858:15:165","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":84920,"src":"16851:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$84892_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":79844,"indexExpression":{"hexValue":"30","id":79843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16874:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16851:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"16807:69:165"},{"assignments":[79847],"declarations":[{"constant":false,"id":79847,"mutability":"mutable","name":"_transitionsHash","nameLocation":"16895:16:165","nodeType":"VariableDeclaration","scope":79866,"src":"16887:24:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16887:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79853,"initialValue":{"arguments":[{"id":79849,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79807,"src":"16933:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":79850,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79840,"src":"16941:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":79851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16953:11:165","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":84888,"src":"16941:23:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":79848,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80432,"src":"16914:18:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":79852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16914:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16887:78:165"},{"eventCall":{"arguments":[{"expression":{"id":79855,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79840,"src":"17000:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":79856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17012:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":84891,"src":"17000:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":79854,"name":"AnnouncesCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73751,"src":"16981:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":79857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16981:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79858,"nodeType":"EmitStatement","src":"16976:41:165"},{"expression":{"arguments":[{"id":79861,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79847,"src":"17060:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79862,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79840,"src":"17078:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":79863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17090:4:165","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":84891,"src":"17078:16:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79859,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"17035:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17040:19:165","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85116,"src":"17035:24:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":79864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17035:60:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79814,"id":79865,"nodeType":"Return","src":"17028:67:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"16459:12:165","parameters":{"id":79811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79807,"mutability":"mutable","name":"router","nameLocation":"16488:6:165","nodeType":"VariableDeclaration","scope":79867,"src":"16472:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79806,"nodeType":"UserDefinedTypeName","pathNode":{"id":79805,"name":"Storage","nameLocations":["16472:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"16472:7:165"},"referencedDeclaration":73741,"src":"16472:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":79810,"mutability":"mutable","name":"_batch","nameLocation":"16526:6:165","nodeType":"VariableDeclaration","scope":79867,"src":"16496:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79809,"nodeType":"UserDefinedTypeName","pathNode":{"id":79808,"name":"Gear.BatchCommitment","nameLocations":["16496:4:165","16501:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"16496:20:165"},"referencedDeclaration":84936,"src":"16496:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"16471:62:165"},"returnParameters":{"id":79814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79813,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79867,"src":"16551:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79812,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16551:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16550:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80009,"nodeType":"FunctionDefinition","src":"17108:1402:165","nodes":[],"body":{"id":80008,"nodeType":"Block","src":"17218:1292:165","nodes":[],"statements":[{"assignments":[79879],"declarations":[{"constant":false,"id":79879,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"17236:18:165","nodeType":"VariableDeclaration","scope":80008,"src":"17228:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79878,"name":"uint256","nodeType":"ElementaryTypeName","src":"17228:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79883,"initialValue":{"expression":{"expression":{"id":79880,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79873,"src":"17257:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17264:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":84925,"src":"17257:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$84883_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":79882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17280:6:165","memberName":"length","nodeType":"MemberAccess","src":"17257:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17228:58:165"},{"assignments":[79885],"declarations":[{"constant":false,"id":79885,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"17304:23:165","nodeType":"VariableDeclaration","scope":80008,"src":"17296:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79884,"name":"uint256","nodeType":"ElementaryTypeName","src":"17296:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79889,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79886,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79879,"src":"17330:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":79887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17351:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"17330:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17296:57:165"},{"assignments":[79891],"declarations":[{"constant":false,"id":79891,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"17371:18:165","nodeType":"VariableDeclaration","scope":80008,"src":"17363:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79890,"name":"uint256","nodeType":"ElementaryTypeName","src":"17363:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79896,"initialValue":{"arguments":[{"id":79894,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79885,"src":"17408:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79892,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"17392:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":79893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17399:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"17392:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":79895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17392:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17363:69:165"},{"assignments":[79898],"declarations":[{"constant":false,"id":79898,"mutability":"mutable","name":"offset","nameLocation":"17450:6:165","nodeType":"VariableDeclaration","scope":80008,"src":"17442:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79897,"name":"uint256","nodeType":"ElementaryTypeName","src":"17442:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79900,"initialValue":{"hexValue":"30","id":79899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17459:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17442:18:165"},{"body":{"id":79999,"nodeType":"Block","src":"17520:884:165","statements":[{"assignments":[79915],"declarations":[{"constant":false,"id":79915,"mutability":"mutable","name":"_commitment","nameLocation":"17563:11:165","nodeType":"VariableDeclaration","scope":79999,"src":"17534:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":79914,"nodeType":"UserDefinedTypeName","pathNode":{"id":79913,"name":"Gear.CodeCommitment","nameLocations":["17534:4:165","17539:14:165"],"nodeType":"IdentifierPath","referencedDeclaration":84883,"src":"17534:19:165"},"referencedDeclaration":84883,"src":"17534:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":79920,"initialValue":{"baseExpression":{"expression":{"id":79916,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79873,"src":"17577:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":79917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17584:15:165","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":84925,"src":"17577:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$84883_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":79919,"indexExpression":{"id":79918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79902,"src":"17600:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17577:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"17534:68:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"id":79931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":79922,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79870,"src":"17642:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17649:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17642:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17662:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"17642:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79927,"indexExpression":{"expression":{"id":79925,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"17668:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17680:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"17668:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17642:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":79928,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"17687:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17692:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"17687:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":79930,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17702:19:165","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":84966,"src":"17687:34:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"17642:79:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":79932,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"17739:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":79933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17739:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":79921,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17617:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":79934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17617:164:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79935,"nodeType":"ExpressionStatement","src":"17617:164:165"},{"condition":{"expression":{"id":79936,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"17800:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17812:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":84882,"src":"17800:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":79967,"nodeType":"Block","src":"17985:81:165","statements":[{"expression":{"id":79965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18003:48:165","subExpression":{"baseExpression":{"expression":{"expression":{"id":79959,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79870,"src":"18010:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18017:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"18010:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18030:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"18010:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79964,"indexExpression":{"expression":{"id":79962,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"18036:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18048:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"18036:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18010:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79966,"nodeType":"ExpressionStatement","src":"18003:48:165"}]},"id":79968,"nodeType":"IfStatement","src":"17796:270:165","trueBody":{"id":79958,"nodeType":"Block","src":"17819:160:165","statements":[{"expression":{"id":79949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":79938,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79870,"src":"17837:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17844:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17837:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17857:5:165","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"17837:25:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":79945,"indexExpression":{"expression":{"id":79941,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"17863:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17875:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"17863:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17837:41:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":79946,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"17881:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17886:9:165","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"17881:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":79948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17896:9:165","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":84967,"src":"17881:24:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"17837:68:165","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":79950,"nodeType":"ExpressionStatement","src":"17837:68:165"},{"expression":{"id":79956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17923:41:165","subExpression":{"expression":{"expression":{"id":79951,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79870,"src":"17923:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":79954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17930:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17923:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":79955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17943:19:165","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85012,"src":"17923:39:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79957,"nodeType":"ExpressionStatement","src":"17923:41:165"}]}},{"eventCall":{"arguments":[{"expression":{"id":79970,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"18102:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18114:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"18102:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79972,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"18118:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18130:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":84882,"src":"18118:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79969,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"18085:16:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":79974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18085:51:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79975,"nodeType":"EmitStatement","src":"18080:56:165"},{"assignments":[79977],"declarations":[{"constant":false,"id":79977,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"18159:18:165","nodeType":"VariableDeclaration","scope":79999,"src":"18151:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18151:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":79985,"initialValue":{"arguments":[{"expression":{"id":79980,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"18204:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18216:2:165","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"18204:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":79982,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79915,"src":"18220:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":79983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18232:5:165","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":84882,"src":"18220:17:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":79978,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"18180:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":79979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18185:18:165","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85132,"src":"18180:23:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":79984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18180:58:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18151:87:165"},{"expression":{"arguments":[{"id":79989,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79891,"src":"18278:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79990,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79898,"src":"18298:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":79991,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79977,"src":"18306:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":79986,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"18252:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":79988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18259:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"18252:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":79992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18252:73:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79993,"nodeType":"ExpressionStatement","src":"18252:73:165"},{"id":79998,"nodeType":"UncheckedBlock","src":"18339:55:165","statements":[{"expression":{"id":79996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79994,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79898,"src":"18367:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":79995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18377:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18367:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79997,"nodeType":"ExpressionStatement","src":"18367:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79902,"src":"17491:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":79906,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79879,"src":"17495:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17491:22:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80000,"initializationExpression":{"assignments":[79902],"declarations":[{"constant":false,"id":79902,"mutability":"mutable","name":"i","nameLocation":"17484:1:165","nodeType":"VariableDeclaration","scope":80000,"src":"17476:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79901,"name":"uint256","nodeType":"ElementaryTypeName","src":"17476:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79904,"initialValue":{"hexValue":"30","id":79903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17488:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17476:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":79909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17515:3:165","subExpression":{"id":79908,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79902,"src":"17515:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79910,"nodeType":"ExpressionStatement","src":"17515:3:165"},"nodeType":"ForStatement","src":"17471:933:165"},{"expression":{"arguments":[{"id":80003,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79891,"src":"18456:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":80004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18476:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":80005,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79885,"src":"18479:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80001,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"18421:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":80002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18428:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"18421:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":80006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18421:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":79877,"id":80007,"nodeType":"Return","src":"18414:89:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"17117:12:165","parameters":{"id":79874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79870,"mutability":"mutable","name":"router","nameLocation":"17146:6:165","nodeType":"VariableDeclaration","scope":80009,"src":"17130:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":79869,"nodeType":"UserDefinedTypeName","pathNode":{"id":79868,"name":"Storage","nameLocations":["17130:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"17130:7:165"},"referencedDeclaration":73741,"src":"17130:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":79873,"mutability":"mutable","name":"_batch","nameLocation":"17184:6:165","nodeType":"VariableDeclaration","scope":80009,"src":"17154:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":79872,"nodeType":"UserDefinedTypeName","pathNode":{"id":79871,"name":"Gear.BatchCommitment","nameLocations":["17154:4:165","17159:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"17154:20:165"},"referencedDeclaration":84936,"src":"17154:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"17129:62:165"},"returnParameters":{"id":79877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80009,"src":"17209:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":79875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17209:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17208:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80166,"nodeType":"FunctionDefinition","src":"18552:1668:165","nodes":[],"body":{"id":80165,"nodeType":"Block","src":"18664:1556:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80021,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80015,"src":"18682:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18689:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":84930,"src":"18682:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$84945_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":80023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18707:6:165","memberName":"length","nodeType":"MemberAccess","src":"18682:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":80024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18717:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18682:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80026,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73823,"src":"18720:25:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18720:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18674:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18674:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80029,"nodeType":"ExpressionStatement","src":"18674:74:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80030,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80015,"src":"18763:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18770:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":84930,"src":"18763:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$84945_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":80032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18788:6:165","memberName":"length","nodeType":"MemberAccess","src":"18763:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18798:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18763:36:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80040,"nodeType":"IfStatement","src":"18759:148:165","trueBody":{"id":80039,"nodeType":"Block","src":"18801:106:165","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":80036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18893:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":80035,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18883:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80037,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18883:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80019,"id":80038,"nodeType":"Return","src":"18876:20:165"}]}},{"assignments":[80045],"declarations":[{"constant":false,"id":80045,"mutability":"mutable","name":"_commitment","nameLocation":"18949:11:165","nodeType":"VariableDeclaration","scope":80165,"src":"18917:43:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":80044,"nodeType":"UserDefinedTypeName","pathNode":{"id":80043,"name":"Gear.RewardsCommitment","nameLocations":["18917:4:165","18922:17:165"],"nodeType":"IdentifierPath","referencedDeclaration":84945,"src":"18917:22:165"},"referencedDeclaration":84945,"src":"18917:22:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":80050,"initialValue":{"baseExpression":{"expression":{"id":80046,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80015,"src":"18963:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18970:17:165","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":84930,"src":"18963:24:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$84945_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":80049,"indexExpression":{"hexValue":"30","id":80048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18988:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18963:27:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"18917:73:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":80056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80052,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19009:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19021:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"19009:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80054,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80015,"src":"19033:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19040:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"19033:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19009:45:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80057,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73825,"src":"19056:35:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19056:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80051,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19001:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19001:93:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80060,"nodeType":"ExpressionStatement","src":"19001:93:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":80067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80062,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19112:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19124:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"19112:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":80064,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19137:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19144:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"19137:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19157:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"19137:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19112:54:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80068,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"19168:32:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19168:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80061,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19104:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19104:99:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80071,"nodeType":"ExpressionStatement","src":"19104:99:165"},{"assignments":[80073],"declarations":[{"constant":false,"id":80073,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"19222:18:165","nodeType":"VariableDeclaration","scope":80165,"src":"19214:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80072,"name":"uint256","nodeType":"ElementaryTypeName","src":"19214:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80080,"initialValue":{"arguments":[{"id":80076,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19259:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":80077,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19267:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19279:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"19267:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":80074,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"19243:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":80075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19248:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":85886,"src":"19243:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":80079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19243:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19214:75:165"},{"assignments":[80082],"declarations":[{"constant":false,"id":80082,"mutability":"mutable","name":"batchEraIndex","nameLocation":"19307:13:165","nodeType":"VariableDeclaration","scope":80165,"src":"19299:21:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80081,"name":"uint256","nodeType":"ElementaryTypeName","src":"19299:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80089,"initialValue":{"arguments":[{"id":80085,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19339:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":80086,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80015,"src":"19347:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19354:14:165","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"19347:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":80083,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"19323:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":80084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19328:10:165","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":85886,"src":"19323:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":80088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19323:46:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19299:70:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80091,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80073,"src":"19388:18:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80092,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80082,"src":"19409:13:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19388:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80094,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73829,"src":"19424:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19424:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80090,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19380:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19380:78:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80097,"nodeType":"ExpressionStatement","src":"19380:78:165"},{"assignments":[80099],"declarations":[{"constant":false,"id":80099,"mutability":"mutable","name":"_middleware","nameLocation":"19477:11:165","nodeType":"VariableDeclaration","scope":80165,"src":"19469:19:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80098,"name":"address","nodeType":"ElementaryTypeName","src":"19469:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80103,"initialValue":{"expression":{"expression":{"id":80100,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19491:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19498:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19491:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19512:10:165","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":84877,"src":"19491:31:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19469:53:165"},{"assignments":[80105],"declarations":[{"constant":false,"id":80105,"mutability":"mutable","name":"success","nameLocation":"19537:7:165","nodeType":"VariableDeclaration","scope":80165,"src":"19532:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80104,"name":"bool","nodeType":"ElementaryTypeName","src":"19532:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":80121,"initialValue":{"arguments":[{"id":80112,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80099,"src":"19609:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80113,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19622:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19634:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":84939,"src":"19622:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$84950_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":80115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19644:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":84947,"src":"19622:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":80116,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19653:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19665:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":84942,"src":"19653:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":80118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19673:11:165","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":84956,"src":"19653:31:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19622:62:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":80107,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19554:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80108,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19561:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19554:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19575:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":84875,"src":"19554:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80106,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46160,"src":"19547:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$46160_$","typeString":"type(contract IERC20)"}},"id":80110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19547:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$46160","typeString":"contract IERC20"}},"id":80111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19601:7:165","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46147,"src":"19547:61:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":80120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19547:138:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"19532:153:165"},{"expression":{"arguments":[{"id":80123,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80105,"src":"19703:7:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80124,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73831,"src":"19712:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19712:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80122,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19695:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80126,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19695:38:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80127,"nodeType":"ExpressionStatement","src":"19695:38:165"},{"assignments":[80129],"declarations":[{"constant":false,"id":80129,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"19752:20:165","nodeType":"VariableDeclaration","scope":80165,"src":"19744:28:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80128,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19744:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80144,"initialValue":{"arguments":[{"expression":{"expression":{"id":80134,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80012,"src":"19856:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19863:13:165","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19856:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":80136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19877:11:165","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":84875,"src":"19856:32:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":80137,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19890:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19902:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":84939,"src":"19890:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$84950_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":80139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19912:6:165","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":84947,"src":"19890:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":80140,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"19920:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19932:9:165","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":84939,"src":"19920:21:165","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$84950_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":80142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19942:4:165","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":84949,"src":"19920:26:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":80131,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80099,"src":"19787:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80130,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"19775:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$73432_$","typeString":"type(contract IMiddleware)"}},"id":80132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19775:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$73432","typeString":"contract IMiddleware"}},"id":80133,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19813:25:165","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":73420,"src":"19775:63:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":80143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19775:185:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19744:216:165"},{"assignments":[80146],"declarations":[{"constant":false,"id":80146,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"19979:18:165","nodeType":"VariableDeclaration","scope":80165,"src":"19971:26:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80145,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19971:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80156,"initialValue":{"arguments":[{"expression":{"id":80151,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"20061:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20073:7:165","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":84942,"src":"20061:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":80153,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"20082:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20094:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"20082:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":80148,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80099,"src":"20024:11:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80147,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"20012:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$73432_$","typeString":"type(contract IMiddleware)"}},"id":80149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20012:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$73432","typeString":"contract IMiddleware"}},"id":80150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20037:23:165","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":73431,"src":"20012:48:165","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$84959_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":80155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20012:92:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19971:133:165"},{"expression":{"arguments":[{"id":80159,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80129,"src":"20149:20:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":80160,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80146,"src":"20171:18:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":80161,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80045,"src":"20191:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":80162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20203:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"20191:21:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":80157,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"20122:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":80158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20127:21:165","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85153,"src":"20122:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":80163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20122:91:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80019,"id":80164,"nodeType":"Return","src":"20115:98:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"18561:14:165","parameters":{"id":80016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80012,"mutability":"mutable","name":"router","nameLocation":"18592:6:165","nodeType":"VariableDeclaration","scope":80166,"src":"18576:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80011,"nodeType":"UserDefinedTypeName","pathNode":{"id":80010,"name":"Storage","nameLocations":["18576:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"18576:7:165"},"referencedDeclaration":73741,"src":"18576:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":80015,"mutability":"mutable","name":"_batch","nameLocation":"18630:6:165","nodeType":"VariableDeclaration","scope":80166,"src":"18600:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":80014,"nodeType":"UserDefinedTypeName","pathNode":{"id":80013,"name":"Gear.BatchCommitment","nameLocations":["18600:4:165","18605:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"18600:20:165"},"referencedDeclaration":84936,"src":"18600:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"18575:62:165"},"returnParameters":{"id":80019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80018,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80166,"src":"18655:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80017,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18655:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18654:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80312,"nodeType":"FunctionDefinition","src":"20272:1520:165","nodes":[],"body":{"id":80311,"nodeType":"Block","src":"20387:1405:165","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80179,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80173,"src":"20405:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20412:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":84935,"src":"20405:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$84903_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":80181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20433:6:165","memberName":"length","nodeType":"MemberAccess","src":"20405:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":80182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20443:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20405:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80184,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"20446:28:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20446:30:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80178,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20397:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20397:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80187,"nodeType":"ExpressionStatement","src":"20397:80:165"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80188,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80173,"src":"20492:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20499:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":84935,"src":"20492:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$84903_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":80190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20520:6:165","memberName":"length","nodeType":"MemberAccess","src":"20492:34:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":80191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20530:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20492:39:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80198,"nodeType":"IfStatement","src":"20488:151:165","trueBody":{"id":80197,"nodeType":"Block","src":"20533:106:165","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":80194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20625:2:165","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":80193,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20615:9:165","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":80195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20615:13:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80177,"id":80196,"nodeType":"Return","src":"20608:20:165"}]}},{"assignments":[80203],"declarations":[{"constant":false,"id":80203,"mutability":"mutable","name":"_commitment","nameLocation":"20684:11:165","nodeType":"VariableDeclaration","scope":80311,"src":"20649:46:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":80202,"nodeType":"UserDefinedTypeName","pathNode":{"id":80201,"name":"Gear.ValidatorsCommitment","nameLocations":["20649:4:165","20654:20:165"],"nodeType":"IdentifierPath","referencedDeclaration":84903,"src":"20649:25:165"},"referencedDeclaration":84903,"src":"20649:25:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":80208,"initialValue":{"baseExpression":{"expression":{"id":80204,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80173,"src":"20698:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":80205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20705:20:165","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":84935,"src":"20698:27:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$84903_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":80207,"indexExpression":{"hexValue":"30","id":80206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20726:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20698:30:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"20649:79:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80210,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"20747:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20759:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":84900,"src":"20747:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":80212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20770:6:165","memberName":"length","nodeType":"MemberAccess","src":"20747:29:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20779:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20747:33:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80215,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73835,"src":"20782:19:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20782:21:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80209,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20739:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20739:65:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80218,"nodeType":"ExpressionStatement","src":"20739:65:165"},{"assignments":[80220],"declarations":[{"constant":false,"id":80220,"mutability":"mutable","name":"currentEraIndex","nameLocation":"20823:15:165","nodeType":"VariableDeclaration","scope":80311,"src":"20815:23:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80219,"name":"uint256","nodeType":"ElementaryTypeName","src":"20815:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80232,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80221,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20842:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20848:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"20842:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":80223,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80170,"src":"20860:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20867:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"20860:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20880:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"20860:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20842:47:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":80227,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20841:49:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":80228,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80170,"src":"20893:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20900:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"20893:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":80230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20910:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85042,"src":"20893:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20841:72:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20815:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80234,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"20932:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20944:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":84902,"src":"20932:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80236,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80220,"src":"20956:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":80237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20974:1:165","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20956:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20932:43:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80240,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73837,"src":"20977:20:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20977:22:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80233,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20924:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20924:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80243,"nodeType":"ExpressionStatement","src":"20924:76:165"},{"assignments":[80245],"declarations":[{"constant":false,"id":80245,"mutability":"mutable","name":"nextEraStart","nameLocation":"21019:12:165","nodeType":"VariableDeclaration","scope":80311,"src":"21011:20:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80244,"name":"uint256","nodeType":"ElementaryTypeName","src":"21011:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80256,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80246,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80170,"src":"21034:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21041:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"21034:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21054:9:165","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"21034:29:165","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80249,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80170,"src":"21066:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21073:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"21066:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":80251,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21083:3:165","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85042,"src":"21066:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":80252,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"21089:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21101:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":84902,"src":"21089:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21066:43:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21034:75:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21011:98:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80258,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21127:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21133:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"21127:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80260,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80245,"src":"21146:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":80261,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80170,"src":"21161:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80262,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21168:9:165","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"21161:16:165","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":80263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21178:8:165","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":85044,"src":"21161:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21146:40:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21127:59:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80266,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"21188:18:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21188:20:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21119:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21119:90:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80269,"nodeType":"ExpressionStatement","src":"21119:90:165"},{"assignments":[80274],"declarations":[{"constant":false,"id":80274,"mutability":"mutable","name":"_validators","nameLocation":"21291:11:165","nodeType":"VariableDeclaration","scope":80311,"src":"21267:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80273,"nodeType":"UserDefinedTypeName","pathNode":{"id":80272,"name":"Gear.Validators","nameLocations":["21267:4:165","21272:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":84860,"src":"21267:15:165"},"referencedDeclaration":84860,"src":"21267:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":80279,"initialValue":{"arguments":[{"id":80277,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80170,"src":"21332:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":80275,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"21305:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":80276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21310:21:165","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":85724,"src":"21305:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":80278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21305:34:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21267:72:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80281,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80274,"src":"21357:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21369:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":84859,"src":"21357:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80283,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21388:5:165","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":80284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21394:9:165","memberName":"timestamp","nodeType":"MemberAccess","src":"21388:15:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21357:46:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80286,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73841,"src":"21405:26:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21405:28:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80280,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21349:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21349:85:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80289,"nodeType":"ExpressionStatement","src":"21349:85:165"},{"expression":{"arguments":[{"id":80291,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80274,"src":"21475:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":80292,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"21500:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21512:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84895,"src":"21500:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":80294,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"21545:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21557:33:165","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":84897,"src":"21545:45:165","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":80296,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"21604:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21616:10:165","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":84900,"src":"21604:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":80298,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80245,"src":"21640:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80290,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80544,"src":"21445:16:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$84860_storage_ptr_$_t_struct$_AggregatedPublicKey_$84845_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":80299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21445:217:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80300,"nodeType":"ExpressionStatement","src":"21445:217:165"},{"eventCall":{"arguments":[{"expression":{"id":80302,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"21704:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":80303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21716:8:165","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":84902,"src":"21704:20:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80301,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73768,"src":"21678:25:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":80304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21678:47:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80305,"nodeType":"EmitStatement","src":"21673:52:165"},{"expression":{"arguments":[{"id":80308,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80203,"src":"21773:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":80306,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"21743:4:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":80307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21748:24:165","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85178,"src":"21743:29:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$84903_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":80309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21743:42:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80177,"id":80310,"nodeType":"Return","src":"21736:49:165"}]},"documentation":{"id":80167,"nodeType":"StructuredDocumentation","src":"20226:41:165","text":"@dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"20281:17:165","parameters":{"id":80174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80170,"mutability":"mutable","name":"router","nameLocation":"20315:6:165","nodeType":"VariableDeclaration","scope":80312,"src":"20299:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80169,"nodeType":"UserDefinedTypeName","pathNode":{"id":80168,"name":"Storage","nameLocations":["20299:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"20299:7:165"},"referencedDeclaration":73741,"src":"20299:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":80173,"mutability":"mutable","name":"_batch","nameLocation":"20353:6:165","nodeType":"VariableDeclaration","scope":80312,"src":"20323:36:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":80172,"nodeType":"UserDefinedTypeName","pathNode":{"id":80171,"name":"Gear.BatchCommitment","nameLocations":["20323:4:165","20328:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"20323:20:165"},"referencedDeclaration":84936,"src":"20323:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"20298:62:165"},"returnParameters":{"id":80177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80312,"src":"20378:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80175,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20378:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20377:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80432,"nodeType":"FunctionDefinition","src":"21798:1168:165","nodes":[],"body":{"id":80431,"nodeType":"Block","src":"21942:1024:165","nodes":[],"statements":[{"assignments":[80325],"declarations":[{"constant":false,"id":80325,"mutability":"mutable","name":"transitionsLen","nameLocation":"21960:14:165","nodeType":"VariableDeclaration","scope":80431,"src":"21952:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80324,"name":"uint256","nodeType":"ElementaryTypeName","src":"21952:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80328,"initialValue":{"expression":{"id":80326,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80319,"src":"21977:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":80327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21990:6:165","memberName":"length","nodeType":"MemberAccess","src":"21977:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21952:44:165"},{"assignments":[80330],"declarations":[{"constant":false,"id":80330,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"22014:19:165","nodeType":"VariableDeclaration","scope":80431,"src":"22006:27:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80329,"name":"uint256","nodeType":"ElementaryTypeName","src":"22006:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80334,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80331,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80325,"src":"22036:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":80332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22053:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22036:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22006:49:165"},{"assignments":[80336],"declarations":[{"constant":false,"id":80336,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"22073:23:165","nodeType":"VariableDeclaration","scope":80431,"src":"22065:31:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80335,"name":"uint256","nodeType":"ElementaryTypeName","src":"22065:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80341,"initialValue":{"arguments":[{"id":80339,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80330,"src":"22115:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80337,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"22099:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":80338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22106:8:165","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"22099:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":80340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22099:36:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22065:70:165"},{"assignments":[80343],"declarations":[{"constant":false,"id":80343,"mutability":"mutable","name":"offset","nameLocation":"22153:6:165","nodeType":"VariableDeclaration","scope":80431,"src":"22145:14:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80342,"name":"uint256","nodeType":"ElementaryTypeName","src":"22145:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80345,"initialValue":{"hexValue":"30","id":80344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22162:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22145:18:165"},{"body":{"id":80422,"nodeType":"Block","src":"22219:640:165","statements":[{"assignments":[80360],"declarations":[{"constant":false,"id":80360,"mutability":"mutable","name":"transition","nameLocation":"22263:10:165","nodeType":"VariableDeclaration","scope":80422,"src":"22233:40:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":80359,"nodeType":"UserDefinedTypeName","pathNode":{"id":80358,"name":"Gear.StateTransition","nameLocations":["22233:4:165","22238:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":85040,"src":"22233:20:165"},"referencedDeclaration":85040,"src":"22233:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":80364,"initialValue":{"baseExpression":{"id":80361,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80319,"src":"22276:12:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":80363,"indexExpression":{"id":80362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80347,"src":"22289:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22276:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"22233:58:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80366,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80315,"src":"22314:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22321:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"22314:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22334:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"22314:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80371,"indexExpression":{"expression":{"id":80369,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80360,"src":"22343:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22354:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"22343:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22314:48:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22366:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22314:53:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80374,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73843,"src":"22369:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22369:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80365,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22306:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22306:80:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80377,"nodeType":"ExpressionStatement","src":"22306:80:165"},{"assignments":[80379],"declarations":[{"constant":false,"id":80379,"mutability":"mutable","name":"value","nameLocation":"22409:5:165","nodeType":"VariableDeclaration","scope":80422,"src":"22401:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80378,"name":"uint128","nodeType":"ElementaryTypeName","src":"22401:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80381,"initialValue":{"hexValue":"30","id":80380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22417:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22401:17:165"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":80389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":80382,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80360,"src":"22437:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22448:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"22437:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22466:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22437:30:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":80388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22471:38:165","subExpression":{"expression":{"id":80386,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80360,"src":"22472:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22483:26:165","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85031,"src":"22472:37:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22437:72:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80396,"nodeType":"IfStatement","src":"22433:144:165","trueBody":{"id":80395,"nodeType":"Block","src":"22511:66:165","statements":[{"expression":{"id":80393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80390,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80379,"src":"22529:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":80391,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80360,"src":"22537:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22548:14:165","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"22537:25:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"22529:33:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":80394,"nodeType":"ExpressionStatement","src":"22529:33:165"}]}},{"assignments":[80398],"declarations":[{"constant":false,"id":80398,"mutability":"mutable","name":"transitionHash","nameLocation":"22599:14:165","nodeType":"VariableDeclaration","scope":80422,"src":"22591:22:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80397,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22591:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80408,"initialValue":{"arguments":[{"id":80406,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80360,"src":"22681:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":80400,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80360,"src":"22624:10:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":80401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22635:7:165","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"22624:18:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80399,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"22616:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":80402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22616:27:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":80403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22644:22:165","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":73657,"src":"22616:50:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$85040_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":80405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":80404,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80379,"src":"22674:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"22616:64:165","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$85040_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":80407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22616:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22591:101:165"},{"expression":{"arguments":[{"id":80412,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80336,"src":"22732:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80413,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80343,"src":"22757:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":80414,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80398,"src":"22765:14:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80409,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"22706:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":80411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22713:18:165","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"22706:25:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":80415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22706:74:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80416,"nodeType":"ExpressionStatement","src":"22706:74:165"},{"id":80421,"nodeType":"UncheckedBlock","src":"22794:55:165","statements":[{"expression":{"id":80419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80417,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80343,"src":"22822:6:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":80418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22832:2:165","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22822:12:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80420,"nodeType":"ExpressionStatement","src":"22822:12:165"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80350,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80347,"src":"22194:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":80351,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80325,"src":"22198:14:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22194:18:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80423,"initializationExpression":{"assignments":[80347],"declarations":[{"constant":false,"id":80347,"mutability":"mutable","name":"i","nameLocation":"22187:1:165","nodeType":"VariableDeclaration","scope":80423,"src":"22179:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80346,"name":"uint256","nodeType":"ElementaryTypeName","src":"22179:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80349,"initialValue":{"hexValue":"30","id":80348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22191:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22179:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22214:3:165","subExpression":{"id":80353,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80347,"src":"22214:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80355,"nodeType":"ExpressionStatement","src":"22214:3:165"},"nodeType":"ForStatement","src":"22174:685:165"},{"expression":{"arguments":[{"id":80426,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80336,"src":"22911:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":80427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22936:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":80428,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80330,"src":"22939:19:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80424,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"22876:6:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":80425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22883:27:165","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"22876:34:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":80429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22876:83:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80323,"id":80430,"nodeType":"Return","src":"22869:90:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"21807:18:165","parameters":{"id":80320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80315,"mutability":"mutable","name":"router","nameLocation":"21842:6:165","nodeType":"VariableDeclaration","scope":80432,"src":"21826:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80314,"nodeType":"UserDefinedTypeName","pathNode":{"id":80313,"name":"Storage","nameLocations":["21826:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"21826:7:165"},"referencedDeclaration":73741,"src":"21826:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":80319,"mutability":"mutable","name":"_transitions","nameLocation":"21882:12:165","nodeType":"VariableDeclaration","scope":80432,"src":"21850:44:165","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":80317,"nodeType":"UserDefinedTypeName","pathNode":{"id":80316,"name":"Gear.StateTransition","nameLocations":["21850:4:165","21855:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":85040,"src":"21850:20:165"},"referencedDeclaration":85040,"src":"21850:20:165","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":80318,"nodeType":"ArrayTypeName","src":"21850:22:165","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"21825:70:165"},"returnParameters":{"id":80323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80432,"src":"21929:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80321,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21929:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21928:9:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80544,"nodeType":"FunctionDefinition","src":"22972:1421:165","nodes":[],"body":{"id":80543,"nodeType":"Block","src":"23255:1138:165","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":80451,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80438,"src":"23645:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":80452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23669:1:165","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":84842,"src":"23645:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":80453,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80438,"src":"23672:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":80454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23696:1:165","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":84844,"src":"23672:25:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":80449,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"23622:5:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40289_$","typeString":"type(library FROST)"}},"id":80450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23628:16:165","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":39958,"src":"23622:22:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":80455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23622:76:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80456,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"23712:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23712:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80448,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23601:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23601:154:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80459,"nodeType":"ExpressionStatement","src":"23601:154:165"},{"expression":{"id":80464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80460,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"23765:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80462,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23777:19:165","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84848,"src":"23765:31:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80463,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80438,"src":"23799:23:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"23765:57:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":80465,"nodeType":"ExpressionStatement","src":"23765:57:165"},{"expression":{"id":80473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80466,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"23832:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23844:40:165","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":84850,"src":"23832:52:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":80471,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80440,"src":"23901:34:165","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":80469,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"23887:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$86395_$","typeString":"type(library SSTORE2)"}},"id":80470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23895:5:165","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":86301,"src":"23887:13:165","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":80472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23887:49:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23832:104:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80474,"nodeType":"ExpressionStatement","src":"23832:104:165"},{"body":{"id":80502,"nodeType":"Block","src":"24000:114:165","statements":[{"assignments":[80488],"declarations":[{"constant":false,"id":80488,"mutability":"mutable","name":"_validator","nameLocation":"24022:10:165","nodeType":"VariableDeclaration","scope":80502,"src":"24014:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80487,"name":"address","nodeType":"ElementaryTypeName","src":"24014:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80493,"initialValue":{"baseExpression":{"expression":{"id":80489,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"24035:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24047:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"24035:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80492,"indexExpression":{"id":80491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80476,"src":"24052:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24035:19:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24014:40:165"},{"expression":{"id":80500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":80494,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"24068:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24080:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"24068:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80498,"indexExpression":{"id":80496,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80488,"src":"24084:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24068:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":80499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24098:5:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"24068:35:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80501,"nodeType":"ExpressionStatement","src":"24068:35:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80479,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80476,"src":"23966:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":80480,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"23970:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23982:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"23970:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23987:6:165","memberName":"length","nodeType":"MemberAccess","src":"23970:23:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23966:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80503,"initializationExpression":{"assignments":[80476],"declarations":[{"constant":false,"id":80476,"mutability":"mutable","name":"i","nameLocation":"23959:1:165","nodeType":"VariableDeclaration","scope":80503,"src":"23951:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80475,"name":"uint256","nodeType":"ElementaryTypeName","src":"23951:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80478,"initialValue":{"hexValue":"30","id":80477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23963:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23951:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23995:3:165","subExpression":{"id":80484,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80476,"src":"23995:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80486,"nodeType":"ExpressionStatement","src":"23995:3:165"},"nodeType":"ForStatement","src":"23946:168:165"},{"body":{"id":80529,"nodeType":"Block","src":"24175:111:165","statements":[{"assignments":[80516],"declarations":[{"constant":false,"id":80516,"mutability":"mutable","name":"_validator","nameLocation":"24197:10:165","nodeType":"VariableDeclaration","scope":80529,"src":"24189:18:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80515,"name":"address","nodeType":"ElementaryTypeName","src":"24189:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80520,"initialValue":{"baseExpression":{"id":80517,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80443,"src":"24210:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":80519,"indexExpression":{"id":80518,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80505,"src":"24225:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24210:17:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24189:38:165"},{"expression":{"id":80527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":80521,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"24241:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24253:3:165","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"24241:15:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":80525,"indexExpression":{"id":80523,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80516,"src":"24257:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24241:27:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":80526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24271:4:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"24241:34:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80528,"nodeType":"ExpressionStatement","src":"24241:34:165"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80508,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80505,"src":"24143:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":80509,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80443,"src":"24147:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":80510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24162:6:165","memberName":"length","nodeType":"MemberAccess","src":"24147:21:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24143:25:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80530,"initializationExpression":{"assignments":[80505],"declarations":[{"constant":false,"id":80505,"mutability":"mutable","name":"i","nameLocation":"24136:1:165","nodeType":"VariableDeclaration","scope":80530,"src":"24128:9:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80504,"name":"uint256","nodeType":"ElementaryTypeName","src":"24128:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":80507,"initialValue":{"hexValue":"30","id":80506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24140:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24128:13:165"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":80513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24170:3:165","subExpression":{"id":80512,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80505,"src":"24170:1:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80514,"nodeType":"ExpressionStatement","src":"24170:3:165"},"nodeType":"ForStatement","src":"24123:163:165"},{"expression":{"id":80535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80531,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"24295:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24307:4:165","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"24295:16:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80534,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80443,"src":"24314:14:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"24295:33:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":80536,"nodeType":"ExpressionStatement","src":"24295:33:165"},{"expression":{"id":80541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":80537,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80435,"src":"24338:11:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":80539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24350:16:165","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":84859,"src":"24338:28:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80540,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80445,"src":"24369:17:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24338:48:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80542,"nodeType":"ExpressionStatement","src":"24338:48:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"22981:16:165","parameters":{"id":80446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80435,"mutability":"mutable","name":"_validators","nameLocation":"23031:11:165","nodeType":"VariableDeclaration","scope":80544,"src":"23007:35:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":80434,"nodeType":"UserDefinedTypeName","pathNode":{"id":80433,"name":"Gear.Validators","nameLocations":["23007:4:165","23012:10:165"],"nodeType":"IdentifierPath","referencedDeclaration":84860,"src":"23007:15:165"},"referencedDeclaration":84860,"src":"23007:15:165","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":80438,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"23084:23:165","nodeType":"VariableDeclaration","scope":80544,"src":"23052:55:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":80437,"nodeType":"UserDefinedTypeName","pathNode":{"id":80436,"name":"Gear.AggregatedPublicKey","nameLocations":["23052:4:165","23057:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":84845,"src":"23052:24:165"},"referencedDeclaration":84845,"src":"23052:24:165","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":80440,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"23130:34:165","nodeType":"VariableDeclaration","scope":80544,"src":"23117:47:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80439,"name":"bytes","nodeType":"ElementaryTypeName","src":"23117:5:165","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80443,"mutability":"mutable","name":"_newValidators","nameLocation":"23191:14:165","nodeType":"VariableDeclaration","scope":80544,"src":"23174:31:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80441,"name":"address","nodeType":"ElementaryTypeName","src":"23174:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80442,"nodeType":"ArrayTypeName","src":"23174:9:165","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":80445,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"23223:17:165","nodeType":"VariableDeclaration","scope":80544,"src":"23215:25:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80444,"name":"uint256","nodeType":"ElementaryTypeName","src":"23215:7:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22997:249:165"},"returnParameters":{"id":80447,"nodeType":"ParameterList","parameters":[],"src":"23255:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80557,"nodeType":"FunctionDefinition","src":"24399:192:165","nodes":[],"body":{"id":80556,"nodeType":"Block","src":"24464:127:165","nodes":[],"statements":[{"assignments":[80551],"declarations":[{"constant":false,"id":80551,"mutability":"mutable","name":"slot","nameLocation":"24482:4:165","nodeType":"VariableDeclaration","scope":80556,"src":"24474:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80550,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24474:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80554,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80552,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80569,"src":"24489:15:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":80553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24489:17:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24474:32:165"},{"AST":{"nativeSrc":"24542:43:165","nodeType":"YulBlock","src":"24542:43:165","statements":[{"nativeSrc":"24556:19:165","nodeType":"YulAssignment","src":"24556:19:165","value":{"name":"slot","nativeSrc":"24571:4:165","nodeType":"YulIdentifier","src":"24571:4:165"},"variableNames":[{"name":"router.slot","nativeSrc":"24556:11:165","nodeType":"YulIdentifier","src":"24556:11:165"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":80548,"isOffset":false,"isSlot":true,"src":"24556:11:165","suffix":"slot","valueSize":1},{"declaration":80551,"isOffset":false,"isSlot":false,"src":"24571:4:165","valueSize":1}],"flags":["memory-safe"],"id":80555,"nodeType":"InlineAssembly","src":"24517:68:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"24408:7:165","parameters":{"id":80545,"nodeType":"ParameterList","parameters":[],"src":"24415:2:165"},"returnParameters":{"id":80549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80548,"mutability":"mutable","name":"router","nameLocation":"24456:6:165","nodeType":"VariableDeclaration","scope":80557,"src":"24440:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80547,"nodeType":"UserDefinedTypeName","pathNode":{"id":80546,"name":"Storage","nameLocations":["24440:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"24440:7:165"},"referencedDeclaration":73741,"src":"24440:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"24439:24:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80569,"nodeType":"FunctionDefinition","src":"24597:128:165","nodes":[],"body":{"id":80568,"nodeType":"Block","src":"24655:70:165","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":80564,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78509,"src":"24699:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80562,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"24672:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":80563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24684:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"24672:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24672:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24713:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"24672:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":80561,"id":80567,"nodeType":"Return","src":"24665:53:165"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"24606:15:165","parameters":{"id":80558,"nodeType":"ParameterList","parameters":[],"src":"24621:2:165"},"returnParameters":{"id":80561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80569,"src":"24646:7:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24646:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24645:9:165"},"scope":80656,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":80597,"nodeType":"FunctionDefinition","src":"24731:240:165","nodes":[],"body":{"id":80596,"nodeType":"Block","src":"24799:172:165","nodes":[],"statements":[{"assignments":[80577],"declarations":[{"constant":false,"id":80577,"mutability":"mutable","name":"slot","nameLocation":"24817:4:165","nodeType":"VariableDeclaration","scope":80596,"src":"24809:12:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80576,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24809:7:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":80582,"initialValue":{"arguments":[{"id":80580,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80571,"src":"24851:9:165","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":80578,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"24824:14:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":80579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24839:11:165","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"24824:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":80581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24824:37:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24809:52:165"},{"expression":{"id":80590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":80586,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78509,"src":"24898:12:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":80583,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"24871:11:165","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":80585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24883:14:165","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"24871:26:165","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":80587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24871:40:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":80588,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24912:5:165","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"24871:46:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80589,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80577,"src":"24920:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24871:53:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":80591,"nodeType":"ExpressionStatement","src":"24871:53:165"},{"eventCall":{"arguments":[{"id":80593,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80577,"src":"24959:4:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":80592,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73787,"src":"24940:18:165","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":80594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24940:24:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80595,"nodeType":"EmitStatement","src":"24935:29:165"}]},"implemented":true,"kind":"function","modifiers":[{"id":80574,"kind":"modifierInvocation","modifierName":{"id":80573,"name":"onlyOwner","nameLocations":["24789:9:165"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"24789:9:165"},"nodeType":"ModifierInvocation","src":"24789:9:165"}],"name":"_setStorageSlot","nameLocation":"24740:15:165","parameters":{"id":80572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80571,"mutability":"mutable","name":"namespace","nameLocation":"24770:9:165","nodeType":"VariableDeclaration","scope":80597,"src":"24756:23:165","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80570,"name":"string","nodeType":"ElementaryTypeName","src":"24756:6:165","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24755:25:165"},"returnParameters":{"id":80575,"nodeType":"ParameterList","parameters":[],"src":"24799:0:165"},"scope":80656,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":80655,"nodeType":"FunctionDefinition","src":"24977:396:165","nodes":[],"body":{"id":80654,"nodeType":"Block","src":"25018:355:165","nodes":[],"statements":[{"assignments":[80604],"declarations":[{"constant":false,"id":80604,"mutability":"mutable","name":"router","nameLocation":"25044:6:165","nodeType":"VariableDeclaration","scope":80654,"src":"25028:22:165","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":80603,"nodeType":"UserDefinedTypeName","pathNode":{"id":80602,"name":"Storage","nameLocations":["25028:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"25028:7:165"},"referencedDeclaration":73741,"src":"25028:7:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":80607,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":80605,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80557,"src":"25053:7:165","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":80606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25053:9:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25028:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":80609,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"25080:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80610,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25087:12:165","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"25080:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":80611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25100:4:165","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"25080:24:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":80614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25116:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":80613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25108:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":80612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25108:7:165","typeDescriptions":{}}},"id":80615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25108:10:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25080:38:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80617,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"25120:31:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25120:33:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80608,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25072:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25072:82:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80620,"nodeType":"ExpressionStatement","src":"25072:82:165"},{"assignments":[80622],"declarations":[{"constant":false,"id":80622,"mutability":"mutable","name":"value","nameLocation":"25173:5:165","nodeType":"VariableDeclaration","scope":80654,"src":"25165:13:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":80621,"name":"uint128","nodeType":"ElementaryTypeName","src":"25165:7:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":80628,"initialValue":{"arguments":[{"expression":{"id":80625,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25189:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25193:5:165","memberName":"value","nodeType":"MemberAccess","src":"25189:9:165","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25181:7:165","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":80623,"name":"uint128","nodeType":"ElementaryTypeName","src":"25181:7:165","typeDescriptions":{}}},"id":80627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25181:18:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"25165:34:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":80632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80630,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80622,"src":"25217:5:165","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":80631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25225:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25217:9:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80633,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73847,"src":"25228:17:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25228:19:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80629,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25209:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25209:39:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80636,"nodeType":"ExpressionStatement","src":"25209:39:165"},{"assignments":[80638],"declarations":[{"constant":false,"id":80638,"mutability":"mutable","name":"actorId","nameLocation":"25267:7:165","nodeType":"VariableDeclaration","scope":80654,"src":"25259:15:165","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80637,"name":"address","nodeType":"ElementaryTypeName","src":"25259:7:165","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":80641,"initialValue":{"expression":{"id":80639,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25277:3:165","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":80640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25281:6:165","memberName":"sender","nodeType":"MemberAccess","src":"25277:10:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"25259:28:165"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":80649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":80643,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80604,"src":"25305:6:165","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":80644,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25312:12:165","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"25305:19:165","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":80645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25325:8:165","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"25305:28:165","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":80647,"indexExpression":{"id":80646,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80638,"src":"25334:7:165","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25305:37:165","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":80648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25346:1:165","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25305:42:165","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":80650,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73843,"src":"25349:14:165","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":80651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25349:16:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":80642,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25297:7:165","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":80652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25297:69:165","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80653,"nodeType":"ExpressionStatement","src":"25297:69:165"}]},"implemented":true,"kind":"receive","modifiers":[{"id":80600,"kind":"modifierInvocation","modifierName":{"id":80599,"name":"whenNotPaused","nameLocations":["25004:13:165"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"25004:13:165"},"nodeType":"ModifierInvocation","src":"25004:13:165"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":80598,"nodeType":"ParameterList","parameters":[],"src":"24984:2:165"},"returnParameters":{"id":80601,"nodeType":"ParameterList","parameters":[],"src":"25018:0:165"},"scope":80656,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":78497,"name":"IRouter","nameLocations":["1274:7:165"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"1274:7:165"},"id":78498,"nodeType":"InheritanceSpecifier","src":"1274:7:165"},{"baseName":{"id":78499,"name":"OwnableUpgradeable","nameLocations":["1287:18:165"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"1287:18:165"},"id":78500,"nodeType":"InheritanceSpecifier","src":"1287:18:165"},{"baseName":{"id":78501,"name":"PausableUpgradeable","nameLocations":["1311:19:165"],"nodeType":"IdentifierPath","referencedDeclaration":43182,"src":"1311:19:165"},"id":78502,"nodeType":"InheritanceSpecifier","src":"1311:19:165"},{"baseName":{"id":78503,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1336:35:165"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"1336:35:165"},"id":78504,"nodeType":"InheritanceSpecifier","src":"1336:35:165"},{"baseName":{"id":78505,"name":"UUPSUpgradeable","nameLocations":["1377:15:165"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"1377:15:165"},"id":78506,"nodeType":"InheritanceSpecifier","src":"1377:15:165"}],"canonicalName":"Router","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[80656,45567,44157,43267,43182,41646,42808,41914,74052],"name":"Router","nameLocation":"1260:6:165","scope":80657,"usedErrors":[41482,41487,41663,41666,43061,43064,43199,44751,44764,45424,45429,46696,48098,50025,50030,50035,73789,73791,73793,73795,73797,73799,73801,73803,73805,73807,73809,73811,73813,73815,73817,73819,73821,73823,73825,73827,73829,73831,73833,73835,73837,73839,73841,73843,73845,73847,84828,84830,84832,84834,84836,84838,84840,86260],"usedEvents":[41493,41671,43053,43058,44105,73746,73751,73758,73763,73768,73775,73782,73787,78522]}],"license":"UNLICENSED"},"id":165} \ No newline at end of file diff --git a/ethexe/ethereum/abi/RouterWithInstrumentation.json b/ethexe/ethereum/abi/RouterWithInstrumentation.json new file mode 100644 index 00000000000..45530edc7af --- /dev/null +++ b/ethexe/ethereum/abi/RouterWithInstrumentation.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"COMMIT_BATCH_AFTER_COMMIT_CODES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"areValidators","inputs":[{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"codeState","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint8","internalType":"enum Gear.CodeState"}],"stateMutability":"view"},{"type":"function","name":"codesStates","inputs":[{"name":"_codesIds","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[{"name":"","type":"uint8[]","internalType":"enum Gear.CodeState[]"}],"stateMutability":"view"},{"type":"function","name":"commitBatch","inputs":[{"name":"_batch","type":"tuple","internalType":"struct Gear.BatchCommitment","components":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"blockTimestamp","type":"uint48","internalType":"uint48"},{"name":"previousCommittedBatchHash","type":"bytes32","internalType":"bytes32"},{"name":"expiry","type":"uint8","internalType":"uint8"},{"name":"chainCommitment","type":"tuple[]","internalType":"struct Gear.ChainCommitment[]","components":[{"name":"transitions","type":"tuple[]","internalType":"struct Gear.StateTransition[]","components":[{"name":"actorId","type":"address","internalType":"address"},{"name":"newStateHash","type":"bytes32","internalType":"bytes32"},{"name":"exited","type":"bool","internalType":"bool"},{"name":"inheritor","type":"address","internalType":"address"},{"name":"valueToReceive","type":"uint128","internalType":"uint128"},{"name":"valueToReceiveNegativeSign","type":"bool","internalType":"bool"},{"name":"valueClaims","type":"tuple[]","internalType":"struct Gear.ValueClaim[]","components":[{"name":"messageId","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"value","type":"uint128","internalType":"uint128"}]},{"name":"messages","type":"tuple[]","internalType":"struct Gear.Message[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"destination","type":"address","internalType":"address"},{"name":"payload","type":"bytes","internalType":"bytes"},{"name":"value","type":"uint128","internalType":"uint128"},{"name":"replyDetails","type":"tuple","internalType":"struct Gear.ReplyDetails","components":[{"name":"to","type":"bytes32","internalType":"bytes32"},{"name":"code","type":"bytes4","internalType":"bytes4"}]},{"name":"call","type":"bool","internalType":"bool"}]}]},{"name":"head","type":"bytes32","internalType":"bytes32"}]},{"name":"codeCommitments","type":"tuple[]","internalType":"struct Gear.CodeCommitment[]","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"valid","type":"bool","internalType":"bool"}]},{"name":"rewardsCommitment","type":"tuple[]","internalType":"struct Gear.RewardsCommitment[]","components":[{"name":"operators","type":"tuple","internalType":"struct Gear.OperatorRewardsCommitment","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"root","type":"bytes32","internalType":"bytes32"}]},{"name":"stakers","type":"tuple","internalType":"struct Gear.StakerRewardsCommitment","components":[{"name":"distribution","type":"tuple[]","internalType":"struct Gear.StakerRewards[]","components":[{"name":"vault","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]},{"name":"totalAmount","type":"uint256","internalType":"uint256"},{"name":"token","type":"address","internalType":"address"}]},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"validatorsCommitment","type":"tuple[]","internalType":"struct Gear.ValidatorsCommitment[]","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"validators","type":"address[]","internalType":"address[]"},{"name":"eraIndex","type":"uint256","internalType":"uint256"}]}]},{"name":"_signatureType","type":"uint8","internalType":"enum Gear.SignatureType"},{"name":"_signatures","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"computeSettings","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]}],"stateMutability":"view"},{"type":"function","name":"createProgram","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createProgramWithAbiInterface","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"},{"name":"_salt","type":"bytes32","internalType":"bytes32"},{"name":"_overrideInitializer","type":"address","internalType":"address"},{"name":"_abiInterface","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"genesisBlockHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"genesisTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_mirror","type":"address","internalType":"address"},{"name":"_wrappedVara","type":"address","internalType":"address"},{"name":"_middleware","type":"address","internalType":"address"},{"name":"_eraDuration","type":"uint256","internalType":"uint256"},{"name":"_electionDuration","type":"uint256","internalType":"uint256"},{"name":"_validationDelay","type":"uint256","internalType":"uint256"},{"name":"_aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"_verifiableSecretSharingCommitment","type":"bytes","internalType":"bytes"},{"name":"_validators","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isValidator","inputs":[{"name":"_validator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchHash","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"latestCommittedBatchTimestamp","inputs":[],"outputs":[{"name":"","type":"uint48","internalType":"uint48"}],"stateMutability":"view"},{"type":"function","name":"lookupGenesisHash","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"middleware","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"mirrorImpl","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"paused","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"programCodeId","inputs":[{"name":"_programId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"programsCodeIds","inputs":[{"name":"_programsIds","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"view"},{"type":"function","name":"programsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestCodeValidation","inputs":[{"name":"_codeId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMirror","inputs":[{"name":"newMirror","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"signingThresholdFraction","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"},{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"storageView","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct IRouter.StorageView","components":[{"name":"genesisBlock","type":"tuple","internalType":"struct Gear.GenesisBlockInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"number","type":"uint32","internalType":"uint32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"latestCommittedBatch","type":"tuple","internalType":"struct Gear.CommittedBatchInfo","components":[{"name":"hash","type":"bytes32","internalType":"bytes32"},{"name":"timestamp","type":"uint48","internalType":"uint48"}]},{"name":"implAddresses","type":"tuple","internalType":"struct Gear.AddressBook","components":[{"name":"mirror","type":"address","internalType":"address"},{"name":"wrappedVara","type":"address","internalType":"address"},{"name":"middleware","type":"address","internalType":"address"}]},{"name":"validationSettings","type":"tuple","internalType":"struct Gear.ValidationSettingsView","components":[{"name":"thresholdNumerator","type":"uint128","internalType":"uint128"},{"name":"thresholdDenominator","type":"uint128","internalType":"uint128"},{"name":"validators0","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]},{"name":"validators1","type":"tuple","internalType":"struct Gear.ValidatorsView","components":[{"name":"aggregatedPublicKey","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]},{"name":"verifiableSecretSharingCommitmentPointer","type":"address","internalType":"address"},{"name":"list","type":"address[]","internalType":"address[]"},{"name":"useFromTimestamp","type":"uint256","internalType":"uint256"}]}]},{"name":"computeSettings","type":"tuple","internalType":"struct Gear.ComputationSettings","components":[{"name":"threshold","type":"uint64","internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","internalType":"uint128"}]},{"name":"timelines","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]},{"name":"programsCount","type":"uint256","internalType":"uint256"},{"name":"validatedCodesCount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"timelines","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.Timelines","components":[{"name":"era","type":"uint256","internalType":"uint256"},{"name":"election","type":"uint256","internalType":"uint256"},{"name":"validationDelay","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unpause","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"validatedCodesCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validators","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"validatorsAggregatedPublicKey","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct Gear.AggregatedPublicKey","components":[{"name":"x","type":"uint256","internalType":"uint256"},{"name":"y","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"validatorsCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsThreshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"validatorsVerifiableSecretSharingCommitment","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"wrappedVara","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"AnnouncesCommitted","inputs":[{"name":"head","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BatchCommitted","inputs":[{"name":"hash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"CodeGotValidated","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"valid","type":"bool","indexed":true,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"CodeValidationRequested","inputs":[{"name":"codeId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"ComputationSettingsChanged","inputs":[{"name":"threshold","type":"uint64","indexed":false,"internalType":"uint64"},{"name":"wvaraPerSecond","type":"uint128","indexed":false,"internalType":"uint128"}],"anonymous":false},{"type":"event","name":"DebugEvent","inputs":[{"name":"topic0","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":true},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Paused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProgramCreated","inputs":[{"name":"actorId","type":"address","indexed":false,"internalType":"address"},{"name":"codeId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"StorageSlotChanged","inputs":[{"name":"slot","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Unpaused","inputs":[{"name":"account","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ValidatorsCommittedForEra","inputs":[{"name":"eraIndex","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ApproveERC20Failed","inputs":[]},{"type":"error","name":"BatchTimestampNotInPast","inputs":[]},{"type":"error","name":"BatchTimestampTooEarly","inputs":[]},{"type":"error","name":"BlobNotFound","inputs":[]},{"type":"error","name":"CodeAlreadyOnValidationOrValidated","inputs":[]},{"type":"error","name":"CodeNotValidated","inputs":[]},{"type":"error","name":"CodeValidationNotRequested","inputs":[]},{"type":"error","name":"CommitmentEraNotNext","inputs":[]},{"type":"error","name":"DeploymentFailed","inputs":[]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ElectionNotStarted","inputs":[]},{"type":"error","name":"EmptyValidatorsList","inputs":[]},{"type":"error","name":"EnforcedPause","inputs":[]},{"type":"error","name":"EraDurationTooShort","inputs":[]},{"type":"error","name":"ErasTimestampMustNotBeEqual","inputs":[]},{"type":"error","name":"ExpectedPause","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"GenesisHashAlreadySet","inputs":[]},{"type":"error","name":"GenesisHashNotFound","inputs":[]},{"type":"error","name":"InvalidElectionDuration","inputs":[]},{"type":"error","name":"InvalidFROSTAggregatedPublicKey","inputs":[]},{"type":"error","name":"InvalidFrostSignatureCount","inputs":[]},{"type":"error","name":"InvalidFrostSignatureLength","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidPreviousCommittedBatchHash","inputs":[]},{"type":"error","name":"InvalidTimestamp","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PredecessorBlockNotFound","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"RewardsCommitmentEraNotPrevious","inputs":[]},{"type":"error","name":"RewardsCommitmentPredatesGenesis","inputs":[]},{"type":"error","name":"RewardsCommitmentTimestampNotInPast","inputs":[]},{"type":"error","name":"RouterGenesisHashNotInitialized","inputs":[]},{"type":"error","name":"SignatureVerificationFailed","inputs":[]},{"type":"error","name":"TimestampInFuture","inputs":[]},{"type":"error","name":"TimestampOlderThanPreviousEra","inputs":[]},{"type":"error","name":"TooManyChainCommitments","inputs":[]},{"type":"error","name":"TooManyRewardsCommitments","inputs":[]},{"type":"error","name":"TooManyValidatorsCommitments","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"UnknownProgram","inputs":[]},{"type":"error","name":"ValidationBeforeGenesis","inputs":[]},{"type":"error","name":"ValidationDelayTooBig","inputs":[]},{"type":"error","name":"ValidatorsAlreadyScheduled","inputs":[]},{"type":"error","name":"ValidatorsNotFoundForTimestamp","inputs":[]},{"type":"error","name":"ZeroValueTransfer","inputs":[]}],"bytecode":{"object":"0x60a080604052346100c257306080525f51602061453c5f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b60405161447590816100c78239608051818181611b630152611bf60152f35b6001600160401b0319166001600160401b039081175f51602061453c5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610091575b50361561001a575f80fd5b610022612d29565b5f5160206144155f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714612730575080630c18d27714612242578063120e3f1e1461216357806328e24b3d146121355780633683c4d214611f0a5780633bd109fa14611ebb5780633d43b41814611e675780633f4ba83a14611de75780634429e24b14611dcb5780634f1ef28614611bb757806352d1902d14611b5057806353f7fd48146116d15780635c975abb146116a25780636c2eb3501461133d578063715018a6146112d457806371a8cf2d146112a657806382bdeaad1461118e5780638456cb591461111b57806384d22a4f146110bd57806388f50cf0146110845780638b1edf1e1461101d5780638da5cb5b14610fe85780638f381dbe14610fa25780639067088e14610f5957806396a2ddfa14610f2b5780639eb939a814610ed4578063a5d53a4414610e7e578063ad2b3d9a14610e62578063ad3cb1cc14610e19578063b24fcac014610965578063baaf020114610864578063c13911e814610820578063c2eb812f146104f4578063ca1e7819146104a4578063cacf66ab1461046c578063d456fd5114610436578063e3a6684f146103f7578063e6fabc09146103be578063ed612f8c14610386578063edc8722514610331578063f2fde38b14610304578063f4f20ac0146102cb5763facd743b0361000f57346102c85760203660031901126102c85761028a612786565b60036102a55f5160206144155f395f51905f52544290613ef2565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346102c857806003193601126102c8575f5160206144155f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346102c85760203660031901126102c85761032e610321612786565b610329612d5e565b612cb8565b80f35b50346102c857806003193601126102c857602061037e5f5160206144155f395f51905f5254600860046103644284613ef2565b0154910154906001600160801b038260801c921690613ec7565b604051908152f35b50346102c857806003193601126102c857602060046103b45f5160206144155f395f51905f52544290613ef2565b0154604051908152f35b50346102c857806003193601126102c8575f5160206144155f395f51905f5254600501546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c857604060085f5160206144155f395f51905f525401548151906001600160801b038116825260801c6020820152f35b50346102c857806003193601126102c857602065ffffffffffff60045f5160206144155f395f51905f5254015416604051908152f35b50346102c857806003193601126102c857602065ffffffffffff60025f5160206144155f395f51905f52540154821c16604051908152f35b50346102c857806003193601126102c8576104f06104dc60046104d65f5160206144155f395f51905f52544290613ef2565b01612aad565b604051918291602083526020830190612922565b0390f35b50346102c857806003193601126102c857604051610511816127fa565b610519612be6565b8152604051610527816127df565b5f8152602081015f9052602082015261053e612be6565b604082015261054b612c85565b606082015260405161055c816127df565b5f80825260208201526080820152610572612be6565b60a08201528160c082015260e001525f5160206144155f395f51905f5254610598612c85565b506105a560098201614182565b906105b2600f8201614182565b600882015492604051936105c585612816565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154604051926105fb846127fa565b604051610607816127b0565b60018401548152600284015463ffffffff8116602083015260201c65ffffffffffff16604082015284526040519461063e866127df565b60038401548652600484015465ffffffffffff166020870152602085019586526040519061066b826127b0565b60058501546001600160a01b0390811683526006860154811660208401526007860154166040808401919091528601918252606086019081526106b060158601612b38565b94608087019586526016016106c490612c04565b9160a0870192835260c0870193845260e087019485526040519788976020895251805160208a0152602081015163ffffffff1660408a01526040015165ffffffffffff16606089015251805160808901526020015165ffffffffffff1660a088015251600160a01b6001900381511660c0880152600160a01b6001900360208201511660e0880152600160a01b60019003906040015116610100870152516101208601610200905280516001600160801b031661022087015260208101516001600160801b031661024087015260408101516102608701608090526102a087016107ad9161295e565b90606001519061021f19878203016102808801526107ca9161295e565b935180516001600160401b0316610140870152602001516001600160801b031661016086015251805161018086015260208101516101a0860152604001516101c0850152516101e0840152516102008301520390f35b50346102c85760203660031901126102c85760ff604060209260195f5160206144155f395f51905f5254016004358252845220541661086260405180926128f1565bf35b50346102c85760203660031901126102c8576004356001600160401b038111610961576108959036906004016128c1565b905f5160206144155f395f51905f5254906108af83612a42565b916108bd6040519384612831565b8383526108c984612a42565b602084019490601f1901368637601a869201915b81811061092857868587604051928392602084019060208552518091526040840192915b81811061090f575050500390f35b8251845285945060209384019390920191600101610901565b8061093e6109396001938588612b00565b612b66565b828060a01b03165f528360205260405f205461095a8288612b24565b52016108dd565b5080fd5b50346102c85760603660031901126102c8576001600160401b03600435116102c857610100600435360360031901126102c857600260243510156102c8576044356001600160401b038111610961576109c29036906004016128c1565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610e0a5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206144155f395f51905f525490600182015415610dfb57815415610d9f575b60038201546044600435013503610d905765ffffffffffff60048301541665ffffffffffff610a61602460043501612c3a565b1610610d8257610a76600435600401836130c6565b9260018580a1610a9060a46004350160043560040161357b565b808096925060051b0460201485151715610d6e57610ab08560051b613f6e565b8695865b818810610c255750610beb965060051b90209060028780a1610adb600435600401866135df565b610aea600435600401876139d2565b90610af9602460043501612c3a565b93610b08606460043501612c2c565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610b6d60e782612831565b5190209283600382015565ffffffffffff610b8c602460043501612c3a565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610be0602460043501612c3a565b169360243591613c55565b15610c1657807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610c3960a46004350160043560040161357b565b891015610d5a578860061b8101358a526019880160205260ff60408b2054166003811015610d4657600103610d3757600191602091610cfc8b8b8e868360061b86010192610c86846135b0565b15610d185760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610cb890612d50565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610ce7846135b0565b1515926040519060061b8701358152a26135b0565b908b60061b01358c52825360218b208186015201970196610ab4565b60409260199160061b87013583520187522060ff198154169055610cbb565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610dbc610db0606460043501612c2c565b60043560040135613031565b15610dec5765ffffffffffff610dd6602460043501612c3a565b164211610a2e57631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346102c857806003193601126102c857506104f0604051610e3c604082612831565b60058152640352e302e360dc1b60208201526040519182916020835260208301906128fe565b50346102c857806003193601126102c857602060405160018152f35b50346102c857806003193601126102c8576104f0610ec05f5160206144155f395f51905f52546002610eb860018060a01b03924290613ef2565b015416613002565b6040519182916020835260208301906128fe565b50346102c857806003193601126102c857610eed612be6565b506060610f0a60165f5160206144155f395f51905f525401612c04565b61086260405180926040809180518452602081015160208501520151910152565b50346102c857806003193601126102c8576020601b5f5160206144155f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857610f73612786565b601a5f5160206144155f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346102c85760203660031901126102c857600435906001600160401b0382116102c8576020610fde610fd836600486016128c1565b90612b7a565b6040519015158152f35b50346102c857806003193601126102c8575f5160206143d55f395f51905f52546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c857611036612d29565b5f5160206144155f395f51905f525460018101908154611075576002015463ffffffff1640908115611066575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346102c857806003193601126102c8575f5160206144155f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c8576110d66129a5565b5060406110f360155f5160206144155f395f51905f525401612b38565b610862825180926001600160801b03602080926001600160401b038151168552015116910152565b50346102c857806003193601126102c857611134612d5e565b61113c612d29565b600160ff195f5160206144355f395f51905f525416175f5160206144355f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c85760203660031901126102c8576004356001600160401b038111610961576111bf9036906004016128c1565b905f5160206144155f395f51905f5254906111d983612a42565b916111e76040519384612831565b8383526111f384612a42565b602084019490601f19013686376019869201915b81811061125c57868587604051928392602084019060208552518091526040840192915b818110611239575050500390f35b919350916020808261124e60019488516128f1565b01940191019184939261122b565b611267818386612b00565b3587528260205260ff6040882054166112808287612b24565b60038210156112925752600101611207565b634e487b7160e01b89526021600452602489fd5b50346102c857806003193601126102c857602060035f5160206144155f395f51905f52540154604051908152f35b50346102c857806003193601126102c8576112ed612d5e565b5f5160206143d55f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102c857806003193601126102c857611356612d5e565b5f5160206144555f395f51905f525460ff8160401c1690811561168d575b5061167e575f5160206144555f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206143d55f395f51905f52546113ce906001600160a01b03166113c6613f0e565b610329613f0e565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206144155f395f51905f5254604090815161140f8382612831565b601781528381017f726f757465722e73746f726167652e526f7574657256320000000000000000008152611441612d5e565b5f199151902001855260ff198386201690815f5160206144155f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc848451848152a1611492612d91565b80516001840155600283019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff191617179055600581016005830190808203611630575b5050600881016001600160801b038154169060088401916001600160801b0319835416178255546001600160801b0382549181191691161790556115686115264283613ef2565b61153d6001600160a01b036002610eb84287613ef2565b611553600461154c4287613ef2565b01926129bd565b9061155e4293612aad565b9160098701612dd9565b6015810160158301908082036115de575b50506016810160168301918183036115be575b5050505060ff60401b195f5160206144555f395f51905f5254165f5160206144555f395f51905f52555160028152a180f35b60189283925490556017810154601785015501549101555f80808061158c565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f80611579565b5481546001600160a01b03199081166001600160a01b039283161790925560068381015490850180548416918316919091179055600780840154908501805490931691161790555f806114df565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611374565b50346102c857806003193601126102c857602060ff5f5160206144355f395f51905f5254166040519015158152f35b50346102c8576101603660031901126102c8576116ec612786565b6024356001600160a01b0381169190829003611b4c5761170a61275a565b91611713612770565b9260c43591608435919060a43560403660e3190112611b485761012435946001600160401b038611611b445736602387011215611b44578560040135916001600160401b038311611b40573660248489010111611b4057610144356001600160401b038111611b3c5761178a9036906004016128c1565b9690945f5160206144555f395f51905f5254996001600160401b0360ff8c60401c16159b1680159081611b34575b6001149081611b2a575b159081611b21575b50611b125761180c908b60016001600160401b03195f5160206144555f395f51905f525416175f5160206144555f395f51905f5255611ae2575b6113c6613f0e565b611814613f0e565b61181c613f0e565b4215611ad3578215611ac45782821115611ab557600a61183c84846129db565b04841015611aa65760409a8b918d83516118568582612831565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152611889612d5e565b905190205f190190526020808f2060ff19165f5160206144155f395f51905f528190558451818152909a917f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16118df612d91565b805160018c015560028b0190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff191617179055835190611929826127b0565b8282526001600160a01b03908116602083018190529381169490910184905260058a018054919092166001600160a01b03199182161790915560068901805482169092179091556007880180549091169091179055700300000000000000000000000000000002600887015561199d6129a5565b5089516119a9816127df565b639502f90081526509184e72a0006020909101526015860180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906119ee816127b0565b8381528460208201520152601686015560178501556018840155865194611a14866127df565b60e4358652610104356020870152611a3091369160240161286d565b9042933690611a3e92612a59565b9160090193611a4c94612dd9565b611a54575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206144555f395f51905f5254165f5160206144555f395f51905f52555160018152a180f35b63145e348f60e01b8c5260048cfd5b6353b2bbed60e01b8c5260048cfd5b63f7ba6bdb60e01b8c5260048cfd5b63b7d0949760e01b8c5260048cfd5b600160401b60ff60401b195f5160206144555f395f51905f525416175f5160206144555f395f51905f5255611804565b63f92ee8a960e01b8d5260048dfd5b9050155f6117ca565b303b1591506117c2565b8c91506117b8565b8a80fd5b8980fd5b8880fd5b8780fd5b8280fd5b50346102c857806003193601126102c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ba85760206040515f5160206143f55f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c857611bcc612786565b906024356001600160401b03811161096157611bec9036906004016128a3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611da9575b50611d9a57611c2e612d5e565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611d62575b50611c7357634c9c8ce360e01b84526004839052602484fd5b9091845f5160206143f55f395f51905f528103611d505750813b15611d3e575f5160206143f55f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611d245780836020611d1895519101845af43d15611d1c573d91611cfc83612852565b92611d0a6040519485612831565b83523d85602085013e6142f4565b5080f35b6060916142f4565b50505034611d2f5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611d92575b81611d7e60209383612831565b81010312611d8e5751945f611c5a565b5f80fd5b3d9150611d71565b63703e46dd60e11b8252600482fd5b5f5160206143f55f395f51905f52546001600160a01b0316141590505f611c21565b50346102c857806003193601126102c857602060405160028152f35b50346102c857806003193601126102c857611e00612d5e565b5f5160206144355f395f51905f525460ff811615611e585760ff19165f5160206144355f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c85760203660031901126102c857611e81612786565b611e89612d5e565b5f5160206144155f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b50346102c857806003193601126102c857611ed46129a5565b506040611ef8611ef35f5160206144155f395f51905f52544290613ef2565b6129bd565b60208251918051835201516020820152f35b50346102c85760603660031901126102c857600435611f2761275a565b611f2f612d29565b5f5160206144155f395f51905f5254600181015415610dfb578284526019810160205260ff604085205416600381101561212157600203612112578284526024356020526040842060405160608101908082106001600160401b0383111761210e57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd000000000000604082015286f590811561210a576001600160a01b0382165f908152601a820160205260409020849055601b01805461202a90612d50565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166121055750335b5f5160206144155f395f51905f5254600501546001600160a01b0316823b1561210157604051631c9776b560e31b81526001600160a01b039092166004830152602482015260016044820152828160648183865af180156120f6576120e1575b602082604051908152f35b6120ec838092612831565b61096157816120d6565b6040513d85823e3d90fd5b8380fd5b612076565b8480fd5b8680fd5b630e2637d160e01b8452600484fd5b634e487b7160e01b85526021600452602485fd5b50346102c857806003193601126102c857602060015f5160206144155f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857600435612180612d29565b814915612233575f5160206144155f395f51905f5254600181015415612224576019018183528060205260ff6040842054166003811015612210576122015781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b6304c51a3360e31b8352600483fd5b634e487b7160e01b84526021600452602484fd5b63580683f360e01b8352600483fd5b637bb2fa2f60e11b8252600482fd5b34611d8e576080366003190112611d8e5760043561225e61275a565b90612267612770565b91612270612d29565b5f5160206144155f395f51905f525460018101541561008257825f526019810160205260ff60405f205416600381101561271c5760020361270d57825f5260243560205260405f206040516102c08101908082106001600160401b03831117611d8e576102b0916040527f60808060405261029e90816100128239f3fe608060405260043610610254575f81527f3560e01c806336a52a18146100ab57806342129d00146100a65780635ce6c32760208201527f146100a1578063701da98e1461009c578063704ed542146100975780637a8e0c60408201527fdd1461009257806391d5a64c1461008d5780639ce110d714610088578063affe60608201527fd0e0146100835763e43f3433036102545761023f565b610222565b6101fa565b60808201527f6101e4565b6101b1565b610181565b610165565b610143565b610106565b346160a08201527ed4575f3660031901126100d45760025460081c6001600160a01b031660809060c08201527f8152602090f35b5f80fd5b9181601f840112156100d45782359167ffffffffff60e08201527fffffff83116100d457602083818601950101116100d457565b604036600319016101008201527f126100d45760043567ffffffffffffffff81116100d4576101329036906004016101208201527f6100d8565b505060243580151514610254575f80fd5b346100d4575f366003196101408201527f01126100d457602060ff600254166040519015158152f35b346100d4575f36606101608201527f031901126100d45760205f54604051908152f35b346100d457602036600319016101808201527f126100d4576004356fffffffffffffffffffffffffffffffff811614610254576101a08201527f5f80fd5b60403660031901126100d45760243567ffffffffffffffff811161006101c08201527fd4576101dd9036906004016100d8565b5050610254565b346100d457602036606101e08201527f0319011215610254575f80fd5b346100d4575f3660031901126100d4576003546102008201527f6040516001600160a01b039091168152602090f35b346100d4575f36600319016102208201527f126100d4576020600154604051908152f35b346100d4575f36600319011215616102408201523060601c7f0254575f80fd5b63e6fabc0960e01b5f5260205f60048173000000000000000017610260820152735afa156100d4575f808051368280378136915af43060a01b176102808201526f3d5f803e1561029a573d5ff35b3d5ffd60801b6102a08201525ff5908115611d8e576001600160a01b0382165f908152601a820160205260409020849055601b01805461264c90612d50565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b038116612707575033915b813b15611d8e57604051631c9776b560e31b81526001600160a01b039384166004820152921660248301525f604483018190528260648183855af19182156126fc576020926126ec575b50604051908152f35b5f6126f691612831565b5f6126e3565b6040513d5f823e3d90fd5b91612699565b630e2637d160e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b34611d8e575f366003190112611d8e57602090601c5f5160206144155f395f51905f525401548152f35b604435906001600160a01b0382168203611d8e57565b606435906001600160a01b0382168203611d8e57565b600435906001600160a01b0382168203611d8e57565b35906001600160a01b0382168203611d8e57565b606081019081106001600160401b038211176127cb57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176127cb57604052565b61010081019081106001600160401b038211176127cb57604052565b608081019081106001600160401b038211176127cb57604052565b90601f801991011681019081106001600160401b038211176127cb57604052565b6001600160401b0381116127cb57601f01601f191660200190565b92919261287982612852565b916128876040519384612831565b829481845281830111611d8e578281602093845f960137010152565b9080601f83011215611d8e578160206128be9335910161286d565b90565b9181601f84011215611d8e578235916001600160401b038311611d8e576020808501948460051b010111611d8e57565b90600382101561271c5752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b81811061293f5750505090565b82516001600160a01b0316845260209384019390920191600101612932565b9060208251805183520151602082015260018060a01b0360208301511660408201526080606061299c604085015160a08386015260a0850190612922565b93015191015290565b604051906129b2826127df565b5f6020838281520152565b906040516129ca816127df565b602060018294805484520154910152565b919082039182116129e857565b634e487b7160e01b5f52601160045260245ffd5b8115612a06570490565b634e487b7160e01b5f52601260045260245ffd5b9190826040910312611d8e57604051612a32816127df565b6020808294803584520135910152565b6001600160401b0381116127cb5760051b60200190565b929190612a6581612a42565b93612a736040519586612831565b602085838152019160051b8101928311611d8e57905b828210612a9557505050565b60208091612aa28461279c565b815201910190612a89565b90604051918281549182825260208201905f5260205f20925f5b818110612ade575050612adc92500383612831565b565b84546001600160a01b0316835260019485019487945060209093019201612ac7565b9190811015612b105760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015612b105760209160051b010190565b90604051612b45816127df565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103611d8e5790565b612b935f5160206144155f395f51905f52544290613ef2565b600301905f5b838110612ba95750505050600190565b612bb7610939828685612b00565b6001600160a01b03165f9081526020849052604090205460ff1615612bde57600101612b99565b505050505f90565b60405190612bf3826127b0565b5f6040838281528260208201520152565b90604051612c11816127b0565b60406002829480548452600181015460208501520154910152565b3560ff81168103611d8e5790565b3565ffffffffffff81168103611d8e5790565b60405190612c5a82612816565b5f606083604051612c6a816127df565b83815283602082015281528260208201528160408201520152565b60405190612c9282612816565b815f81525f6020820152612ca4612c4d565b60408201526060612cb3612c4d565b910152565b6001600160a01b03168015612d16575f5160206143d55f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f5160206144355f395f51905f525416612d4157565b63d93c066560e01b5f5260045ffd5b5f1981146129e85760010190565b5f5160206143d55f395f51905f52546001600160a01b03163303612d7e57565b63118cdaa760e01b5f523360045260245ffd5b612d99612be6565b50604051612da6816127b0565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b818102929181159184041417156129e857565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182612ff1575b505015612fe25751845551600184015560405190612e456021836020808201945f86528051918291018484015e81015f838201520301601f198101845283612831565b612e82602b604051809360208201956a600b5981380380925939f360a81b87525180918484015e81015f838201520301601f198101835282612831565b51905ff06001600160a01b03811615612fd3576002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015612ef6575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff19169055600101612eb8565b5050925f5b8451811015612f3f576001906001600160a01b03612f198288612b24565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501612efb565b5092600482018151916001600160401b0383116127cb57600160401b83116127cb578154838355808410612fa9575b50602001905f5260205f205f5b838110612f8c575050505060050155565b82516001600160a01b031681830155602090920191600101612f7b565b825f52838060205f20019103905f5b828110612fc6575050612f6e565b5f82820155600101612fb8565b633011642560e01b5f5260045ffd5b63375f0aab60e11b5f5260045ffd5b612ffb92506142d1565b5f80612e02565b803b905f198201908282116129e85760019060405193603e601f19910116840160405282845260208401903c90565b435f19810193929084116129e85760ff1643811061308157505f925b8381101561305d575b505f925050565b804082810361306f5750600193505050565b1561307c575f190161304d565b613056565b61308b90436129db565b9261304d565b903590601e1981360301821215611d8e57018035906001600160401b038211611d8e57602001918160051b36038313611d8e57565b906080810160016130d78284613091565b90501161356c576130e88183613091565b905015613545576130f891613091565b15612b1057803590603e1981360301821215611d8e57019161311a8380613091565b9190928260051b93838504602014841517156129e85761313c85969495613f6e565b925f945f97601a60fe19853603019501965b888a10156134fd578960051b85013586811215611d8e57850161317081612b66565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036131a282613f39565b161515806134ea575b6134d9575b6001600160a01b036131c184612b66565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b0390613240906001600160a01b036131fe8561279c565b1660248901526020840135604489015261321a60408501613f4d565b151560648901526001600160a01b036132356060860161279c565b166084890152613f5a565b1660a486015261325260a08201613f4d565b151560c486015236819003601e190160c082013581811215611d8e578201602081359101936001600160401b038211611d8e576060820236038513611d8e57819061010060e48a015252610144870193905f905b80821061348f5750505060e082013590811215611d8e5701803560208201926001600160401b038211611d8e578160051b908136038513611d8e5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106133825750505050505050602093916001600160801b03848093039316905af19081156126fc575f91613350575b50816020916001938a01520199019861314e565b90506020813d821161337a575b8161336a60209383612831565b81010312611d8e5751600161333c565b3d915061335d565b919395979850919395601f19848203018752873582811215611d8e578301602081013582526001600160a01b036133bb6040830161279c565b1660208301526060810135603e193683900301811215611d8e578101602081013591906040016001600160401b038311611d8e578236038113611d8e57829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361342a60808301613f5a565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103611d8e578360209361346c60e086956101009560a060019a015201613f4d565b151560c0830152601f80199101160101990197019401918a98979695939161330b565b90919460608060019288358152838060a01b036134ae60208b0161279c565b1660208201526001600160801b036134c860408b01613f5a565b1660408201520196019201906132a6565b90506134e481613f39565b906131b0565b506134f760a084016135b0565b156131ab565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215611d8e57018035906001600160401b038211611d8e57602001918160061b36038313611d8e57565b358015158103611d8e5790565b903590605e1981360301821215611d8e570190565b919082018092116129e857565b60c0820160016135ef8285613091565b905011613991576136008184613091565b905015613545576136119083613091565b15612b1057803590607e1981360301821215611d8e5701916060830190602061363983612c3a565b91019065ffffffffffff8061364d84612c3a565b16911610156139825761365f82612c3a565b65ffffffffffff80600286015460201c16911610613973576136a565ffffffffffff61369e6136988261369187612c3a565b1687613f93565b93612c3a565b1684613f93565b1115613964576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446136eb836136e389896135bd565b01358b6135d2565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156126fc575f91613929575b501561391a575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156126fc575f956138e2575b5090613770916135bd565b9161377a82612c3a565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215611d8e578101602081359101936001600160401b038211611d8e578160061b36038513611d8e5760606044890152819052869360c485019392915f5b8181106138aa57505050836020959365ffffffffffff829484895f9601356064860152613813604060018060a01b03920161279c565b16608485015216602483015203925af19182156126fc575f92613874575b5061383b90612c3a565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b1660608201526046815261386e606682612831565b51902090565b9091506020813d6020116138a2575b8161389060209383612831565b81010312611d8e57519061383b613831565b3d9150613883565b919550919293604080600192838060a01b036138c58a61279c565b1681526020890135602082015201960191019188959493926137dd565b919094506020823d602011613912575b816138ff60209383612831565b81010312611d8e57905193613770613765565b3d91506138f2565b6367b9145160e01b5f5260045ffd5b90506020813d60201161395c575b8161394460209383612831565b81010312611d8e57518015158103611d8e575f613718565b3d9150613937565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215611d8e57018035906001600160401b038211611d8e57602001918136038313611d8e57565b9060e0810160016139e38284613091565b905011613c46576139f48183613091565b90501561354557613a0491613091565b15612b1057803590609e1981360301821215611d8e57016060810190613a2a8282613091565b905015613c375765ffffffffffff600284015460201c1691613a4c83426129db565b613a5b601686015480926129fc565b93608084013594600181018091116129e8578503613c2857613a8085613a8693612dc6565b906135d2565b93613a956017820154866129db565b4210613c1957613aa490613fbb565b934260058601541015613c0a57613af9906040840195613aeb613af3613aca89886139a0565b9190613ad6888a613091565b949091613ae3368c612a1a565b94369161286d565b933691612a59565b92612dd9565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312611d8e5760405193613b3a85612816565b613b443684612a1a565b8552356001600160401b038111611d8e57613b6290369084016128a3565b602085015235906001600160401b038211611d8e570136601f82011215611d8e57613b94903690602081359101612a59565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110613be85750505081520380825261386e9060200182612831565b82516001600160a01b0316855286955060209485019490920191600101613bcb565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16613c744284613f93565b613c8c613c8660168601548093612dc6565b836135d2565b918284108080613eb1575b15613e7f57508310613e7157613cad90836135d2565b10613e6257613cbd905b82613ef2565b94601960f81b5f523060601b60025260165260365f2093600281101561271c5780613d4e57505060018103613d3f5715612b1057613cfe81613d05926139a0565b369161286d565b916060835103613d30578260206128be94015160606040830151920151926001815491015490613fd6565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b919391600114613d615750505050505f90565b613d8690600860048796970154910154906001600160801b038260801c921690613ec7565b925f9260035f9201915b86811015613e5757613dbf613db6613db0613cfe8460051b8601866139a0565b86614237565b90929192614271565b6001600160a01b0381165f9081526020859052604090205460ff16613dea575b506001905b01613d90565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15613e2f5750600190613de4565b946001613e3d92965d612d50565b93858514613e4b575f613ddf565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b9392915050428211613ea257613cbd92613e9a575b50613cb7565b90505f613e94565b6347860b9760e01b5f5260045ffd5b50613ec06018870154856135d2565b4210613c97565b6001600160801b03809216029116613edf81836129fc565b918115612a065706156128be5760010190565b90613efd90826141d7565b15613f0857600f0190565b60090190565b60ff5f5160206144555f395f51905f525460401c1615613f2a57565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103611d8e5790565b35908115158203611d8e57565b35906001600160801b0382168203611d8e57565b6040519190601f01601f191682016001600160401b03811183821017611d8e57604052565b6016613fb26128be9365ffffffffffff600285015460201c16906129db565b910154906129fc565b613fc542826141d7565b15613fd05760090190565b600f0190565b9293919490613fe585876142d1565b156141785782156141785770014551231950b75fc4402da1732fc9bebe19831015614178576001169061010e61401a81613f6e565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c09088015613e575784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b61418a612c4d565b50600281015460058201546040519290916141ca916004916001600160a01b03166141b486612816565b6141bd826129bd565b8652602086015201612aad565b6040830152606082015290565b906014600e83015492015480831461422857818184109311918215911115918190614221575b15614212578261420c57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816141fd565b63f26224af60e01b5f5260045ffd5b8151919060418303614267576142609250602082015190606060408401519301515f1a90614352565b9192909190565b50505f9160029190565b600481101561271c5780614283575050565b6001810361429a5763f645eedf60e01b5f5260045ffd5b600281036142b5575063fce698f760e01b5f5260045260245ffd5b6003146142bf5750565b6335e2f38360e21b5f5260045260245ffd5b6401000003d01990600790829081818009900908906401000003d0199080091490565b90614318575080511561430957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580614349575b614329575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614321565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116143c9579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156126fc575f516001600160a01b038116156143bf57905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1251:24137:168:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;7983:34:30;7979:146;;-1:-1:-1;1251:24137:168;;;;;;;;1052:13:60;1251:24137:168;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;8085:29:30;;1251:24137:168;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;1251:24137:168;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610091575b50361561001a575f80fd5b610022612d29565b5f5160206144155f395f51905f5254600181015415610082576001600160801b0334161561007357335f908152601a9190910160205260409020541561006457005b63821a62f560e01b5f5260045ffd5b63a1a7c6eb60e01b5f5260045ffd5b63580683f360e01b5f5260045ffd5b5f905f3560e01c9081627a32e714612730575080630c18d27714612242578063120e3f1e1461216357806328e24b3d146121355780633683c4d214611f0a5780633bd109fa14611ebb5780633d43b41814611e675780633f4ba83a14611de75780634429e24b14611dcb5780634f1ef28614611bb757806352d1902d14611b5057806353f7fd48146116d15780635c975abb146116a25780636c2eb3501461133d578063715018a6146112d457806371a8cf2d146112a657806382bdeaad1461118e5780638456cb591461111b57806384d22a4f146110bd57806388f50cf0146110845780638b1edf1e1461101d5780638da5cb5b14610fe85780638f381dbe14610fa25780639067088e14610f5957806396a2ddfa14610f2b5780639eb939a814610ed4578063a5d53a4414610e7e578063ad2b3d9a14610e62578063ad3cb1cc14610e19578063b24fcac014610965578063baaf020114610864578063c13911e814610820578063c2eb812f146104f4578063ca1e7819146104a4578063cacf66ab1461046c578063d456fd5114610436578063e3a6684f146103f7578063e6fabc09146103be578063ed612f8c14610386578063edc8722514610331578063f2fde38b14610304578063f4f20ac0146102cb5763facd743b0361000f57346102c85760203660031901126102c85761028a612786565b60036102a55f5160206144155f395f51905f52544290613ef2565b019060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b80fd5b50346102c857806003193601126102c8575f5160206144155f395f51905f5254600701546040516001600160a01b039091168152602090f35b50346102c85760203660031901126102c85761032e610321612786565b610329612d5e565b612cb8565b80f35b50346102c857806003193601126102c857602061037e5f5160206144155f395f51905f5254600860046103644284613ef2565b0154910154906001600160801b038260801c921690613ec7565b604051908152f35b50346102c857806003193601126102c857602060046103b45f5160206144155f395f51905f52544290613ef2565b0154604051908152f35b50346102c857806003193601126102c8575f5160206144155f395f51905f5254600501546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c857604060085f5160206144155f395f51905f525401548151906001600160801b038116825260801c6020820152f35b50346102c857806003193601126102c857602065ffffffffffff60045f5160206144155f395f51905f5254015416604051908152f35b50346102c857806003193601126102c857602065ffffffffffff60025f5160206144155f395f51905f52540154821c16604051908152f35b50346102c857806003193601126102c8576104f06104dc60046104d65f5160206144155f395f51905f52544290613ef2565b01612aad565b604051918291602083526020830190612922565b0390f35b50346102c857806003193601126102c857604051610511816127fa565b610519612be6565b8152604051610527816127df565b5f8152602081015f9052602082015261053e612be6565b604082015261054b612c85565b606082015260405161055c816127df565b5f80825260208201526080820152610572612be6565b60a08201528160c082015260e001525f5160206144155f395f51905f5254610598612c85565b506105a560098201614182565b906105b2600f8201614182565b600882015492604051936105c585612816565b6001600160801b038116855260801c602085015260408401526060830152601b81015490601c810154604051926105fb846127fa565b604051610607816127b0565b60018401548152600284015463ffffffff8116602083015260201c65ffffffffffff16604082015284526040519461063e866127df565b60038401548652600484015465ffffffffffff166020870152602085019586526040519061066b826127b0565b60058501546001600160a01b0390811683526006860154811660208401526007860154166040808401919091528601918252606086019081526106b060158601612b38565b94608087019586526016016106c490612c04565b9160a0870192835260c0870193845260e087019485526040519788976020895251805160208a0152602081015163ffffffff1660408a01526040015165ffffffffffff16606089015251805160808901526020015165ffffffffffff1660a088015251600160a01b6001900381511660c0880152600160a01b6001900360208201511660e0880152600160a01b60019003906040015116610100870152516101208601610200905280516001600160801b031661022087015260208101516001600160801b031661024087015260408101516102608701608090526102a087016107ad9161295e565b90606001519061021f19878203016102808801526107ca9161295e565b935180516001600160401b0316610140870152602001516001600160801b031661016086015251805161018086015260208101516101a0860152604001516101c0850152516101e0840152516102008301520390f35b50346102c85760203660031901126102c85760ff604060209260195f5160206144155f395f51905f5254016004358252845220541661086260405180926128f1565bf35b50346102c85760203660031901126102c8576004356001600160401b038111610961576108959036906004016128c1565b905f5160206144155f395f51905f5254906108af83612a42565b916108bd6040519384612831565b8383526108c984612a42565b602084019490601f1901368637601a869201915b81811061092857868587604051928392602084019060208552518091526040840192915b81811061090f575050500390f35b8251845285945060209384019390920191600101610901565b8061093e6109396001938588612b00565b612b66565b828060a01b03165f528360205260405f205461095a8288612b24565b52016108dd565b5080fd5b50346102c85760603660031901126102c8576001600160401b03600435116102c857610100600435360360031901126102c857600260243510156102c8576044356001600160401b038111610961576109c29036906004016128c1565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610e0a5760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d5f5160206144155f395f51905f525490600182015415610dfb57815415610d9f575b60038201546044600435013503610d905765ffffffffffff60048301541665ffffffffffff610a61602460043501612c3a565b1610610d8257610a76600435600401836130c6565b9260018580a1610a9060a46004350160043560040161357b565b808096925060051b0460201485151715610d6e57610ab08560051b613f6e565b8695865b818810610c255750610beb965060051b90209060028780a1610adb600435600401866135df565b610aea600435600401876139d2565b90610af9602460043501612c3a565b93610b08606460043501612c2c565b9360405194602086019660043560040135885265ffffffffffff60d01b9060d01b16604087015260446004350135604687015260ff60f81b9060f81b1660668601526067850152608784015260a783015260c782015260c78152610b6d60e782612831565b5190209283600382015565ffffffffffff610b8c602460043501612c3a565b1665ffffffffffff196004830154161760048201557f7ebe42360bcb182fe0a88148b081e4557c89d09aa6af8307635ac2f83e2aaa656020604051868152a165ffffffffffff610be0602460043501612c3a565b169360243591613c55565b15610c1657807f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d80f35b63729d0f6b60e01b8152600490fd5b610c3960a46004350160043560040161357b565b891015610d5a578860061b8101358a526019880160205260ff60408b2054166003811015610d4657600103610d3757600191602091610cfc8b8b8e868360061b86010192610c86846135b0565b15610d185760061b85013590525060198c01855260408e20805460ff19166002179055601c8c018054610cb890612d50565b90555b8c7f460119a8f69a33ed127de517d5ea464e958ce23ef19e4420a8b92bf780bbc2c986610ce7846135b0565b1515926040519060061b8701358152a26135b0565b908b60061b01358c52825360218b208186015201970196610ab4565b60409260199160061b87013583520187522060ff198154169055610cbb565b636e83084760e11b8a5260048afd5b634e487b7160e01b8b52602160045260248bfd5b634e487b7160e01b8a52603260045260248afd5b634e487b7160e01b86526011600452602486fd5b620725b160ea1b8452600484fd5b63164b6fc360e01b8452600484fd5b610dbc610db0606460043501612c2c565b60043560040135613031565b15610dec5765ffffffffffff610dd6602460043501612c3a565b164211610a2e57631ad8809560e31b8452600484fd5b637b8cb35960e01b8452600484fd5b63580683f360e01b8452600484fd5b633ee5aeb560e01b8352600483fd5b50346102c857806003193601126102c857506104f0604051610e3c604082612831565b60058152640352e302e360dc1b60208201526040519182916020835260208301906128fe565b50346102c857806003193601126102c857602060405160018152f35b50346102c857806003193601126102c8576104f0610ec05f5160206144155f395f51905f52546002610eb860018060a01b03924290613ef2565b015416613002565b6040519182916020835260208301906128fe565b50346102c857806003193601126102c857610eed612be6565b506060610f0a60165f5160206144155f395f51905f525401612c04565b61086260405180926040809180518452602081015160208501520151910152565b50346102c857806003193601126102c8576020601b5f5160206144155f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857610f73612786565b601a5f5160206144155f395f51905f5254019060018060a01b03165f52602052602060405f2054604051908152f35b50346102c85760203660031901126102c857600435906001600160401b0382116102c8576020610fde610fd836600486016128c1565b90612b7a565b6040519015158152f35b50346102c857806003193601126102c8575f5160206143d55f395f51905f52546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c857611036612d29565b5f5160206144155f395f51905f525460018101908154611075576002015463ffffffff1640908115611066575580f35b63f7bac7b560e01b8352600483fd5b6309476b0360e41b8352600483fd5b50346102c857806003193601126102c8575f5160206144155f395f51905f5254600601546040516001600160a01b039091168152602090f35b50346102c857806003193601126102c8576110d66129a5565b5060406110f360155f5160206144155f395f51905f525401612b38565b610862825180926001600160801b03602080926001600160401b038151168552015116910152565b50346102c857806003193601126102c857611134612d5e565b61113c612d29565b600160ff195f5160206144355f395f51905f525416175f5160206144355f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a180f35b50346102c85760203660031901126102c8576004356001600160401b038111610961576111bf9036906004016128c1565b905f5160206144155f395f51905f5254906111d983612a42565b916111e76040519384612831565b8383526111f384612a42565b602084019490601f19013686376019869201915b81811061125c57868587604051928392602084019060208552518091526040840192915b818110611239575050500390f35b919350916020808261124e60019488516128f1565b01940191019184939261122b565b611267818386612b00565b3587528260205260ff6040882054166112808287612b24565b60038210156112925752600101611207565b634e487b7160e01b89526021600452602489fd5b50346102c857806003193601126102c857602060035f5160206144155f395f51905f52540154604051908152f35b50346102c857806003193601126102c8576112ed612d5e565b5f5160206143d55f395f51905f5280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b50346102c857806003193601126102c857611356612d5e565b5f5160206144555f395f51905f525460ff8160401c1690811561168d575b5061167e575f5160206144555f395f51905f52805468ffffffffffffffffff1916680100000000000000021790555f5160206143d55f395f51905f52546113ce906001600160a01b03166113c6613f0e565b610329613f0e565b7fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d260205f5160206144155f395f51905f5254604090815161140f8382612831565b601781528381017f726f757465722e73746f726167652e526f7574657256320000000000000000008152611441612d5e565b5f199151902001855260ff198386201690815f5160206144155f395f51905f52557f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc848451848152a1611492612d91565b80516001840155600283019063ffffffff868201511669ffffffffffff00000000868454930151881b169169ffffffffffffffffffff191617179055600581016005830190808203611630575b5050600881016001600160801b038154169060088401916001600160801b0319835416178255546001600160801b0382549181191691161790556115686115264283613ef2565b61153d6001600160a01b036002610eb84287613ef2565b611553600461154c4287613ef2565b01926129bd565b9061155e4293612aad565b9160098701612dd9565b6015810160158301908082036115de575b50506016810160168301918183036115be575b5050505060ff60401b195f5160206144555f395f51905f5254165f5160206144555f395f51905f52555160028152a180f35b60189283925490556017810154601785015501549101555f80808061158c565b806001600160401b03806001600160801b03935416166001600160401b031984541617835554851c16600160401b600160c01b03825491861b1690600160401b600160c01b0319161790555f80611579565b5481546001600160a01b03199081166001600160a01b039283161790925560068381015490850180548416918316919091179055600780840154908501805490931691161790555f806114df565b63f92ee8a960e01b8152600490fd5b600291506001600160401b031610155f611374565b50346102c857806003193601126102c857602060ff5f5160206144355f395f51905f5254166040519015158152f35b50346102c8576101603660031901126102c8576116ec612786565b6024356001600160a01b0381169190829003611b4c5761170a61275a565b91611713612770565b9260c43591608435919060a43560403660e3190112611b485761012435946001600160401b038611611b445736602387011215611b44578560040135916001600160401b038311611b40573660248489010111611b4057610144356001600160401b038111611b3c5761178a9036906004016128c1565b9690945f5160206144555f395f51905f5254996001600160401b0360ff8c60401c16159b1680159081611b34575b6001149081611b2a575b159081611b21575b50611b125761180c908b60016001600160401b03195f5160206144555f395f51905f525416175f5160206144555f395f51905f5255611ae2575b6113c6613f0e565b611814613f0e565b61181c613f0e565b4215611ad3578215611ac45782821115611ab557600a61183c84846129db565b04841015611aa65760409a8b918d83516118568582612831565b60178152602081017f726f757465722e73746f726167652e526f7574657256310000000000000000008152611889612d5e565b905190205f190190526020808f2060ff19165f5160206144155f395f51905f528190558451818152909a917f059eb9adf6e95b839d818142ed5bd5e498b6d95138e65c91525e93cc0f0339fc91a16118df612d91565b805160018c015560028b0190602081015163ffffffff1686835492015160201b69ffffffffffff00000000169169ffffffffffffffffffff191617179055835190611929826127b0565b8282526001600160a01b03908116602083018190529381169490910184905260058a018054919092166001600160a01b03199182161790915560068901805482169092179091556007880180549091169091179055700300000000000000000000000000000002600887015561199d6129a5565b5089516119a9816127df565b639502f90081526509184e72a0006020909101526015860180546001600160c01b0319166d09184e72a000000000009502f900179055895183908b906119ee816127b0565b8381528460208201520152601686015560178501556018840155865194611a14866127df565b60e4358652610104356020870152611a3091369160240161286d565b9042933690611a3e92612a59565b9160090193611a4c94612dd9565b611a54575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29160ff60401b195f5160206144555f395f51905f5254165f5160206144555f395f51905f52555160018152a180f35b63145e348f60e01b8c5260048cfd5b6353b2bbed60e01b8c5260048cfd5b63f7ba6bdb60e01b8c5260048cfd5b63b7d0949760e01b8c5260048cfd5b600160401b60ff60401b195f5160206144555f395f51905f525416175f5160206144555f395f51905f5255611804565b63f92ee8a960e01b8d5260048dfd5b9050155f6117ca565b303b1591506117c2565b8c91506117b8565b8a80fd5b8980fd5b8880fd5b8780fd5b8280fd5b50346102c857806003193601126102c8577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003611ba85760206040515f5160206143f55f395f51905f528152f35b63703e46dd60e11b8152600490fd5b5060403660031901126102c857611bcc612786565b906024356001600160401b03811161096157611bec9036906004016128a3565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115611da9575b50611d9a57611c2e612d5e565b6040516352d1902d60e01b8152926001600160a01b0381169190602085600481865afa80958596611d62575b50611c7357634c9c8ce360e01b84526004839052602484fd5b9091845f5160206143f55f395f51905f528103611d505750813b15611d3e575f5160206143f55f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8480a28151839015611d245780836020611d1895519101845af43d15611d1c573d91611cfc83612852565b92611d0a6040519485612831565b83523d85602085013e6142f4565b5080f35b6060916142f4565b50505034611d2f5780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8452600452602483fd5b632a87526960e21b8552600452602484fd5b9095506020813d602011611d92575b81611d7e60209383612831565b81010312611d8e5751945f611c5a565b5f80fd5b3d9150611d71565b63703e46dd60e11b8252600482fd5b5f5160206143f55f395f51905f52546001600160a01b0316141590505f611c21565b50346102c857806003193601126102c857602060405160028152f35b50346102c857806003193601126102c857611e00612d5e565b5f5160206144355f395f51905f525460ff811615611e585760ff19165f5160206144355f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a180f35b638dfc202b60e01b8252600482fd5b50346102c85760203660031901126102c857611e81612786565b611e89612d5e565b5f5160206144155f395f51905f525460050180546001600160a01b0319166001600160a01b0390921691909117905580f35b50346102c857806003193601126102c857611ed46129a5565b506040611ef8611ef35f5160206144155f395f51905f52544290613ef2565b6129bd565b60208251918051835201516020820152f35b50346102c85760603660031901126102c857600435611f2761275a565b611f2f612d29565b5f5160206144155f395f51905f5254600181015415610dfb578284526019810160205260ff604085205416600381101561212157600203612112578284526024356020526040842060405160608101908082106001600160401b0383111761210e57605a916040527f3d605080600a3d3981f3608060405263e6fabc0960e01b5f5260205f6004817381523060601b6b5afa15604c575f80805136821760208201527f80378136915af43d5f803e156048573d5ff35b3d5ffd5b5f80fd000000000000604082015286f590811561210a576001600160a01b0382165f908152601a820160205260409020849055601b01805461202a90612d50565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b0381166121055750335b5f5160206144155f395f51905f5254600501546001600160a01b0316823b1561210157604051631c9776b560e31b81526001600160a01b039092166004830152602482015260016044820152828160648183865af180156120f6576120e1575b602082604051908152f35b6120ec838092612831565b61096157816120d6565b6040513d85823e3d90fd5b8380fd5b612076565b8480fd5b8680fd5b630e2637d160e01b8452600484fd5b634e487b7160e01b85526021600452602485fd5b50346102c857806003193601126102c857602060015f5160206144155f395f51905f52540154604051908152f35b50346102c85760203660031901126102c857600435612180612d29565b814915612233575f5160206144155f395f51905f5254600181015415612224576019018183528060205260ff6040842054166003811015612210576122015781835260209081526040808420805460ff19166001179055519182527f5c261a095dd5720475295dc06379921c003c22164ee6cae5cf83e76ce0a1b98591a180f35b6304c51a3360e31b8352600483fd5b634e487b7160e01b84526021600452602484fd5b63580683f360e01b8352600483fd5b637bb2fa2f60e11b8252600482fd5b34611d8e576080366003190112611d8e5760043561225e61275a565b90612267612770565b91612270612d29565b5f5160206144155f395f51905f525460018101541561008257825f526019810160205260ff60405f205416600381101561271c5760020361270d57825f5260243560205260405f206040516102c08101908082106001600160401b03831117611d8e576102b0916040527f60808060405261029e90816100128239f3fe608060405260043610610254575f81527f3560e01c806336a52a18146100ab57806342129d00146100a65780635ce6c32760208201527f146100a1578063701da98e1461009c578063704ed542146100975780637a8e0c60408201527fdd1461009257806391d5a64c1461008d5780639ce110d714610088578063affe60608201527fd0e0146100835763e43f3433036102545761023f565b610222565b6101fa565b60808201527f6101e4565b6101b1565b610181565b610165565b610143565b610106565b346160a08201527ed4575f3660031901126100d45760025460081c6001600160a01b031660809060c08201527f8152602090f35b5f80fd5b9181601f840112156100d45782359167ffffffffff60e08201527fffffff83116100d457602083818601950101116100d457565b604036600319016101008201527f126100d45760043567ffffffffffffffff81116100d4576101329036906004016101208201527f6100d8565b505060243580151514610254575f80fd5b346100d4575f366003196101408201527f01126100d457602060ff600254166040519015158152f35b346100d4575f36606101608201527f031901126100d45760205f54604051908152f35b346100d457602036600319016101808201527f126100d4576004356fffffffffffffffffffffffffffffffff811614610254576101a08201527f5f80fd5b60403660031901126100d45760243567ffffffffffffffff811161006101c08201527fd4576101dd9036906004016100d8565b5050610254565b346100d457602036606101e08201527f0319011215610254575f80fd5b346100d4575f3660031901126100d4576003546102008201527f6040516001600160a01b039091168152602090f35b346100d4575f36600319016102208201527f126100d4576020600154604051908152f35b346100d4575f36600319011215616102408201523060601c7f0254575f80fd5b63e6fabc0960e01b5f5260205f60048173000000000000000017610260820152735afa156100d4575f808051368280378136915af43060a01b176102808201526f3d5f803e1561029a573d5ff35b3d5ffd60801b6102a08201525ff5908115611d8e576001600160a01b0382165f908152601a820160205260409020849055601b01805461264c90612d50565b90556040516001600160a01b03821680825293907f8008ec1d8798725ebfa0f2d128d52e8e717dcba6e0f786557eeee70614b02bf190602090a2506001600160a01b038116612707575033915b813b15611d8e57604051631c9776b560e31b81526001600160a01b039384166004820152921660248301525f604483018190528260648183855af19182156126fc576020926126ec575b50604051908152f35b5f6126f691612831565b5f6126e3565b6040513d5f823e3d90fd5b91612699565b630e2637d160e01b5f5260045ffd5b634e487b7160e01b5f52602160045260245ffd5b34611d8e575f366003190112611d8e57602090601c5f5160206144155f395f51905f525401548152f35b604435906001600160a01b0382168203611d8e57565b606435906001600160a01b0382168203611d8e57565b600435906001600160a01b0382168203611d8e57565b35906001600160a01b0382168203611d8e57565b606081019081106001600160401b038211176127cb57604052565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176127cb57604052565b61010081019081106001600160401b038211176127cb57604052565b608081019081106001600160401b038211176127cb57604052565b90601f801991011681019081106001600160401b038211176127cb57604052565b6001600160401b0381116127cb57601f01601f191660200190565b92919261287982612852565b916128876040519384612831565b829481845281830111611d8e578281602093845f960137010152565b9080601f83011215611d8e578160206128be9335910161286d565b90565b9181601f84011215611d8e578235916001600160401b038311611d8e576020808501948460051b010111611d8e57565b90600382101561271c5752565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b81811061293f5750505090565b82516001600160a01b0316845260209384019390920191600101612932565b9060208251805183520151602082015260018060a01b0360208301511660408201526080606061299c604085015160a08386015260a0850190612922565b93015191015290565b604051906129b2826127df565b5f6020838281520152565b906040516129ca816127df565b602060018294805484520154910152565b919082039182116129e857565b634e487b7160e01b5f52601160045260245ffd5b8115612a06570490565b634e487b7160e01b5f52601260045260245ffd5b9190826040910312611d8e57604051612a32816127df565b6020808294803584520135910152565b6001600160401b0381116127cb5760051b60200190565b929190612a6581612a42565b93612a736040519586612831565b602085838152019160051b8101928311611d8e57905b828210612a9557505050565b60208091612aa28461279c565b815201910190612a89565b90604051918281549182825260208201905f5260205f20925f5b818110612ade575050612adc92500383612831565b565b84546001600160a01b0316835260019485019487945060209093019201612ac7565b9190811015612b105760051b0190565b634e487b7160e01b5f52603260045260245ffd5b8051821015612b105760209160051b010190565b90604051612b45816127df565b91546001600160401b038116835260401c6001600160801b03166020830152565b356001600160a01b0381168103611d8e5790565b612b935f5160206144155f395f51905f52544290613ef2565b600301905f5b838110612ba95750505050600190565b612bb7610939828685612b00565b6001600160a01b03165f9081526020849052604090205460ff1615612bde57600101612b99565b505050505f90565b60405190612bf3826127b0565b5f6040838281528260208201520152565b90604051612c11816127b0565b60406002829480548452600181015460208501520154910152565b3560ff81168103611d8e5790565b3565ffffffffffff81168103611d8e5790565b60405190612c5a82612816565b5f606083604051612c6a816127df565b83815283602082015281528260208201528160408201520152565b60405190612c9282612816565b815f81525f6020820152612ca4612c4d565b60408201526060612cb3612c4d565b910152565b6001600160a01b03168015612d16575f5160206143d55f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f5160206144355f395f51905f525416612d4157565b63d93c066560e01b5f5260045ffd5b5f1981146129e85760010190565b5f5160206143d55f395f51905f52546001600160a01b03163303612d7e57565b63118cdaa760e01b5f523360045260245ffd5b612d99612be6565b50604051612da6816127b0565b5f815263ffffffff4316602082015265ffffffffffff4216604082015290565b818102929181159184041417156129e857565b9291908051906020810191825170014551231950b75fc4402da1732fc9bebe1982109182612ff1575b505015612fe25751845551600184015560405190612e456021836020808201945f86528051918291018484015e81015f838201520301601f198101845283612831565b612e82602b604051809360208201956a600b5981380380925939f360a81b87525180918484015e81015f838201520301601f198101835282612831565b51905ff06001600160a01b03811615612fd3576002830180546001600160a01b0319166001600160a01b039092169190911790555f5b600483018054821015612ef6575f90815260208082208301546001600160a01b0316825260038501905260409020805460ff19169055600101612eb8565b5050925f5b8451811015612f3f576001906001600160a01b03612f198288612b24565b5116828060a01b03165f526003840160205260405f208260ff1982541617905501612efb565b5092600482018151916001600160401b0383116127cb57600160401b83116127cb578154838355808410612fa9575b50602001905f5260205f205f5b838110612f8c575050505060050155565b82516001600160a01b031681830155602090920191600101612f7b565b825f52838060205f20019103905f5b828110612fc6575050612f6e565b5f82820155600101612fb8565b633011642560e01b5f5260045ffd5b63375f0aab60e11b5f5260045ffd5b612ffb92506142d1565b5f80612e02565b803b905f198201908282116129e85760019060405193603e601f19910116840160405282845260208401903c90565b435f19810193929084116129e85760ff1643811061308157505f925b8381101561305d575b505f925050565b804082810361306f5750600193505050565b1561307c575f190161304d565b613056565b61308b90436129db565b9261304d565b903590601e1981360301821215611d8e57018035906001600160401b038211611d8e57602001918160051b36038313611d8e57565b906080810160016130d78284613091565b90501161356c576130e88183613091565b905015613545576130f891613091565b15612b1057803590603e1981360301821215611d8e57019161311a8380613091565b9190928260051b93838504602014841517156129e85761313c85969495613f6e565b925f945f97601a60fe19853603019501965b888a10156134fd578960051b85013586811215611d8e57850161317081612b66565b6001600160a01b03165f90815260208a9052604090205415610064575f608082016001600160801b036131a282613f39565b161515806134ea575b6134d9575b6001600160a01b036131c184612b66565b604051630427a21d60e11b81526020600482015294911691610124850191906001600160801b0390613240906001600160a01b036131fe8561279c565b1660248901526020840135604489015261321a60408501613f4d565b151560648901526001600160a01b036132356060860161279c565b166084890152613f5a565b1660a486015261325260a08201613f4d565b151560c486015236819003601e190160c082013581811215611d8e578201602081359101936001600160401b038211611d8e576060820236038513611d8e57819061010060e48a015252610144870193905f905b80821061348f5750505060e082013590811215611d8e5701803560208201926001600160401b038211611d8e578160051b908136038513611d8e5791879594936023198785030161010488015281845260208085019385010194935f9160fe19813603015b8484106133825750505050505050602093916001600160801b03848093039316905af19081156126fc575f91613350575b50816020916001938a01520199019861314e565b90506020813d821161337a575b8161336a60209383612831565b81010312611d8e5751600161333c565b3d915061335d565b919395979850919395601f19848203018752873582811215611d8e578301602081013582526001600160a01b036133bb6040830161279c565b1660208301526060810135603e193683900301811215611d8e578101602081013591906040016001600160401b038311611d8e578236038113611d8e57829060e060408601528160e08601526101008501375f61010083850101526001600160801b0361342a60808301613f5a565b16606084015260a0810135608084015260c081013563ffffffff60e01b8116809103611d8e578360209361346c60e086956101009560a060019a015201613f4d565b151560c0830152601f80199101160101990197019401918a98979695939161330b565b90919460608060019288358152838060a01b036134ae60208b0161279c565b1660208201526001600160801b036134c860408b01613f5a565b1660408201520196019201906132a6565b90506134e481613f39565b906131b0565b506134f760a084016135b0565b156131ab565b5094935095509550506020925020910135907fd04cd9af813f6f0b56e9411a6ee6a84eb5ac35a96f0c33d2e3a07d65baa8f4186020604051848152a15f5260205260405f2090565b5050507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b6306d6c38360e01b5f5260045ffd5b903590601e1981360301821215611d8e57018035906001600160401b038211611d8e57602001918160061b36038313611d8e57565b358015158103611d8e5790565b903590605e1981360301821215611d8e570190565b919082018092116129e857565b60c0820160016135ef8285613091565b905011613991576136008184613091565b905015613545576136119083613091565b15612b1057803590607e1981360301821215611d8e5701916060830190602061363983612c3a565b91019065ffffffffffff8061364d84612c3a565b16911610156139825761365f82612c3a565b65ffffffffffff80600286015460201c16911610613973576136a565ffffffffffff61369e6136988261369187612c3a565b1687613f93565b93612c3a565b1684613f93565b1115613964576007820154600690920180548435946001600160a01b0394851694604082019391925f916020911660446136eb836136e389896135bd565b01358b6135d2565b604051948593849263095ea7b360e01b84528c600485015260248401525af19081156126fc575f91613929575b501561391a575460405163394f179b60e11b81526001600160a01b03909116600482015260248101959095526020818101356044870152856064815f885af19485156126fc575f956138e2575b5090613770916135bd565b9161377a82612c3a565b9260405193637fbe95b560e01b85526040600486015260a48501918035601e1982360301811215611d8e578101602081359101936001600160401b038211611d8e578160061b36038513611d8e5760606044890152819052869360c485019392915f5b8181106138aa57505050836020959365ffffffffffff829484895f9601356064860152613813604060018060a01b03920161279c565b16608485015216602483015203925af19182156126fc575f92613874575b5061383b90612c3a565b6040519160208301938452604083015265ffffffffffff60d01b9060d01b1660608201526046815261386e606682612831565b51902090565b9091506020813d6020116138a2575b8161389060209383612831565b81010312611d8e57519061383b613831565b3d9150613883565b919550919293604080600192838060a01b036138c58a61279c565b1681526020890135602082015201960191019188959493926137dd565b919094506020823d602011613912575b816138ff60209383612831565b81010312611d8e57905193613770613765565b3d91506138f2565b6367b9145160e01b5f5260045ffd5b90506020813d60201161395c575b8161394460209383612831565b81010312611d8e57518015158103611d8e575f613718565b3d9150613937565b6308027f7760e31b5f5260045ffd5b637bde91e760e11b5f5260045ffd5b63087a19ab60e41b5f5260045ffd5b633249ceed60e11b5f5260045ffd5b903590601e1981360301821215611d8e57018035906001600160401b038211611d8e57602001918136038313611d8e57565b9060e0810160016139e38284613091565b905011613c46576139f48183613091565b90501561354557613a0491613091565b15612b1057803590609e1981360301821215611d8e57016060810190613a2a8282613091565b905015613c375765ffffffffffff600284015460201c1691613a4c83426129db565b613a5b601686015480926129fc565b93608084013594600181018091116129e8578503613c2857613a8085613a8693612dc6565b906135d2565b93613a956017820154866129db565b4210613c1957613aa490613fbb565b934260058601541015613c0a57613af9906040840195613aeb613af3613aca89886139a0565b9190613ad6888a613091565b949091613ae3368c612a1a565b94369161286d565b933691612a59565b92612dd9565b7fa1a3b42179ad30022438a1ea333b38eaf4a7329beee5e2b8111c0dcd4e08821c6020604051858152a160a082360312611d8e5760405193613b3a85612816565b613b443684612a1a565b8552356001600160401b038111611d8e57613b6290369084016128a3565b602085015235906001600160401b038211611d8e570136601f82011215611d8e57613b94903690602081359101612a59565b91826040820152816060820152519160208351930151906040519283926020840195865260408401526060830160208351919301905f5b818110613be85750505081520380825261386e9060200182612831565b82516001600160a01b0316855286955060209485019490920191600101613bcb565b6333fc8f5160e21b5f5260045ffd5b6372a84ce560e11b5f5260045ffd5b6343d3f5bf60e01b5f5260045ffd5b636c2bf3db60e01b5f5260045ffd5b631d3fc6bf60e21b5f5260045ffd5b909493919365ffffffffffff600283015460201c16613c744284613f93565b613c8c613c8660168601548093612dc6565b836135d2565b918284108080613eb1575b15613e7f57508310613e7157613cad90836135d2565b10613e6257613cbd905b82613ef2565b94601960f81b5f523060601b60025260165260365f2093600281101561271c5780613d4e57505060018103613d3f5715612b1057613cfe81613d05926139a0565b369161286d565b916060835103613d30578260206128be94015160606040830151920151926001815491015490613fd6565b632ce466bf60e01b5f5260045ffd5b6360a1ea7760e01b5f5260045ffd5b919391600114613d615750505050505f90565b613d8690600860048796970154910154906001600160801b038260801c921690613ec7565b925f9260035f9201915b86811015613e5757613dbf613db6613db0613cfe8460051b8601866139a0565b86614237565b90929192614271565b6001600160a01b0381165f9081526020859052604090205460ff16613dea575b506001905b01613d90565b6001600160a01b03165f9081527ff02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c0060205260409020805c15613e2f5750600190613de4565b946001613e3d92965d612d50565b93858514613e4b575f613ddf565b50505050505050600190565b505050505050505f90565b63046bb1e560e51b5f5260045ffd5b62f4462b60e01b5f5260045ffd5b9392915050428211613ea257613cbd92613e9a575b50613cb7565b90505f613e94565b6347860b9760e01b5f5260045ffd5b50613ec06018870154856135d2565b4210613c97565b6001600160801b03809216029116613edf81836129fc565b918115612a065706156128be5760010190565b90613efd90826141d7565b15613f0857600f0190565b60090190565b60ff5f5160206144555f395f51905f525460401c1615613f2a57565b631afcd79f60e31b5f5260045ffd5b356001600160801b0381168103611d8e5790565b35908115158203611d8e57565b35906001600160801b0382168203611d8e57565b6040519190601f01601f191682016001600160401b03811183821017611d8e57604052565b6016613fb26128be9365ffffffffffff600285015460201c16906129db565b910154906129fc565b613fc542826141d7565b15613fd05760090190565b600f0190565b9293919490613fe585876142d1565b156141785782156141785770014551231950b75fc4402da1732fc9bebe19831015614178576001169061010e61401a81613f6e565b9160883684376002600188160160888401538760898401526002840160a984015360aa830186905260ca8301527e300046524f53542d736563703235366b312d4b454343414b3235362d76316360ea8301526303430b6160e51b61010a830152812060cc820181815290600260ec84016001815360428420809318845253604270014551231950b75fc4402da1732fc9bebe19922060801c6001600160401b0360801b8260801b16179070014551231950b75fc4402da1732fc9bebe1990600160c01b9060401c09088015613e575784601b6080945f9660209870014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe19038552018684015280604084015270014551231950b75fc4402da1732fc9bebe19910970014551231950b75fc4402da1732fc9bebe1903606082015282805260015afa505f51915f5260205260018060a01b0360405f20161490565b5050505050505f90565b61418a612c4d565b50600281015460058201546040519290916141ca916004916001600160a01b03166141b486612816565b6141bd826129bd565b8652602086015201612aad565b6040830152606082015290565b906014600e83015492015480831461422857818184109311918215911115918190614221575b15614212578261420c57505090565b14919050565b634c38ae9560e11b5f5260045ffd5b50816141fd565b63f26224af60e01b5f5260045ffd5b8151919060418303614267576142609250602082015190606060408401519301515f1a90614352565b9192909190565b50505f9160029190565b600481101561271c5780614283575050565b6001810361429a5763f645eedf60e01b5f5260045ffd5b600281036142b5575063fce698f760e01b5f5260045260245ffd5b6003146142bf5750565b6335e2f38360e21b5f5260045260245ffd5b6401000003d01990600790829081818009900908906401000003d0199080091490565b90614318575080511561430957602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580614349575b614329575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15614321565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116143c9579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa156126fc575f516001600160a01b038116156143bf57905f905f90565b505f906001905f90565b5050505f916003919056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"1251:24137:168:-:0;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;25093:19;;;1251:24137;25093:38;1251:24137;;-1:-1:-1;;;;;25202:9:168;1251:24137;25230:9;1251:24137;;25290:10;-1:-1:-1;1251:24137:168;;;25318:28;;;;;1251:24137;;;;;;25318:42;1251:24137;;;;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;:::i;:::-;8618:40;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24137:168;15219:15:171;15198:37;;:::i;:::-;8618:40:168;:52;1052:614:22;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;7711:34;;1251:24137;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;2357:1:29;1251:24137:168;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;1251:24137:168;;;;;;;;;;;;;;;;9331:211;-1:-1:-1;;;;;;;;;;;1251:24137:168;9428:25;1251:24137;15198:37:171;15219:15;15198:37;;:::i;:::-;9369:38:168;1251:24137;9428:25;;1251:24137;;-1:-1:-1;;;;;1251:24137:168;;;;;9331:211;;:::i;:::-;1251:24137;;;;;;;;;;;;;;;;;;;;;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24137:168;15219:15:171;15198:37;;:::i;:::-;9140:41:168;1251:24137;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;7481:23;;1251:24137;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;8828:25;-1:-1:-1;;;;;;;;;;;1251:24137:168;8828:25;1251:24137;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;7359:40;1251:24137;;;;;;;;;;;;;;;;;;;;;;;7096:32;-1:-1:-1;;;;;;;;;;;1251:24137:168;7096:32;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24137:168;15219:15:171;15198:37;;:::i;:::-;9012:41:168;1251:24137;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;:::i;:::-;-1:-1:-1;18733:28:171;18740:20;;;18733:28;:::i;:::-;18819:20;18812:28;18819:20;;;18812:28;:::i;:::-;6387:25:168;;;1251:24137;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1251:24137:168;;;;;;;18857:241:171;;1251:24137:168;;18857:241:171;;1251:24137:168;;18857:241:171;;1251:24137:168;6776:33;;;1251:24137;6844:39;;;;1251:24137;;;;;;;:::i;:::-;;;;;;:::i;:::-;18740:20:171;6470:19:168;;1251:24137;;;6776:33;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6525:27;;;1251:24137;;;;;;;;;;;;;;6430:464;;1251:24137;;;;;;;;;:::i;:::-;6581:20;;;1251:24137;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;18819:20:171;1251:24137:168;;;;;;;;;;;;6430:464;;1251:24137;;;;6430:464;;1251:24137;;;;6684:22;;;1251:24137;:::i;:::-;6430:464;1251:24137;6430:464;;1251:24137;;;6731:16;;1251:24137;;;:::i;:::-;6430:464;1251:24137;6430:464;;1251:24137;;;;6430:464;;1251:24137;;;;6430:464;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:614:22;1251:24137:168;;1052:614:22;1251:24137:168;;;;;;;;;1052:614:22;1251:24137:168;;1052:614:22;1251:24137:168;;;;;;;;;;;1052:614:22;1251:24137:168;;1052:614:22;1251:24137:168;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;9909:22;-1:-1:-1;;;;;;;;;;;1251:24137:168;9909:22;1251:24137;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1251:24137:168;;;;10782:28;10714:13;10782:28;;10709:129;10729:23;;;;;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;10782:28;1251:24137;;;10754:3;10811:15;;;10782:28;10811:15;;;;:::i;:::-;;:::i;:::-;1251:24137;;;;;;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;10773:54;;;;:::i;:::-;1251:24137;;10714:13;;1251:24137;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;757:66:38;3327:69:76;1737:93:38;;1948:4;757:66;3556:68:76;-1:-1:-1;;;;;;;;;;;1251:24137:168;13539:19;1948:4:38;13539:19:168;;1251:24137;13539:38;1251:24137;;;;13777:20;13773:233;;1251:24137;14119:27;;;1251:24137;;;;14155:33;1251:24137;14119:69;1251:24137;;;;14254:37;;1251:24137;;;14295:21;1251:24137;;;14295:21;;:::i;:::-;1251:24137;-1:-1:-1;1251:24137:168;;14385:28;1251:24137;;;;14385:28;;:::i;:::-;14429:44;1948:4:38;14429:44:168;;;17270:22;;1251:24137;;17270:22;1251:24137;;;;17270:22;:::i;:::-;1251:24137;;;;;;;;;;;;;;;;17405:40;1251:24137;;;17405:40;:::i;:::-;17455:18;;;17504:22;;;;;;1251:24137;15302:146;1251:24137;;;;1083:131:25;;14557:43:168;1251:24137;14557:43;;;14644:30;1251:24137;;;;14644:30;;:::i;:::-;14720:33;1251:24137;;;;14720:33;;:::i;:::-;1251:24137;14853:21;1251:24137;;;14295:21;14853;:::i;:::-;1251:24137;14935:13;;1251:24137;;14935:13;;:::i;:::-;1251:24137;;;8378:303:171;1251:24137:168;8378:303:171;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;14155:33;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8378:303:171;;;;;;:::i;:::-;1251:24137:168;8355:336:171;;14119:27:168;;;;;1251:24137;;15207:21;1251:24137;;;14295:21;15207;:::i;:::-;1251:24137;;;;14254:37;;1251:24137;;;;14254:37;;1251:24137;15244:26;1251:24137;;;;;;15244:26;1251:24137;15413:21;1251:24137;;;14295:21;15413;:::i;:::-;1251:24137;;;;15302:146;;:::i;:::-;1784:66;;;3556:68:76;757:66:38;3556:68:76;1251:24137:168;;1784:66;-1:-1:-1;;;1784:66:168;;1251:24137;;1784:66;17528:3;17590:22;17270;1251:24137;;17270:22;1251:24137;;;;17590:22;:::i;:::-;1251:24137;;;;;;;;;;;;;17655:19;;;1251:24137;;;;;;;;14119:27;1251:24137;;;;;1948:4:38;17655:79:168;1251:24137;;1948:4:38;1251:24137:168;;;18233:17;1251:24137;;;;;;;;;17813:17;;;;;:::i;:::-;;;;1251:24137;;;;;;;-1:-1:-1;17655:19:168;;;1251:24137;;;;;;;-1:-1:-1;;1251:24137:168;;;;;17936:39;;;1251:24137;;17936:41;;;:::i;:::-;1251:24137;;17809:270;18131:17;18098:51;18131:17;;;;:::i;:::-;1251:24137;;;;;;;;;;;;;18098:51;18233:17;:::i;:::-;1251:24137;;;;;;7135:159:171;;;;;;;4093:83:22;;;;1251:24137:168;17528:3;1251:24137;17489:13;;;17809:270;1251:24137;;17655:19;1251:24137;;;;;;;;17655:19;1251:24137;;;;;;;;;;17809:270;;1251:24137;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;7135:159:171;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;13773:233;13821:56;13863:13;;1251:24137;;13863:13;;:::i;:::-;1251:24137;;;;;13821:56;:::i;:::-;1251:24137;;;;13946:21;1251:24137;;;13946:21;;:::i;:::-;1251:24137;13928:15;:39;13773:233;1251:24137;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;1737:93:38;-1:-1:-1;;;1789:30:38;;1251:24137:168;1789:30:38;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1916:1;1251:24137;;;;;;;;;;;;;;;;;8048:91;-1:-1:-1;;;;;;;;;;;1251:24137:168;8061:77;15198:37:171;1052:614:22;1251:24137:168;;;;15219:15:171;;15198:37;;:::i;:::-;8061:77:168;1251:24137;;8048:91;:::i;:::-;1251:24137;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;11207:19;-1:-1:-1;;;;;;;;;;;1251:24137:168;11207:19;1251:24137;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10943:36;-1:-1:-1;;;;;;;;;;;1251:24137:168;10943:36;1251:24137;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;:::i;:::-;10433:31;-1:-1:-1;;;;;;;;;;;1251:24137:168;10433:31;:43;1052:614:22;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;11646:19;;;1251:24137;;;;;11753:26;;1251:24137;;;11743:37;;11799:25;;1251:24137;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;7594:35;;1251:24137;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9781:25;-1:-1:-1;;;;;;;;;;;1251:24137:168;9781:25;1251:24137;:::i;:::-;;;;;;-1:-1:-1;;;;;1251:24137:168;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;1944:72:37;;:::i;:::-;3300:4;1251:24137:168;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;3319:20:37;1251:24137:168;;;966:10:34;1251:24137:168;;3319:20:37;1251:24137:168;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1251:24137:168;;;;10260:19;10195:13;10260:19;;10190:120;10210:20;;;;;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;10232:3;10286:12;;;;;:::i;:::-;1251:24137;;;;;;;;;;;;10251:48;;;;:::i;:::-;1251:24137;;;;;;;;;10195:13;;1251:24137;-1:-1:-1;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;7224:30;-1:-1:-1;;;;;;;;;;;1251:24137:168;7224:30;1251:24137;;;;;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;;;;;1251:24137:168;;;;;;;-1:-1:-1;;;;;1251:24137:168;3975:40:29;1251:24137:168;;3975:40:29;1251:24137:168;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;;6429:44:30;;;;;1251:24137:168;6425:105:30;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;1251:24137:168;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;6959:1:30;;-1:-1:-1;;;;;1251:24137:168;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;6654:20;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;;;;;;1251:24137:168;;1800:178:73;;;;1251:24137:168;;-1:-1:-1;;;;;;;;;;;1251:24137:168;24953:24;1251:24137;;;;;;24953:24;4462:17;;:::i;:::-;1251:24137;;6591:4:30;4437:22:168;;1251:24137;4201:1;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;4631:23;;;;4605;;1251:24137;;;;;;;4779:28;;;;;-1:-1:-1;;;;;1251:24137:168;;;4729:28;4779;4729;;921:1:171;-1:-1:-1;;;;;921:1:171;;;;;;;1251:24137:168;-1:-1:-1;;;;;987:1:171;;921;;;987;;;;;;5217:339:168;15198:37:171;15219:15;15198:37;;:::i;:::-;5371:91:168;-1:-1:-1;;;;;4201:1:168;15198:37:171;15219:15;15198:37;;:::i;5371:91:168:-;1251:24137;;15198:37:171;15219:15;15198:37;;:::i;:::-;5476:41:168;1251:24137;;:::i;:::-;15219:15:171;1251:24137:168;15219:15:171;1251:24137:168;;:::i;:::-;5247:40;;;;5217:339;:::i;:::-;5653:25;;;;5625;;1251:24137;;;;;;;5758:19;;;;;;5736;;1251:24137;;;;;;;;;;;-1:-1:-1;;;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;4201:1;1251:24137;;6654:20:30;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;-1:-1:-1;;;;;;;987:1:171;;1251:24137:168;;;;987:1:171;-1:-1:-1;;;;;;;987:1:171;;;;;1251:24137:168;;;;;;;;-1:-1:-1;;;;;;1251:24137:168;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;6425:105:30;-1:-1:-1;;;6496:23:30;;1251:24137:168;;6496:23:30;6429:44;4201:1:168;1251:24137;;-1:-1:-1;;;;;1251:24137:168;6448:25:30;;6429:44;;;1251:24137:168;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;;;;1251:24137:168;;;;;4301:16:30;1251:24137:168;;4724:16:30;;:34;;;;1251:24137:168;;4788:16:30;:50;;;;1251:24137:168;4853:13:30;:30;;;;1251:24137:168;4849:91:30;;;6959:1;1251:24137:168;;;-1:-1:-1;;;;;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;4977:67:30;;1251:24137:168;6891:76:30;;:::i;6959:1::-;6891:76;;:::i;:::-;;;:::i;:::-;2800:15:168;:19;1251:24137;;2858:21;;1251:24137;;2925:32;;;1251:24137;;;3206:2;3170:32;;;;:::i;:::-;1251:24137;3150:58;;1251:24137;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2303:62:29;;:::i;:::-;1800:178:73;;;;-1:-1:-1;;1800:178:73;;;1251:24137:168;1800:178:73;;;-1:-1:-1;;1800:178:73;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;;;;1800:178:73;;1251:24137:168;24953:24;;;3364:17;;:::i;:::-;1251:24137;;;3342:19;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1251:24137:168;;;;3414:52;;1251:24137;;;;;;3414:52;;;;1251:24137;;;3391:20;;;1251:24137;;;;;;-1:-1:-1;;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:1:171;3476:25:168;;;987:1:171;1251:24137:168;;:::i;:::-;;;;;;;:::i;:::-;799:13:171;1251:24137:168;;1081:18:171;1251:24137:168;10604:89:171;;;1251:24137:168;3664:22;;;1251:24137;;-1:-1:-1;;;;;;987:1:171;;;;;1251:24137:168;;;;;;;;;:::i;:::-;;;;3751:65;1251:24137;3751:65;;1251:24137;3751:65;1251:24137;3732:16;;;1251:24137;;987:1:171;;1251:24137:168;987:1:171;;;1251:24137:168;;;;;;;:::i;:::-;;;987:1:171;;;1251:24137:168;;987:1:171;;;;;1251:24137:168;;;;987:1:171;:::i;:::-;2800:15:168;;1251:24137;;987:1:171;;;;:::i;:::-;3898:37:168;;;3868:213;;;;:::i;:::-;5064:101:30;;1251:24137:168;;;5064:101:30;1251:24137:168;5140:14:30;1251:24137:168;-1:-1:-1;;;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;;5140:14:30;1251:24137:168;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;4977:67:30;-1:-1:-1;;;;;;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;4977:67:30;;4849:91;-1:-1:-1;;;4906:23:30;;1251:24137:168;4906:23:30;;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4824:6:60;-1:-1:-1;;;;;1251:24137:168;4815:4:60;4807:23;4803:145;;1251:24137:168;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;4803:145:60;-1:-1:-1;;;4908:29:60;;1251:24137:168;;4908:29:60;1251:24137:168;-1:-1:-1;1251:24137:168;;-1:-1:-1;;1251:24137:168;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4401:6:60;1251:24137:168;4392:4:60;4384:23;;;:120;;;;1251:24137:168;4367:251:60;;;2303:62:29;;:::i;:::-;1251:24137:168;;-1:-1:-1;;;5865:52:60;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;5865:52:60;;;;;;;;1251:24137:168;-1:-1:-1;5861:437:60;;-1:-1:-1;;;6227:60:60;;1251:24137:168;;;;;1805:47:53;6227:60:60;5861:437;5959:40;;;-1:-1:-1;;;;;;;;;;;5959:40:60;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;;;;;1251:24137:168;;;;;2407:36:53;;;;1251:24137:168;;;;2458:15:53;:11;;4065:25:66;;1251:24137:168;4107:55:66;4065:25;;;;;;;1251:24137:168;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;:::-;;1251:24137:168;;;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;1251:24137:168;;6159:70:53;-1:-1:-1;;;6199:19:53;;1251:24137:168;;6199:19:53;1744:119;-1:-1:-1;;;1805:47:53;;1251:24137:168;;;1805:47:53;;5955:120:60;-1:-1:-1;;;6026:34:60;;1251:24137:168;;;6026:34:60;;5865:52;;;;1251:24137:168;5865:52:60;;1251:24137:168;5865:52:60;;;;;;1251:24137:168;5865:52:60;;;:::i;:::-;;;1251:24137:168;;;;;5865:52:60;;;;1251:24137:168;-1:-1:-1;1251:24137:168;;5865:52:60;;;-1:-1:-1;5865:52:60;;4367:251;-1:-1:-1;;;4578:29:60;;1251:24137:168;4578:29:60;;4384:120;-1:-1:-1;;;;;;;;;;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;4462:42:60;;;-1:-1:-1;4384:120:60;;;1251:24137:168;;;;;;;;;;;;;;;;1981:1;1251:24137;;;;;;;;;;;;;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;2971:9:37;2967:62;;1251:24137:168;;;-1:-1:-1;;;;;;;;;;;1251:24137:168;3627:22:37;1251:24137:168;;;966:10:34;1251:24137:168;;3627:22:37;1251:24137:168;;2967:62:37;-1:-1:-1;;;3003:15:37;;1251:24137:168;3003:15:37;;1251:24137:168;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;11326:23;;1251:24137;;-1:-1:-1;;;;;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24137:168;15219:15:171;15198:37;;:::i;:::-;1251:24137:168;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;:::i;:::-;1944:72:37;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;;15709:19;;1251:24137;15709:38;1251:24137;;;;;15802:19;;;1251:24137;;;;;;;;;;;;;;15840:24;15802:62;1251:24137;;3543:209:25;;;1251:24137:168;;;3543:209:25;1251:24137:168;3543:209:25;;1251:24137:168;1052:614:22;1251:24137:168;1052:614:22;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;446:4:170;1052:614:22;1251:24137:168;1052:614:22;921:66:170;4093:83:22;;16201:4:168;1251:24137;;1067:66:170;1066:105;1251:24137:168;4093:83:22;;;1222:66:170;1251:24137:168;4093:83:22;;;1300:150:170;;;;;;;-1:-1:-1;;;;;1251:24137:168;;-1:-1:-1;1251:24137:168;;;16285:28;;;1251:24137;;;;;;;;16342:33;;1251:24137;;16342:35;;;:::i;:::-;1251:24137;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;16393:32;;1251:24137;;16393:32;-1:-1:-1;;;;;;1251:24137:168;;1052:614:22;;12761:10:168;;12724:70;-1:-1:-1;;;;;;;;;;;1251:24137:168;7481:23;;1251:24137;-1:-1:-1;;;;;1251:24137:168;12684:131;;;;;1251:24137;;-1:-1:-1;;;12684:131:168;;-1:-1:-1;;;;;1251:24137:168;;;;12684:131;;1251:24137;;;;;1052:614:22;1251:24137:168;;;;12684:131;1251:24137;12684:131;1251:24137;12684:131;;;;;;;;;;12724:70;1251:24137;;;;;;;;12684:131;;;;;;:::i;:::-;1251:24137;;12684:131;;;;1251:24137;;;;;;;;;12684:131;1251:24137;;;12724:70;;;1300:150:170;;;;1052:614:22;;;;1251:24137:168;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;6982:22;-1:-1:-1;;;;;;;;;;;1251:24137:168;6982:22;1251:24137;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;1944:72:37;;:::i;:::-;12025:11:168;;:16;1251:24137;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;12121:19;;1251:24137;12121:38;1251:24137;;12214:19;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;;12411:32;;;1251:24137;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;:::i;:::-;;;;:::i;:::-;1944:72:37;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;1251:24137:168;15709:19;;;1251:24137;15709:38;1251:24137;;;;;15802:19;;;1251:24137;;;;;;;;;;;;;;15840:24;15802:62;1251:24137;;3543:209:25;1251:24137:168;3543:209:25;1251:24137:168;;;3543:209:25;1251:24137:168;;3543:209:25;1251:24137:168;1052:614:22;;;;;;;;-1:-1:-1;;;;;1052:614:22;;;;;441:6:169;1052:614:22;1251:24137:168;1052:614:22;654:66:169;4093:83:22;;764:66:169;1251:24137:168;4093:83:22;;;874:66:169;1251:24137:168;4093:83:22;;;984:66:169;976:6;4093:83:22;;;1094:66:169;1251:24137:168;4093:83:22;;;1204:66:169;1196:6;4093:83:22;;;1314:66:169;1306:6;4093:83:22;;;1424:66:169;1251:24137:168;4093:83:22;;;1534:66:169;1526:6;4093:83:22;;;1644:66:169;1636:6;4093:83:22;;;1754:66:169;1746:6;4093:83:22;;;1864:66:169;1856:6;4093:83:22;;;1974:66:169;1966:6;4093:83:22;;;2084:66:169;2076:6;4093:83:22;;;2194:66:169;2186:6;4093:83:22;;;2304:66:169;2296:6;4093:83:22;;;2414:66:169;2406:6;4093:83:22;;;2524:66:169;2516:6;4093:83:22;;;2634:66:169;2626:6;4093:83:22;;;16262:4:168;976:6:169;1251:24137:168;2782:66:169;2781:107;2761:6;4093:83:22;;;3042:66:169;16262:4:168;1196:6:169;1251:24137:168;2980:129:169;2958:6;4093:83:22;;;3164:66:169;;;3156:6;4093:83:22;;;1251:24137:168;3242:150:169;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;16285:28;;;1251:24137;;;;;;;;16342:33;;1251:24137;;16342:35;;;:::i;:::-;1251:24137;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;16393:32;;1251:24137;;16393:32;-1:-1:-1;;;;;;1251:24137:168;;1052:614:22;;13207:10:168;;13170:70;;13130:133;;;;;1251:24137;;-1:-1:-1;;;13130:133:168;;-1:-1:-1;;;;;1251:24137:168;;;;13130:133;;1251:24137;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;-1:-1:-1;13130:133:168;;;;;;;;1251:24137;13130:133;;;13170:70;1251:24137;;;;;;;13130:133;1251:24137;13130:133;;;:::i;:::-;1251:24137;13130:133;;;1251:24137;;;;;;;;;13170:70;;;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;11070:42;-1:-1:-1;;;;;;;;;;;1251:24137:168;11070:42;1251:24137;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;:::-;;;;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;:::-;-1:-1:-1;;;;;1251:24137:168;;;;;;-1:-1:-1;;1251:24137:168;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;-1:-1:-1;;1251:24137:168;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1052:614:22;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1251:24137:168;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;987:1:171;;;;;;;;;;;1251:24137:168;;;;:::i;:::-;987:1:171;;;1251:24137:168;;;987:1:171;;;1251:24137:168;987:1:171;;;:::o;:::-;-1:-1:-1;;;;;987:1:171;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;1251:24137:168;;;;;;;:::i;:::-;987:1:171;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;1251:24137:168;;;;;:::i;:::-;987:1:171;;;;;;;;1251:24137:168;;;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;:::o;:::-;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;8152:375::-;15198:37:171;-1:-1:-1;;;;;;;;;;;1251:24137:168;15219:15:171;15198:37;;:::i;:::-;8404:22:168;;;1251:24137;8356:22;;;;;;8509:11;;;;1251:24137;8152:375;:::o;8380:3::-;8427:14;;;;;;:::i;:::-;-1:-1:-1;;;;;1251:24137:168;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;8403:39;8399:90;;1251:24137;;8341:13;;8399:90;8462:12;;;;1251:24137;8462:12;:::o;1251:24137::-;;;;;;;:::i;:::-;-1:-1:-1;1251:24137:168;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;-1:-1:-1;1251:24137:168;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;1251:24137:168;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;1251:24137:168;;-1:-1:-1;;;;;;1251:24137:168;;;;;;;-1:-1:-1;;;;;1251:24137:168;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;1251:24137:168;;3509:1:29;3534:31;2709:128:37;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;2770:61:37;;2709:128::o;2770:61::-;2805:15;;;-1:-1:-1;2805:15:37;;-1:-1:-1;2805:15:37;1251:24137:168;-1:-1:-1;;1251:24137:168;;;;;;;:::o;2658:162:29:-;-1:-1:-1;;;;;;;;;;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;1251:24137:168;;-1:-1:-1;2763:40:29;10706:196:171;1251:24137:168;;:::i;:::-;;;;;;;:::i;:::-;10825:1:171;1251:24137:168;;;10844:12:171;1251:24137:168;10793:102:171;;;1251:24137:168;;10877:15:171;1251:24137:168;;10793:102:171;;1251:24137:168;10706:196:171;:::o;1251:24137:168:-;;;;;;;;;;;;;;;;:::o;22985:1421::-;;;;987:1:171;;23685:25:168;;;;987:1:171;;;1145:66:27;;1837:24:26;;:71;;;;22985:1421:168;1251:24137;;;;;987:1:171;1251:24137:168;;987:1:171;1251:24137:168;;;;;;933:31:173;;1251:24137:168;933:31:173;23685:25:168;933:31:173;;;1251:24137:168;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;933:31:173;;1251:24137:168;;933:31:173;;;;;;:::i;:::-;1003:2074;1251:24137:168;;;1003:2074:173;;23685:25:168;1003:2074:173;;1251:24137:168;;;;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;1003:2074:173;;1251:24137:168;;1003:2074:173;;;;;;:::i;:::-;3088:265;;-1:-1:-1;3088:265:173;-1:-1:-1;;;;;1251:24137:168;;3371:21:173;1251:24137:168;;23845:52;;;1251:24137;;-1:-1:-1;;;;;;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;-1:-1:-1;24008:3:168;23983:16;;;1251:24137;;23979:27;;;;;-1:-1:-1;1251:24137:168;;;23685:25;1251:24137;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;24081:15;;1251:24137;;;;;;;-1:-1:-1;;1251:24137:168;;;;;23964:13;;23979:27;;;;-1:-1:-1;24183:3:168;1251:24137;;24156:25;;;;;1251:24137;;-1:-1:-1;;;;;24223:17:168;1251:24137;24223:17;;:::i;:::-;1251:24137;;;;;;;;-1:-1:-1;1251:24137:168;;24254:15;;1251:24137;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;24141:13;;24156:25;;;23983:16;24308;;1251:24137;;;-1:-1:-1;;;;;1251:24137:168;;;;-1:-1:-1;;;1251:24137:168;;;;;;;;;;;;;;24136:163;1251:24137;23685:25;1251:24137;;-1:-1:-1;1251:24137:168;23685:25;-1:-1:-1;1251:24137:168;-1:-1:-1;1251:24137:168;;;;;;24351:28;;;;;;1251:24137;22985:1421::o;1251:24137::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;23685:25;1251:24137;;;;;;;;;;-1:-1:-1;1251:24137:168;;;23685:25;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;1837:71:26;1865:43;;;;:::i;:::-;1837:71;;;;3607:161:173;3727:19;;;-1:-1:-1;;1251:24137:168;;;;;;;;1916:1;4568:807:173;;;1251:24137:168;4568:807:173;1251:24137:168;;4568:807:173;;;;;;;;;;;;;;;3607:161;:::o;9974:518:171:-;10085:12;-1:-1:-1;;1251:24137:168;;;9974:518:171;;1251:24137:168;;;;;;10085:12:171;10125:22;;10085:12;;10125:50;1251:24137:168;10125:50:171;;10209:8;;;;;;10185:278;-1:-1:-1;1251:24137:168;;-1:-1:-1;;9974:518:171:o;10190:17::-;10248:12;;10278:11;;;;;-1:-1:-1;10100:1:171;;-1:-1:-1;;;10309:11:171:o;10274:119::-;10345:8;10341:52;;-1:-1:-1;;1251:24137:168;10190:17:171;;10341:52;10373:5;;10125:50;10154:21;10085:12;;10154:21;:::i;:::-;10125:50;;;1251:24137:168;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;:::o;16463:652::-;;16591:22;;;16624:1;16591:22;;;;:::i;:::-;:34;;;1251:24137;;16668:22;;;;:::i;:::-;:34;;;16664:146;;16864:22;;;:::i;:::-;1251:24137;;;;;;;;;;;;;;;;;;16954:23;;;;;:::i;:::-;1251:24137;;;;;;;;;;22066:2;1251:24137;;;;;;;22112:36;;;;;;:::i;:::-;22158:18;1251:24137;22192:13;1251:24137;;22327:28;1251:24137;;;;;;22327:28;;22187:685;22227:3;22207:18;;;;;;1251:24137;;;;;;;;;;;;;;22356:18;;;:::i;:::-;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;22327:53;1251:24137;;;16591:22;22450:25;;-1:-1:-1;;;;;22450:25:168;;;:::i;:::-;1251:24137;22450:30;;:72;;;22227:3;22446:144;;22227:3;-1:-1:-1;;;;;22637:18:168;;;:::i;:::-;1251:24137;;-1:-1:-1;;;22629:76:168;;22066:2;22629:76;;;1251:24137;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;-1:-1:-1;;;;;1251:24137:168;;;:::i;:::-;;;;;;22066:2;1251:24137;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;;;;;;22066:2;1251:24137;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22066:2;1251:24137;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;18098:51;1251:24137;;;;;;;;;;;;22066:2;1251:24137;;;;;;;;;;;;;;;;;;;;;;;22629:76;;;;;;;22066:2;22629:76;;-1:-1:-1;;;;;22629:76:168;;;;1251:24137;;22629:76;;;;;;;;1251:24137;22629:76;;;1251:24137;4093:83:22;;22066:2:168;4093:83:22;16624:1:168;4093:83:22;;;;1251:24137:168;22227:3;1251:24137;22192:13;;;22629:76;;;22066:2;22629:76;;;;;;;;;1251:24137;22629:76;;;:::i;:::-;;;1251:24137;;;;;16624:1;22629:76;;;;;-1:-1:-1;22629:76:168;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;22066:2;1251:24137;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;:::i;:::-;;22066:2;1251:24137;;;;;;;-1:-1:-1;;1251:24137:168;;;;;;;;;;;;22066:2;1251:24137;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;16591:22;1251:24137;;;:::i;:::-;;;;;;;;;;16591:22;1251:24137;;;;;;;;;;;;;;;;;;22066:2;1251:24137;;;;;;;;16624:1;1251:24137;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16624:1;1251:24137;;;;;;;;;;;22066:2;1251:24137;;;:::i;:::-;;22066:2;1251:24137;;;-1:-1:-1;;;;;1251:24137:168;;;;;:::i;:::-;;;;;;;;;;;;;;22446:144;22550:25;;;;;:::i;:::-;22446:144;;;22450:72;22485:37;;1251:24137;22485:37;;;:::i;:::-;22484:38;22450:72;;22207:18;;;;;;;;;;22066:2;22207:18;;1083:131:25;17013:16:168;;1251:24137;;16994:36;22066:2;1251:24137;;;;;16994:36;1251:24137;3543:209:25;22066:2:168;3543:209:25;1251:24137:168;;3543:209:25;16463:652:168;:::o;16664:146::-;16779:20;;;16786:13;16779:20;:::o;1251:24137::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;18565:1668::-;18695:24;;;18730:1;18695:24;;;;:::i;:::-;:36;;;1251:24137;;18776:24;;;;:::i;:::-;:36;;;18772:148;;18976:24;;;;:::i;:::-;1251:24137;;;;;;;;;;;;;;;;;;19022:21;;;;;19046;19022;;;:::i;:::-;19046;;;1251:24137;19046:21;;;;:::i;:::-;1251:24137;;;19022:45;1251:24137;;;19125:21;;;:::i;:::-;1251:24137;19150:29;;;;1251:24137;19046:21;1251:24137;;;;19125:54;1251:24137;;19336:46;1251:24137;19360:21;19256:46;19280:21;;;;:::i;:::-;1251:24137;19256:46;;:::i;:::-;19360:21;;:::i;:::-;1251:24137;19336:46;;:::i;:::-;-1:-1:-1;1251:24137:168;;;19504:31;;;1251:24137;19567:32;;;;1251:24137;;;;;-1:-1:-1;;;;;1251:24137:168;;;;19666:19;;;;1251:24137;;;;19046:21;;1251:24137;19560:138;19635:62;19046:21;19666:19;;1251:24137;19666:19;:::i;:::-;:31;1251:24137;19635:62;;:::i;:::-;19666:19;1251:24137;;;;;;;;;19560:138;;;;;;1251:24137;;;;;19560:138;;;;;;;1251:24137;19560:138;;;18565:1668;1251:24137;;;;;19666:19;1251:24137;-1:-1:-1;;;19788:185:168;;-1:-1:-1;;;;;1251:24137:168;;;19560:138;19788:185;;1251:24137;;;;;;;;19046:21;19933:26;;;1251:24137;19560:138;1251:24137;;;;19788:185;1251:24137;-1:-1:-1;19788:185:168;;;;;;;;1251:24137;19788:185;;;18565:1668;20074:19;;;;;:::i;:::-;20095:21;;;;:::i;:::-;1251:24137;19666:19;1251:24137;;;;;20025:92;;19666:19;19560:138;20025:92;;1251:24137;;;;;;;;;;;;;;;;;;;;19046:21;1251:24137;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;19567:32;1251:24137;;;;;;;19022:21;19560:138;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;19046:21;1251:24137;;;;;;;;;;;19788:185;1251:24137;;;;19666:19;1052:614:22;1251:24137:168;;;;;;;:::i;:::-;;;;;;;;;;;20025:92;;;;;;;;;1251:24137;20025:92;;;1251:24137;20204:21;;;;:::i;:::-;19666:19;1251:24137;7537:70:171;19046:21:168;7537:70:171;;1251:24137:168;;;19666:19;1251:24137;;;;;;;;;;19022:21;1251:24137;;;7537:70:171;;;;;;;:::i;:::-;1251:24137:168;7527:81:171;;18565:1668:168;:::o;20025:92::-;;;;19046:21;20025:92;;19046:21;20025:92;;;;;;1251:24137;20025:92;;;:::i;:::-;;;1251:24137;;;;;;20204:21;20025:92;;;;;-1:-1:-1;20025:92:168;;1251:24137;;;;;;;19666:19;1251:24137;18730:1;1251:24137;;;;;;;;;:::i;:::-;;;;19046:21;1251:24137;;;19046:21;1251:24137;;;;;;;;;;;;;;;;19788:185;;;;;19046:21;19788:185;;19046:21;19788:185;;;;;;1251:24137;19788:185;;;:::i;:::-;;;1251:24137;;;;;;;20074:19;19788:185;;;;;-1:-1:-1;19788:185:168;;1251:24137;;;;;;19560:138;1251:24137;;19560:138;;;19046:21;19560:138;;19046:21;19560:138;;;;;;19046:21;19560:138;;;:::i;:::-;;;1251:24137;;;;;;;;;;;;19560:138;;;;;;-1:-1:-1;19560:138:168;;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;:::o;20285:1520::-;;20418:27;;;20456:1;20418:27;;;;:::i;:::-;:39;;;1251:24137;;20505:27;;;;:::i;:::-;:39;;;20501:151;;20711:27;;;:::i;:::-;1251:24137;;;;;;;;;;;;;;;;;;20760:22;;;;;;;;:::i;:::-;:33;;;1251:24137;;;20873:29;;;1251:24137;;;;20855:15;:47;:15;;:47;:::i;:::-;20854:72;20906:16;;;1251:24137;20854:72;;;:::i;:::-;20945:20;;;;1251:24137;;20456:1;1251:24137;;;;;;;20945:43;;1251:24137;;21079:43;;21047:75;21079:43;;:::i;:::-;21047:75;;:::i;:::-;21174:25;21159:40;21174:25;;;1251:24137;21159:40;;:::i;:::-;20855:15;21140:59;1251:24137;;21318:34;;;:::i;:::-;20855:15;;1251:24137;21370:28;;1251:24137;21370:46;1251:24137;;;21458:217;21558:45;;;;;987:1:171;;21558:45:168;;;;:::i;:::-;21617:22;;;;;;:::i;:::-;1251:24137;;;987:1:171;1251:24137:168;987:1:171;;:::i;:::-;1251:24137:168;;987:1:171;;:::i;:::-;1251:24137:168;;987:1:171;;:::i;:::-;21458:217:168;;:::i;:::-;21691:47;1251:24137;21558:45;1251:24137;;;;21691:47;1251:24137;;;;;;;21558:45;1251:24137;;;;;:::i;:::-;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21558:45;1251:24137;;;;20760:22;1251:24137;;;7806:30:171;987:1;1251:24137:168;987:1:171;;7856:32;;987:1;1251:24137:168;21558:45;1251:24137;7772:206:171;;;1251:24137:168;7772:206:171;;1251:24137:168;;;21558:45;1251:24137;;;20760:22;1251:24137;;;;;;;;;;;;;;;;-1:-1:-1;;;1251:24137:168;;7772:206:171;;;;;;1251:24137:168;7772:206:171;;;:::i;1251:24137:168:-;;;-1:-1:-1;;;;;1251:24137:168;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;20456:1;1251:24137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11562:3508:171;;;;;;1251:24137:168;18017:29:171;;;1251:24137:168;;;;18049:22:171;11877:15;18049:22;;:::i;:::-;18017:77;18049:45;18074:16;;;1251:24137:168;18049:45:171;;;:::i;:::-;18017:77;;:::i;:::-;11907:15;;;;;;:82;;11562:3508;11903:676;;;12013:35;;;1251:24137:168;;12098:25:171;;;;:::i;:::-;:39;1251:24137:168;;12621:24:171;11903:676;;12621:24;;:::i;:::-;3226:200:80;-1:-1:-1;;;1251:24137:168;3226:200:80;12686:4:171;3226:200:80;;18017:29:171;3226:200:80;18074:16:171;3226:200:80;;1251:24137:168;3226:200:80;1251:24137:168;18017:29:171;1251:24137:168;;;;;12749:37:171;;;12810:23;;18017:19;12810:23;;1251:24137:168;;;;;;;987:1:171;1251:24137:168;;:::i;:::-;987:1:171;;;:::i;:::-;1251:24137:168;3226:200:80;1251:24137:168;;12941:23:171;1251:24137:168;;13131:240:171;1251:24137:168;13648:272:171;13131:240;;;3226:200:80;13131:240:171;;;;;;;1251:24137:168;18017:19:171;1251:24137:168;;13737:32:171;;1251:24137:168;13648:272:171;;:::i;1251:24137:168:-;;;;;;;;;;;;;;;;;;12745:2296:171;1251:24137:168;;;18017:19:171;13941:37;13937:1104;;12745:2296;;;;;1251:24137:168;11562:3508:171;:::o;13937:1104::-;14014:199;14051:15;14091:25;14051:15;;;;;1251:24137:168;14091:25:171;;1251:24137:168;;-1:-1:-1;;;;;1251:24137:168;;;;;14014:199:171;;:::i;:::-;14228:27;1251:24137:168;14275:13:171;14471:14;1251:24137:168;14471:14:171;;14270:734;14314:3;14290:22;;;;;;3927:8:77;3871:27;987:1:171;1251:24137:168;;;;;;;;:::i;987:1:171:-;3871:27:77;;:::i;:::-;3927:8;;;;;:::i;:::-;-1:-1:-1;;;;;1251:24137:168;;;;;;;;;;;;;;;;14467:523:171;;14314:3;;18017:19;14314:3;14275:13;1251:24137:168;14275:13:171;;14467:523;-1:-1:-1;;;;;2780:163:73;1251:24137:168;2780:163:73;;;1784:66:168;1251:24137;2780:163:73;;;;3327:69:76;;14635:50:171;;;14713:8;18017:19;14713:8;;;14631:223;3556:68:76;18017:19:171;14880:17;3556:68:76;;;14880:17:171;:::i;:::-;:30;;;;14876:96;;14467:523;;;14876:96;14938:11;;;;;;;18017:19;14938:11;:::o;14290:22::-;;;;;;;;1251:24137:168;15018:12:171;:::o;1251:24137:168:-;;;;;;;;;;;;;;;;;;11903:676:171;11877:15;;;;;;12372:21;;1251:24137:168;;12621:24:171;12430:69;;;11903:676;;;;12430:69;12469:15;;12430:69;;;1251:24137:168;;;;;;;;;11907:82:171;11957:32;11944:45;11957:32;;;1251:24137:168;11944:45:171;;:::i;:::-;11877:15;11926:63;11907:82;;17265:446;-1:-1:-1;;;;;17265:446:171;;1251:24137:168;;;;17564:24:171;;;;:::i;:::-;1251:24137:168;;;;;;17676:5:171;1251:24137:168;;17689:1:171;1251:24137:168;17265:446:171;:::o;15833:312::-;;15956:37;15833:312;15956:37;;:::i;:::-;;;;16016;;16009:44;:::o;15952:187::-;16091:37;;16084:44;:::o;7082:141:30:-;1251:24137:168;-1:-1:-1;;;;;;;;;;;1251:24137:168;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;1251:24137:168;;-1:-1:-1;;;;;1251:24137:168;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1251:24137:168;;;;;;:::o;863:809:22:-;1052:614;;;863:809;1052:614;;-1:-1:-1;;1052:614:22;;;-1:-1:-1;;;;;1052:614:22;;;;;;;;;;863:809::o;17717:179:171:-;17869:16;17831:34;17830:59;17717:179;1251:24137:168;17836:29:171;;;1251:24137:168;;;;17831:34:171;;:::i;:::-;17869:16;;1251:24137:168;17830:59:171;;:::i;15388:322::-;15508:50;15542:15;15508:50;;:::i;:::-;15542:15;;;15581:37;;15574:44;:::o;15504:200::-;15656:37;;15649:44;:::o;7001:1787:20:-;;;;;;7608:63;;;;:::i;:::-;7607:64;7603:107;;7961:15;;7957:58;;-1:-1:-1;;8029:25:20;;;8025:68;;2933:1:27;2929:5;4026:14:20;1251:24137:168;4010:31:20;;;:::i;:::-;1251:24137:168;425:3:20;1251:24137:168;;;4003:1:27;2933;2929:5;;1251:24137:168;425:3:20;4492:84:22;;;4093:83;1251:24137:168;4093:83:22;;;4003:1:27;1251:24137:168;;;4492:84:22;;;1251:24137:168;4093:83:22;;;;;1251:24137:168;4093:83:22;;;1581:66:20;1251:24137:168;4093:83:22;;;-1:-1:-1;;;1251:24137:168;4093:83:22;;;531:131:25;;1251:24137:168;4093:83:22;;;;;;4003:1:27;1251:24137:168;4492:84:22;;2933:1:27;4492:84:22;;1251:24137:168;531:131:25;;5696:10:20;;;4093:83:22;;4492:84;1251:24137:168;1145:66:27;;531:131:25;;6084:3:20;1251:24137:168;-1:-1:-1;;;;;1251:24137:168;;;6084:3:20;1251:24137:168;;6062:44:20;1145:66:27;;;1860::20;1052:614:22;1860:66:20;;1251:24137:168;6037:2:20;1251:24137:168;6140:32:20;6133:57;8567:14;;8563:57;;1145:66:27;3386:2;6084:3:20;1145:66:27;1251:24137:168;1145:66:27;648:2:20;1145:66:27;;;6396:43:26;;1145:66:27;;1251:24137:168;4093:83:22;;1251:24137:168;4093:83:22;;;;;6037:2:20;4093:83:22;;;1145:66:27;;6954:42:26;;-1:-1:-1;;1251:24137:168;1530:4:24;4093:83:22;;;;;;2933:1:27;1640:140:24;;;1251:24137:168;1640:140:24;3543:209:25;1251:24137:168;3543:209:25;648:2:20;3543:209:25;1052:614:22;1251:24137:168;;;;6037:2:20;1251:24137:168;3543:209:25;4476:141:27;9285:100:26;7001:1787:20;:::o;8025:68::-;8070:12;;;;;;1251:24137:168;8070:12:20;:::o;18107:424:171:-;1251:24137:168;;:::i;:::-;-1:-1:-1;18368:51:171;;;1251:24137:168;18486:27:171;;;1251:24137:168;;;;;;;;18439:15:171;;-1:-1:-1;;;;;1251:24137:168;;;;:::i;:::-;;;;:::i;:::-;;;18227:297:171;;;1251:24137:168;18439:15:171;1251:24137:168;:::i;:::-;;18227:297:171;;1251:24137:168;18227:297:171;;;1251:24137:168;18107:424:171;:::o;16432:827::-;;16642:54;16564;;;1251:24137:168;16642:54:171;;1251:24137:168;16770:10:171;;;1251:24137:168;;16841:9:171;;;;16873;;;;;16905;;;17006:14;;;;;16432:827;1251:24137:168;;;17222:30:171;;;17215:37;;16432:827;:::o;17222:30::-;17237:14;;16432:827;-1:-1:-1;16432:827:171:o;1251:24137:168:-;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;17006:14:171;;;;;1251:24137:168;;;;-1:-1:-1;1251:24137:168;;-1:-1:-1;1251:24137:168;2129:778:77;1251:24137:168;;;2129:778:77;2319:2;2299:22;;2319:2;;2751:25;2535:196;;;;;;;;;;;;;;;-1:-1:-1;2535:196:77;2751:25;;:::i;:::-;2744:32;;;;;:::o;2295:606::-;2807:83;;2823:1;2807:83;2827:35;2807:83;;:::o;7280:532::-;1251:24137:168;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;1251:24137:168;7462:38:77;;1251:24137:168;;7523:23:77;;;7375:20;7523:23;1251:24137:168;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;1251:24137:168;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;1251:24137:168;;;7375:20:77;7763:32;1767:250:27;-1:-1:-1;;912:66:27;701;;912;;;;;1984:15;1974:29;;1967:43;912:66;-1:-1:-1;;912:66:27;;1948:15;:62;1767:250;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;1251:24137:168;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;1251:24137:168;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;1251:24137:168;;;;4933:24:66;1251:24137:168;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;;5203:1551:77;;;6283:66;6270:79;;6266:164;;1251:24137:168;;;;;;-1:-1:-1;1251:24137:168;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;1251:24137:168;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6266:164::-;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o","linkReferences":{},"immutableReferences":{"45417":[{"start":7011,"length":32},{"start":7158,"length":32}]}},"methodIdentifiers":{"COMMIT_BATCH_AFTER_COMMIT_CODES()":"4429e24b","COMMIT_BATCH_BEFORE_COMMIT_CODES()":"ad2b3d9a","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","areValidators(address[])":"8f381dbe","codeState(bytes32)":"c13911e8","codesStates(bytes32[])":"82bdeaad","commitBatch((bytes32,uint48,bytes32,uint8,((address,bytes32,bool,address,uint128,bool,(bytes32,address,uint128)[],(bytes32,address,bytes,uint128,(bytes32,bytes4),bool)[])[],bytes32)[],(bytes32,bool)[],((uint256,bytes32),((address,uint256)[],uint256,address),uint48)[],((uint256,uint256),bytes,address[],uint256)[]),uint8,bytes[])":"b24fcac0","computeSettings()":"84d22a4f","createProgram(bytes32,bytes32,address)":"3683c4d2","createProgramWithAbiInterface(bytes32,bytes32,address,address)":"0c18d277","genesisBlockHash()":"28e24b3d","genesisTimestamp()":"cacf66ab","initialize(address,address,address,address,uint256,uint256,uint256,(uint256,uint256),bytes,address[])":"53f7fd48","isValidator(address)":"facd743b","latestCommittedBatchHash()":"71a8cf2d","latestCommittedBatchTimestamp()":"d456fd51","lookupGenesisHash()":"8b1edf1e","middleware()":"f4f20ac0","mirrorImpl()":"e6fabc09","owner()":"8da5cb5b","pause()":"8456cb59","paused()":"5c975abb","programCodeId(address)":"9067088e","programsCodeIds(address[])":"baaf0201","programsCount()":"96a2ddfa","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","requestCodeValidation(bytes32)":"120e3f1e","setMirror(address)":"3d43b418","signingThresholdFraction()":"e3a6684f","storageView()":"c2eb812f","timelines()":"9eb939a8","transferOwnership(address)":"f2fde38b","unpause()":"3f4ba83a","upgradeToAndCall(address,bytes)":"4f1ef286","validatedCodesCount()":"007a32e7","validators()":"ca1e7819","validatorsAggregatedPublicKey()":"3bd109fa","validatorsCount()":"ed612f8c","validatorsThreshold()":"edc87225","validatorsVerifiableSecretSharingCommitment()":"a5d53a44","wrappedVara()":"88f50cf0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ApproveERC20Failed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BatchTimestampTooEarly\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BlobNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeAlreadyOnValidationOrValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeNotValidated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CodeValidationNotRequested\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CommitmentEraNotNext\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DeploymentFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ElectionNotStarted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EmptyValidatorsList\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EnforcedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"EraDurationTooShort\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ErasTimestampMustNotBeEqual\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ExpectedPause\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashAlreadySet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"GenesisHashNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidElectionDuration\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFROSTAggregatedPublicKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureCount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidFrostSignatureLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPreviousCommittedBatchHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PredecessorBlockNotFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentEraNotPrevious\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentPredatesGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RewardsCommitmentTimestampNotInPast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterGenesisHashNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SignatureVerificationFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampInFuture\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimestampOlderThanPreviousEra\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyChainCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyRewardsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooManyValidatorsCommitments\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownProgram\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationBeforeGenesis\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidationDelayTooBig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsAlreadyScheduled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValidatorsNotFoundForTimestamp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroValueTransfer\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"name\":\"AnnouncesCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"BatchCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"name\":\"CodeGotValidated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"CodeValidationRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"name\":\"ComputationSettingsChanged\",\"type\":\"event\"},{\"anonymous\":true,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"topic0\",\"type\":\"uint256\"}],\"name\":\"DebugEvent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"codeId\",\"type\":\"bytes32\"}],\"name\":\"ProgramCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"StorageSlotChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"name\":\"ValidatorsCommittedForEra\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COMMIT_BATCH_AFTER_COMMIT_CODES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COMMIT_BATCH_BEFORE_COMMIT_CODES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"areValidators\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"codeState\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"_codesIds\",\"type\":\"bytes32[]\"}],\"name\":\"codesStates\",\"outputs\":[{\"internalType\":\"enum Gear.CodeState[]\",\"name\":\"\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"blockTimestamp\",\"type\":\"uint48\"},{\"internalType\":\"bytes32\",\"name\":\"previousCommittedBatchHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"expiry\",\"type\":\"uint8\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"actorId\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"newStateHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"exited\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"inheritor\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"valueToReceive\",\"type\":\"uint128\"},{\"internalType\":\"bool\",\"name\":\"valueToReceiveNegativeSign\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"messageId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ValueClaim[]\",\"name\":\"valueClaims\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"},{\"internalType\":\"uint128\",\"name\":\"value\",\"type\":\"uint128\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"to\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"code\",\"type\":\"bytes4\"}],\"internalType\":\"struct Gear.ReplyDetails\",\"name\":\"replyDetails\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"call\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.Message[]\",\"name\":\"messages\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.StateTransition[]\",\"name\":\"transitions\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes32\",\"name\":\"head\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.ChainCommitment[]\",\"name\":\"chainCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"valid\",\"type\":\"bool\"}],\"internalType\":\"struct Gear.CodeCommitment[]\",\"name\":\"codeCommitments\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"}],\"internalType\":\"struct Gear.OperatorRewardsCommitment\",\"name\":\"operators\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"vault\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.StakerRewards[]\",\"name\":\"distribution\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"totalAmount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"internalType\":\"struct Gear.StakerRewardsCommitment\",\"name\":\"stakers\",\"type\":\"tuple\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.RewardsCommitment[]\",\"name\":\"rewardsCommitment\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"eraIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsCommitment[]\",\"name\":\"validatorsCommitment\",\"type\":\"tuple[]\"}],\"internalType\":\"struct Gear.BatchCommitment\",\"name\":\"_batch\",\"type\":\"tuple\"},{\"internalType\":\"enum Gear.SignatureType\",\"name\":\"_signatureType\",\"type\":\"uint8\"},{\"internalType\":\"bytes[]\",\"name\":\"_signatures\",\"type\":\"bytes[]\"}],\"name\":\"commitBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"computeSettings\",\"outputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"}],\"name\":\"createProgram\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_overrideInitializer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_abiInterface\",\"type\":\"address\"}],\"name\":\"createProgramWithAbiInterface\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"genesisTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_middleware\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_eraDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_electionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_validationDelay\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"_aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_verifiableSecretSharingCommitment\",\"type\":\"bytes\"},{\"internalType\":\"address[]\",\"name\":\"_validators\",\"type\":\"address[]\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_validator\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestCommittedBatchTimestamp\",\"outputs\":[{\"internalType\":\"uint48\",\"name\":\"\",\"type\":\"uint48\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lookupGenesisHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"middleware\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"mirrorImpl\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_programId\",\"type\":\"address\"}],\"name\":\"programCodeId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_programsIds\",\"type\":\"address[]\"}],\"name\":\"programsCodeIds\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_codeId\",\"type\":\"bytes32\"}],\"name\":\"requestCodeValidation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newMirror\",\"type\":\"address\"}],\"name\":\"setMirror\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signingThresholdFraction\",\"outputs\":[{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"\",\"type\":\"uint128\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"storageView\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"number\",\"type\":\"uint32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.GenesisBlockInfo\",\"name\":\"genesisBlock\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"uint48\",\"name\":\"timestamp\",\"type\":\"uint48\"}],\"internalType\":\"struct Gear.CommittedBatchInfo\",\"name\":\"latestCommittedBatch\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"mirror\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"wrappedVara\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"middleware\",\"type\":\"address\"}],\"internalType\":\"struct Gear.AddressBook\",\"name\":\"implAddresses\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint128\",\"name\":\"thresholdNumerator\",\"type\":\"uint128\"},{\"internalType\":\"uint128\",\"name\":\"thresholdDenominator\",\"type\":\"uint128\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators0\",\"type\":\"tuple\"},{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"aggregatedPublicKey\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"verifiableSecretSharingCommitmentPointer\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"list\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"useFromTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.ValidatorsView\",\"name\":\"validators1\",\"type\":\"tuple\"}],\"internalType\":\"struct Gear.ValidationSettingsView\",\"name\":\"validationSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint64\",\"name\":\"threshold\",\"type\":\"uint64\"},{\"internalType\":\"uint128\",\"name\":\"wvaraPerSecond\",\"type\":\"uint128\"}],\"internalType\":\"struct Gear.ComputationSettings\",\"name\":\"computeSettings\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"timelines\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"programsCount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validatedCodesCount\",\"type\":\"uint256\"}],\"internalType\":\"struct IRouter.StorageView\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"timelines\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"era\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"election\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"validationDelay\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.Timelines\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatedCodesCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsAggregatedPublicKey\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"x\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"y\",\"type\":\"uint256\"}],\"internalType\":\"struct Gear.AggregatedPublicKey\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsVerifiableSecretSharingCommitment\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"wrappedVara\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"EnforcedPause()\":[{\"details\":\"The operation failed because the contract is paused.\"}],\"ExpectedPause()\":[{\"details\":\"The operation failed because the contract is not paused.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AnnouncesCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that the all transitions until head were committed.\",\"params\":{\"head\":\"The hash of committed announces chain head.\"}},\"BatchCommitted(bytes32)\":{\"details\":\"This is an *informational* event, signaling that all commitments in batch has been applied.\",\"params\":{\"hash\":\"Batch keccak256 hash, see Gear.batchCommitmentHash.\"}},\"CodeGotValidated(bytes32,bool)\":{\"details\":\"This is an *informational* event, signaling the results of code validation.\",\"params\":{\"codeId\":\"The ID of the code that was validated.\",\"valid\":\"The result of the validation: indicates whether the code ID can be used for program creation.\"}},\"CodeValidationRequested(bytes32)\":{\"details\":\"This is a *requesting* event, signaling that validators need to download and validate the code from the transaction blob.\",\"params\":{\"codeId\":\"The expected code ID of the applied WASM blob, represented as a Blake2 hash.\"}},\"ComputationSettingsChanged(uint64,uint128)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to change the computation settings. Users and program authors may want to adjust their practices, while validators need to apply the changes internally starting from the next block.\",\"params\":{\"threshold\":\"The amount of Gear gas initially allocated for free to allow the program to decide if it wants to process the incoming message.\",\"wvaraPerSecond\":\"The amount of WVara to be charged from the program's execution balance per second of computation.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Paused(address)\":{\"details\":\"Emitted when the pause is triggered by `account`.\"},\"ProgramCreated(address,bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling the creation of a new program and its Ethereum mirror. Validators need to initialize it with a zeroed hash state internally.\",\"params\":{\"actorId\":\"ID of the actor that was created. It is accessible inside the co-processor and on Ethereum by this identifier.\",\"codeId\":\"The code ID of the WASM implementation of the created program.\"}},\"StorageSlotChanged(bytes32)\":{\"details\":\"This is both an *informational* and *requesting* event, signaling that an authority decided to wipe the router state, rendering all previously existing codes and programs ineligible. Validators need to wipe their databases immediately.\"},\"Unpaused(address)\":{\"details\":\"Emitted when the pause is lifted by `account`.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"},\"ValidatorsCommittedForEra(uint256)\":{\"details\":\"This is an *informational* and *request* event, signaling that validators has been set for the next era.\",\"params\":{\"eraIndex\":\"The index of the era for which the validators have been committed.\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"storageView()\":{\"details\":\"Returns the storage view of the contract storage.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"events\":{\"AnnouncesCommitted(bytes32)\":{\"notice\":\"Emitted when all necessary state transitions have been applied and states have changed.\"},\"BatchCommitted(bytes32)\":{\"notice\":\"Emitted when batch of commitments has been applied.\"},\"CodeGotValidated(bytes32,bool)\":{\"notice\":\"Emitted when a code, previously requested for validation, receives validation results, so its CodeStatus changed.\"},\"CodeValidationRequested(bytes32)\":{\"notice\":\"Emitted when a new code validation request is submitted.\"},\"ComputationSettingsChanged(uint64,uint128)\":{\"notice\":\"Emitted when the computation settings have been changed.\"},\"ProgramCreated(address,bytes32)\":{\"notice\":\"Emitted when a new program within the co-processor is created and is now available on-chain.\"},\"StorageSlotChanged(bytes32)\":{\"notice\":\"Emitted when the router's storage slot has been changed.\"},\"ValidatorsCommittedForEra(uint256)\":{\"notice\":\"Emitted when validators for the next era has been set.\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/instrumented/RouterWithInstrumentation.sol\":\"RouterWithInstrumentation\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/frost-secp256k1-evm/src/FROST.sol\":{\"keccak256\":\"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec\",\"dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB\"]},\"lib/frost-secp256k1-evm/src/utils/Memory.sol\":{\"keccak256\":\"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57\",\"dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695\",\"dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol\":{\"keccak256\":\"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff\",\"dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol\":{\"keccak256\":\"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378\",\"dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB\"]},\"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol\":{\"keccak256\":\"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda\",\"dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol\":{\"keccak256\":\"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb\",\"dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c\",\"dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Arrays.sol\":{\"keccak256\":\"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d\",\"dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY\"]},\"lib/openzeppelin-contracts/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol\":{\"keccak256\":\"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503\",\"dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW\"]},\"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b\",\"dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS\"]},\"src/IMiddleware.sol\":{\"keccak256\":\"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626\",\"dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S\"]},\"src/IMirror.sol\":{\"keccak256\":\"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852\",\"dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6\"]},\"src/IRouter.sol\":{\"keccak256\":\"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c\",\"dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m\"]},\"src/instrumented/RouterWithInstrumentation.sol\":{\"keccak256\":\"0x44d18386d40f2544ba911e33f99ee6cb393394287cb8f90343279d03c472cb8f\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://ff05dcfe0ce2b8ed23ded416313c91b1066064865d8473741b275f692921d192\",\"dweb:/ipfs/QmVz3VwwtLMstCZBQCSovAwopX5WegckMiPA6YWnWdhMwZ\"]},\"src/libraries/Clones.sol\":{\"keccak256\":\"0x2ef3c9aa3b631e8623d0534ba8c4af94491eccae529cd326a43a1f394f7a688e\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://305de5d415d10c219ed462a61cb6cdcc03ea36e67f1a8986bd3320f69225c052\",\"dweb:/ipfs/QmNarW2MSLJqCE9fzuVzFUY4HNgj5X42nqVbDZwpGA2o9h\"]},\"src/libraries/ClonesSmall.sol\":{\"keccak256\":\"0x169033917f7ee921a663c120122b572c5475ff083b75950a0178eb9476e3d9e3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://f526d9f9bbd11b0210da6019531b070b54a059f9018c52cab268df46a5b52f6d\",\"dweb:/ipfs/QmSa1evQuouSyjePKryKr5p1cKQSv6Eh9hX3oFJyuQAo2a\"]},\"src/libraries/Gear.sol\":{\"keccak256\":\"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645\",\"dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA\"]},\"src/libraries/SSTORE2.sol\":{\"keccak256\":\"0x298f0408da388ed3c18e8ef5e6ecc3165c6c3a23c595f77986797f66495d07f3\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://5e146d38b37999363e3eed56edf4a9f49efb4504ec2cdf03e5bd1b75a8902fe9\",\"dweb:/ipfs/QmT1iZKV1YGQVUTk6ChqYcuajLmeEdaPhdEnB9MLopYpfh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ApproveERC20Failed"},{"inputs":[],"type":"error","name":"BatchTimestampNotInPast"},{"inputs":[],"type":"error","name":"BatchTimestampTooEarly"},{"inputs":[],"type":"error","name":"BlobNotFound"},{"inputs":[],"type":"error","name":"CodeAlreadyOnValidationOrValidated"},{"inputs":[],"type":"error","name":"CodeNotValidated"},{"inputs":[],"type":"error","name":"CodeValidationNotRequested"},{"inputs":[],"type":"error","name":"CommitmentEraNotNext"},{"inputs":[],"type":"error","name":"DeploymentFailed"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"ElectionNotStarted"},{"inputs":[],"type":"error","name":"EmptyValidatorsList"},{"inputs":[],"type":"error","name":"EnforcedPause"},{"inputs":[],"type":"error","name":"EraDurationTooShort"},{"inputs":[],"type":"error","name":"ErasTimestampMustNotBeEqual"},{"inputs":[],"type":"error","name":"ExpectedPause"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"GenesisHashAlreadySet"},{"inputs":[],"type":"error","name":"GenesisHashNotFound"},{"inputs":[],"type":"error","name":"InvalidElectionDuration"},{"inputs":[],"type":"error","name":"InvalidFROSTAggregatedPublicKey"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureCount"},{"inputs":[],"type":"error","name":"InvalidFrostSignatureLength"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidPreviousCommittedBatchHash"},{"inputs":[],"type":"error","name":"InvalidTimestamp"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PredecessorBlockNotFound"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[],"type":"error","name":"RewardsCommitmentEraNotPrevious"},{"inputs":[],"type":"error","name":"RewardsCommitmentPredatesGenesis"},{"inputs":[],"type":"error","name":"RewardsCommitmentTimestampNotInPast"},{"inputs":[],"type":"error","name":"RouterGenesisHashNotInitialized"},{"inputs":[],"type":"error","name":"SignatureVerificationFailed"},{"inputs":[],"type":"error","name":"TimestampInFuture"},{"inputs":[],"type":"error","name":"TimestampOlderThanPreviousEra"},{"inputs":[],"type":"error","name":"TooManyChainCommitments"},{"inputs":[],"type":"error","name":"TooManyRewardsCommitments"},{"inputs":[],"type":"error","name":"TooManyValidatorsCommitments"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[],"type":"error","name":"UnknownProgram"},{"inputs":[],"type":"error","name":"ValidationBeforeGenesis"},{"inputs":[],"type":"error","name":"ValidationDelayTooBig"},{"inputs":[],"type":"error","name":"ValidatorsAlreadyScheduled"},{"inputs":[],"type":"error","name":"ValidatorsNotFoundForTimestamp"},{"inputs":[],"type":"error","name":"ZeroValueTransfer"},{"inputs":[{"internalType":"bytes32","name":"head","type":"bytes32","indexed":false}],"type":"event","name":"AnnouncesCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32","indexed":false}],"type":"event","name":"BatchCommitted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false},{"internalType":"bool","name":"valid","type":"bool","indexed":true}],"type":"event","name":"CodeGotValidated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":false}],"type":"event","name":"CodeValidationRequested","anonymous":false},{"inputs":[{"internalType":"uint64","name":"threshold","type":"uint64","indexed":false},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128","indexed":false}],"type":"event","name":"ComputationSettingsChanged","anonymous":false},{"inputs":[{"internalType":"uint256","name":"topic0","type":"uint256","indexed":true}],"type":"event","name":"DebugEvent","anonymous":true},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Paused","anonymous":false},{"inputs":[{"internalType":"address","name":"actorId","type":"address","indexed":false},{"internalType":"bytes32","name":"codeId","type":"bytes32","indexed":true}],"type":"event","name":"ProgramCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32","indexed":false}],"type":"event","name":"StorageSlotChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":false}],"type":"event","name":"Unpaused","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"eraIndex","type":"uint256","indexed":false}],"type":"event","name":"ValidatorsCommittedForEra","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMIT_BATCH_AFTER_COMMIT_CODES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"view","type":"function","name":"areValidators","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"codeState","outputs":[{"internalType":"enum Gear.CodeState","name":"","type":"uint8"}]},{"inputs":[{"internalType":"bytes32[]","name":"_codesIds","type":"bytes32[]"}],"stateMutability":"view","type":"function","name":"codesStates","outputs":[{"internalType":"enum Gear.CodeState[]","name":"","type":"uint8[]"}]},{"inputs":[{"internalType":"struct Gear.BatchCommitment","name":"_batch","type":"tuple","components":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"uint48","name":"blockTimestamp","type":"uint48"},{"internalType":"bytes32","name":"previousCommittedBatchHash","type":"bytes32"},{"internalType":"uint8","name":"expiry","type":"uint8"},{"internalType":"struct Gear.ChainCommitment[]","name":"chainCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.StateTransition[]","name":"transitions","type":"tuple[]","components":[{"internalType":"address","name":"actorId","type":"address"},{"internalType":"bytes32","name":"newStateHash","type":"bytes32"},{"internalType":"bool","name":"exited","type":"bool"},{"internalType":"address","name":"inheritor","type":"address"},{"internalType":"uint128","name":"valueToReceive","type":"uint128"},{"internalType":"bool","name":"valueToReceiveNegativeSign","type":"bool"},{"internalType":"struct Gear.ValueClaim[]","name":"valueClaims","type":"tuple[]","components":[{"internalType":"bytes32","name":"messageId","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint128","name":"value","type":"uint128"}]},{"internalType":"struct Gear.Message[]","name":"messages","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"address","name":"destination","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"},{"internalType":"uint128","name":"value","type":"uint128"},{"internalType":"struct Gear.ReplyDetails","name":"replyDetails","type":"tuple","components":[{"internalType":"bytes32","name":"to","type":"bytes32"},{"internalType":"bytes4","name":"code","type":"bytes4"}]},{"internalType":"bool","name":"call","type":"bool"}]}]},{"internalType":"bytes32","name":"head","type":"bytes32"}]},{"internalType":"struct Gear.CodeCommitment[]","name":"codeCommitments","type":"tuple[]","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"valid","type":"bool"}]},{"internalType":"struct Gear.RewardsCommitment[]","name":"rewardsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.OperatorRewardsCommitment","name":"operators","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"root","type":"bytes32"}]},{"internalType":"struct Gear.StakerRewardsCommitment","name":"stakers","type":"tuple","components":[{"internalType":"struct Gear.StakerRewards[]","name":"distribution","type":"tuple[]","components":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]},{"internalType":"uint256","name":"totalAmount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}]},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.ValidatorsCommitment[]","name":"validatorsCommitment","type":"tuple[]","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"validators","type":"address[]"},{"internalType":"uint256","name":"eraIndex","type":"uint256"}]}]},{"internalType":"enum Gear.SignatureType","name":"_signatureType","type":"uint8"},{"internalType":"bytes[]","name":"_signatures","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"commitBatch"},{"inputs":[],"stateMutability":"view","type":"function","name":"computeSettings","outputs":[{"internalType":"struct Gear.ComputationSettings","name":"","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgram","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"},{"internalType":"bytes32","name":"_salt","type":"bytes32"},{"internalType":"address","name":"_overrideInitializer","type":"address"},{"internalType":"address","name":"_abiInterface","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"createProgramWithAbiInterface","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisBlockHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"genesisTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_mirror","type":"address"},{"internalType":"address","name":"_wrappedVara","type":"address"},{"internalType":"address","name":"_middleware","type":"address"},{"internalType":"uint256","name":"_eraDuration","type":"uint256"},{"internalType":"uint256","name":"_electionDuration","type":"uint256"},{"internalType":"uint256","name":"_validationDelay","type":"uint256"},{"internalType":"struct Gear.AggregatedPublicKey","name":"_aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"bytes","name":"_verifiableSecretSharingCommitment","type":"bytes"},{"internalType":"address[]","name":"_validators","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_validator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"latestCommittedBatchTimestamp","outputs":[{"internalType":"uint48","name":"","type":"uint48"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"lookupGenesisHash"},{"inputs":[],"stateMutability":"view","type":"function","name":"middleware","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"mirrorImpl","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pause"},{"inputs":[],"stateMutability":"view","type":"function","name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_programId","type":"address"}],"stateMutability":"view","type":"function","name":"programCodeId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address[]","name":"_programsIds","type":"address[]"}],"stateMutability":"view","type":"function","name":"programsCodeIds","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"programsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"_codeId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"requestCodeValidation"},{"inputs":[{"internalType":"address","name":"newMirror","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setMirror"},{"inputs":[],"stateMutability":"view","type":"function","name":"signingThresholdFraction","outputs":[{"internalType":"uint128","name":"","type":"uint128"},{"internalType":"uint128","name":"","type":"uint128"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"storageView","outputs":[{"internalType":"struct IRouter.StorageView","name":"","type":"tuple","components":[{"internalType":"struct Gear.GenesisBlockInfo","name":"genesisBlock","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint32","name":"number","type":"uint32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.CommittedBatchInfo","name":"latestCommittedBatch","type":"tuple","components":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"uint48","name":"timestamp","type":"uint48"}]},{"internalType":"struct Gear.AddressBook","name":"implAddresses","type":"tuple","components":[{"internalType":"address","name":"mirror","type":"address"},{"internalType":"address","name":"wrappedVara","type":"address"},{"internalType":"address","name":"middleware","type":"address"}]},{"internalType":"struct Gear.ValidationSettingsView","name":"validationSettings","type":"tuple","components":[{"internalType":"uint128","name":"thresholdNumerator","type":"uint128"},{"internalType":"uint128","name":"thresholdDenominator","type":"uint128"},{"internalType":"struct Gear.ValidatorsView","name":"validators0","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]},{"internalType":"struct Gear.ValidatorsView","name":"validators1","type":"tuple","components":[{"internalType":"struct Gear.AggregatedPublicKey","name":"aggregatedPublicKey","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]},{"internalType":"address","name":"verifiableSecretSharingCommitmentPointer","type":"address"},{"internalType":"address[]","name":"list","type":"address[]"},{"internalType":"uint256","name":"useFromTimestamp","type":"uint256"}]}]},{"internalType":"struct Gear.ComputationSettings","name":"computeSettings","type":"tuple","components":[{"internalType":"uint64","name":"threshold","type":"uint64"},{"internalType":"uint128","name":"wvaraPerSecond","type":"uint128"}]},{"internalType":"struct Gear.Timelines","name":"timelines","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]},{"internalType":"uint256","name":"programsCount","type":"uint256"},{"internalType":"uint256","name":"validatedCodesCount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"timelines","outputs":[{"internalType":"struct Gear.Timelines","name":"","type":"tuple","components":[{"internalType":"uint256","name":"era","type":"uint256"},{"internalType":"uint256","name":"election","type":"uint256"},{"internalType":"uint256","name":"validationDelay","type":"uint256"}]}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unpause"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[],"stateMutability":"view","type":"function","name":"validatedCodesCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsAggregatedPublicKey","outputs":[{"internalType":"struct Gear.AggregatedPublicKey","name":"","type":"tuple","components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"validatorsVerifiableSecretSharingCommitment","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"wrappedVara","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"storageView()":{"details":"Returns the storage view of the contract storage."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/instrumented/RouterWithInstrumentation.sol":"RouterWithInstrumentation"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/frost-secp256k1-evm/src/FROST.sol":{"keccak256":"0x8c8ba97570ce652b50ef98f2625844d38f74313a804afbb494d594249957982b","urls":["bzz-raw://4f1ec027e9311ec16af843df5f79fe48be99b877db752e09910806023948faec","dweb:/ipfs/QmU9Yg7fqxPfrDXjY3fUKhtBz3i8GgesuvXYhxiBMWygHB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/Memory.sol":{"keccak256":"0xe1d67c09eb54744acd7e397129c453860e11b6af20404614955a112f528e5e61","urls":["bzz-raw://e2a71aec4d0d99240d30badcc80fd732e3bc30bc58c0ba289378e9277bacff57","dweb:/ipfs/QmPSwCbje4kpysdmPKpeSnf6ZtcFFyGsjmgum3Chdi2VjA"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/ECDSA.sol":{"keccak256":"0x53d96c7dd11a8e41a71c3a8e9f25c05755e0d7baeef735ab91f513f3b4d246d8","urls":["bzz-raw://e04c980daeff86fed4415ff707d135b5449e71f075e6243963aed523218ef695","dweb:/ipfs/QmQ6bvEpYX6z8yZieKqHY1T4e8DTRtFqfCfwHXfhrnmJ1c"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol":{"keccak256":"0x309133627aa479b060dc680342c5160b83b3dc06242919cf04fbab6bd31a68b0","urls":["bzz-raw://ddafbe0ba7f6f70a9c4a2e231eb427744296fbe46f8d9e43dedda87c6171e5ff","dweb:/ipfs/QmV1NReDo2Qak6W2sZZNAEV1XoLFUrWTJ9UduYka6acMBi"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Schnorr.sol":{"keccak256":"0x5689c57b3d75a97638603fa7fddd2774771ba50541c7dbe32874243a36740489","urls":["bzz-raw://684e5c45325f61c730e17cfaa86558136ba2f3c530022ceafda48eb5593d4378","dweb:/ipfs/QmTUPujhSjJRhFDFJY5m2VQa5AYKgW5bUkHXJHWhBkDvzB"],"license":"MIT"},"lib/frost-secp256k1-evm/src/utils/cryptography/Secp256k1.sol":{"keccak256":"0x67e528aa32adcca7fafe401102c34b7dd1b259a74badbfa877dc4f6ab143cd1f","urls":["bzz-raw://978921f8d1f89d4f2ae902274b65055ba2ed4c085e0ec765dbf3bba9121e6bda","dweb:/ipfs/QmUxaMYVi256FjHhAZzQoGS3akM2xpaq2zwMcUbp9Zmrpp"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol":{"keccak256":"0xa6bf6b7efe0e6625a9dcd30c5ddf52c4c24fe8372f37c7de9dbf5034746768d5","urls":["bzz-raw://8c353ee3705bbf6fadb84c0fb10ef1b736e8ca3ca1867814349d1487ed207beb","dweb:/ipfs/QmcugaPssrzGGE8q4YZKm2ZhnD3kCijjcgdWWg76nWt3FY"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x391a52a14dfcbe1a9ca16f1c052481de32242cf45714d92dab81be2a987e4bba","urls":["bzz-raw://248b69f99e0452696ce5a2c90aac5602f496e2a697dacd5510d050f0dc833a3c","dweb:/ipfs/QmcYkMiFQhTs2AW5fmcV5a3XQAGdQBUz1Y2NQD4RvBrNTM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Arrays.sol":{"keccak256":"0xa4b9958797e0e9cde82a090525e90f80d5745ba1c67ee72b488bd3087498a17e","urls":["bzz-raw://c9344f7c2f80322c2e76d9d89bed03fd12f3e011e74fde7cf24ea21bdd2abe2d","dweb:/ipfs/QmPMAjF5x2fHUAee2FKMZDBbFVrbZbPCr3a9KHLZaSn1zY"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Comparators.sol":{"keccak256":"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58","urls":["bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd","dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol":{"keccak256":"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26","urls":["bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2","dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableMap.sol":{"keccak256":"0x5360739db087f427430f8566608e9267df704d96928337a3a3b3e5382925c57f","urls":["bzz-raw://ec939f4b4f68ca36961fd5ea7a417a6a390715173a6999254a2f0a34e9298503","dweb:/ipfs/QmVEE8fRTjXE9jQ5pyKrPSyb9FPPtaWwsqjCdcxaPvAWwW"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x1fc283df727585919c3db301b948a3e827aee16917457ad7f916db9da2228e77","urls":["bzz-raw://a4f4b5e2cd0ebc3b74e41e4e94771a0417eedd9b11cec3ef9f90b2ac2989264b","dweb:/ipfs/QmZmsEsvsXiwAyAe1YeoLSKezeFcvR1giUeEY6ex4zpsTS"],"license":"MIT"},"src/IMiddleware.sol":{"keccak256":"0x8e35db633e819ccf849864ed3cd0090ed922a7392188bd7809c74cb86a5ee4ca","urls":["bzz-raw://32648ea7536263fc11c60d0f5f7b3f249ccffdb0976361211925c9d3c23dc626","dweb:/ipfs/QmSZ84bj2UfBXCSoF2xYUq3JLFQs4zbTprJPYswhrn2V5S"],"license":"MIT"},"src/IMirror.sol":{"keccak256":"0xf16c1aaaa87301c510e0b747ee3d2eaf041b61ddd1c05d1ddeffca7c067ca0d0","urls":["bzz-raw://ddd89aa7cc8e1bc5bd408e26eab04d699652cdd151f861c4abb843d5f3398852","dweb:/ipfs/QmSQvUy6Hikthr79t6x2iW2RJvhdpfLdhQXiihPbVWgkg6"],"license":"UNLICENSED"},"src/IRouter.sol":{"keccak256":"0x0a6d93dc157d298de87dd7f02a24be289c5047ccd53598d9bf956ecdebde213e","urls":["bzz-raw://0422b105bcb54c1b6ea2bed755d5dfd73554a0fa4beb9d98cdfe1535e1b6889c","dweb:/ipfs/QmWzQMkL4jnnzCdM5BuUFCj6tyTj3naCYFNqY5WAuy1Q3m"],"license":"UNLICENSED"},"src/instrumented/RouterWithInstrumentation.sol":{"keccak256":"0x44d18386d40f2544ba911e33f99ee6cb393394287cb8f90343279d03c472cb8f","urls":["bzz-raw://ff05dcfe0ce2b8ed23ded416313c91b1066064865d8473741b275f692921d192","dweb:/ipfs/QmVz3VwwtLMstCZBQCSovAwopX5WegckMiPA6YWnWdhMwZ"],"license":"UNLICENSED"},"src/libraries/Clones.sol":{"keccak256":"0x2ef3c9aa3b631e8623d0534ba8c4af94491eccae529cd326a43a1f394f7a688e","urls":["bzz-raw://305de5d415d10c219ed462a61cb6cdcc03ea36e67f1a8986bd3320f69225c052","dweb:/ipfs/QmNarW2MSLJqCE9fzuVzFUY4HNgj5X42nqVbDZwpGA2o9h"],"license":"UNLICENSED"},"src/libraries/ClonesSmall.sol":{"keccak256":"0x169033917f7ee921a663c120122b572c5475ff083b75950a0178eb9476e3d9e3","urls":["bzz-raw://f526d9f9bbd11b0210da6019531b070b54a059f9018c52cab268df46a5b52f6d","dweb:/ipfs/QmSa1evQuouSyjePKryKr5p1cKQSv6Eh9hX3oFJyuQAo2a"],"license":"UNLICENSED"},"src/libraries/Gear.sol":{"keccak256":"0xd7c2749012a8bbfcc72b809d7b71fa2fd7fd6a9b3a51b4aaf1f1b8ead14da41c","urls":["bzz-raw://855047154ced953570d98c87823e89b97683f17bcd5b855603a4a022eb63c645","dweb:/ipfs/QmaYJn6peukkWaWQo59qUmSQggyofJYEPChBpZRqXtRakA"],"license":"UNLICENSED"},"src/libraries/SSTORE2.sol":{"keccak256":"0x298f0408da388ed3c18e8ef5e6ecc3165c6c3a23c595f77986797f66495d07f3","urls":["bzz-raw://5e146d38b37999363e3eed56edf4a9f49efb4504ec2cdf03e5bd1b75a8902fe9","dweb:/ipfs/QmT1iZKV1YGQVUTk6ChqYcuajLmeEdaPhdEnB9MLopYpfh"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/instrumented/RouterWithInstrumentation.sol","id":84460,"exportedSymbols":{"Clones":[84707],"ClonesSmall":[84788],"FROST":[40289],"Gear":[85973],"Hashes":[40807],"IERC20":[46160],"IMiddleware":[73432],"IMirror":[73658],"IRouter":[74052],"Memory":[40581],"OwnableUpgradeable":[41646],"PausableUpgradeable":[43182],"ReentrancyGuardTransientUpgradeable":[43267],"RouterWithInstrumentation":[84459],"SSTORE2":[86395],"SlotDerivation":[48289],"StorageSlot":[48413],"UUPSUpgradeable":[45567]},"nodeType":"SourceUnit","src":"39:25350:168","nodes":[{"id":82257,"nodeType":"PragmaDirective","src":"39:24:168","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":82259,"nodeType":"ImportDirective","src":"65:101:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":82258,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"73:18:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82261,"nodeType":"ImportDirective","src":"167:102:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/PausableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/PausableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":43183,"symbolAliases":[{"foreign":{"id":82260,"name":"PausableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43182,"src":"175:19:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82263,"nodeType":"ImportDirective","src":"270:140:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":43268,"symbolAliases":[{"foreign":{"id":82262,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43267,"src":"283:35:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82265,"nodeType":"ImportDirective","src":"411:88:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":82264,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"419:15:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82267,"nodeType":"ImportDirective","src":"500:70:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":46161,"symbolAliases":[{"foreign":{"id":82266,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46160,"src":"508:6:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82269,"nodeType":"ImportDirective","src":"571:80:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/SlotDerivation.sol","file":"@openzeppelin/contracts/utils/SlotDerivation.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":48290,"symbolAliases":[{"foreign":{"id":82268,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"579:14:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82271,"nodeType":"ImportDirective","src":"652:74:168","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol","file":"@openzeppelin/contracts/utils/StorageSlot.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":48414,"symbolAliases":[{"foreign":{"id":82270,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"660:11:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82273,"nodeType":"ImportDirective","src":"727:52:168","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/FROST.sol","file":"frost-secp256k1-evm/FROST.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":40290,"symbolAliases":[{"foreign":{"id":82272,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"735:5:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82275,"nodeType":"ImportDirective","src":"780:60:168","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/Memory.sol","file":"frost-secp256k1-evm/utils/Memory.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":40582,"symbolAliases":[{"foreign":{"id":82274,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"788:6:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82277,"nodeType":"ImportDirective","src":"841:73:168","nodes":[],"absolutePath":"lib/frost-secp256k1-evm/src/utils/cryptography/Hashes.sol","file":"frost-secp256k1-evm/utils/cryptography/Hashes.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":40808,"symbolAliases":[{"foreign":{"id":82276,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"849:6:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82279,"nodeType":"ImportDirective","src":"915:48:168","nodes":[],"absolutePath":"src/IMiddleware.sol","file":"src/IMiddleware.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":73433,"symbolAliases":[{"foreign":{"id":82278,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"923:11:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82281,"nodeType":"ImportDirective","src":"964:40:168","nodes":[],"absolutePath":"src/IMirror.sol","file":"src/IMirror.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":73659,"symbolAliases":[{"foreign":{"id":82280,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"972:7:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82283,"nodeType":"ImportDirective","src":"1005:40:168","nodes":[],"absolutePath":"src/IRouter.sol","file":"src/IRouter.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":74053,"symbolAliases":[{"foreign":{"id":82282,"name":"IRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74052,"src":"1013:7:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82285,"nodeType":"ImportDirective","src":"1046:48:168","nodes":[],"absolutePath":"src/libraries/Clones.sol","file":"src/libraries/Clones.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":84708,"symbolAliases":[{"foreign":{"id":82284,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84707,"src":"1054:6:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82287,"nodeType":"ImportDirective","src":"1095:58:168","nodes":[],"absolutePath":"src/libraries/ClonesSmall.sol","file":"src/libraries/ClonesSmall.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":84789,"symbolAliases":[{"foreign":{"id":82286,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84788,"src":"1103:11:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82289,"nodeType":"ImportDirective","src":"1154:44:168","nodes":[],"absolutePath":"src/libraries/Gear.sol","file":"src/libraries/Gear.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":85974,"symbolAliases":[{"foreign":{"id":82288,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"1162:4:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":82291,"nodeType":"ImportDirective","src":"1199:50:168","nodes":[],"absolutePath":"src/libraries/SSTORE2.sol","file":"src/libraries/SSTORE2.sol","nameLocation":"-1:-1:-1","scope":84460,"sourceUnit":86396,"symbolAliases":[{"foreign":{"id":82290,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"1207:7:168","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":84459,"nodeType":"ContractDefinition","src":"1251:24137:168","nodes":[{"id":82304,"nodeType":"VariableDeclaration","src":"1520:106:168","nodes":[],"constant":true,"mutability":"constant","name":"SLOT_STORAGE","nameLocation":"1545:12:168","scope":84459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82302,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307835633039636131623962383132376134666439663363333834616163353962363631343431653832306531373733333735336666356632653836653165303030","id":82303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1560:66:168","typeDescriptions":{"typeIdentifier":"t_rational_41630078590300661333111585883568696735413380457407274925697692750148467286016_by_1","typeString":"int_const 4163...(69 digits omitted)...6016"},"value":"0x5c09ca1b9b8127a4fd9f3c384aac59b661441e820e17733753ff5f2e86e1e000"},"visibility":"private"},{"id":82307,"nodeType":"VariableDeclaration","src":"1739:111:168","nodes":[],"constant":true,"mutability":"constant","name":"TRANSIENT_STORAGE","nameLocation":"1764:17:168","scope":84459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1739:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866303262343635373337666136303435633266663533666232646634336336363931366163323136366661333033323634363638666232663661316438633030","id":82306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1784:66:168","typeDescriptions":{"typeIdentifier":"t_rational_108631543557424213897897473785501454225913773503351157840763824611960129686528_by_1","typeString":"int_const 1086...(70 digits omitted)...6528"},"value":"0xf02b465737fa6045c2ff53fb2df43c66916ac2166fa303264668fb2f6a1d8c00"},"visibility":"private"},{"id":82310,"nodeType":"VariableDeclaration","src":"1857:60:168","nodes":[],"constant":true,"functionSelector":"ad2b3d9a","mutability":"constant","name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","nameLocation":"1881:32:168","scope":84459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82308,"name":"uint256","nodeType":"ElementaryTypeName","src":"1857:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"31","id":82309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1916:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"id":82313,"nodeType":"VariableDeclaration","src":"1923:59:168","nodes":[],"constant":true,"functionSelector":"4429e24b","mutability":"constant","name":"COMMIT_BATCH_AFTER_COMMIT_CODES","nameLocation":"1947:31:168","scope":84459,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82311,"name":"uint256","nodeType":"ElementaryTypeName","src":"1923:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"32","id":82312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1981:1:168","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"id":82317,"nodeType":"EventDefinition","src":"1989:51:168","nodes":[],"anonymous":true,"eventSelector":"e6fc1df15bb41e2a123ea1d440db6747be3ed04da67b92ac280ad10a97b799d8","name":"DebugEvent","nameLocation":"1995:10:168","parameters":{"id":82316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82315,"indexed":true,"mutability":"mutable","name":"topic0","nameLocation":"2022:6:168","nodeType":"VariableDeclaration","scope":82317,"src":"2006:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82314,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2005:24:168"}},{"id":82325,"nodeType":"FunctionDefinition","src":"2099:53:168","nodes":[],"body":{"id":82324,"nodeType":"Block","src":"2113:39:168","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82321,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"2123:20:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:22:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82323,"nodeType":"ExpressionStatement","src":"2123:22:168"}]},"documentation":{"id":82318,"nodeType":"StructuredDocumentation","src":"2046:48:168","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":82319,"nodeType":"ParameterList","parameters":[],"src":"2110:2:168"},"returnParameters":{"id":82320,"nodeType":"ParameterList","parameters":[],"src":"2113:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82478,"nodeType":"FunctionDefinition","src":"2158:1930:168","nodes":[],"body":{"id":82477,"nodeType":"Block","src":"2573:1515:168","nodes":[],"statements":[{"expression":{"arguments":[{"id":82353,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82327,"src":"2598:6:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82352,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"2583:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2583:22:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82355,"nodeType":"ExpressionStatement","src":"2583:22:168"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82356,"name":"__Pausable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43086,"src":"2615:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2615:17:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82358,"nodeType":"ExpressionStatement","src":"2615:17:168"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82359,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43216,"src":"2642:31:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":82360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2642:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82361,"nodeType":"ExpressionStatement","src":"2642:33:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":82363,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"2800:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"2800:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2800:19:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82367,"name":"InvalidTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73789,"src":"2821:16:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2821:18:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82362,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2792:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2792:48:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82370,"nodeType":"ExpressionStatement","src":"2792:48:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82372,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82337,"src":"2858:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":82373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2878:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2858:21:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82375,"name":"InvalidElectionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"2881:23:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2881:25:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82371,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2850:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2850:57:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82378,"nodeType":"ExpressionStatement","src":"2850:57:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82380,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"2925:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":82381,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82337,"src":"2940:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2925:32:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82383,"name":"EraDurationTooShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"2959:19:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2959:21:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"2917:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2917:64:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82386,"nodeType":"ExpressionStatement","src":"2917:64:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82388,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82339,"src":"3150:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82389,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"3170:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":82390,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82337,"src":"3185:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3170:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":82392,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3169:34:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"3130","id":82393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3206:2:168","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"3169:39:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3150:58:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":82396,"name":"ValidationDelayTooBig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"3210:21:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":82397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3210:23:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":82387,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3142:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":82398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3142:92:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82399,"nodeType":"ExpressionStatement","src":"3142:92:168"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725631","id":82401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3261:25:168","typeDescriptions":{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""},"value":"router.storage.RouterV1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ebe34d7458caf9bba83b85ded6e7716871c7d6d7b9aa651344a78a4d0d1eb88b","typeString":"literal_string \"router.storage.RouterV1\""}],"id":82400,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84400,"src":"3245:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3245:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82403,"nodeType":"ExpressionStatement","src":"3245:42:168"},{"assignments":[82406],"declarations":[{"constant":false,"id":82406,"mutability":"mutable","name":"router","nameLocation":"3313:6:168","nodeType":"VariableDeclaration","scope":82477,"src":"3297:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82405,"nodeType":"UserDefinedTypeName","pathNode":{"id":82404,"name":"Storage","nameLocations":["3297:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"3297:7:168"},"referencedDeclaration":73741,"src":"3297:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82409,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82407,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"3322:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3322:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"3297:34:168"},{"expression":{"id":82416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82410,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3342:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3349:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"3342:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82413,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3364:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3369:10:168","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":85402,"src":"3364:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$84985_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3364:17:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"3342:39:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82417,"nodeType":"ExpressionStatement","src":"3342:39:168"},{"expression":{"id":82427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82418,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3391:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3398:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"3391:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82423,"name":"_mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82329,"src":"3431:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82424,"name":"_wrappedVara","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82331,"src":"3440:12:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":82425,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82333,"src":"3454:11:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":82421,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3414:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3419:11:168","memberName":"AddressBook","nodeType":"MemberAccess","referencedDeclaration":84878,"src":"3414:16:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AddressBook_$84878_storage_ptr_$","typeString":"type(struct Gear.AddressBook storage pointer)"}},"id":82426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3414:52:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_memory_ptr","typeString":"struct Gear.AddressBook memory"}},"src":"3391:75:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82428,"nodeType":"ExpressionStatement","src":"3391:75:168"},{"expression":{"id":82436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82429,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3476:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82432,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3483:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3476:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82433,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3502:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"3476:44:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82434,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3523:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3528:30:168","memberName":"VALIDATORS_THRESHOLD_NUMERATOR","nodeType":"MemberAccess","referencedDeclaration":84820,"src":"3523:35:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3476:82:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82437,"nodeType":"ExpressionStatement","src":"3476:82:168"},{"expression":{"id":82445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82438,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3568:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3575:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3568:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3594:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"3568:46:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82443,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3617:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3622:32:168","memberName":"VALIDATORS_THRESHOLD_DENOMINATOR","nodeType":"MemberAccess","referencedDeclaration":84823,"src":"3617:37:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"3568:86:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82446,"nodeType":"ExpressionStatement","src":"3568:86:168"},{"expression":{"id":82453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82447,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3664:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3671:15:168","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"3664:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82450,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3689:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3694:26:168","memberName":"defaultComputationSettings","nodeType":"MemberAccess","referencedDeclaration":85378,"src":"3689:31:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_ComputationSettings_$84978_memory_ptr_$","typeString":"function () pure returns (struct Gear.ComputationSettings memory)"}},"id":82452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3689:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_memory_ptr","typeString":"struct Gear.ComputationSettings memory"}},"src":"3664:58:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":82454,"nodeType":"ExpressionStatement","src":"3664:58:168"},{"expression":{"id":82464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82455,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3732:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3739:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"3732:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":82460,"name":"_eraDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82335,"src":"3766:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82461,"name":"_electionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82337,"src":"3780:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":82462,"name":"_validationDelay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82339,"src":"3799:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":82458,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"3751:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3756:9:168","memberName":"Timelines","nodeType":"MemberAccess","referencedDeclaration":85047,"src":"3751:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Timelines_$85047_storage_ptr_$","typeString":"type(struct Gear.Timelines storage pointer)"}},"id":82463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3751:65:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_memory_ptr","typeString":"struct Gear.Timelines memory"}},"src":"3732:84:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82465,"nodeType":"ExpressionStatement","src":"3732:84:168"},{"expression":{"arguments":[{"expression":{"expression":{"id":82467,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82406,"src":"3898:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3905:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"3898:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3924:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85054,"src":"3898:37:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"}},{"id":82470,"name":"_aggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82342,"src":"3949:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"id":82471,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82344,"src":"3983:34:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"id":82472,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82347,"src":"4031:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"expression":{"id":82473,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4056:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4062:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"4056:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82466,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84347,"src":"3868:16:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$84860_storage_ptr_$_t_struct$_AggregatedPublicKey_$84845_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":82475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3868:213:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82476,"nodeType":"ExpressionStatement","src":"3868:213:168"}]},"functionSelector":"53f7fd48","implemented":true,"kind":"function","modifiers":[{"id":82350,"kind":"modifierInvocation","modifierName":{"id":82349,"name":"initializer","nameLocations":["2561:11:168"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"2561:11:168"},"nodeType":"ModifierInvocation","src":"2561:11:168"}],"name":"initialize","nameLocation":"2167:10:168","parameters":{"id":82348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82327,"mutability":"mutable","name":"_owner","nameLocation":"2195:6:168","nodeType":"VariableDeclaration","scope":82478,"src":"2187:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82326,"name":"address","nodeType":"ElementaryTypeName","src":"2187:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82329,"mutability":"mutable","name":"_mirror","nameLocation":"2219:7:168","nodeType":"VariableDeclaration","scope":82478,"src":"2211:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82328,"name":"address","nodeType":"ElementaryTypeName","src":"2211:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82331,"mutability":"mutable","name":"_wrappedVara","nameLocation":"2244:12:168","nodeType":"VariableDeclaration","scope":82478,"src":"2236:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82330,"name":"address","nodeType":"ElementaryTypeName","src":"2236:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82333,"mutability":"mutable","name":"_middleware","nameLocation":"2274:11:168","nodeType":"VariableDeclaration","scope":82478,"src":"2266:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82332,"name":"address","nodeType":"ElementaryTypeName","src":"2266:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":82335,"mutability":"mutable","name":"_eraDuration","nameLocation":"2303:12:168","nodeType":"VariableDeclaration","scope":82478,"src":"2295:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82334,"name":"uint256","nodeType":"ElementaryTypeName","src":"2295:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82337,"mutability":"mutable","name":"_electionDuration","nameLocation":"2333:17:168","nodeType":"VariableDeclaration","scope":82478,"src":"2325:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82336,"name":"uint256","nodeType":"ElementaryTypeName","src":"2325:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82339,"mutability":"mutable","name":"_validationDelay","nameLocation":"2368:16:168","nodeType":"VariableDeclaration","scope":82478,"src":"2360:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82338,"name":"uint256","nodeType":"ElementaryTypeName","src":"2360:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":82342,"mutability":"mutable","name":"_aggregatedPublicKey","nameLocation":"2428:20:168","nodeType":"VariableDeclaration","scope":82478,"src":"2394:54:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82341,"nodeType":"UserDefinedTypeName","pathNode":{"id":82340,"name":"Gear.AggregatedPublicKey","nameLocations":["2394:4:168","2399:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":84845,"src":"2394:24:168"},"referencedDeclaration":84845,"src":"2394:24:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":82344,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"2473:34:168","nodeType":"VariableDeclaration","scope":82478,"src":"2458:49:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":82343,"name":"bytes","nodeType":"ElementaryTypeName","src":"2458:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":82347,"mutability":"mutable","name":"_validators","nameLocation":"2536:11:168","nodeType":"VariableDeclaration","scope":82478,"src":"2517:30:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82345,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82346,"nodeType":"ArrayTypeName","src":"2517:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"2177:376:168"},"returnParameters":{"id":82351,"nodeType":"ParameterList","parameters":[],"src":"2573:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82584,"nodeType":"FunctionDefinition","src":"4146:1720:168","nodes":[],"body":{"id":82583,"nodeType":"Block","src":"4204:1662:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82488,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"4229:5:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":82489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4229:7:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":82487,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"4214:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:23:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82491,"nodeType":"ExpressionStatement","src":"4214:23:168"},{"assignments":[82494],"declarations":[{"constant":false,"id":82494,"mutability":"mutable","name":"oldRouter","nameLocation":"4264:9:168","nodeType":"VariableDeclaration","scope":82583,"src":"4248:25:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82493,"nodeType":"UserDefinedTypeName","pathNode":{"id":82492,"name":"Storage","nameLocations":["4248:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"4248:7:168"},"referencedDeclaration":73741,"src":"4248:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82497,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82495,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"4276:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4276:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4248:37:168"},{"expression":{"arguments":[{"hexValue":"726f757465722e73746f726167652e526f757465725632","id":82499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4312:25:168","typeDescriptions":{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""},"value":"router.storage.RouterV2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07554b5a957f065078e703cffe06326f3995e4f57feb37a649312406c8f4f44a","typeString":"literal_string \"router.storage.RouterV2\""}],"id":82498,"name":"_setStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84400,"src":"4296:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":82500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82501,"nodeType":"ExpressionStatement","src":"4296:42:168"},{"assignments":[82504],"declarations":[{"constant":false,"id":82504,"mutability":"mutable","name":"newRouter","nameLocation":"4364:9:168","nodeType":"VariableDeclaration","scope":82583,"src":"4348:25:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82503,"nodeType":"UserDefinedTypeName","pathNode":{"id":82502,"name":"Storage","nameLocations":["4348:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"4348:7:168"},"referencedDeclaration":73741,"src":"4348:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82507,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82505,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"4376:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4376:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4348:37:168"},{"expression":{"id":82514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82508,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"4437:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4447:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"4437:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82511,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"4462:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4467:10:168","memberName":"newGenesis","nodeType":"MemberAccess","referencedDeclaration":85402,"src":"4462:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_GenesisBlockInfo_$84985_memory_ptr_$","typeString":"function () view returns (struct Gear.GenesisBlockInfo memory)"}},"id":82513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4462:17:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_memory_ptr","typeString":"struct Gear.GenesisBlockInfo memory"}},"src":"4437:42:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82515,"nodeType":"ExpressionStatement","src":"4437:42:168"},{"expression":{"id":82521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82516,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"4605:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4615:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"4605:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82519,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"4631:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4641:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"4631:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"src":"4605:49:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82522,"nodeType":"ExpressionStatement","src":"4605:49:168"},{"expression":{"id":82531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82523,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"4729:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4739:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4729:28:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4758:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"4729:47:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":82528,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"4779:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4789:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4779:28:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4808:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"4779:47:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4729:97:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82532,"nodeType":"ExpressionStatement","src":"4729:97:168"},{"expression":{"id":82541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":82533,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"4836:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4846:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4836:28:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4865:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"4836:49:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":82538,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"4888:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4898:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"4888:28:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82540,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4917:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"4888:49:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"4836:101:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":82542,"nodeType":"ExpressionStatement","src":"4836:101:168"},{"expression":{"arguments":[{"expression":{"expression":{"id":82544,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"5247:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5257:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"5247:28:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5276:11:168","memberName":"validators0","nodeType":"MemberAccess","referencedDeclaration":85054,"src":"5247:40:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"}},{"expression":{"arguments":[{"id":82549,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"5327:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82547,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"5301:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5306:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"5301:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5301:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5338:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84848,"src":"5301:56:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},{"arguments":[{"expression":{"arguments":[{"id":82556,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"5410:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82554,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"5384:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5389:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"5384:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5384:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5421:40:168","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":84850,"src":"5384:77:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":82552,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"5371:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$86395_$","typeString":"type(library SSTORE2)"}},"id":82553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5379:4:168","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":86319,"src":"5371:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":82559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5371:91:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"arguments":[{"id":82562,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"5502:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82560,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"5476:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5481:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"5476:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5476:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5513:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"5476:41:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},{"expression":{"id":82565,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"5531:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":82566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5537:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"5531:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$84860_storage","typeString":"struct Gear.Validators storage ref"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82543,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84347,"src":"5217:16:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$84860_storage_ptr_$_t_struct$_AggregatedPublicKey_$84845_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":82567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5217:339:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":82568,"nodeType":"ExpressionStatement","src":"5217:339:168"},{"expression":{"id":82574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82569,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"5625:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5635:15:168","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"5625:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82572,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"5653:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5663:15:168","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"5653:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"src":"5625:53:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"id":82575,"nodeType":"ExpressionStatement","src":"5625:53:168"},{"expression":{"id":82581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":82576,"name":"newRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82504,"src":"5736:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82578,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5746:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"5736:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":82579,"name":"oldRouter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82494,"src":"5758:9:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82580,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5768:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"5758:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"src":"5736:41:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":82582,"nodeType":"ExpressionStatement","src":"5736:41:168"}]},"documentation":{"id":82479,"nodeType":"StructuredDocumentation","src":"4094:47:168","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":82482,"kind":"modifierInvocation","modifierName":{"id":82481,"name":"onlyOwner","nameLocations":["4177:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"4177:9:168"},"nodeType":"ModifierInvocation","src":"4177:9:168"},{"arguments":[{"hexValue":"32","id":82484,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4201:1:168","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":82485,"kind":"modifierInvocation","modifierName":{"id":82483,"name":"reinitializer","nameLocations":["4187:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"4187:13:168"},"nodeType":"ModifierInvocation","src":"4187:16:168"}],"name":"reinitialize","nameLocation":"4155:12:168","parameters":{"id":82480,"nodeType":"ParameterList","parameters":[],"src":"4167:2:168"},"returnParameters":{"id":82486,"nodeType":"ParameterList","parameters":[],"src":"4204:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":82594,"nodeType":"FunctionDefinition","src":"6031:84:168","nodes":[],"body":{"id":82593,"nodeType":"Block","src":"6113:2:168","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":82585,"nodeType":"StructuredDocumentation","src":"5872:154:168","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":82591,"kind":"modifierInvocation","modifierName":{"id":82590,"name":"onlyOwner","nameLocations":["6103:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"6103:9:168"},"nodeType":"ModifierInvocation","src":"6103:9:168"}],"name":"_authorizeUpgrade","nameLocation":"6040:17:168","overrides":{"id":82589,"nodeType":"OverrideSpecifier","overrides":[],"src":"6094:8:168"},"parameters":{"id":82588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82587,"mutability":"mutable","name":"newImplementation","nameLocation":"6066:17:168","nodeType":"VariableDeclaration","scope":82594,"src":"6058:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82586,"name":"address","nodeType":"ElementaryTypeName","src":"6058:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6057:27:168"},"returnParameters":{"id":82592,"nodeType":"ParameterList","parameters":[],"src":"6113:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":82639,"nodeType":"FunctionDefinition","src":"6201:700:168","nodes":[],"body":{"id":82638,"nodeType":"Block","src":"6265:636:168","nodes":[],"statements":[{"assignments":[82603],"declarations":[{"constant":false,"id":82603,"mutability":"mutable","name":"router","nameLocation":"6291:6:168","nodeType":"VariableDeclaration","scope":82638,"src":"6275:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82602,"nodeType":"UserDefinedTypeName","pathNode":{"id":82601,"name":"Storage","nameLocations":["6275:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"6275:7:168"},"referencedDeclaration":73741,"src":"6275:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82606,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82604,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"6300:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6300:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6275:34:168"},{"assignments":[82611],"declarations":[{"constant":false,"id":82611,"mutability":"mutable","name":"validationSettings","nameLocation":"6354:18:168","nodeType":"VariableDeclaration","scope":82638,"src":"6319:53:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView"},"typeName":{"id":82610,"nodeType":"UserDefinedTypeName","pathNode":{"id":82609,"name":"Gear.ValidationSettingsView","nameLocations":["6319:4:168","6324:22:168"],"nodeType":"IdentifierPath","referencedDeclaration":85069,"src":"6319:27:168"},"referencedDeclaration":85069,"src":"6319:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_storage_ptr","typeString":"struct Gear.ValidationSettingsView"}},"visibility":"internal"}],"id":82617,"initialValue":{"arguments":[{"expression":{"id":82614,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6387:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6394:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"6387:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}],"expression":{"id":82612,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"6375:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6380:6:168","memberName":"toView","nodeType":"MemberAccess","referencedDeclaration":85972,"src":"6375:11:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_ValidationSettings_$85058_storage_ptr_$returns$_t_struct$_ValidationSettingsView_$85069_memory_ptr_$","typeString":"function (struct Gear.ValidationSettings storage pointer) view returns (struct Gear.ValidationSettingsView memory)"}},"id":82616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6375:38:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},"nodeType":"VariableDeclarationStatement","src":"6319:94:168"},{"expression":{"arguments":[{"expression":{"id":82619,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6470:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6477:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6470:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},{"expression":{"id":82621,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6525:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6532:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"6525:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},{"expression":{"id":82623,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6581:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6588:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"6581:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},{"id":82625,"name":"validationSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82611,"src":"6635:18:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"}},{"expression":{"id":82626,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6684:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6691:15:168","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"6684:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},{"expression":{"id":82628,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6731:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6738:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"6731:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},{"expression":{"expression":{"id":82630,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6776:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6783:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"6776:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82632,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6796:13:168","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85010,"src":"6776:33:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82633,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82603,"src":"6844:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6851:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"6844:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6864:19:168","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85012,"src":"6844:39:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"},{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"},{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"},{"typeIdentifier":"t_struct$_ValidationSettingsView_$85069_memory_ptr","typeString":"struct Gear.ValidationSettingsView memory"},{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"},{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82618,"name":"StorageView","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"6430:11:168","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_StorageView_$73708_storage_ptr_$","typeString":"type(struct IRouter.StorageView storage pointer)"}},"id":82636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["6456:12:168","6503:20:168","6566:13:168","6615:18:168","6667:15:168","6720:9:168","6761:13:168","6823:19:168"],"names":["genesisBlock","latestCommittedBatch","implAddresses","validationSettings","computeSettings","timelines","programsCount","validatedCodesCount"],"nodeType":"FunctionCall","src":"6430:464:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_memory_ptr","typeString":"struct IRouter.StorageView memory"}},"functionReturnParameters":82600,"id":82637,"nodeType":"Return","src":"6423:471:168"}]},"documentation":{"id":82595,"nodeType":"StructuredDocumentation","src":"6138:58:168","text":"@dev Returns the storage view of the contract storage."},"functionSelector":"c2eb812f","implemented":true,"kind":"function","modifiers":[],"name":"storageView","nameLocation":"6210:11:168","parameters":{"id":82596,"nodeType":"ParameterList","parameters":[],"src":"6221:2:168"},"returnParameters":{"id":82600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82639,"src":"6245:18:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_memory_ptr","typeString":"struct IRouter.StorageView"},"typeName":{"id":82598,"nodeType":"UserDefinedTypeName","pathNode":{"id":82597,"name":"StorageView","nameLocations":["6245:11:168"],"nodeType":"IdentifierPath","referencedDeclaration":73708,"src":"6245:11:168"},"referencedDeclaration":73708,"src":"6245:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_StorageView_$73708_storage_ptr","typeString":"struct IRouter.StorageView"}},"visibility":"internal"}],"src":"6244:20:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82650,"nodeType":"FunctionDefinition","src":"6907:109:168","nodes":[],"body":{"id":82649,"nodeType":"Block","src":"6965:51:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82644,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"6982:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6982:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6992:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"6982:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7005:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"6982:27:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82643,"id":82648,"nodeType":"Return","src":"6975:34:168"}]},"baseFunctions":[73852],"functionSelector":"28e24b3d","implemented":true,"kind":"function","modifiers":[],"name":"genesisBlockHash","nameLocation":"6916:16:168","parameters":{"id":82640,"nodeType":"ParameterList","parameters":[],"src":"6932:2:168"},"returnParameters":{"id":82643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82642,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82650,"src":"6956:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6956:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6955:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82661,"nodeType":"FunctionDefinition","src":"7022:113:168","nodes":[],"body":{"id":82660,"nodeType":"Block","src":"7079:56:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82655,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7096:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7096:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7106:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"7096:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":82658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7119:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"7096:32:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82654,"id":82659,"nodeType":"Return","src":"7089:39:168"}]},"baseFunctions":[73857],"functionSelector":"cacf66ab","implemented":true,"kind":"function","modifiers":[],"name":"genesisTimestamp","nameLocation":"7031:16:168","parameters":{"id":82651,"nodeType":"ParameterList","parameters":[],"src":"7047:2:168"},"returnParameters":{"id":82654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82661,"src":"7071:6:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82652,"name":"uint48","nodeType":"ElementaryTypeName","src":"7071:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7070:8:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82672,"nodeType":"FunctionDefinition","src":"7141:125:168","nodes":[],"body":{"id":82671,"nodeType":"Block","src":"7207:59:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82666,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7224:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7224:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7234:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"7224:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7255:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84970,"src":"7224:35:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82665,"id":82670,"nodeType":"Return","src":"7217:42:168"}]},"baseFunctions":[73862],"functionSelector":"71a8cf2d","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchHash","nameLocation":"7150:24:168","parameters":{"id":82662,"nodeType":"ParameterList","parameters":[],"src":"7174:2:168"},"returnParameters":{"id":82665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82664,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82672,"src":"7198:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82663,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7198:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7197:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82683,"nodeType":"FunctionDefinition","src":"7272:134:168","nodes":[],"body":{"id":82682,"nodeType":"Block","src":"7342:64:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82677,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7359:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7359:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7369:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"7359:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":82680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7390:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84972,"src":"7359:40:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"functionReturnParameters":82676,"id":82681,"nodeType":"Return","src":"7352:47:168"}]},"baseFunctions":[73867],"functionSelector":"d456fd51","implemented":true,"kind":"function","modifiers":[],"name":"latestCommittedBatchTimestamp","nameLocation":"7281:29:168","parameters":{"id":82673,"nodeType":"ParameterList","parameters":[],"src":"7310:2:168"},"returnParameters":{"id":82676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82675,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82683,"src":"7334:6:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"},"typeName":{"id":82674,"name":"uint48","nodeType":"ElementaryTypeName","src":"7334:6:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"visibility":"internal"}],"src":"7333:8:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82694,"nodeType":"FunctionDefinition","src":"7412:106:168","nodes":[],"body":{"id":82693,"nodeType":"Block","src":"7464:54:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82688,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7481:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7481:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82690,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7491:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7481:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7505:6:168","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":84873,"src":"7481:30:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82687,"id":82692,"nodeType":"Return","src":"7474:37:168"}]},"baseFunctions":[73872],"functionSelector":"e6fabc09","implemented":true,"kind":"function","modifiers":[],"name":"mirrorImpl","nameLocation":"7421:10:168","parameters":{"id":82684,"nodeType":"ParameterList","parameters":[],"src":"7431:2:168"},"returnParameters":{"id":82687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82686,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82694,"src":"7455:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82685,"name":"address","nodeType":"ElementaryTypeName","src":"7455:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7454:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82705,"nodeType":"FunctionDefinition","src":"7524:112:168","nodes":[],"body":{"id":82704,"nodeType":"Block","src":"7577:59:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82699,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7594:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7594:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7604:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7594:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82702,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7618:11:168","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":84875,"src":"7594:35:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82698,"id":82703,"nodeType":"Return","src":"7587:42:168"}]},"baseFunctions":[73877],"functionSelector":"88f50cf0","implemented":true,"kind":"function","modifiers":[],"name":"wrappedVara","nameLocation":"7533:11:168","parameters":{"id":82695,"nodeType":"ParameterList","parameters":[],"src":"7544:2:168"},"returnParameters":{"id":82698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82697,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82705,"src":"7568:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82696,"name":"address","nodeType":"ElementaryTypeName","src":"7568:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7567:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82716,"nodeType":"FunctionDefinition","src":"7642:110:168","nodes":[],"body":{"id":82715,"nodeType":"Block","src":"7694:58:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82710,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7711:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7711:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7721:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"7711:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":82713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7735:10:168","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":84877,"src":"7711:34:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":82709,"id":82714,"nodeType":"Return","src":"7704:41:168"}]},"baseFunctions":[73882],"functionSelector":"f4f20ac0","implemented":true,"kind":"function","modifiers":[],"name":"middleware","nameLocation":"7651:10:168","parameters":{"id":82706,"nodeType":"ParameterList","parameters":[],"src":"7661:2:168"},"returnParameters":{"id":82709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82708,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82716,"src":"7685:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82707,"name":"address","nodeType":"ElementaryTypeName","src":"7685:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7684:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82730,"nodeType":"FunctionDefinition","src":"7758:175:168","nodes":[],"body":{"id":82729,"nodeType":"Block","src":"7853:80:168","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82724,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"7896:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7896:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82722,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"7870:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7875:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"7870:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7870:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7907:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84848,"src":"7870:56:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"functionReturnParameters":82721,"id":82728,"nodeType":"Return","src":"7863:63:168"}]},"baseFunctions":[73888],"functionSelector":"3bd109fa","implemented":true,"kind":"function","modifiers":[],"name":"validatorsAggregatedPublicKey","nameLocation":"7767:29:168","parameters":{"id":82717,"nodeType":"ParameterList","parameters":[],"src":"7796:2:168"},"returnParameters":{"id":82721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82720,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82730,"src":"7820:31:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":82719,"nodeType":"UserDefinedTypeName","pathNode":{"id":82718,"name":"Gear.AggregatedPublicKey","nameLocations":["7820:4:168","7825:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":84845,"src":"7820:24:168"},"referencedDeclaration":84845,"src":"7820:24:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"}],"src":"7819:33:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82746,"nodeType":"FunctionDefinition","src":"7939:207:168","nodes":[],"body":{"id":82745,"nodeType":"Block","src":"8031:115:168","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82739,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"8087:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82737,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8061:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8066:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8061:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8061:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8098:40:168","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":84850,"src":"8061:77:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":82735,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"8048:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$86395_$","typeString":"type(library SSTORE2)"}},"id":82736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8056:4:168","memberName":"read","nodeType":"MemberAccess","referencedDeclaration":86319,"src":"8048:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bytes_memory_ptr_$","typeString":"function (address) view returns (bytes memory)"}},"id":82743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8048:91:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":82734,"id":82744,"nodeType":"Return","src":"8041:98:168"}]},"baseFunctions":[73893],"functionSelector":"a5d53a44","implemented":true,"kind":"function","modifiers":[],"name":"validatorsVerifiableSecretSharingCommitment","nameLocation":"7948:43:168","parameters":{"id":82731,"nodeType":"ParameterList","parameters":[],"src":"7991:2:168"},"returnParameters":{"id":82734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82746,"src":"8017:12:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":82732,"name":"bytes","nodeType":"ElementaryTypeName","src":"8017:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8016:14:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":82792,"nodeType":"FunctionDefinition","src":"8152:375:168","nodes":[],"body":{"id":82791,"nodeType":"Block","src":"8234:293:168","nodes":[],"statements":[{"assignments":[82758],"declarations":[{"constant":false,"id":82758,"mutability":"mutable","name":"_currentValidators","nameLocation":"8268:18:168","nodeType":"VariableDeclaration","scope":82791,"src":"8244:42:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":82757,"nodeType":"UserDefinedTypeName","pathNode":{"id":82756,"name":"Gear.Validators","nameLocations":["8244:4:168","8249:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":84860,"src":"8244:15:168"},"referencedDeclaration":84860,"src":"8244:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":82764,"initialValue":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82761,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"8315:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8315:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82759,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8289:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8294:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8289:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8289:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8244:81:168"},{"body":{"id":82787,"nodeType":"Block","src":"8385:114:168","statements":[{"condition":{"id":82782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"8403:39:168","subExpression":{"baseExpression":{"expression":{"id":82776,"name":"_currentValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82758,"src":"8404:18:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8423:3:168","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"8404:22:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82781,"indexExpression":{"baseExpression":{"id":82778,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"8427:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82780,"indexExpression":{"id":82779,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82766,"src":"8439:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8427:14:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8404:38:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82786,"nodeType":"IfStatement","src":"8399:90:168","trueBody":{"id":82785,"nodeType":"Block","src":"8444:45:168","statements":[{"expression":{"hexValue":"66616c7365","id":82783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8469:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":82753,"id":82784,"nodeType":"Return","src":"8462:12:168"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82766,"src":"8356:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82770,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82749,"src":"8360:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":82771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8372:6:168","memberName":"length","nodeType":"MemberAccess","src":"8360:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8356:22:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82788,"initializationExpression":{"assignments":[82766],"declarations":[{"constant":false,"id":82766,"mutability":"mutable","name":"i","nameLocation":"8349:1:168","nodeType":"VariableDeclaration","scope":82788,"src":"8341:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82765,"name":"uint256","nodeType":"ElementaryTypeName","src":"8341:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82768,"initialValue":{"hexValue":"30","id":82767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8353:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8341:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8380:3:168","subExpression":{"id":82773,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82766,"src":"8380:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82775,"nodeType":"ExpressionStatement","src":"8380:3:168"},"nodeType":"ForStatement","src":"8336:163:168"},{"expression":{"hexValue":"74727565","id":82789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8516:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":82753,"id":82790,"nodeType":"Return","src":"8509:11:168"}]},"baseFunctions":[73901],"functionSelector":"8f381dbe","implemented":true,"kind":"function","modifiers":[],"name":"areValidators","nameLocation":"8161:13:168","parameters":{"id":82750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82749,"mutability":"mutable","name":"_validators","nameLocation":"8194:11:168","nodeType":"VariableDeclaration","scope":82792,"src":"8175:30:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82747,"name":"address","nodeType":"ElementaryTypeName","src":"8175:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82748,"nodeType":"ArrayTypeName","src":"8175:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8174:32:168"},"returnParameters":{"id":82753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82752,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82792,"src":"8228:4:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82751,"name":"bool","nodeType":"ElementaryTypeName","src":"8228:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8227:6:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82809,"nodeType":"FunctionDefinition","src":"8533:144:168","nodes":[],"body":{"id":82808,"nodeType":"Block","src":"8601:76:168","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82801,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"8644:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8644:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82799,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"8618:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8623:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"8618:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8618:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8655:3:168","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"8618:40:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":82806,"indexExpression":{"id":82805,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82794,"src":"8659:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8618:52:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":82798,"id":82807,"nodeType":"Return","src":"8611:59:168"}]},"baseFunctions":[73908],"functionSelector":"facd743b","implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"8542:11:168","parameters":{"id":82795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82794,"mutability":"mutable","name":"_validator","nameLocation":"8562:10:168","nodeType":"VariableDeclaration","scope":82809,"src":"8554:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82793,"name":"address","nodeType":"ElementaryTypeName","src":"8554:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8553:20:168"},"returnParameters":{"id":82798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82797,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82809,"src":"8595:4:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82796,"name":"bool","nodeType":"ElementaryTypeName","src":"8595:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8594:6:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82833,"nodeType":"FunctionDefinition","src":"8683:245:168","nodes":[],"body":{"id":82832,"nodeType":"Block","src":"8758:170:168","nodes":[],"statements":[{"assignments":[82820],"declarations":[{"constant":false,"id":82820,"mutability":"mutable","name":"router","nameLocation":"8792:6:168","nodeType":"VariableDeclaration","scope":82832,"src":"8768:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82819,"nodeType":"UserDefinedTypeName","pathNode":{"id":82818,"name":"IRouter.Storage","nameLocations":["8768:7:168","8776:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"8768:15:168"},"referencedDeclaration":73741,"src":"8768:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82823,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82821,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"8801:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8801:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"8768:42:168"},{"expression":{"components":[{"expression":{"expression":{"id":82824,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82820,"src":"8828:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82825,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8835:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"8828:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8854:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"8828:44:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":82827,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82820,"src":"8874:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8881:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"8874:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8900:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"8874:46:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"id":82830,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8827:94:168","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint128_$_t_uint128_$","typeString":"tuple(uint128,uint128)"}},"functionReturnParameters":82815,"id":82831,"nodeType":"Return","src":"8820:101:168"}]},"baseFunctions":[73915],"functionSelector":"e3a6684f","implemented":true,"kind":"function","modifiers":[],"name":"signingThresholdFraction","nameLocation":"8692:24:168","parameters":{"id":82810,"nodeType":"ParameterList","parameters":[],"src":"8716:2:168"},"returnParameters":{"id":82815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82833,"src":"8740:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82811,"name":"uint128","nodeType":"ElementaryTypeName","src":"8740:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"},{"constant":false,"id":82814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82833,"src":"8749:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":82813,"name":"uint128","nodeType":"ElementaryTypeName","src":"8749:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"src":"8739:18:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82847,"nodeType":"FunctionDefinition","src":"8934:126:168","nodes":[],"body":{"id":82846,"nodeType":"Block","src":"8995:65:168","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82841,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"9038:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9038:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82839,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9012:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9017:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"9012:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9049:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"9012:41:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"functionReturnParameters":82838,"id":82845,"nodeType":"Return","src":"9005:48:168"}]},"baseFunctions":[73921],"functionSelector":"ca1e7819","implemented":true,"kind":"function","modifiers":[],"name":"validators","nameLocation":"8943:10:168","parameters":{"id":82834,"nodeType":"ParameterList","parameters":[],"src":"8953:2:168"},"returnParameters":{"id":82838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82837,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82847,"src":"8977:16:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":82835,"name":"address","nodeType":"ElementaryTypeName","src":"8977:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":82836,"nodeType":"ArrayTypeName","src":"8977:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8976:18:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82861,"nodeType":"FunctionDefinition","src":"9066:129:168","nodes":[],"body":{"id":82860,"nodeType":"Block","src":"9123:72:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":82854,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"9166:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9166:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82852,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9140:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9145:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"9140:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9140:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9177:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"9140:41:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9182:6:168","memberName":"length","nodeType":"MemberAccess","src":"9140:48:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82851,"id":82859,"nodeType":"Return","src":"9133:55:168"}]},"baseFunctions":[73926],"functionSelector":"ed612f8c","implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"9075:15:168","parameters":{"id":82848,"nodeType":"ParameterList","parameters":[],"src":"9090:2:168"},"returnParameters":{"id":82851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82850,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82861,"src":"9114:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82849,"name":"uint256","nodeType":"ElementaryTypeName","src":"9114:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9113:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82891,"nodeType":"FunctionDefinition","src":"9201:348:168","nodes":[],"body":{"id":82890,"nodeType":"Block","src":"9262:287:168","nodes":[],"statements":[{"assignments":[82870],"declarations":[{"constant":false,"id":82870,"mutability":"mutable","name":"router","nameLocation":"9296:6:168","nodeType":"VariableDeclaration","scope":82890,"src":"9272:30:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82869,"nodeType":"UserDefinedTypeName","pathNode":{"id":82868,"name":"IRouter.Storage","nameLocations":["9272:7:168","9280:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"9272:15:168"},"referencedDeclaration":73741,"src":"9272:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82873,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82871,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"9305:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9305:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9272:42:168"},{"expression":{"arguments":[{"expression":{"expression":{"arguments":[{"id":82878,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82870,"src":"9395:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":82876,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9369:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9374:20:168","memberName":"currentEraValidators","nodeType":"MemberAccess","referencedDeclaration":85697,"src":"9369:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":82879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9369:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":82880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9403:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"9369:38:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":82881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9408:6:168","memberName":"length","nodeType":"MemberAccess","src":"9369:45:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":82882,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82870,"src":"9428:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9435:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"9428:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9454:18:168","memberName":"thresholdNumerator","nodeType":"MemberAccess","referencedDeclaration":85049,"src":"9428:44:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},{"expression":{"expression":{"id":82885,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82870,"src":"9486:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9493:18:168","memberName":"validationSettings","nodeType":"MemberAccess","referencedDeclaration":73728,"src":"9486:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidationSettings_$85058_storage","typeString":"struct Gear.ValidationSettings storage ref"}},"id":82887,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9512:20:168","memberName":"thresholdDenominator","nodeType":"MemberAccess","referencedDeclaration":85051,"src":"9486:46:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint128","typeString":"uint128"},{"typeIdentifier":"t_uint128","typeString":"uint128"}],"expression":{"id":82874,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"9331:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":82875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9336:19:168","memberName":"validatorsThreshold","nodeType":"MemberAccess","referencedDeclaration":85864,"src":"9331:24:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint128_$_t_uint128_$returns$_t_uint256_$","typeString":"function (uint256,uint128,uint128) pure returns (uint256)"}},"id":82888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9331:211:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":82865,"id":82889,"nodeType":"Return","src":"9324:218:168"}]},"baseFunctions":[73931],"functionSelector":"edc87225","implemented":true,"kind":"function","modifiers":[],"name":"validatorsThreshold","nameLocation":"9210:19:168","parameters":{"id":82862,"nodeType":"ParameterList","parameters":[],"src":"9229:2:168"},"returnParameters":{"id":82865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82891,"src":"9253:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82863,"name":"uint256","nodeType":"ElementaryTypeName","src":"9253:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9252:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82904,"nodeType":"FunctionDefinition","src":"9555:122:168","nodes":[],"body":{"id":82903,"nodeType":"Block","src":"9639:38:168","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":82899,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9656:5:168","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_RouterWithInstrumentation_$84459_$","typeString":"type(contract super RouterWithInstrumentation)"}},"id":82900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9662:6:168","memberName":"paused","nodeType":"MemberAccess","referencedDeclaration":43108,"src":"9656:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":82901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9656:14:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":82898,"id":82902,"nodeType":"Return","src":"9649:21:168"}]},"baseFunctions":[43108,73936],"functionSelector":"5c975abb","implemented":true,"kind":"function","modifiers":[],"name":"paused","nameLocation":"9564:6:168","overrides":{"id":82895,"nodeType":"OverrideSpecifier","overrides":[{"id":82893,"name":"IRouter","nameLocations":["9594:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"9594:7:168"},{"id":82894,"name":"PausableUpgradeable","nameLocations":["9603:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":43182,"src":"9603:19:168"}],"src":"9585:38:168"},"parameters":{"id":82892,"nodeType":"ParameterList","parameters":[],"src":"9570:2:168"},"returnParameters":{"id":82898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82897,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82904,"src":"9633:4:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82896,"name":"bool","nodeType":"ElementaryTypeName","src":"9633:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9632:6:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82915,"nodeType":"FunctionDefinition","src":"9683:130:168","nodes":[],"body":{"id":82914,"nodeType":"Block","src":"9764:49:168","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82910,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"9781:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9781:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9791:15:168","memberName":"computeSettings","nodeType":"MemberAccess","referencedDeclaration":73732,"src":"9781:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage","typeString":"struct Gear.ComputationSettings storage ref"}},"functionReturnParameters":82909,"id":82913,"nodeType":"Return","src":"9774:32:168"}]},"baseFunctions":[73942],"functionSelector":"84d22a4f","implemented":true,"kind":"function","modifiers":[],"name":"computeSettings","nameLocation":"9692:15:168","parameters":{"id":82905,"nodeType":"ParameterList","parameters":[],"src":"9707:2:168"},"returnParameters":{"id":82909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82915,"src":"9731:31:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_memory_ptr","typeString":"struct Gear.ComputationSettings"},"typeName":{"id":82907,"nodeType":"UserDefinedTypeName","pathNode":{"id":82906,"name":"Gear.ComputationSettings","nameLocations":["9731:4:168","9736:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":84978,"src":"9731:24:168"},"referencedDeclaration":84978,"src":"9731:24:168","typeDescriptions":{"typeIdentifier":"t_struct$_ComputationSettings_$84978_storage_ptr","typeString":"struct Gear.ComputationSettings"}},"visibility":"internal"}],"src":"9730:33:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82931,"nodeType":"FunctionDefinition","src":"9819:134:168","nodes":[],"body":{"id":82930,"nodeType":"Block","src":"9892:61:168","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82923,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"9909:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9909:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9919:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"9909:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9932:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"9909:28:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":82928,"indexExpression":{"id":82927,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82917,"src":"9938:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9909:37:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"functionReturnParameters":82922,"id":82929,"nodeType":"Return","src":"9902:44:168"}]},"baseFunctions":[73950],"functionSelector":"c13911e8","implemented":true,"kind":"function","modifiers":[],"name":"codeState","nameLocation":"9828:9:168","parameters":{"id":82918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82917,"mutability":"mutable","name":"_codeId","nameLocation":"9846:7:168","nodeType":"VariableDeclaration","scope":82931,"src":"9838:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82916,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9838:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9837:17:168"},"returnParameters":{"id":82922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82921,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82931,"src":"9876:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"typeName":{"id":82920,"nodeType":"UserDefinedTypeName","pathNode":{"id":82919,"name":"Gear.CodeState","nameLocations":["9876:4:168","9881:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"9876:14:168"},"referencedDeclaration":84968,"src":"9876:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"visibility":"internal"}],"src":"9875:16:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":82989,"nodeType":"FunctionDefinition","src":"9959:378:168","nodes":[],"body":{"id":82988,"nodeType":"Block","src":"10056:281:168","nodes":[],"statements":[{"assignments":[82943],"declarations":[{"constant":false,"id":82943,"mutability":"mutable","name":"router","nameLocation":"10082:6:168","nodeType":"VariableDeclaration","scope":82988,"src":"10066:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":82942,"nodeType":"UserDefinedTypeName","pathNode":{"id":82941,"name":"Storage","nameLocations":["10066:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"10066:7:168"},"referencedDeclaration":73741,"src":"10066:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":82946,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":82944,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"10091:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10091:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10066:34:168"},{"assignments":[82952],"declarations":[{"constant":false,"id":82952,"mutability":"mutable","name":"res","nameLocation":"10135:3:168","nodeType":"VariableDeclaration","scope":82988,"src":"10111:27:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":82950,"nodeType":"UserDefinedTypeName","pathNode":{"id":82949,"name":"Gear.CodeState","nameLocations":["10111:4:168","10116:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"10111:14:168"},"referencedDeclaration":84968,"src":"10111:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":82951,"nodeType":"ArrayTypeName","src":"10111:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"id":82960,"initialValue":{"arguments":[{"expression":{"id":82957,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82934,"src":"10162:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":82958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10172:6:168","memberName":"length","nodeType":"MemberAccess","src":"10162:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":82956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10141:20:168","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (enum Gear.CodeState[] memory)"},"typeName":{"baseType":{"id":82954,"nodeType":"UserDefinedTypeName","pathNode":{"id":82953,"name":"Gear.CodeState","nameLocations":["10145:4:168","10150:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"10145:14:168"},"referencedDeclaration":84968,"src":"10145:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":82955,"nodeType":"ArrayTypeName","src":"10145:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}}},"id":82959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:38:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10111:68:168"},{"body":{"id":82984,"nodeType":"Block","src":"10237:73:168","statements":[{"expression":{"id":82982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":82972,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82952,"src":"10251:3:168","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"id":82974,"indexExpression":{"id":82973,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82962,"src":"10255:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10251:6:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":82975,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82943,"src":"10260:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10267:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10260:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10280:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"10260:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":82981,"indexExpression":{"baseExpression":{"id":82978,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82934,"src":"10286:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":82980,"indexExpression":{"id":82979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82962,"src":"10296:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10286:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10260:39:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"10251:48:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":82983,"nodeType":"ExpressionStatement","src":"10251:48:168"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":82968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":82965,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82962,"src":"10210:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":82966,"name":"_codesIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82934,"src":"10214:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":82967,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10224:6:168","memberName":"length","nodeType":"MemberAccess","src":"10214:16:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10210:20:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":82985,"initializationExpression":{"assignments":[82962],"declarations":[{"constant":false,"id":82962,"mutability":"mutable","name":"i","nameLocation":"10203:1:168","nodeType":"VariableDeclaration","scope":82985,"src":"10195:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":82961,"name":"uint256","nodeType":"ElementaryTypeName","src":"10195:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":82964,"initialValue":{"hexValue":"30","id":82963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10207:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10195:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":82970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10232:3:168","subExpression":{"id":82969,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82962,"src":"10232:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":82971,"nodeType":"ExpressionStatement","src":"10232:3:168"},"nodeType":"ForStatement","src":"10190:120:168"},{"expression":{"id":82986,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82952,"src":"10327:3:168","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[] memory"}},"functionReturnParameters":82940,"id":82987,"nodeType":"Return","src":"10320:10:168"}]},"baseFunctions":[73960],"functionSelector":"82bdeaad","implemented":true,"kind":"function","modifiers":[],"name":"codesStates","nameLocation":"9968:11:168","parameters":{"id":82935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82934,"mutability":"mutable","name":"_codesIds","nameLocation":"9999:9:168","nodeType":"VariableDeclaration","scope":82989,"src":"9980:28:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":82932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9980:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":82933,"nodeType":"ArrayTypeName","src":"9980:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"9979:30:168"},"returnParameters":{"id":82940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82939,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":82989,"src":"10031:23:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_memory_ptr","typeString":"enum Gear.CodeState[]"},"typeName":{"baseType":{"id":82937,"nodeType":"UserDefinedTypeName","pathNode":{"id":82936,"name":"Gear.CodeState","nameLocations":["10031:4:168","10036:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":84968,"src":"10031:14:168"},"referencedDeclaration":84968,"src":"10031:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":82938,"nodeType":"ArrayTypeName","src":"10031:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_enum$_CodeState_$84968_$dyn_storage_ptr","typeString":"enum Gear.CodeState[]"}},"visibility":"internal"}],"src":"10030:25:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83004,"nodeType":"FunctionDefinition","src":"10343:140:168","nodes":[],"body":{"id":83003,"nodeType":"Block","src":"10416:67:168","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":82996,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"10433:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":82997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10433:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":82998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10443:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10433:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":82999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10456:8:168","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"10433:31:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83001,"indexExpression":{"id":83000,"name":"_programId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82991,"src":"10465:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10433:43:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":82995,"id":83002,"nodeType":"Return","src":"10426:50:168"}]},"baseFunctions":[73967],"functionSelector":"9067088e","implemented":true,"kind":"function","modifiers":[],"name":"programCodeId","nameLocation":"10352:13:168","parameters":{"id":82992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82991,"mutability":"mutable","name":"_programId","nameLocation":"10374:10:168","nodeType":"VariableDeclaration","scope":83004,"src":"10366:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":82990,"name":"address","nodeType":"ElementaryTypeName","src":"10366:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10365:20:168"},"returnParameters":{"id":82995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":82994,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83004,"src":"10407:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":82993,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10407:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"10406:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83059,"nodeType":"FunctionDefinition","src":"10489:376:168","nodes":[],"body":{"id":83058,"nodeType":"Block","src":"10586:279:168","nodes":[],"statements":[{"assignments":[83015],"declarations":[{"constant":false,"id":83015,"mutability":"mutable","name":"router","nameLocation":"10612:6:168","nodeType":"VariableDeclaration","scope":83058,"src":"10596:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83014,"nodeType":"UserDefinedTypeName","pathNode":{"id":83013,"name":"Storage","nameLocations":["10596:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"10596:7:168"},"referencedDeclaration":73741,"src":"10596:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83018,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83016,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"10621:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10621:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"10596:34:168"},{"assignments":[83023],"declarations":[{"constant":false,"id":83023,"mutability":"mutable","name":"res","nameLocation":"10658:3:168","nodeType":"VariableDeclaration","scope":83058,"src":"10641:20:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83021,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10641:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83022,"nodeType":"ArrayTypeName","src":"10641:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":83030,"initialValue":{"arguments":[{"expression":{"id":83027,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83007,"src":"10678:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10691:6:168","memberName":"length","nodeType":"MemberAccess","src":"10678:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10664:13:168","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (bytes32[] memory)"},"typeName":{"baseType":{"id":83024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10668:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83025,"nodeType":"ArrayTypeName","src":"10668:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}}},"id":83029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10664:34:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10641:57:168"},{"body":{"id":83054,"nodeType":"Block","src":"10759:79:168","statements":[{"expression":{"id":83052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83042,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83023,"src":"10773:3:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"id":83044,"indexExpression":{"id":83043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83032,"src":"10777:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10773:6:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"expression":{"expression":{"id":83045,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83015,"src":"10782:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10789:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10782:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10802:8:168","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"10782:28:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83051,"indexExpression":{"baseExpression":{"id":83048,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83007,"src":"10811:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83050,"indexExpression":{"id":83049,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83032,"src":"10824:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10811:15:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10782:45:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10773:54:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83053,"nodeType":"ExpressionStatement","src":"10773:54:168"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83032,"src":"10729:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83036,"name":"_programsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83007,"src":"10733:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":83037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10746:6:168","memberName":"length","nodeType":"MemberAccess","src":"10733:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10729:23:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83055,"initializationExpression":{"assignments":[83032],"declarations":[{"constant":false,"id":83032,"mutability":"mutable","name":"i","nameLocation":"10722:1:168","nodeType":"VariableDeclaration","scope":83055,"src":"10714:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83031,"name":"uint256","nodeType":"ElementaryTypeName","src":"10714:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83034,"initialValue":{"hexValue":"30","id":83033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10726:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10714:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10754:3:168","subExpression":{"id":83039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83032,"src":"10754:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83041,"nodeType":"ExpressionStatement","src":"10754:3:168"},"nodeType":"ForStatement","src":"10709:129:168"},{"expression":{"id":83056,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83023,"src":"10855:3:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":83012,"id":83057,"nodeType":"Return","src":"10848:10:168"}]},"baseFunctions":[73976],"functionSelector":"baaf0201","implemented":true,"kind":"function","modifiers":[],"name":"programsCodeIds","nameLocation":"10498:15:168","parameters":{"id":83008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83007,"mutability":"mutable","name":"_programsIds","nameLocation":"10533:12:168","nodeType":"VariableDeclaration","scope":83059,"src":"10514:31:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83005,"name":"address","nodeType":"ElementaryTypeName","src":"10514:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83006,"nodeType":"ArrayTypeName","src":"10514:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10513:33:168"},"returnParameters":{"id":83012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83059,"src":"10568:16:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":83009,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10568:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83010,"nodeType":"ArrayTypeName","src":"10568:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"10567:18:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83070,"nodeType":"FunctionDefinition","src":"10871:115:168","nodes":[],"body":{"id":83069,"nodeType":"Block","src":"10926:60:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83064,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"10943:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10943:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10953:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"10943:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10966:13:168","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85010,"src":"10943:36:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83063,"id":83068,"nodeType":"Return","src":"10936:43:168"}]},"baseFunctions":[73981],"functionSelector":"96a2ddfa","implemented":true,"kind":"function","modifiers":[],"name":"programsCount","nameLocation":"10880:13:168","parameters":{"id":83060,"nodeType":"ParameterList","parameters":[],"src":"10893:2:168"},"returnParameters":{"id":83063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83070,"src":"10917:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83061,"name":"uint256","nodeType":"ElementaryTypeName","src":"10917:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10916:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83081,"nodeType":"FunctionDefinition","src":"10992:127:168","nodes":[],"body":{"id":83080,"nodeType":"Block","src":"11053:66:168","nodes":[],"statements":[{"expression":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83075,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"11070:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11070:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11080:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"11070:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11093:19:168","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85012,"src":"11070:42:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83074,"id":83079,"nodeType":"Return","src":"11063:49:168"}]},"baseFunctions":[73986],"functionSelector":"007a32e7","implemented":true,"kind":"function","modifiers":[],"name":"validatedCodesCount","nameLocation":"11001:19:168","parameters":{"id":83071,"nodeType":"ParameterList","parameters":[],"src":"11020:2:168"},"returnParameters":{"id":83074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83081,"src":"11044:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83072,"name":"uint256","nodeType":"ElementaryTypeName","src":"11044:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11043:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83092,"nodeType":"FunctionDefinition","src":"11125:108:168","nodes":[],"body":{"id":83091,"nodeType":"Block","src":"11190:43:168","nodes":[],"statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83087,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"11207:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11207:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83089,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11217:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"11207:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"functionReturnParameters":83086,"id":83090,"nodeType":"Return","src":"11200:26:168"}]},"baseFunctions":[73992],"functionSelector":"9eb939a8","implemented":true,"kind":"function","modifiers":[],"name":"timelines","nameLocation":"11134:9:168","parameters":{"id":83082,"nodeType":"ParameterList","parameters":[],"src":"11143:2:168"},"returnParameters":{"id":83086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83085,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83092,"src":"11167:21:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_memory_ptr","typeString":"struct Gear.Timelines"},"typeName":{"id":83084,"nodeType":"UserDefinedTypeName","pathNode":{"id":83083,"name":"Gear.Timelines","nameLocations":["11167:4:168","11172:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":85047,"src":"11167:14:168"},"referencedDeclaration":85047,"src":"11167:14:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage_ptr","typeString":"struct Gear.Timelines"}},"visibility":"internal"}],"src":"11166:23:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":83107,"nodeType":"FunctionDefinition","src":"11259:116:168","nodes":[],"body":{"id":83106,"nodeType":"Block","src":"11316:59:168","nodes":[],"statements":[{"expression":{"id":83104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83099,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"11326:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11326:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11336:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"11326:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83102,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11350:6:168","memberName":"mirror","nodeType":"MemberAccess","referencedDeclaration":84873,"src":"11326:30:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83103,"name":"newMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83094,"src":"11359:9:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11326:42:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83105,"nodeType":"ExpressionStatement","src":"11326:42:168"}]},"baseFunctions":[73997],"functionSelector":"3d43b418","implemented":true,"kind":"function","modifiers":[{"id":83097,"kind":"modifierInvocation","modifierName":{"id":83096,"name":"onlyOwner","nameLocations":["11306:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11306:9:168"},"nodeType":"ModifierInvocation","src":"11306:9:168"}],"name":"setMirror","nameLocation":"11268:9:168","parameters":{"id":83095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83094,"mutability":"mutable","name":"newMirror","nameLocation":"11286:9:168","nodeType":"VariableDeclaration","scope":83107,"src":"11278:17:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83093,"name":"address","nodeType":"ElementaryTypeName","src":"11278:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11277:19:168"},"returnParameters":{"id":83098,"nodeType":"ParameterList","parameters":[],"src":"11316:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83116,"nodeType":"FunctionDefinition","src":"11381:59:168","nodes":[],"body":{"id":83115,"nodeType":"Block","src":"11415:25:168","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83112,"name":"_pause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43157,"src":"11425:6:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":83113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11425:8:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83114,"nodeType":"ExpressionStatement","src":"11425:8:168"}]},"baseFunctions":[74000],"functionSelector":"8456cb59","implemented":true,"kind":"function","modifiers":[{"id":83110,"kind":"modifierInvocation","modifierName":{"id":83109,"name":"onlyOwner","nameLocations":["11405:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11405:9:168"},"nodeType":"ModifierInvocation","src":"11405:9:168"}],"name":"pause","nameLocation":"11390:5:168","parameters":{"id":83108,"nodeType":"ParameterList","parameters":[],"src":"11395:2:168"},"returnParameters":{"id":83111,"nodeType":"ParameterList","parameters":[],"src":"11415:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83125,"nodeType":"FunctionDefinition","src":"11446:63:168","nodes":[],"body":{"id":83124,"nodeType":"Block","src":"11482:27:168","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83121,"name":"_unpause","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43181,"src":"11492:8:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":83122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11492:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83123,"nodeType":"ExpressionStatement","src":"11492:10:168"}]},"baseFunctions":[74003],"functionSelector":"3f4ba83a","implemented":true,"kind":"function","modifiers":[{"id":83119,"kind":"modifierInvocation","modifierName":{"id":83118,"name":"onlyOwner","nameLocations":["11472:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"11472:9:168"},"nodeType":"ModifierInvocation","src":"11472:9:168"}],"name":"unpause","nameLocation":"11455:7:168","parameters":{"id":83117,"nodeType":"ParameterList","parameters":[],"src":"11462:2:168"},"returnParameters":{"id":83120,"nodeType":"ParameterList","parameters":[],"src":"11482:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83181,"nodeType":"FunctionDefinition","src":"11531:399:168","nodes":[],"body":{"id":83180,"nodeType":"Block","src":"11583:347:168","nodes":[],"statements":[{"assignments":[83132],"declarations":[{"constant":false,"id":83132,"mutability":"mutable","name":"router","nameLocation":"11609:6:168","nodeType":"VariableDeclaration","scope":83180,"src":"11593:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83131,"nodeType":"UserDefinedTypeName","pathNode":{"id":83130,"name":"Storage","nameLocations":["11593:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"11593:7:168"},"referencedDeclaration":73741,"src":"11593:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83135,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83133,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"11618:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11618:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"11593:34:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83137,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83132,"src":"11646:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11653:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11646:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11666:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"11646:24:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11682:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11674:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11674:7:168","typeDescriptions":{}}},"id":83143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11674:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11646:38:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83145,"name":"GenesisHashAlreadySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73797,"src":"11686:21:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11686:23:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11638:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11638:72:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83148,"nodeType":"ExpressionStatement","src":"11638:72:168"},{"assignments":[83150],"declarations":[{"constant":false,"id":83150,"mutability":"mutable","name":"genesisHash","nameLocation":"11729:11:168","nodeType":"VariableDeclaration","scope":83180,"src":"11721:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11721:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83156,"initialValue":{"arguments":[{"expression":{"expression":{"id":83152,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83132,"src":"11753:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11760:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11753:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11773:6:168","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":84982,"src":"11753:26:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":83151,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"11743:9:168","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11743:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11721:59:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83158,"name":"genesisHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83150,"src":"11799:11:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11822:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11814:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11814:7:168","typeDescriptions":{}}},"id":83162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11814:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11799:25:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83164,"name":"GenesisHashNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73799,"src":"11826:19:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11826:21:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83157,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"11791:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11791:57:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83167,"nodeType":"ExpressionStatement","src":"11791:57:168"},{"expression":{"id":83178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83168,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83132,"src":"11859:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11866:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11859:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11879:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"11859:24:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"expression":{"id":83174,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83132,"src":"11896:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83175,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11903:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"11896:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11916:6:168","memberName":"number","nodeType":"MemberAccess","referencedDeclaration":84982,"src":"11896:26:168","typeDescriptions":{"typeIdentifier":"t_uint32","typeString":"uint32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint32","typeString":"uint32"}],"id":83173,"name":"blockhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-5,"src":"11886:9:168","typeDescriptions":{"typeIdentifier":"t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11886:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11859:64:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83179,"nodeType":"ExpressionStatement","src":"11859:64:168"}]},"baseFunctions":[74006],"functionSelector":"8b1edf1e","implemented":true,"kind":"function","modifiers":[{"id":83128,"kind":"modifierInvocation","modifierName":{"id":83127,"name":"whenNotPaused","nameLocations":["11569:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"11569:13:168"},"nodeType":"ModifierInvocation","src":"11569:13:168"}],"name":"lookupGenesisHash","nameLocation":"11540:17:168","parameters":{"id":83126,"nodeType":"ParameterList","parameters":[],"src":"11557:2:168"},"returnParameters":{"id":83129,"nodeType":"ParameterList","parameters":[],"src":"11583:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83248,"nodeType":"FunctionDefinition","src":"11936:514:168","nodes":[],"body":{"id":83247,"nodeType":"Block","src":"12007:443:168","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"hexValue":"30","id":83190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12034:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83189,"name":"blobhash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-29,"src":"12025:8:168","typeDescriptions":{"typeIdentifier":"t_function_blobhash_view$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256) view returns (bytes32)"}},"id":83191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12025:11:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":83192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12040:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12025:16:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83194,"name":"BlobNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73801,"src":"12043:12:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12043:14:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83188,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12017:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12017:41:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83197,"nodeType":"ExpressionStatement","src":"12017:41:168"},{"assignments":[83200],"declarations":[{"constant":false,"id":83200,"mutability":"mutable","name":"router","nameLocation":"12085:6:168","nodeType":"VariableDeclaration","scope":83247,"src":"12069:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83199,"nodeType":"UserDefinedTypeName","pathNode":{"id":83198,"name":"Storage","nameLocations":["12069:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"12069:7:168"},"referencedDeclaration":73741,"src":"12069:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83203,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83201,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"12094:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12094:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"12069:34:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83205,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83200,"src":"12121:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12128:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"12121:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12141:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"12121:24:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12157:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12149:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12149:7:168","typeDescriptions":{}}},"id":83211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12149:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12121:38:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83213,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"12161:31:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12161:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12113:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12113:82:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83216,"nodeType":"ExpressionStatement","src":"12113:82:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"id":83226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83218,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83200,"src":"12214:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12221:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"12214:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83220,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12234:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"12214:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83222,"indexExpression":{"id":83221,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83183,"src":"12240:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12214:34:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83223,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"12252:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12257:9:168","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"12252:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":83225,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12267:7:168","memberName":"Unknown","nodeType":"MemberAccess","referencedDeclaration":84965,"src":"12252:22:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"12214:60:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83227,"name":"CodeAlreadyOnValidationOrValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73805,"src":"12276:34:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12276:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83217,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"12206:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12206:107:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83230,"nodeType":"ExpressionStatement","src":"12206:107:168"},{"expression":{"id":83241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83231,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83200,"src":"12324:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12331:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"12324:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12344:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"12324:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83237,"indexExpression":{"id":83234,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83183,"src":"12350:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12324:34:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83238,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"12361:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12366:9:168","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"12361:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":83240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12376:19:168","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":84966,"src":"12361:34:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"12324:71:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":83242,"nodeType":"ExpressionStatement","src":"12324:71:168"},{"eventCall":{"arguments":[{"id":83244,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83183,"src":"12435:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83243,"name":"CodeValidationRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73763,"src":"12411:23:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12411:32:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83246,"nodeType":"EmitStatement","src":"12406:37:168"}]},"baseFunctions":[74012],"functionSelector":"120e3f1e","implemented":true,"kind":"function","modifiers":[{"id":83186,"kind":"modifierInvocation","modifierName":{"id":83185,"name":"whenNotPaused","nameLocations":["11993:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"11993:13:168"},"nodeType":"ModifierInvocation","src":"11993:13:168"}],"name":"requestCodeValidation","nameLocation":"11945:21:168","parameters":{"id":83184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83183,"mutability":"mutable","name":"_codeId","nameLocation":"11975:7:168","nodeType":"VariableDeclaration","scope":83248,"src":"11967:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83182,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11967:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11966:17:168"},"returnParameters":{"id":83187,"nodeType":"ParameterList","parameters":[],"src":"12007:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83291,"nodeType":"FunctionDefinition","src":"12456:390:168","nodes":[],"body":{"id":83290,"nodeType":"Block","src":"12610:236:168","nodes":[],"statements":[{"assignments":[83262],"declarations":[{"constant":false,"id":83262,"mutability":"mutable","name":"mirror","nameLocation":"12628:6:168","nodeType":"VariableDeclaration","scope":83290,"src":"12620:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83261,"name":"address","nodeType":"ElementaryTypeName","src":"12620:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83268,"initialValue":{"arguments":[{"id":83264,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83250,"src":"12652:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83265,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83252,"src":"12661:5:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"74727565","id":83266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12668:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83263,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83607,"src":"12637:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bool) returns (address)"}},"id":83267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12637:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12620:53:168"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83273,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83254,"src":"12724:20:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12756:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83275,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12748:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83274,"name":"address","nodeType":"ElementaryTypeName","src":"12748:7:168","typeDescriptions":{}}},"id":83277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12748:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12724:34:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83281,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83254,"src":"12774:20:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12724:70:168","trueExpression":{"expression":{"id":83279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12761:3:168","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12765:6:168","memberName":"sender","nodeType":"MemberAccess","src":"12761:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83283,"name":"mirrorImpl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82694,"src":"12796:10:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":83284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12796:12:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"74727565","id":83285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12810:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":83270,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83262,"src":"12692:6:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83269,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"12684:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":83271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12684:15:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":83272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12713:10:168","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73649,"src":"12684:39:168","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool) external"}},"id":83286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12684:131:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83287,"nodeType":"ExpressionStatement","src":"12684:131:168"},{"expression":{"id":83288,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83262,"src":"12833:6:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83260,"id":83289,"nodeType":"Return","src":"12826:13:168"}]},"baseFunctions":[74024],"functionSelector":"3683c4d2","implemented":true,"kind":"function","modifiers":[{"id":83257,"kind":"modifierInvocation","modifierName":{"id":83256,"name":"whenNotPaused","nameLocations":["12566:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"12566:13:168"},"nodeType":"ModifierInvocation","src":"12566:13:168"}],"name":"createProgram","nameLocation":"12465:13:168","parameters":{"id":83255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83250,"mutability":"mutable","name":"_codeId","nameLocation":"12487:7:168","nodeType":"VariableDeclaration","scope":83291,"src":"12479:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12479:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83252,"mutability":"mutable","name":"_salt","nameLocation":"12504:5:168","nodeType":"VariableDeclaration","scope":83291,"src":"12496:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83251,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12496:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83254,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"12519:20:168","nodeType":"VariableDeclaration","scope":83291,"src":"12511:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83253,"name":"address","nodeType":"ElementaryTypeName","src":"12511:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12478:62:168"},"returnParameters":{"id":83260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83291,"src":"12597:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83258,"name":"address","nodeType":"ElementaryTypeName","src":"12597:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12596:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83335,"nodeType":"FunctionDefinition","src":"12852:442:168","nodes":[],"body":{"id":83334,"nodeType":"Block","src":"13055:239:168","nodes":[],"statements":[{"assignments":[83307],"declarations":[{"constant":false,"id":83307,"mutability":"mutable","name":"mirror","nameLocation":"13073:6:168","nodeType":"VariableDeclaration","scope":83334,"src":"13065:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83306,"name":"address","nodeType":"ElementaryTypeName","src":"13065:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83313,"initialValue":{"arguments":[{"id":83309,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83293,"src":"13097:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83310,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83295,"src":"13106:5:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"hexValue":"66616c7365","id":83311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13113:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83308,"name":"_createProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83607,"src":"13082:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$_t_bool_$returns$_t_address_$","typeString":"function (bytes32,bytes32,bool) returns (address)"}},"id":83312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13082:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13065:54:168"},{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83318,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83297,"src":"13170:20:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13202:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13194:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83319,"name":"address","nodeType":"ElementaryTypeName","src":"13194:7:168","typeDescriptions":{}}},"id":83322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13194:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13170:34:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":83326,"name":"_overrideInitializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83297,"src":"13220:20:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13170:70:168","trueExpression":{"expression":{"id":83324,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13207:3:168","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13211:6:168","memberName":"sender","nodeType":"MemberAccess","src":"13207:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83328,"name":"_abiInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83299,"src":"13242:13:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"66616c7365","id":83329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13257:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"arguments":[{"id":83315,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83307,"src":"13138:6:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83314,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"13130:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":83316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13130:15:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":83317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13159:10:168","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":73649,"src":"13130:39:168","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool) external"}},"id":83330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13130:133:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83331,"nodeType":"ExpressionStatement","src":"13130:133:168"},{"expression":{"id":83332,"name":"mirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83307,"src":"13281:6:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83305,"id":83333,"nodeType":"Return","src":"13274:13:168"}]},"baseFunctions":[74038],"functionSelector":"0c18d277","implemented":true,"kind":"function","modifiers":[{"id":83302,"kind":"modifierInvocation","modifierName":{"id":83301,"name":"whenNotPaused","nameLocations":["13023:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"13023:13:168"},"nodeType":"ModifierInvocation","src":"13023:13:168"}],"name":"createProgramWithAbiInterface","nameLocation":"12861:29:168","parameters":{"id":83300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83293,"mutability":"mutable","name":"_codeId","nameLocation":"12908:7:168","nodeType":"VariableDeclaration","scope":83335,"src":"12900:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83292,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12900:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83295,"mutability":"mutable","name":"_salt","nameLocation":"12933:5:168","nodeType":"VariableDeclaration","scope":83335,"src":"12925:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83294,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12925:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83297,"mutability":"mutable","name":"_overrideInitializer","nameLocation":"12956:20:168","nodeType":"VariableDeclaration","scope":83335,"src":"12948:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83296,"name":"address","nodeType":"ElementaryTypeName","src":"12948:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83299,"mutability":"mutable","name":"_abiInterface","nameLocation":"12994:13:168","nodeType":"VariableDeclaration","scope":83335,"src":"12986:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83298,"name":"address","nodeType":"ElementaryTypeName","src":"12986:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12890:123:168"},"returnParameters":{"id":83305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83304,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83335,"src":"13046:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83303,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13045:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83509,"nodeType":"FunctionDefinition","src":"13300:2208:168","nodes":[],"body":{"id":83508,"nodeType":"Block","src":"13476:2032:168","nodes":[],"statements":[{"assignments":[83351],"declarations":[{"constant":false,"id":83351,"mutability":"mutable","name":"router","nameLocation":"13502:6:168","nodeType":"VariableDeclaration","scope":83508,"src":"13486:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83350,"nodeType":"UserDefinedTypeName","pathNode":{"id":83349,"name":"Storage","nameLocations":["13486:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"13486:7:168"},"referencedDeclaration":73741,"src":"13486:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83354,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83352,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"13511:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13511:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"13486:34:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83356,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"13539:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13546:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"13539:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83358,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13559:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"13539:24:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13575:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13567:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83359,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13567:7:168","typeDescriptions":{}}},"id":83362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13567:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13539:38:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83364,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"13579:31:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13579:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83355,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13531:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13531:82:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83367,"nodeType":"ExpressionStatement","src":"13531:82:168"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83368,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"13777:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13784:8:168","memberName":"reserved","nodeType":"MemberAccess","referencedDeclaration":73712,"src":"13777:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13796:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13777:20:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83395,"nodeType":"IfStatement","src":"13773:233:168","trueBody":{"id":83394,"nodeType":"Block","src":"13799:207:168","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":83375,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"13845:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13852:9:168","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":84906,"src":"13845:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83377,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"13863:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13870:6:168","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":84915,"src":"13863:13:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"expression":{"id":83373,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"13821:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13826:18:168","memberName":"blockIsPredecessor","nodeType":"MemberAccess","referencedDeclaration":85366,"src":"13821:23:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_uint8_$returns$_t_bool_$","typeString":"function (bytes32,uint8) view returns (bool)"}},"id":83379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13821:56:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83380,"name":"PredecessorBlockNotFound","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73807,"src":"13879:24:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13879:26:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83372,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13813:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13813:93:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83383,"nodeType":"ExpressionStatement","src":"13813:93:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83385,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"13928:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":83386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13934:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"13928:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":83387,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"13946:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13953:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"13946:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"13928:39:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83390,"name":"BatchTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73809,"src":"13969:23:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13969:25:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"13920:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13920:75:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83393,"nodeType":"ExpressionStatement","src":"13920:75:168"}]}},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83397,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"14119:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14126:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14119:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14147:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84970,"src":"14119:32:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":83400,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14155:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14162:26:168","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":84912,"src":"14155:33:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"14119:69:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83403,"name":"InvalidPreviousCommittedBatchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73811,"src":"14190:33:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14190:35:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83396,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14098:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14098:137:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83406,"nodeType":"ExpressionStatement","src":"14098:137:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":83413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83408,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"14254:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14261:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"14254:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14282:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84972,"src":"14254:37:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":83411,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14295:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14302:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"14295:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"14254:62:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83414,"name":"BatchTimestampTooEarly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73813,"src":"14318:22:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14318:24:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83407,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"14246:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14246:97:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83417,"nodeType":"ExpressionStatement","src":"14246:97:168"},{"assignments":[83419],"declarations":[{"constant":false,"id":83419,"mutability":"mutable","name":"_chainCommitmentHash","nameLocation":"14362:20:168","nodeType":"VariableDeclaration","scope":83508,"src":"14354:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83418,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14354:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83424,"initialValue":{"arguments":[{"id":83421,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"14398:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83422,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14406:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83420,"name":"_commitChain","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83670,"src":"14385:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14385:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14354:59:168"},{"eventCall":{"arguments":[{"id":83426,"name":"COMMIT_BATCH_BEFORE_COMMIT_CODES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82310,"src":"14440:32:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83425,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82317,"src":"14429:10:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":83427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14429:44:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83428,"nodeType":"EmitStatement","src":"14424:49:168"},{"assignments":[83430],"declarations":[{"constant":false,"id":83430,"mutability":"mutable","name":"_codeCommitmentsHash","nameLocation":"14491:20:168","nodeType":"VariableDeclaration","scope":83508,"src":"14483:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14483:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83435,"initialValue":{"arguments":[{"id":83432,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"14527:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83433,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14535:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83431,"name":"_commitCodes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83812,"src":"14514:12:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14514:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14483:59:168"},{"eventCall":{"arguments":[{"id":83437,"name":"COMMIT_BATCH_AFTER_COMMIT_CODES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82313,"src":"14568:31:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83436,"name":"DebugEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82317,"src":"14557:10:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":83438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14557:43:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83439,"nodeType":"EmitStatement","src":"14552:48:168"},{"assignments":[83441],"declarations":[{"constant":false,"id":83441,"mutability":"mutable","name":"_rewardsCommitmentHash","nameLocation":"14619:22:168","nodeType":"VariableDeclaration","scope":83508,"src":"14611:30:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83440,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14611:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83446,"initialValue":{"arguments":[{"id":83443,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"14659:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83444,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14667:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83442,"name":"_commitRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83969,"src":"14644:14:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14644:30:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14611:63:168"},{"assignments":[83448],"declarations":[{"constant":false,"id":83448,"mutability":"mutable","name":"_validatorsCommitmentHash","nameLocation":"14692:25:168","nodeType":"VariableDeclaration","scope":83508,"src":"14684:33:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83447,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14684:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83453,"initialValue":{"arguments":[{"id":83450,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"14738:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83451,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14746:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}],"id":83449,"name":"_commitValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84115,"src":"14720:17:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_struct$_BatchCommitment_$84936_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.BatchCommitment calldata) returns (bytes32)"}},"id":83452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14720:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14684:69:168"},{"assignments":[83455],"declarations":[{"constant":false,"id":83455,"mutability":"mutable","name":"_batchHash","nameLocation":"14772:10:168","nodeType":"VariableDeclaration","scope":83508,"src":"14764:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14764:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83471,"initialValue":{"arguments":[{"expression":{"id":83458,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14823:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14830:9:168","memberName":"blockHash","nodeType":"MemberAccess","referencedDeclaration":84906,"src":"14823:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83460,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14853:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14860:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"14853:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},{"expression":{"id":83462,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14888:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14895:26:168","memberName":"previousCommittedBatchHash","nodeType":"MemberAccess","referencedDeclaration":84912,"src":"14888:33:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83464,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"14935:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14942:6:168","memberName":"expiry","nodeType":"MemberAccess","referencedDeclaration":84915,"src":"14935:13:168","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":83466,"name":"_chainCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83419,"src":"14962:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83467,"name":"_codeCommitmentsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83430,"src":"14996:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83468,"name":"_rewardsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83441,"src":"15030:22:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83469,"name":"_validatorsCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83448,"src":"15066:25:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83456,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"14785:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14790:19:168","memberName":"batchCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85214,"src":"14785:24:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint48_$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,uint48,bytes32,uint8,bytes32,bytes32,bytes32,bytes32) pure returns (bytes32)"}},"id":83470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14785:316:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"14764:337:168"},{"expression":{"id":83478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83472,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"15112:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15119:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"15112:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15140:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84970,"src":"15112:32:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83477,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"15147:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15112:45:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83479,"nodeType":"ExpressionStatement","src":"15112:45:168"},{"expression":{"id":83487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"expression":{"id":83480,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"15167:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15174:20:168","memberName":"latestCommittedBatch","nodeType":"MemberAccess","referencedDeclaration":73720,"src":"15167:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_CommittedBatchInfo_$84973_storage","typeString":"struct Gear.CommittedBatchInfo storage ref"}},"id":83484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15195:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84972,"src":"15167:37:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":83485,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"15207:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15214:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"15207:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"15167:61:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"id":83488,"nodeType":"ExpressionStatement","src":"15167:61:168"},{"eventCall":{"arguments":[{"id":83490,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"15259:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83489,"name":"BatchCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73746,"src":"15244:14:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15244:26:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83492,"nodeType":"EmitStatement","src":"15239:31:168"},{"expression":{"arguments":[{"arguments":[{"id":83496,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83351,"src":"15345:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"id":83497,"name":"TRANSIENT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82307,"src":"15353:17:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83498,"name":"_batchHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83455,"src":"15372:10:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83499,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83341,"src":"15384:14:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"}},{"id":83500,"name":"_signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83344,"src":"15400:11:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"}},{"expression":{"id":83501,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83338,"src":"15413:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15420:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"15413:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"},{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes calldata[] calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83494,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"15302:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15307:20:168","memberName":"validateSignaturesAt","nodeType":"MemberAccess","referencedDeclaration":85681,"src":"15302:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_bytes32_$_t_bytes32_$_t_enum$_SignatureType_$85100_$_t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr_$_t_uint256_$returns$_t_bool_$","typeString":"function (struct IRouter.Storage storage pointer,bytes32,bytes32,enum Gear.SignatureType,bytes calldata[] calldata,uint256) returns (bool)"}},"id":83503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15302:146:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83504,"name":"SignatureVerificationFailed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73815,"src":"15462:27:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15462:29:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83493,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15281:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15281:220:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83507,"nodeType":"ExpressionStatement","src":"15281:220:168"}]},"baseFunctions":[74051],"functionSelector":"b24fcac0","implemented":true,"kind":"function","modifiers":[{"id":83347,"kind":"modifierInvocation","modifierName":{"id":83346,"name":"nonReentrant","nameLocations":["13463:12:168"],"nodeType":"IdentifierPath","referencedDeclaration":43210,"src":"13463:12:168"},"nodeType":"ModifierInvocation","src":"13463:12:168"}],"name":"commitBatch","nameLocation":"13309:11:168","parameters":{"id":83345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83338,"mutability":"mutable","name":"_batch","nameLocation":"13360:6:168","nodeType":"VariableDeclaration","scope":83509,"src":"13330:36:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83337,"nodeType":"UserDefinedTypeName","pathNode":{"id":83336,"name":"Gear.BatchCommitment","nameLocations":["13330:4:168","13335:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"13330:20:168"},"referencedDeclaration":84936,"src":"13330:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"},{"constant":false,"id":83341,"mutability":"mutable","name":"_signatureType","nameLocation":"13395:14:168","nodeType":"VariableDeclaration","scope":83509,"src":"13376:33:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"},"typeName":{"id":83340,"nodeType":"UserDefinedTypeName","pathNode":{"id":83339,"name":"Gear.SignatureType","nameLocations":["13376:4:168","13381:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":85100,"src":"13376:18:168"},"referencedDeclaration":85100,"src":"13376:18:168","typeDescriptions":{"typeIdentifier":"t_enum$_SignatureType_$85100","typeString":"enum Gear.SignatureType"}},"visibility":"internal"},{"constant":false,"id":83344,"mutability":"mutable","name":"_signatures","nameLocation":"13436:11:168","nodeType":"VariableDeclaration","scope":83509,"src":"13419:28:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":83342,"name":"bytes","nodeType":"ElementaryTypeName","src":"13419:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":83343,"nodeType":"ArrayTypeName","src":"13419:7:168","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"13320:133:168"},"returnParameters":{"id":83348,"nodeType":"ParameterList","parameters":[],"src":"13476:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":83607,"nodeType":"FunctionDefinition","src":"15550:907:168","nodes":[],"body":{"id":83606,"nodeType":"Block","src":"15647:810:168","nodes":[],"statements":[{"assignments":[83522],"declarations":[{"constant":false,"id":83522,"mutability":"mutable","name":"router","nameLocation":"15673:6:168","nodeType":"VariableDeclaration","scope":83606,"src":"15657:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83521,"nodeType":"UserDefinedTypeName","pathNode":{"id":83520,"name":"Storage","nameLocations":["15657:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"15657:7:168"},"referencedDeclaration":73741,"src":"15657:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":83525,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":83523,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"15682:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":83524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15682:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"15657:34:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83527,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83522,"src":"15709:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15716:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"15709:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15729:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"15709:24:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15745:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":83531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15737:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15737:7:168","typeDescriptions":{}}},"id":83533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15737:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"15709:38:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83535,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"15749:31:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15749:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83526,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15701:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15701:82:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83538,"nodeType":"ExpressionStatement","src":"15701:82:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"id":83548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83540,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83522,"src":"15802:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15809:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"15802:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83542,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15822:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"15802:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83544,"indexExpression":{"id":83543,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83511,"src":"15828:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15802:34:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83545,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"15840:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15845:9:168","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"15840:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":83547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15855:9:168","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":84967,"src":"15840:24:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"15802:62:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83549,"name":"CodeNotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73817,"src":"15866:16:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15866:18:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83539,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"15794:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15794:91:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83552,"nodeType":"ExpressionStatement","src":"15794:91:168"},{"assignments":[83554],"declarations":[{"constant":false,"id":83554,"mutability":"mutable","name":"salt","nameLocation":"16054:4:168","nodeType":"VariableDeclaration","scope":83606,"src":"16046:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16046:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83560,"initialValue":{"arguments":[{"id":83557,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83511,"src":"16096:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83558,"name":"_salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83513,"src":"16105:5:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83555,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"16061:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":83556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16068:27:168","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40806,"src":"16061:34:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":83559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:50:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16046:65:168"},{"assignments":[83562],"declarations":[{"constant":false,"id":83562,"mutability":"mutable","name":"actorId","nameLocation":"16129:7:168","nodeType":"VariableDeclaration","scope":83606,"src":"16121:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83561,"name":"address","nodeType":"ElementaryTypeName","src":"16121:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83581,"initialValue":{"condition":{"id":83563,"name":"_isSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83515,"src":"16139:8:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":83576,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16262:4:168","typeDescriptions":{"typeIdentifier":"t_contract$_RouterWithInstrumentation_$84459","typeString":"contract RouterWithInstrumentation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RouterWithInstrumentation_$84459","typeString":"contract RouterWithInstrumentation"}],"id":83575,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16254:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83574,"name":"address","nodeType":"ElementaryTypeName","src":"16254:7:168","typeDescriptions":{}}},"id":83577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16254:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83578,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83554,"src":"16269:4:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83572,"name":"Clones","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84707,"src":"16228:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clones_$84707_$","typeString":"type(library Clones)"}},"id":83573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16235:18:168","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":84479,"src":"16228:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":83579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16228:46:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"16139:135:168","trueExpression":{"arguments":[{"arguments":[{"id":83568,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16201:4:168","typeDescriptions":{"typeIdentifier":"t_contract$_RouterWithInstrumentation_$84459","typeString":"contract RouterWithInstrumentation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RouterWithInstrumentation_$84459","typeString":"contract RouterWithInstrumentation"}],"id":83567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16193:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83566,"name":"address","nodeType":"ElementaryTypeName","src":"16193:7:168","typeDescriptions":{}}},"id":83569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16193:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83570,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83554,"src":"16208:4:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83564,"name":"ClonesSmall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84788,"src":"16162:11:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ClonesSmall_$84788_$","typeString":"type(library ClonesSmall)"}},"id":83565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16174:18:168","memberName":"cloneDeterministic","nodeType":"MemberAccess","referencedDeclaration":84727,"src":"16162:30:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_address_$","typeString":"function (address,bytes32) returns (address)"}},"id":83571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16162:51:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16121:153:168"},{"expression":{"id":83590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83582,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83522,"src":"16285:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83586,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16292:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"16285:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83587,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16305:8:168","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"16285:28:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":83588,"indexExpression":{"id":83585,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"16314:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16285:37:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83589,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83511,"src":"16325:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16285:47:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83591,"nodeType":"ExpressionStatement","src":"16285:47:168"},{"expression":{"id":83597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16342:35:168","subExpression":{"expression":{"expression":{"id":83592,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83522,"src":"16342:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16349:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"16342:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"16362:13:168","memberName":"programsCount","nodeType":"MemberAccess","referencedDeclaration":85010,"src":"16342:33:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83598,"nodeType":"ExpressionStatement","src":"16342:35:168"},{"eventCall":{"arguments":[{"id":83600,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"16408:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83601,"name":"_codeId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83511,"src":"16417:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83599,"name":"ProgramCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73782,"src":"16393:14:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":83602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16393:32:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83603,"nodeType":"EmitStatement","src":"16388:37:168"},{"expression":{"id":83604,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"16443:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":83519,"id":83605,"nodeType":"Return","src":"16436:14:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_createProgram","nameLocation":"15559:14:168","parameters":{"id":83516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83511,"mutability":"mutable","name":"_codeId","nameLocation":"15582:7:168","nodeType":"VariableDeclaration","scope":83607,"src":"15574:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15574:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83513,"mutability":"mutable","name":"_salt","nameLocation":"15599:5:168","nodeType":"VariableDeclaration","scope":83607,"src":"15591:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83512,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15591:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":83515,"mutability":"mutable","name":"_isSmall","nameLocation":"15611:8:168","nodeType":"VariableDeclaration","scope":83607,"src":"15606:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83514,"name":"bool","nodeType":"ElementaryTypeName","src":"15606:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15573:47:168"},"returnParameters":{"id":83519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83607,"src":"15638:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83517,"name":"address","nodeType":"ElementaryTypeName","src":"15638:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15637:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":83670,"nodeType":"FunctionDefinition","src":"16463:652:168","nodes":[],"body":{"id":83669,"nodeType":"Block","src":"16573:542:168","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83619,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83613,"src":"16591:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16598:15:168","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":84920,"src":"16591:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$84892_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":83621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16614:6:168","memberName":"length","nodeType":"MemberAccess","src":"16591:29:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":83622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16624:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"16591:34:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83624,"name":"TooManyChainCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73819,"src":"16627:23:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16627:25:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83618,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"16583:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16583:70:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83627,"nodeType":"ExpressionStatement","src":"16583:70:168"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83628,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83613,"src":"16668:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16675:15:168","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":84920,"src":"16668:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$84892_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":83630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16691:6:168","memberName":"length","nodeType":"MemberAccess","src":"16668:29:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16701:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16668:34:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83638,"nodeType":"IfStatement","src":"16664:146:168","trueBody":{"id":83637,"nodeType":"Block","src":"16704:106:168","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":83634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16796:2:168","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":83633,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"16786:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16786:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83617,"id":83636,"nodeType":"Return","src":"16779:20:168"}]}},{"assignments":[83643],"declarations":[{"constant":false,"id":83643,"mutability":"mutable","name":"_commitment","nameLocation":"16850:11:168","nodeType":"VariableDeclaration","scope":83669,"src":"16820:41:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment"},"typeName":{"id":83642,"nodeType":"UserDefinedTypeName","pathNode":{"id":83641,"name":"Gear.ChainCommitment","nameLocations":["16820:4:168","16825:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":84892,"src":"16820:20:168"},"referencedDeclaration":84892,"src":"16820:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_storage_ptr","typeString":"struct Gear.ChainCommitment"}},"visibility":"internal"}],"id":83648,"initialValue":{"baseExpression":{"expression":{"id":83644,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83613,"src":"16864:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16871:15:168","memberName":"chainCommitment","nodeType":"MemberAccess","referencedDeclaration":84920,"src":"16864:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ChainCommitment_$84892_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata[] calldata"}},"id":83647,"indexExpression":{"hexValue":"30","id":83646,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16887:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16864:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"16820:69:168"},{"assignments":[83650],"declarations":[{"constant":false,"id":83650,"mutability":"mutable","name":"_transitionsHash","nameLocation":"16908:16:168","nodeType":"VariableDeclaration","scope":83669,"src":"16900:24:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83649,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16900:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83656,"initialValue":{"arguments":[{"id":83652,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83610,"src":"16946:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83653,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83643,"src":"16954:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16966:11:168","memberName":"transitions","nodeType":"MemberAccess","referencedDeclaration":84888,"src":"16954:23:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}],"id":83651,"name":"_commitTransitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84235,"src":"16927:18:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Storage_$73741_storage_ptr_$_t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr_$returns$_t_bytes32_$","typeString":"function (struct IRouter.Storage storage pointer,struct Gear.StateTransition calldata[] calldata) returns (bytes32)"}},"id":83655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16927:51:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16900:78:168"},{"eventCall":{"arguments":[{"expression":{"id":83658,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83643,"src":"17013:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17025:4:168","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":84891,"src":"17013:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":83657,"name":"AnnouncesCommitted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73751,"src":"16994:18:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":83660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16994:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83661,"nodeType":"EmitStatement","src":"16989:41:168"},{"expression":{"arguments":[{"id":83664,"name":"_transitionsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83650,"src":"17073:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83665,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83643,"src":"17091:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ChainCommitment_$84892_calldata_ptr","typeString":"struct Gear.ChainCommitment calldata"}},"id":83666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17103:4:168","memberName":"head","nodeType":"MemberAccess","referencedDeclaration":84891,"src":"17091:16:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83662,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"17048:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17053:19:168","memberName":"chainCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85116,"src":"17048:24:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32) pure returns (bytes32)"}},"id":83667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17048:60:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83617,"id":83668,"nodeType":"Return","src":"17041:67:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitChain","nameLocation":"16472:12:168","parameters":{"id":83614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83610,"mutability":"mutable","name":"router","nameLocation":"16501:6:168","nodeType":"VariableDeclaration","scope":83670,"src":"16485:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83609,"nodeType":"UserDefinedTypeName","pathNode":{"id":83608,"name":"Storage","nameLocations":["16485:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"16485:7:168"},"referencedDeclaration":73741,"src":"16485:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83613,"mutability":"mutable","name":"_batch","nameLocation":"16539:6:168","nodeType":"VariableDeclaration","scope":83670,"src":"16509:36:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83612,"nodeType":"UserDefinedTypeName","pathNode":{"id":83611,"name":"Gear.BatchCommitment","nameLocations":["16509:4:168","16514:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"16509:20:168"},"referencedDeclaration":84936,"src":"16509:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"16484:62:168"},"returnParameters":{"id":83617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83616,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83670,"src":"16564:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16564:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"16563:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":83812,"nodeType":"FunctionDefinition","src":"17121:1402:168","nodes":[],"body":{"id":83811,"nodeType":"Block","src":"17231:1292:168","nodes":[],"statements":[{"assignments":[83682],"declarations":[{"constant":false,"id":83682,"mutability":"mutable","name":"codeCommitmentsLen","nameLocation":"17249:18:168","nodeType":"VariableDeclaration","scope":83811,"src":"17241:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83681,"name":"uint256","nodeType":"ElementaryTypeName","src":"17241:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83686,"initialValue":{"expression":{"expression":{"id":83683,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83676,"src":"17270:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17277:15:168","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":84925,"src":"17270:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$84883_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":83685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17293:6:168","memberName":"length","nodeType":"MemberAccess","src":"17270:29:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17241:58:168"},{"assignments":[83688],"declarations":[{"constant":false,"id":83688,"mutability":"mutable","name":"codeCommitmentsHashSize","nameLocation":"17317:23:168","nodeType":"VariableDeclaration","scope":83811,"src":"17309:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83687,"name":"uint256","nodeType":"ElementaryTypeName","src":"17309:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83692,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83689,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83682,"src":"17343:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":83690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17364:2:168","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"17343:23:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17309:57:168"},{"assignments":[83694],"declarations":[{"constant":false,"id":83694,"mutability":"mutable","name":"codeCommitmentsPtr","nameLocation":"17384:18:168","nodeType":"VariableDeclaration","scope":83811,"src":"17376:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83693,"name":"uint256","nodeType":"ElementaryTypeName","src":"17376:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83699,"initialValue":{"arguments":[{"id":83697,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"17421:23:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83695,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"17405:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":83696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17412:8:168","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"17405:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":83698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17405:40:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17376:69:168"},{"assignments":[83701],"declarations":[{"constant":false,"id":83701,"mutability":"mutable","name":"offset","nameLocation":"17463:6:168","nodeType":"VariableDeclaration","scope":83811,"src":"17455:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83700,"name":"uint256","nodeType":"ElementaryTypeName","src":"17455:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83703,"initialValue":{"hexValue":"30","id":83702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17472:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17455:18:168"},{"body":{"id":83802,"nodeType":"Block","src":"17533:884:168","statements":[{"assignments":[83718],"declarations":[{"constant":false,"id":83718,"mutability":"mutable","name":"_commitment","nameLocation":"17576:11:168","nodeType":"VariableDeclaration","scope":83802,"src":"17547:40:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment"},"typeName":{"id":83717,"nodeType":"UserDefinedTypeName","pathNode":{"id":83716,"name":"Gear.CodeCommitment","nameLocations":["17547:4:168","17552:14:168"],"nodeType":"IdentifierPath","referencedDeclaration":84883,"src":"17547:19:168"},"referencedDeclaration":84883,"src":"17547:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_storage_ptr","typeString":"struct Gear.CodeCommitment"}},"visibility":"internal"}],"id":83723,"initialValue":{"baseExpression":{"expression":{"id":83719,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83676,"src":"17590:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17597:15:168","memberName":"codeCommitments","nodeType":"MemberAccess","referencedDeclaration":84925,"src":"17590:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_CodeCommitment_$84883_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata[] calldata"}},"id":83722,"indexExpression":{"id":83721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83705,"src":"17613:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17590:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"17547:68:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"},"id":83734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":83725,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83673,"src":"17655:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17662:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17655:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17675:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"17655:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83730,"indexExpression":{"expression":{"id":83728,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"17681:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17693:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"17681:14:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17655:41:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":83731,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"17700:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17705:9:168","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"17700:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":83733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17715:19:168","memberName":"ValidationRequested","nodeType":"MemberAccess","referencedDeclaration":84966,"src":"17700:34:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"17655:79:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83735,"name":"CodeValidationNotRequested","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73821,"src":"17752:26:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17752:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83724,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"17630:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83737,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17630:164:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83738,"nodeType":"ExpressionStatement","src":"17630:164:168"},{"condition":{"expression":{"id":83739,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"17813:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17825:5:168","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":84882,"src":"17813:17:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83770,"nodeType":"Block","src":"17998:81:168","statements":[{"expression":{"id":83768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18016:48:168","subExpression":{"baseExpression":{"expression":{"expression":{"id":83762,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83673,"src":"18023:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18030:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"18023:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83764,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18043:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"18023:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83767,"indexExpression":{"expression":{"id":83765,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"18049:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18061:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"18049:14:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18023:41:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83769,"nodeType":"ExpressionStatement","src":"18016:48:168"}]},"id":83771,"nodeType":"IfStatement","src":"17809:270:168","trueBody":{"id":83761,"nodeType":"Block","src":"17832:160:168","statements":[{"expression":{"id":83752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"expression":{"id":83741,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83673,"src":"17850:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17857:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17850:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17870:5:168","memberName":"codes","nodeType":"MemberAccess","referencedDeclaration":85004,"src":"17850:25:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_enum$_CodeState_$84968_$","typeString":"mapping(bytes32 => enum Gear.CodeState)"}},"id":83748,"indexExpression":{"expression":{"id":83744,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"17876:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17888:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"17876:14:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17850:41:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":83749,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"17894:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17899:9:168","memberName":"CodeState","nodeType":"MemberAccess","referencedDeclaration":84968,"src":"17894:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CodeState_$84968_$","typeString":"type(enum Gear.CodeState)"}},"id":83751,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17909:9:168","memberName":"Validated","nodeType":"MemberAccess","referencedDeclaration":84967,"src":"17894:24:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"src":"17850:68:168","typeDescriptions":{"typeIdentifier":"t_enum$_CodeState_$84968","typeString":"enum Gear.CodeState"}},"id":83753,"nodeType":"ExpressionStatement","src":"17850:68:168"},{"expression":{"id":83759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17936:41:168","subExpression":{"expression":{"expression":{"id":83754,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83673,"src":"17936:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17943:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"17936:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":83758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17956:19:168","memberName":"validatedCodesCount","nodeType":"MemberAccess","referencedDeclaration":85012,"src":"17936:39:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83760,"nodeType":"ExpressionStatement","src":"17936:41:168"}]}},{"eventCall":{"arguments":[{"expression":{"id":83773,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"18115:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18127:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"18115:14:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83775,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"18131:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18143:5:168","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":84882,"src":"18131:17:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83772,"name":"CodeGotValidated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"18098:16:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":83777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18098:51:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83778,"nodeType":"EmitStatement","src":"18093:56:168"},{"assignments":[83780],"declarations":[{"constant":false,"id":83780,"mutability":"mutable","name":"codeCommitmentHash","nameLocation":"18172:18:168","nodeType":"VariableDeclaration","scope":83802,"src":"18164:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18164:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83788,"initialValue":{"arguments":[{"expression":{"id":83783,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"18217:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18229:2:168","memberName":"id","nodeType":"MemberAccess","referencedDeclaration":84880,"src":"18217:14:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83785,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83718,"src":"18233:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_CodeCommitment_$84883_calldata_ptr","typeString":"struct Gear.CodeCommitment calldata"}},"id":83786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18245:5:168","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":84882,"src":"18233:17:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":83781,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"18193:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18198:18:168","memberName":"codeCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85132,"src":"18193:23:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bool_$returns$_t_bytes32_$","typeString":"function (bytes32,bool) pure returns (bytes32)"}},"id":83787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18193:58:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18164:87:168"},{"expression":{"arguments":[{"id":83792,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83694,"src":"18291:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83793,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83701,"src":"18311:6:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83794,"name":"codeCommitmentHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83780,"src":"18319:18:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":83789,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"18265:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":83791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18272:18:168","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"18265:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":83795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18265:73:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83796,"nodeType":"ExpressionStatement","src":"18265:73:168"},{"id":83801,"nodeType":"UncheckedBlock","src":"18352:55:168","statements":[{"expression":{"id":83799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83797,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83701,"src":"18380:6:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":83798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18390:2:168","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"18380:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83800,"nodeType":"ExpressionStatement","src":"18380:12:168"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83708,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83705,"src":"17504:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83709,"name":"codeCommitmentsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83682,"src":"17508:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17504:22:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83803,"initializationExpression":{"assignments":[83705],"declarations":[{"constant":false,"id":83705,"mutability":"mutable","name":"i","nameLocation":"17497:1:168","nodeType":"VariableDeclaration","scope":83803,"src":"17489:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83704,"name":"uint256","nodeType":"ElementaryTypeName","src":"17489:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83707,"initialValue":{"hexValue":"30","id":83706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17501:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"17489:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":83712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17528:3:168","subExpression":{"id":83711,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83705,"src":"17528:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83713,"nodeType":"ExpressionStatement","src":"17528:3:168"},"nodeType":"ForStatement","src":"17484:933:168"},{"expression":{"arguments":[{"id":83806,"name":"codeCommitmentsPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83694,"src":"18469:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":83807,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18489:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":83808,"name":"codeCommitmentsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83688,"src":"18492:23:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":83804,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"18434:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":83805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18441:27:168","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"18434:34:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":83809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18434:82:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83680,"id":83810,"nodeType":"Return","src":"18427:89:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitCodes","nameLocation":"17130:12:168","parameters":{"id":83677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83673,"mutability":"mutable","name":"router","nameLocation":"17159:6:168","nodeType":"VariableDeclaration","scope":83812,"src":"17143:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83672,"nodeType":"UserDefinedTypeName","pathNode":{"id":83671,"name":"Storage","nameLocations":["17143:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"17143:7:168"},"referencedDeclaration":73741,"src":"17143:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83676,"mutability":"mutable","name":"_batch","nameLocation":"17197:6:168","nodeType":"VariableDeclaration","scope":83812,"src":"17167:36:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83675,"nodeType":"UserDefinedTypeName","pathNode":{"id":83674,"name":"Gear.BatchCommitment","nameLocations":["17167:4:168","17172:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"17167:20:168"},"referencedDeclaration":84936,"src":"17167:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"17142:62:168"},"returnParameters":{"id":83680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83679,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83812,"src":"17222:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17222:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17221:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":83969,"nodeType":"FunctionDefinition","src":"18565:1668:168","nodes":[],"body":{"id":83968,"nodeType":"Block","src":"18677:1556:168","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83824,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83818,"src":"18695:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18702:17:168","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":84930,"src":"18695:24:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$84945_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":83826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18720:6:168","memberName":"length","nodeType":"MemberAccess","src":"18695:31:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":83827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18730:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"18695:36:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83829,"name":"TooManyRewardsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73823,"src":"18733:25:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18733:27:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"18687:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18687:74:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83832,"nodeType":"ExpressionStatement","src":"18687:74:168"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83833,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83818,"src":"18776:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18783:17:168","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":84930,"src":"18776:24:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$84945_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":83835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18801:6:168","memberName":"length","nodeType":"MemberAccess","src":"18776:31:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18811:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18776:36:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83843,"nodeType":"IfStatement","src":"18772:148:168","trueBody":{"id":83842,"nodeType":"Block","src":"18814:106:168","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":83839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18906:2:168","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":83838,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18896:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18896:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83822,"id":83841,"nodeType":"Return","src":"18889:20:168"}]}},{"assignments":[83848],"declarations":[{"constant":false,"id":83848,"mutability":"mutable","name":"_commitment","nameLocation":"18962:11:168","nodeType":"VariableDeclaration","scope":83968,"src":"18930:43:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment"},"typeName":{"id":83847,"nodeType":"UserDefinedTypeName","pathNode":{"id":83846,"name":"Gear.RewardsCommitment","nameLocations":["18930:4:168","18935:17:168"],"nodeType":"IdentifierPath","referencedDeclaration":84945,"src":"18930:22:168"},"referencedDeclaration":84945,"src":"18930:22:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_storage_ptr","typeString":"struct Gear.RewardsCommitment"}},"visibility":"internal"}],"id":83853,"initialValue":{"baseExpression":{"expression":{"id":83849,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83818,"src":"18976:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18983:17:168","memberName":"rewardsCommitment","nodeType":"MemberAccess","referencedDeclaration":84930,"src":"18976:24:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_RewardsCommitment_$84945_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata[] calldata"}},"id":83852,"indexExpression":{"hexValue":"30","id":83851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19001:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18976:27:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"18930:73:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":83859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83855,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19022:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19034:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"19022:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":83857,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83818,"src":"19046:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19053:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"19046:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19022:45:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83860,"name":"RewardsCommitmentTimestampNotInPast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73825,"src":"19069:35:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19069:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83854,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19014:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19014:93:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83863,"nodeType":"ExpressionStatement","src":"19014:93:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint48","typeString":"uint48"},"id":83870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83865,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19125:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19137:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"19125:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"expression":{"id":83867,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83815,"src":"19150:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83868,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19157:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"19150:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":83869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19170:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"19150:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"19125:54:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83871,"name":"RewardsCommitmentPredatesGenesis","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73827,"src":"19181:32:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19181:34:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19117:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19117:99:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83874,"nodeType":"ExpressionStatement","src":"19117:99:168"},{"assignments":[83876],"declarations":[{"constant":false,"id":83876,"mutability":"mutable","name":"commitmentEraIndex","nameLocation":"19235:18:168","nodeType":"VariableDeclaration","scope":83968,"src":"19227:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83875,"name":"uint256","nodeType":"ElementaryTypeName","src":"19227:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83883,"initialValue":{"arguments":[{"id":83879,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83815,"src":"19272:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83880,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19280:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19292:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"19280:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83877,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"19256:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19261:10:168","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":85886,"src":"19256:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83882,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19256:46:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19227:75:168"},{"assignments":[83885],"declarations":[{"constant":false,"id":83885,"mutability":"mutable","name":"batchEraIndex","nameLocation":"19320:13:168","nodeType":"VariableDeclaration","scope":83968,"src":"19312:21:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83884,"name":"uint256","nodeType":"ElementaryTypeName","src":"19312:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83892,"initialValue":{"arguments":[{"id":83888,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83815,"src":"19352:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},{"expression":{"id":83889,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83818,"src":"19360:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19367:14:168","memberName":"blockTimestamp","nodeType":"MemberAccess","referencedDeclaration":84909,"src":"19360:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83886,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"19336:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19341:10:168","memberName":"eraIndexAt","nodeType":"MemberAccess","referencedDeclaration":85886,"src":"19336:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct IRouter.Storage storage pointer,uint256) view returns (uint256)"}},"id":83891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19336:46:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19312:70:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83894,"name":"commitmentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83876,"src":"19401:18:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83895,"name":"batchEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83885,"src":"19422:13:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19401:34:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83897,"name":"RewardsCommitmentEraNotPrevious","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73829,"src":"19437:31:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19437:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83893,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19393:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19393:78:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83900,"nodeType":"ExpressionStatement","src":"19393:78:168"},{"assignments":[83902],"declarations":[{"constant":false,"id":83902,"mutability":"mutable","name":"_middleware","nameLocation":"19490:11:168","nodeType":"VariableDeclaration","scope":83968,"src":"19482:19:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83901,"name":"address","nodeType":"ElementaryTypeName","src":"19482:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83906,"initialValue":{"expression":{"expression":{"id":83903,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83815,"src":"19504:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19511:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19504:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19525:10:168","memberName":"middleware","nodeType":"MemberAccess","referencedDeclaration":84877,"src":"19504:31:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"19482:53:168"},{"assignments":[83908],"declarations":[{"constant":false,"id":83908,"mutability":"mutable","name":"success","nameLocation":"19550:7:168","nodeType":"VariableDeclaration","scope":83968,"src":"19545:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":83907,"name":"bool","nodeType":"ElementaryTypeName","src":"19545:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":83924,"initialValue":{"arguments":[{"id":83915,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83902,"src":"19622:11:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83916,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19635:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19647:9:168","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":84939,"src":"19635:21:168","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$84950_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":83918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19657:6:168","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":84947,"src":"19635:28:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"expression":{"expression":{"id":83919,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19666:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19678:7:168","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":84942,"src":"19666:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},"id":83921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19686:11:168","memberName":"totalAmount","nodeType":"MemberAccess","referencedDeclaration":84956,"src":"19666:31:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19635:62:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"expression":{"expression":{"id":83910,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83815,"src":"19567:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19574:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19567:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83912,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19588:11:168","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":84875,"src":"19567:32:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83909,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46160,"src":"19560:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$46160_$","typeString":"type(contract IERC20)"}},"id":83913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19560:40:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$46160","typeString":"contract IERC20"}},"id":83914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19614:7:168","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":46147,"src":"19560:61:168","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":83923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19560:138:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"19545:153:168"},{"expression":{"arguments":[{"id":83926,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83908,"src":"19716:7:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83927,"name":"ApproveERC20Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73831,"src":"19725:18:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19725:20:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"19708:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:38:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83930,"nodeType":"ExpressionStatement","src":"19708:38:168"},{"assignments":[83932],"declarations":[{"constant":false,"id":83932,"mutability":"mutable","name":"_operatorRewardsHash","nameLocation":"19765:20:168","nodeType":"VariableDeclaration","scope":83968,"src":"19757:28:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83931,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19757:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83947,"initialValue":{"arguments":[{"expression":{"expression":{"id":83937,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83815,"src":"19869:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":83938,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19876:13:168","memberName":"implAddresses","nodeType":"MemberAccess","referencedDeclaration":73724,"src":"19869:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_AddressBook_$84878_storage","typeString":"struct Gear.AddressBook storage ref"}},"id":83939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19890:11:168","memberName":"wrappedVara","nodeType":"MemberAccess","referencedDeclaration":84875,"src":"19869:32:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":83940,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19903:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19915:9:168","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":84939,"src":"19903:21:168","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$84950_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":83942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19925:6:168","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":84947,"src":"19903:28:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"expression":{"id":83943,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"19933:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19945:9:168","memberName":"operators","nodeType":"MemberAccess","referencedDeclaration":84939,"src":"19933:21:168","typeDescriptions":{"typeIdentifier":"t_struct$_OperatorRewardsCommitment_$84950_calldata_ptr","typeString":"struct Gear.OperatorRewardsCommitment calldata"}},"id":83945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19955:4:168","memberName":"root","nodeType":"MemberAccess","referencedDeclaration":84949,"src":"19933:26:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"arguments":[{"id":83934,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83902,"src":"19800:11:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83933,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"19788:11:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$73432_$","typeString":"type(contract IMiddleware)"}},"id":83935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19788:24:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$73432","typeString":"contract IMiddleware"}},"id":83936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19826:25:168","memberName":"distributeOperatorRewards","nodeType":"MemberAccess","referencedDeclaration":73420,"src":"19788:63:168","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (address,uint256,bytes32) external returns (bytes32)"}},"id":83946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19788:185:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19757:216:168"},{"assignments":[83949],"declarations":[{"constant":false,"id":83949,"mutability":"mutable","name":"_stakerRewardsHash","nameLocation":"19992:18:168","nodeType":"VariableDeclaration","scope":83968,"src":"19984:26:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19984:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":83959,"initialValue":{"arguments":[{"expression":{"id":83954,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"20074:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20086:7:168","memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":84942,"src":"20074:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"}},{"expression":{"id":83956,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"20095:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20107:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"20095:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StakerRewardsCommitment_$84959_calldata_ptr","typeString":"struct Gear.StakerRewardsCommitment calldata"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"arguments":[{"id":83951,"name":"_middleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83902,"src":"20037:11:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83950,"name":"IMiddleware","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73432,"src":"20025:11:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMiddleware_$73432_$","typeString":"type(contract IMiddleware)"}},"id":83952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20025:24:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMiddleware_$73432","typeString":"contract IMiddleware"}},"id":83953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20050:23:168","memberName":"distributeStakerRewards","nodeType":"MemberAccess","referencedDeclaration":73431,"src":"20025:48:168","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_StakerRewardsCommitment_$84959_memory_ptr_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (struct Gear.StakerRewardsCommitment memory,uint48) external returns (bytes32)"}},"id":83958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20025:92:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"19984:133:168"},{"expression":{"arguments":[{"id":83962,"name":"_operatorRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83932,"src":"20162:20:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":83963,"name":"_stakerRewardsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83949,"src":"20184:18:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":83964,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83848,"src":"20204:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_RewardsCommitment_$84945_calldata_ptr","typeString":"struct Gear.RewardsCommitment calldata"}},"id":83965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20216:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84944,"src":"20204:21:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint48","typeString":"uint48"}],"expression":{"id":83960,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"20135:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":83961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20140:21:168","memberName":"rewardsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85153,"src":"20135:26:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_uint48_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,uint48) pure returns (bytes32)"}},"id":83966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20135:91:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83822,"id":83967,"nodeType":"Return","src":"20128:98:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitRewards","nameLocation":"18574:14:168","parameters":{"id":83819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83815,"mutability":"mutable","name":"router","nameLocation":"18605:6:168","nodeType":"VariableDeclaration","scope":83969,"src":"18589:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83814,"nodeType":"UserDefinedTypeName","pathNode":{"id":83813,"name":"Storage","nameLocations":["18589:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"18589:7:168"},"referencedDeclaration":73741,"src":"18589:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83818,"mutability":"mutable","name":"_batch","nameLocation":"18643:6:168","nodeType":"VariableDeclaration","scope":83969,"src":"18613:36:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83817,"nodeType":"UserDefinedTypeName","pathNode":{"id":83816,"name":"Gear.BatchCommitment","nameLocations":["18613:4:168","18618:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"18613:20:168"},"referencedDeclaration":84936,"src":"18613:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"18588:62:168"},"returnParameters":{"id":83822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83969,"src":"18668:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18668:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"18667:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84115,"nodeType":"FunctionDefinition","src":"20285:1520:168","nodes":[],"body":{"id":84114,"nodeType":"Block","src":"20400:1405:168","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83982,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83976,"src":"20418:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20425:20:168","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":84935,"src":"20418:27:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$84903_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":83984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20446:6:168","memberName":"length","nodeType":"MemberAccess","src":"20418:34:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"31","id":83985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20456:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20418:39:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83987,"name":"TooManyValidatorsCommitments","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73833,"src":"20459:28:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":83988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20459:30:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":83981,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20410:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":83989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20410:80:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83990,"nodeType":"ExpressionStatement","src":"20410:80:168"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":83991,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83976,"src":"20505:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":83992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20512:20:168","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":84935,"src":"20505:27:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$84903_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":83993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20533:6:168","memberName":"length","nodeType":"MemberAccess","src":"20505:34:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20543:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20505:39:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84001,"nodeType":"IfStatement","src":"20501:151:168","trueBody":{"id":84000,"nodeType":"Block","src":"20546:106:168","statements":[{"documentation":"forge-lint: disable-next-line(asm-keccak256)","expression":{"arguments":[{"hexValue":"","id":83997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20638:2:168","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"id":83996,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"20628:9:168","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":83998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20628:13:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83980,"id":83999,"nodeType":"Return","src":"20621:20:168"}]}},{"assignments":[84006],"declarations":[{"constant":false,"id":84006,"mutability":"mutable","name":"_commitment","nameLocation":"20697:11:168","nodeType":"VariableDeclaration","scope":84114,"src":"20662:46:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment"},"typeName":{"id":84005,"nodeType":"UserDefinedTypeName","pathNode":{"id":84004,"name":"Gear.ValidatorsCommitment","nameLocations":["20662:4:168","20667:20:168"],"nodeType":"IdentifierPath","referencedDeclaration":84903,"src":"20662:25:168"},"referencedDeclaration":84903,"src":"20662:25:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_storage_ptr","typeString":"struct Gear.ValidatorsCommitment"}},"visibility":"internal"}],"id":84011,"initialValue":{"baseExpression":{"expression":{"id":84007,"name":"_batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83976,"src":"20711:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment calldata"}},"id":84008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20718:20:168","memberName":"validatorsCommitment","nodeType":"MemberAccess","referencedDeclaration":84935,"src":"20711:27:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ValidatorsCommitment_$84903_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata[] calldata"}},"id":84010,"indexExpression":{"hexValue":"30","id":84009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20739:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20711:30:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"nodeType":"VariableDeclarationStatement","src":"20662:79:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84013,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"20760:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20772:10:168","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":84900,"src":"20760:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":84015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20783:6:168","memberName":"length","nodeType":"MemberAccess","src":"20760:29:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20792:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20760:33:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84018,"name":"EmptyValidatorsList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73835,"src":"20795:19:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20795:21:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84012,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20752:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20752:65:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84021,"nodeType":"ExpressionStatement","src":"20752:65:168"},{"assignments":[84023],"declarations":[{"constant":false,"id":84023,"mutability":"mutable","name":"currentEraIndex","nameLocation":"20836:15:168","nodeType":"VariableDeclaration","scope":84114,"src":"20828:23:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84022,"name":"uint256","nodeType":"ElementaryTypeName","src":"20828:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84035,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84024,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"20855:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20861:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"20855:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84026,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"20873:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20880:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"20873:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20893:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"20873:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"src":"20855:47:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":84030,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20854:49:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":84031,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"20906:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20913:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"20906:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20923:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85042,"src":"20906:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20854:72:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20828:98:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84037,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"20945:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20957:8:168","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":84902,"src":"20945:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84039,"name":"currentEraIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84023,"src":"20969:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":84040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20987:1:168","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"20969:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20945:43:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84043,"name":"CommitmentEraNotNext","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73837,"src":"20990:20:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20990:22:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84036,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"20937:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20937:76:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84046,"nodeType":"ExpressionStatement","src":"20937:76:168"},{"assignments":[84048],"declarations":[{"constant":false,"id":84048,"mutability":"mutable","name":"nextEraStart","nameLocation":"21032:12:168","nodeType":"VariableDeclaration","scope":84114,"src":"21024:20:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84047,"name":"uint256","nodeType":"ElementaryTypeName","src":"21024:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84059,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84049,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"21047:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84050,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21054:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"21047:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21067:9:168","memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":84984,"src":"21047:29:168","typeDescriptions":{"typeIdentifier":"t_uint48","typeString":"uint48"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84052,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"21079:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21086:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"21079:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21096:3:168","memberName":"era","nodeType":"MemberAccess","referencedDeclaration":85042,"src":"21079:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":84055,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"21102:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21114:8:168","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":84902,"src":"21102:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21079:43:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21047:75:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21024:98:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84061,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21140:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21146:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"21140:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84063,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84048,"src":"21159:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"expression":{"id":84064,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"21174:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21181:9:168","memberName":"timelines","nodeType":"MemberAccess","referencedDeclaration":73736,"src":"21174:16:168","typeDescriptions":{"typeIdentifier":"t_struct$_Timelines_$85047_storage","typeString":"struct Gear.Timelines storage ref"}},"id":84066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21191:8:168","memberName":"election","nodeType":"MemberAccess","referencedDeclaration":85044,"src":"21174:25:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21159:40:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21140:59:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84069,"name":"ElectionNotStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73839,"src":"21201:18:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21201:20:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84060,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21132:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21132:90:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84072,"nodeType":"ExpressionStatement","src":"21132:90:168"},{"assignments":[84077],"declarations":[{"constant":false,"id":84077,"mutability":"mutable","name":"_validators","nameLocation":"21304:11:168","nodeType":"VariableDeclaration","scope":84114,"src":"21280:35:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84076,"nodeType":"UserDefinedTypeName","pathNode":{"id":84075,"name":"Gear.Validators","nameLocations":["21280:4:168","21285:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":84860,"src":"21280:15:168"},"referencedDeclaration":84860,"src":"21280:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"}],"id":84082,"initialValue":{"arguments":[{"id":84080,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83973,"src":"21345:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}],"expression":{"id":84078,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"21318:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":84079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21323:21:168","memberName":"previousEraValidators","nodeType":"MemberAccess","referencedDeclaration":85724,"src":"21318:26:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Storage_$73741_storage_ptr_$returns$_t_struct$_Validators_$84860_storage_ptr_$","typeString":"function (struct IRouter.Storage storage pointer) view returns (struct Gear.Validators storage pointer)"}},"id":84081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21318:34:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"21280:72:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84084,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84077,"src":"21370:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21382:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":84859,"src":"21370:28:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84086,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"21401:5:168","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":84087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21407:9:168","memberName":"timestamp","nodeType":"MemberAccess","src":"21401:15:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21370:46:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84089,"name":"ValidatorsAlreadyScheduled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73841,"src":"21418:26:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21418:28:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84083,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"21362:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84091,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21362:85:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84092,"nodeType":"ExpressionStatement","src":"21362:85:168"},{"expression":{"arguments":[{"id":84094,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84077,"src":"21488:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},{"expression":{"id":84095,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"21513:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21525:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84895,"src":"21513:31:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"}},{"expression":{"id":84097,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"21558:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21570:33:168","memberName":"verifiableSecretSharingCommitment","nodeType":"MemberAccess","referencedDeclaration":84897,"src":"21558:45:168","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"expression":{"id":84099,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"21617:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21629:10:168","memberName":"validators","nodeType":"MemberAccess","referencedDeclaration":84900,"src":"21617:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":84101,"name":"nextEraStart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84048,"src":"21653:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"},{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_calldata_ptr","typeString":"struct Gear.AggregatedPublicKey calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84093,"name":"_resetValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84347,"src":"21458:16:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Validators_$84860_storage_ptr_$_t_struct$_AggregatedPublicKey_$84845_memory_ptr_$_t_bytes_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Gear.Validators storage pointer,struct Gear.AggregatedPublicKey memory,bytes memory,address[] memory,uint256)"}},"id":84102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21458:217:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84103,"nodeType":"ExpressionStatement","src":"21458:217:168"},{"eventCall":{"arguments":[{"expression":{"id":84105,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"21717:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}},"id":84106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21729:8:168","memberName":"eraIndex","nodeType":"MemberAccess","referencedDeclaration":84902,"src":"21717:20:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84104,"name":"ValidatorsCommittedForEra","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73768,"src":"21691:25:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":84107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21691:47:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84108,"nodeType":"EmitStatement","src":"21686:52:168"},{"expression":{"arguments":[{"id":84111,"name":"_commitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84006,"src":"21786:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_ValidatorsCommitment_$84903_calldata_ptr","typeString":"struct Gear.ValidatorsCommitment calldata"}],"expression":{"id":84109,"name":"Gear","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85973,"src":"21756:4:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Gear_$85973_$","typeString":"type(library Gear)"}},"id":84110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21761:24:168","memberName":"validatorsCommitmentHash","nodeType":"MemberAccess","referencedDeclaration":85178,"src":"21756:29:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_ValidatorsCommitment_$84903_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.ValidatorsCommitment memory) pure returns (bytes32)"}},"id":84112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21756:42:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83980,"id":84113,"nodeType":"Return","src":"21749:49:168"}]},"documentation":{"id":83970,"nodeType":"StructuredDocumentation","src":"20239:41:168","text":"@dev Set validators for the next era."},"implemented":true,"kind":"function","modifiers":[],"name":"_commitValidators","nameLocation":"20294:17:168","parameters":{"id":83977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83973,"mutability":"mutable","name":"router","nameLocation":"20328:6:168","nodeType":"VariableDeclaration","scope":84115,"src":"20312:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":83972,"nodeType":"UserDefinedTypeName","pathNode":{"id":83971,"name":"Storage","nameLocations":["20312:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"20312:7:168"},"referencedDeclaration":73741,"src":"20312:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":83976,"mutability":"mutable","name":"_batch","nameLocation":"20366:6:168","nodeType":"VariableDeclaration","scope":84115,"src":"20336:36:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_calldata_ptr","typeString":"struct Gear.BatchCommitment"},"typeName":{"id":83975,"nodeType":"UserDefinedTypeName","pathNode":{"id":83974,"name":"Gear.BatchCommitment","nameLocations":["20336:4:168","20341:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":84936,"src":"20336:20:168"},"referencedDeclaration":84936,"src":"20336:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_BatchCommitment_$84936_storage_ptr","typeString":"struct Gear.BatchCommitment"}},"visibility":"internal"}],"src":"20311:62:168"},"returnParameters":{"id":83980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83979,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84115,"src":"20391:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20391:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"20390:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84235,"nodeType":"FunctionDefinition","src":"21811:1168:168","nodes":[],"body":{"id":84234,"nodeType":"Block","src":"21955:1024:168","nodes":[],"statements":[{"assignments":[84128],"declarations":[{"constant":false,"id":84128,"mutability":"mutable","name":"transitionsLen","nameLocation":"21973:14:168","nodeType":"VariableDeclaration","scope":84234,"src":"21965:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84127,"name":"uint256","nodeType":"ElementaryTypeName","src":"21965:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84131,"initialValue":{"expression":{"id":84129,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84122,"src":"21990:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":84130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22003:6:168","memberName":"length","nodeType":"MemberAccess","src":"21990:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21965:44:168"},{"assignments":[84133],"declarations":[{"constant":false,"id":84133,"mutability":"mutable","name":"transitionsHashSize","nameLocation":"22027:19:168","nodeType":"VariableDeclaration","scope":84234,"src":"22019:27:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84132,"name":"uint256","nodeType":"ElementaryTypeName","src":"22019:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84137,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84134,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84128,"src":"22049:14:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"3332","id":84135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22066:2:168","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22049:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22019:49:168"},{"assignments":[84139],"declarations":[{"constant":false,"id":84139,"mutability":"mutable","name":"transitionsHashesMemPtr","nameLocation":"22086:23:168","nodeType":"VariableDeclaration","scope":84234,"src":"22078:31:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84138,"name":"uint256","nodeType":"ElementaryTypeName","src":"22078:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84144,"initialValue":{"arguments":[{"id":84142,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84133,"src":"22128:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84140,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"22112:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":84141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22119:8:168","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":40486,"src":"22112:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":84143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22112:36:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22078:70:168"},{"assignments":[84146],"declarations":[{"constant":false,"id":84146,"mutability":"mutable","name":"offset","nameLocation":"22166:6:168","nodeType":"VariableDeclaration","scope":84234,"src":"22158:14:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84145,"name":"uint256","nodeType":"ElementaryTypeName","src":"22158:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84148,"initialValue":{"hexValue":"30","id":84147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22175:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22158:18:168"},{"body":{"id":84225,"nodeType":"Block","src":"22232:640:168","statements":[{"assignments":[84163],"declarations":[{"constant":false,"id":84163,"mutability":"mutable","name":"transition","nameLocation":"22276:10:168","nodeType":"VariableDeclaration","scope":84225,"src":"22246:40:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition"},"typeName":{"id":84162,"nodeType":"UserDefinedTypeName","pathNode":{"id":84161,"name":"Gear.StateTransition","nameLocations":["22246:4:168","22251:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":85040,"src":"22246:20:168"},"referencedDeclaration":85040,"src":"22246:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_storage_ptr","typeString":"struct Gear.StateTransition"}},"visibility":"internal"}],"id":84167,"initialValue":{"baseExpression":{"id":84164,"name":"_transitions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84122,"src":"22289:12:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition calldata[] calldata"}},"id":84166,"indexExpression":{"id":84165,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84150,"src":"22302:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22289:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"nodeType":"VariableDeclarationStatement","src":"22246:58:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84169,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84118,"src":"22327:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84170,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22334:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"22327:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22347:8:168","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"22327:28:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":84174,"indexExpression":{"expression":{"id":84172,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"22356:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22367:7:168","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"22356:18:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22327:48:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":84175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22379:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22327:53:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84177,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73843,"src":"22382:14:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22382:16:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84168,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"22319:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22319:80:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84180,"nodeType":"ExpressionStatement","src":"22319:80:168"},{"assignments":[84182],"declarations":[{"constant":false,"id":84182,"mutability":"mutable","name":"value","nameLocation":"22422:5:168","nodeType":"VariableDeclaration","scope":84225,"src":"22414:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84181,"name":"uint128","nodeType":"ElementaryTypeName","src":"22414:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":84184,"initialValue":{"hexValue":"30","id":84183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22430:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22414:17:168"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":84192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":84188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":84185,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"22450:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22461:14:168","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"22450:25:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":84187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22479:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"22450:30:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":84191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22484:38:168","subExpression":{"expression":{"id":84189,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"22485:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22496:26:168","memberName":"valueToReceiveNegativeSign","nodeType":"MemberAccess","referencedDeclaration":85031,"src":"22485:37:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"22450:72:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84199,"nodeType":"IfStatement","src":"22446:144:168","trueBody":{"id":84198,"nodeType":"Block","src":"22524:66:168","statements":[{"expression":{"id":84196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84193,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84182,"src":"22542:5:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":84194,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"22550:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22561:14:168","memberName":"valueToReceive","nodeType":"MemberAccess","referencedDeclaration":85029,"src":"22550:25:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"22542:33:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":84197,"nodeType":"ExpressionStatement","src":"22542:33:168"}]}},{"assignments":[84201],"declarations":[{"constant":false,"id":84201,"mutability":"mutable","name":"transitionHash","nameLocation":"22612:14:168","nodeType":"VariableDeclaration","scope":84225,"src":"22604:22:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22604:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84211,"initialValue":{"arguments":[{"id":84209,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"22694:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}],"expression":{"arguments":[{"expression":{"id":84203,"name":"transition","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84163,"src":"22637:10:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_calldata_ptr","typeString":"struct Gear.StateTransition calldata"}},"id":84204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22648:7:168","memberName":"actorId","nodeType":"MemberAccess","referencedDeclaration":85020,"src":"22637:18:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84202,"name":"IMirror","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"22629:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IMirror_$73658_$","typeString":"type(contract IMirror)"}},"id":84205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22629:27:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IMirror_$73658","typeString":"contract IMirror"}},"id":84206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22657:22:168","memberName":"performStateTransition","nodeType":"MemberAccess","referencedDeclaration":73657,"src":"22629:50:168","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$85040_memory_ptr_$returns$_t_bytes32_$","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":84208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"id":84207,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84182,"src":"22687:5:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}}],"src":"22629:64:168","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_struct$_StateTransition_$85040_memory_ptr_$returns$_t_bytes32_$value","typeString":"function (struct Gear.StateTransition memory) payable external returns (bytes32)"}},"id":84210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22629:76:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"22604:101:168"},{"expression":{"arguments":[{"id":84215,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84139,"src":"22745:23:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84216,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84146,"src":"22770:6:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":84217,"name":"transitionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84201,"src":"22778:14:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84212,"name":"Memory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40581,"src":"22719:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Memory_$40581_$","typeString":"type(library Memory)"}},"id":84214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22726:18:168","memberName":"writeWordAsBytes32","nodeType":"MemberAccess","referencedDeclaration":40556,"src":"22719:25:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (uint256,uint256,bytes32) pure"}},"id":84218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22719:74:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84219,"nodeType":"ExpressionStatement","src":"22719:74:168"},{"id":84224,"nodeType":"UncheckedBlock","src":"22807:55:168","statements":[{"expression":{"id":84222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":84220,"name":"offset","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84146,"src":"22835:6:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":84221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22845:2:168","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"22835:12:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84223,"nodeType":"ExpressionStatement","src":"22835:12:168"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84153,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84150,"src":"22207:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":84154,"name":"transitionsLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84128,"src":"22211:14:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22207:18:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84226,"initializationExpression":{"assignments":[84150],"declarations":[{"constant":false,"id":84150,"mutability":"mutable","name":"i","nameLocation":"22200:1:168","nodeType":"VariableDeclaration","scope":84226,"src":"22192:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84149,"name":"uint256","nodeType":"ElementaryTypeName","src":"22192:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84152,"initialValue":{"hexValue":"30","id":84151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22204:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22192:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22227:3:168","subExpression":{"id":84156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84150,"src":"22227:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84158,"nodeType":"ExpressionStatement","src":"22227:3:168"},"nodeType":"ForStatement","src":"22187:685:168"},{"expression":{"arguments":[{"id":84229,"name":"transitionsHashesMemPtr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84139,"src":"22924:23:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":84230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22949:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":84231,"name":"transitionsHashSize","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84133,"src":"22952:19:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84227,"name":"Hashes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40807,"src":"22889:6:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Hashes_$40807_$","typeString":"type(library Hashes)"}},"id":84228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22896:27:168","memberName":"efficientKeccak256AsBytes32","nodeType":"MemberAccess","referencedDeclaration":40762,"src":"22889:34:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,uint256) pure returns (bytes32)"}},"id":84232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22889:83:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84126,"id":84233,"nodeType":"Return","src":"22882:90:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_commitTransitions","nameLocation":"21820:18:168","parameters":{"id":84123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84118,"mutability":"mutable","name":"router","nameLocation":"21855:6:168","nodeType":"VariableDeclaration","scope":84235,"src":"21839:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84117,"nodeType":"UserDefinedTypeName","pathNode":{"id":84116,"name":"Storage","nameLocations":["21839:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"21839:7:168"},"referencedDeclaration":73741,"src":"21839:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"},{"constant":false,"id":84122,"mutability":"mutable","name":"_transitions","nameLocation":"21895:12:168","nodeType":"VariableDeclaration","scope":84235,"src":"21863:44:168","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_calldata_ptr_$dyn_calldata_ptr","typeString":"struct Gear.StateTransition[]"},"typeName":{"baseType":{"id":84120,"nodeType":"UserDefinedTypeName","pathNode":{"id":84119,"name":"Gear.StateTransition","nameLocations":["21863:4:168","21868:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":85040,"src":"21863:20:168"},"referencedDeclaration":85040,"src":"21863:20:168","typeDescriptions":{"typeIdentifier":"t_struct$_StateTransition_$85040_storage_ptr","typeString":"struct Gear.StateTransition"}},"id":84121,"nodeType":"ArrayTypeName","src":"21863:22:168","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_StateTransition_$85040_storage_$dyn_storage_ptr","typeString":"struct Gear.StateTransition[]"}},"visibility":"internal"}],"src":"21838:70:168"},"returnParameters":{"id":84126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84235,"src":"21942:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84124,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21942:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"21941:9:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84347,"nodeType":"FunctionDefinition","src":"22985:1421:168","nodes":[],"body":{"id":84346,"nodeType":"Block","src":"23268:1138:168","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":84254,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84241,"src":"23658:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":84255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23682:1:168","memberName":"x","nodeType":"MemberAccess","referencedDeclaration":84842,"src":"23658:25:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":84256,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84241,"src":"23685:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"id":84257,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23709:1:168","memberName":"y","nodeType":"MemberAccess","referencedDeclaration":84844,"src":"23685:25:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":84252,"name":"FROST","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40289,"src":"23635:5:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FROST_$40289_$","typeString":"type(library FROST)"}},"id":84253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23641:16:168","memberName":"isValidPublicKey","nodeType":"MemberAccess","referencedDeclaration":39958,"src":"23635:22:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256,uint256) pure returns (bool)"}},"id":84258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23635:76:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84259,"name":"InvalidFROSTAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73845,"src":"23725:31:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23725:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"23614:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23614:154:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84262,"nodeType":"ExpressionStatement","src":"23614:154:168"},{"expression":{"id":84267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84263,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"23778:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23790:19:168","memberName":"aggregatedPublicKey","nodeType":"MemberAccess","referencedDeclaration":84848,"src":"23778:31:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84266,"name":"_newAggregatedPublicKey","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84241,"src":"23812:23:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey memory"}},"src":"23778:57:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage","typeString":"struct Gear.AggregatedPublicKey storage ref"}},"id":84268,"nodeType":"ExpressionStatement","src":"23778:57:168"},{"expression":{"id":84276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84269,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"23845:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23857:40:168","memberName":"verifiableSecretSharingCommitmentPointer","nodeType":"MemberAccess","referencedDeclaration":84850,"src":"23845:52:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":84274,"name":"_verifiableSecretSharingCommitment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84243,"src":"23914:34:168","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":84272,"name":"SSTORE2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":86395,"src":"23900:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SSTORE2_$86395_$","typeString":"type(library SSTORE2)"}},"id":84273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23908:5:168","memberName":"write","nodeType":"MemberAccess","referencedDeclaration":86301,"src":"23900:13:168","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (bytes memory) returns (address)"}},"id":84275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23900:49:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"23845:104:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84277,"nodeType":"ExpressionStatement","src":"23845:104:168"},{"body":{"id":84305,"nodeType":"Block","src":"24013:114:168","statements":[{"assignments":[84291],"declarations":[{"constant":false,"id":84291,"mutability":"mutable","name":"_validator","nameLocation":"24035:10:168","nodeType":"VariableDeclaration","scope":84305,"src":"24027:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84290,"name":"address","nodeType":"ElementaryTypeName","src":"24027:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84296,"initialValue":{"baseExpression":{"expression":{"id":84292,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"24048:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24060:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"24048:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84295,"indexExpression":{"id":84294,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84279,"src":"24065:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24048:19:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24027:40:168"},{"expression":{"id":84303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":84297,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"24081:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24093:3:168","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"24081:15:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":84301,"indexExpression":{"id":84299,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84291,"src":"24097:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24081:27:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":84302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24111:5:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"24081:35:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84304,"nodeType":"ExpressionStatement","src":"24081:35:168"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84282,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84279,"src":"23979:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":84283,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"23983:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23995:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"23983:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24000:6:168","memberName":"length","nodeType":"MemberAccess","src":"23983:23:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23979:27:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84306,"initializationExpression":{"assignments":[84279],"declarations":[{"constant":false,"id":84279,"mutability":"mutable","name":"i","nameLocation":"23972:1:168","nodeType":"VariableDeclaration","scope":84306,"src":"23964:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84278,"name":"uint256","nodeType":"ElementaryTypeName","src":"23964:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84281,"initialValue":{"hexValue":"30","id":84280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23976:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23964:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24008:3:168","subExpression":{"id":84287,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84279,"src":"24008:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84289,"nodeType":"ExpressionStatement","src":"24008:3:168"},"nodeType":"ForStatement","src":"23959:168:168"},{"body":{"id":84332,"nodeType":"Block","src":"24188:111:168","statements":[{"assignments":[84319],"declarations":[{"constant":false,"id":84319,"mutability":"mutable","name":"_validator","nameLocation":"24210:10:168","nodeType":"VariableDeclaration","scope":84332,"src":"24202:18:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84318,"name":"address","nodeType":"ElementaryTypeName","src":"24202:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84323,"initialValue":{"baseExpression":{"id":84320,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84246,"src":"24223:14:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":84322,"indexExpression":{"id":84321,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84308,"src":"24238:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24223:17:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24202:38:168"},{"expression":{"id":84330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":84324,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"24254:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84327,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24266:3:168","memberName":"map","nodeType":"MemberAccess","referencedDeclaration":84854,"src":"24254:15:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":84328,"indexExpression":{"id":84326,"name":"_validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84319,"src":"24270:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24254:27:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":84329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"24284:4:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"24254:34:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84331,"nodeType":"ExpressionStatement","src":"24254:34:168"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":84314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84311,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84308,"src":"24156:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":84312,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84246,"src":"24160:14:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":84313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24175:6:168","memberName":"length","nodeType":"MemberAccess","src":"24160:21:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24156:25:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84333,"initializationExpression":{"assignments":[84308],"declarations":[{"constant":false,"id":84308,"mutability":"mutable","name":"i","nameLocation":"24149:1:168","nodeType":"VariableDeclaration","scope":84333,"src":"24141:9:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84307,"name":"uint256","nodeType":"ElementaryTypeName","src":"24141:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":84310,"initialValue":{"hexValue":"30","id":84309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24153:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24141:13:168"},"isSimpleCounterLoop":true,"loopExpression":{"expression":{"id":84316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24183:3:168","subExpression":{"id":84315,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84308,"src":"24183:1:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84317,"nodeType":"ExpressionStatement","src":"24183:3:168"},"nodeType":"ForStatement","src":"24136:163:168"},{"expression":{"id":84338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84334,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"24308:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84336,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24320:4:168","memberName":"list","nodeType":"MemberAccess","referencedDeclaration":84857,"src":"24308:16:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84337,"name":"_newValidators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84246,"src":"24327:14:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"24308:33:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":84339,"nodeType":"ExpressionStatement","src":"24308:33:168"},{"expression":{"id":84344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":84340,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84238,"src":"24351:11:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators storage pointer"}},"id":84342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24363:16:168","memberName":"useFromTimestamp","nodeType":"MemberAccess","referencedDeclaration":84859,"src":"24351:28:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84343,"name":"_useFromTimestamp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84248,"src":"24382:17:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24351:48:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":84345,"nodeType":"ExpressionStatement","src":"24351:48:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_resetValidators","nameLocation":"22994:16:168","parameters":{"id":84249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84238,"mutability":"mutable","name":"_validators","nameLocation":"23044:11:168","nodeType":"VariableDeclaration","scope":84347,"src":"23020:35:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"},"typeName":{"id":84237,"nodeType":"UserDefinedTypeName","pathNode":{"id":84236,"name":"Gear.Validators","nameLocations":["23020:4:168","23025:10:168"],"nodeType":"IdentifierPath","referencedDeclaration":84860,"src":"23020:15:168"},"referencedDeclaration":84860,"src":"23020:15:168","typeDescriptions":{"typeIdentifier":"t_struct$_Validators_$84860_storage_ptr","typeString":"struct Gear.Validators"}},"visibility":"internal"},{"constant":false,"id":84241,"mutability":"mutable","name":"_newAggregatedPublicKey","nameLocation":"23097:23:168","nodeType":"VariableDeclaration","scope":84347,"src":"23065:55:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_memory_ptr","typeString":"struct Gear.AggregatedPublicKey"},"typeName":{"id":84240,"nodeType":"UserDefinedTypeName","pathNode":{"id":84239,"name":"Gear.AggregatedPublicKey","nameLocations":["23065:4:168","23070:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":84845,"src":"23065:24:168"},"referencedDeclaration":84845,"src":"23065:24:168","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedPublicKey_$84845_storage_ptr","typeString":"struct Gear.AggregatedPublicKey"}},"visibility":"internal"},{"constant":false,"id":84243,"mutability":"mutable","name":"_verifiableSecretSharingCommitment","nameLocation":"23143:34:168","nodeType":"VariableDeclaration","scope":84347,"src":"23130:47:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":84242,"name":"bytes","nodeType":"ElementaryTypeName","src":"23130:5:168","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":84246,"mutability":"mutable","name":"_newValidators","nameLocation":"23204:14:168","nodeType":"VariableDeclaration","scope":84347,"src":"23187:31:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":84244,"name":"address","nodeType":"ElementaryTypeName","src":"23187:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":84245,"nodeType":"ArrayTypeName","src":"23187:9:168","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":84248,"mutability":"mutable","name":"_useFromTimestamp","nameLocation":"23236:17:168","nodeType":"VariableDeclaration","scope":84347,"src":"23228:25:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":84247,"name":"uint256","nodeType":"ElementaryTypeName","src":"23228:7:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23010:249:168"},"returnParameters":{"id":84250,"nodeType":"ParameterList","parameters":[],"src":"23268:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84360,"nodeType":"FunctionDefinition","src":"24412:192:168","nodes":[],"body":{"id":84359,"nodeType":"Block","src":"24477:127:168","nodes":[],"statements":[{"assignments":[84354],"declarations":[{"constant":false,"id":84354,"mutability":"mutable","name":"slot","nameLocation":"24495:4:168","nodeType":"VariableDeclaration","scope":84359,"src":"24487:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24487:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84357,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84355,"name":"_getStorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84372,"src":"24502:15:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":84356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24502:17:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24487:32:168"},{"AST":{"nativeSrc":"24555:43:168","nodeType":"YulBlock","src":"24555:43:168","statements":[{"nativeSrc":"24569:19:168","nodeType":"YulAssignment","src":"24569:19:168","value":{"name":"slot","nativeSrc":"24584:4:168","nodeType":"YulIdentifier","src":"24584:4:168"},"variableNames":[{"name":"router.slot","nativeSrc":"24569:11:168","nodeType":"YulIdentifier","src":"24569:11:168"}]}]},"evmVersion":"osaka","externalReferences":[{"declaration":84351,"isOffset":false,"isSlot":true,"src":"24569:11:168","suffix":"slot","valueSize":1},{"declaration":84354,"isOffset":false,"isSlot":false,"src":"24584:4:168","valueSize":1}],"flags":["memory-safe"],"id":84358,"nodeType":"InlineAssembly","src":"24530:68:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_router","nameLocation":"24421:7:168","parameters":{"id":84348,"nodeType":"ParameterList","parameters":[],"src":"24428:2:168"},"returnParameters":{"id":84352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84351,"mutability":"mutable","name":"router","nameLocation":"24469:6:168","nodeType":"VariableDeclaration","scope":84360,"src":"24453:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84350,"nodeType":"UserDefinedTypeName","pathNode":{"id":84349,"name":"Storage","nameLocations":["24453:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"24453:7:168"},"referencedDeclaration":73741,"src":"24453:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"src":"24452:24:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":84372,"nodeType":"FunctionDefinition","src":"24610:128:168","nodes":[],"body":{"id":84371,"nodeType":"Block","src":"24668:70:168","nodes":[],"statements":[{"expression":{"expression":{"arguments":[{"id":84367,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82304,"src":"24712:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84365,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"24685:11:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":84366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24697:14:168","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"24685:26:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":84368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24685:40:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":84369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24726:5:168","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"24685:46:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":84364,"id":84370,"nodeType":"Return","src":"24678:53:168"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_getStorageSlot","nameLocation":"24619:15:168","parameters":{"id":84361,"nodeType":"ParameterList","parameters":[],"src":"24634:2:168"},"returnParameters":{"id":84364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84363,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":84372,"src":"24659:7:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24659:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"24658:9:168"},"scope":84459,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":84400,"nodeType":"FunctionDefinition","src":"24744:240:168","nodes":[],"body":{"id":84399,"nodeType":"Block","src":"24812:172:168","nodes":[],"statements":[{"assignments":[84380],"declarations":[{"constant":false,"id":84380,"mutability":"mutable","name":"slot","nameLocation":"24830:4:168","nodeType":"VariableDeclaration","scope":84399,"src":"24822:12:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":84379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"24822:7:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":84385,"initialValue":{"arguments":[{"id":84383,"name":"namespace","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84374,"src":"24864:9:168","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":84381,"name":"SlotDerivation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48289,"src":"24837:14:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SlotDerivation_$48289_$","typeString":"type(library SlotDerivation)"}},"id":84382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24852:11:168","memberName":"erc7201Slot","nodeType":"MemberAccess","referencedDeclaration":48172,"src":"24837:26:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$","typeString":"function (string memory) pure returns (bytes32)"}},"id":84384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24837:37:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"24822:52:168"},{"expression":{"id":84393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"arguments":[{"id":84389,"name":"SLOT_STORAGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":82304,"src":"24911:12:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":84386,"name":"StorageSlot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48413,"src":"24884:11:168","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StorageSlot_$48413_$","typeString":"type(library StorageSlot)"}},"id":84388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24896:14:168","memberName":"getBytes32Slot","nodeType":"MemberAccess","referencedDeclaration":48346,"src":"24884:26:168","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$48301_storage_ptr_$","typeString":"function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)"}},"id":84390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24884:40:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Slot_$48301_storage_ptr","typeString":"struct StorageSlot.Bytes32Slot storage pointer"}},"id":84391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"24925:5:168","memberName":"value","nodeType":"MemberAccess","referencedDeclaration":48300,"src":"24884:46:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":84392,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84380,"src":"24933:4:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"24884:53:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":84394,"nodeType":"ExpressionStatement","src":"24884:53:168"},{"eventCall":{"arguments":[{"id":84396,"name":"slot","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84380,"src":"24972:4:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":84395,"name":"StorageSlotChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73787,"src":"24953:18:168","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":84397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24953:24:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84398,"nodeType":"EmitStatement","src":"24948:29:168"}]},"implemented":true,"kind":"function","modifiers":[{"id":84377,"kind":"modifierInvocation","modifierName":{"id":84376,"name":"onlyOwner","nameLocations":["24802:9:168"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"24802:9:168"},"nodeType":"ModifierInvocation","src":"24802:9:168"}],"name":"_setStorageSlot","nameLocation":"24753:15:168","parameters":{"id":84375,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84374,"mutability":"mutable","name":"namespace","nameLocation":"24783:9:168","nodeType":"VariableDeclaration","scope":84400,"src":"24769:23:168","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":84373,"name":"string","nodeType":"ElementaryTypeName","src":"24769:6:168","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24768:25:168"},"returnParameters":{"id":84378,"nodeType":"ParameterList","parameters":[],"src":"24812:0:168"},"scope":84459,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":84458,"nodeType":"FunctionDefinition","src":"24990:396:168","nodes":[],"body":{"id":84457,"nodeType":"Block","src":"25031:355:168","nodes":[],"statements":[{"assignments":[84407],"declarations":[{"constant":false,"id":84407,"mutability":"mutable","name":"router","nameLocation":"25057:6:168","nodeType":"VariableDeclaration","scope":84457,"src":"25041:22:168","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"},"typeName":{"id":84406,"nodeType":"UserDefinedTypeName","pathNode":{"id":84405,"name":"Storage","nameLocations":["25041:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":73741,"src":"25041:7:168"},"referencedDeclaration":73741,"src":"25041:7:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage"}},"visibility":"internal"}],"id":84410,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":84408,"name":"_router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84360,"src":"25066:7:168","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_struct$_Storage_$73741_storage_ptr_$","typeString":"function () view returns (struct IRouter.Storage storage pointer)"}},"id":84409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25066:9:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"25041:34:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":84412,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84407,"src":"25093:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25100:12:168","memberName":"genesisBlock","nodeType":"MemberAccess","referencedDeclaration":73716,"src":"25093:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_GenesisBlockInfo_$84985_storage","typeString":"struct Gear.GenesisBlockInfo storage ref"}},"id":84414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25113:4:168","memberName":"hash","nodeType":"MemberAccess","referencedDeclaration":84980,"src":"25093:24:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":84417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25129:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":84416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25121:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":84415,"name":"bytes32","nodeType":"ElementaryTypeName","src":"25121:7:168","typeDescriptions":{}}},"id":84418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25121:10:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"25093:38:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84420,"name":"RouterGenesisHashNotInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73803,"src":"25133:31:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25133:33:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84411,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25085:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25085:82:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84423,"nodeType":"ExpressionStatement","src":"25085:82:168"},{"assignments":[84425],"declarations":[{"constant":false,"id":84425,"mutability":"mutable","name":"value","nameLocation":"25186:5:168","nodeType":"VariableDeclaration","scope":84457,"src":"25178:13:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":84424,"name":"uint128","nodeType":"ElementaryTypeName","src":"25178:7:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"visibility":"internal"}],"id":84431,"initialValue":{"arguments":[{"expression":{"id":84428,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25202:3:168","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25206:5:168","memberName":"value","nodeType":"MemberAccess","src":"25202:9:168","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":84427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"25194:7:168","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":{"id":84426,"name":"uint128","nodeType":"ElementaryTypeName","src":"25194:7:168","typeDescriptions":{}}},"id":84430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25194:18:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"VariableDeclarationStatement","src":"25178:34:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint128","typeString":"uint128"},"id":84435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":84433,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84425,"src":"25230:5:168","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":84434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25238:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25230:9:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84436,"name":"ZeroValueTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73847,"src":"25241:17:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25241:19:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84432,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25222:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25222:39:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84439,"nodeType":"ExpressionStatement","src":"25222:39:168"},{"assignments":[84441],"declarations":[{"constant":false,"id":84441,"mutability":"mutable","name":"actorId","nameLocation":"25280:7:168","nodeType":"VariableDeclaration","scope":84457,"src":"25272:15:168","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":84440,"name":"address","nodeType":"ElementaryTypeName","src":"25272:7:168","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":84444,"initialValue":{"expression":{"id":84442,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25290:3:168","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":84443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25294:6:168","memberName":"sender","nodeType":"MemberAccess","src":"25290:10:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"25272:28:168"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":84452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"expression":{"id":84446,"name":"router","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84407,"src":"25318:6:168","typeDescriptions":{"typeIdentifier":"t_struct$_Storage_$73741_storage_ptr","typeString":"struct IRouter.Storage storage pointer"}},"id":84447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25325:12:168","memberName":"protocolData","nodeType":"MemberAccess","referencedDeclaration":73740,"src":"25318:19:168","typeDescriptions":{"typeIdentifier":"t_struct$_ProtocolData_$85013_storage","typeString":"struct Gear.ProtocolData storage ref"}},"id":84448,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25338:8:168","memberName":"programs","nodeType":"MemberAccess","referencedDeclaration":85008,"src":"25318:28:168","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":84450,"indexExpression":{"id":84449,"name":"actorId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84441,"src":"25347:7:168","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25318:37:168","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":84451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25359:1:168","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25318:42:168","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"arguments":[],"expression":{"argumentTypes":[],"id":84453,"name":"UnknownProgram","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73843,"src":"25362:14:168","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":84454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25362:16:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_error","typeString":"error"}],"id":84445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"25310:7:168","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_error_$returns$__$","typeString":"function (bool,error) pure"}},"id":84455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25310:69:168","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":84456,"nodeType":"ExpressionStatement","src":"25310:69:168"}]},"implemented":true,"kind":"receive","modifiers":[{"id":84403,"kind":"modifierInvocation","modifierName":{"id":84402,"name":"whenNotPaused","nameLocations":["25017:13:168"],"nodeType":"IdentifierPath","referencedDeclaration":43072,"src":"25017:13:168"},"nodeType":"ModifierInvocation","src":"25017:13:168"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":84401,"nodeType":"ParameterList","parameters":[],"src":"24997:2:168"},"returnParameters":{"id":84404,"nodeType":"ParameterList","parameters":[],"src":"25031:0:168"},"scope":84459,"stateMutability":"payable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":82292,"name":"IRouter","nameLocations":["1293:7:168"],"nodeType":"IdentifierPath","referencedDeclaration":74052,"src":"1293:7:168"},"id":82293,"nodeType":"InheritanceSpecifier","src":"1293:7:168"},{"baseName":{"id":82294,"name":"OwnableUpgradeable","nameLocations":["1306:18:168"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"1306:18:168"},"id":82295,"nodeType":"InheritanceSpecifier","src":"1306:18:168"},{"baseName":{"id":82296,"name":"PausableUpgradeable","nameLocations":["1330:19:168"],"nodeType":"IdentifierPath","referencedDeclaration":43182,"src":"1330:19:168"},"id":82297,"nodeType":"InheritanceSpecifier","src":"1330:19:168"},{"baseName":{"id":82298,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1355:35:168"],"nodeType":"IdentifierPath","referencedDeclaration":43267,"src":"1355:35:168"},"id":82299,"nodeType":"InheritanceSpecifier","src":"1355:35:168"},{"baseName":{"id":82300,"name":"UUPSUpgradeable","nameLocations":["1396:15:168"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"1396:15:168"},"id":82301,"nodeType":"InheritanceSpecifier","src":"1396:15:168"}],"canonicalName":"RouterWithInstrumentation","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[84459,45567,44157,43267,43182,41646,42808,41914,74052],"name":"RouterWithInstrumentation","nameLocation":"1260:25:168","scope":84460,"usedErrors":[41482,41487,41663,41666,43061,43064,43199,44751,44764,45424,45429,46696,48098,50025,50030,50035,73789,73791,73793,73795,73797,73799,73801,73803,73805,73807,73809,73811,73813,73815,73817,73819,73821,73823,73825,73827,73829,73831,73833,73835,73837,73839,73841,73843,73845,73847,84828,84830,84832,84834,84836,84838,84840,86260],"usedEvents":[41493,41671,43053,43058,44105,73746,73751,73758,73763,73768,73775,73782,73787,82317]}],"license":"UNLICENSED"},"id":168} \ No newline at end of file diff --git a/ethexe/ethereum/abi/WrappedVara.json b/ethexe/ethereum/abi/WrappedVara.json index 802d0ea25bb..e7b70b58b43 100644 --- a/ethexe/ethereum/abi/WrappedVara.json +++ b/ethexe/ethereum/abi/WrappedVara.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"725:1470:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;725:1470:166;;7983:34:30;7979:146;;-1:-1:-1;725:1470:166;;;;;;;;1052:13:60;725:1470:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;8085:29:30;;725:1470:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;725:1470:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"725:1470:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;2357:1:29;725:1470:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;725:1470:166;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;4771:20:31;725:1470:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;725:1470:166;;;;;;;;;;;;972:64:36;725:1470:166;;;;;;;;;;;;;;;;2420:78:33;725:1470:166;2420:78:33;;725:1470:166;1279:95:33;725:1470:166;;1279:95:33;725:1470:166;1279:95:33;;725:1470:166;;;;;;;;;1279:95:33;;725:1470:166;1279:95:33;725:1470:166;1279:95:33;;725:1470:166;;1279:95:33;;725:1470:166;;1279:95:33;;725:1470:166;;2420:78:33;;;725:1470:166;2420:78:33;;:::i;:::-;725:1470:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;725:1470:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;725:1470:166;;;3993:249:80;725:1470:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;725:1470:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;725:1470:166;2661:35:33;725:1470:166;;;;;;2661:35:33;2282:97;2335:33;;;;725:1470:166;2335:33:33;725:1470:166;;;;2335:33:33;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;4301:16:30;725:1470:166;;4724:16:30;;:34;;;;725:1470:166;4803:1:30;4788:16;:50;;;;725:1470:166;4853:13:30;:30;;;;725:1470:166;4849:91:30;;;725:1470:166;4803:1:30;-1:-1:-1;;;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;4977:67:30;;725:1470:166;;;:::i;:::-;935:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;725:1470:166;;:::i;:::-;6891:76:30;;;:::i;:::-;725:1470:166;;;;;;;:::i;:::-;4803:1:30;725:1470:166;;-1:-1:-1;;;725:1470:166;;;;6891:76:30;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;;8707:21:31;8703:91;;1055:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;725:1470:166;5064:101:30;-1:-1:-1;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;5140:14:30;725:1470:166;;;4803:1:30;725:1470:166;;5140:14:30;725:1470:166;8703:91:31;8751:32;;;725:1470:166;8751:32:31;725:1470:166;;;;;8751:32:31;725:1470:166;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;4977:67:30;725:1470:166;-1:-1:-1;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;4977:67:30;;4849:91;6496:23;;;725:1470:166;4906:23:30;725:1470:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;725:1470:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;4545:5:31;725:1470:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;-1:-1:-1;725:1470:166;;;;;;;;-1:-1:-1;;725:1470:166;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;5647:18:40;:43;;;725:1470:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;725:1470:166;;;;5870:4:40;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;-1:-1:-1;;;725:1470:166;;;;;;;;;;;;-1:-1:-1;;;725:1470:166;;;;;;;5647:43:40;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;5669:21:40;5647:43;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;725:1470:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;1479:5:32;725:1470:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;725:1470:166;;;;;;;-1:-1:-1;;;;;725:1470:166;3975:40:29;725:1470:166;;3975:40:29;725:1470:166;;;;;;;-1:-1:-1;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;6429:44:30;;;;;725:1470:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;725:1470:166;;;;;;;:::i;:::-;935:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;6959:1:30;;-1:-1:-1;;;;;725:1470:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;725:1470:166;;:::i;:::-;6891:76:30;;:::i;:::-;725:1470:166;;;;;;:::i;:::-;6591:4:30;725:1470:166;;-1:-1:-1;;;725:1470:166;;;;6891:76:30;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;6654:20:30;725:1470:166;;;1593:1;725:1470;;6654:20:30;725:1470:166;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;6429:44:30;1593:1:166;725:1470;;-1:-1:-1;;;;;725:1470:166;6448:25:30;;6429:44;;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;4824:6:60;-1:-1:-1;;;;;725:1470:166;4815:4:60;4807:23;4803:145;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;4803:145:60;4578:29;;;725:1470:166;4908:29:60;725:1470:166;;4908:29:60;725:1470:166;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;725:1470:166;4392:4:60;4384:23;;;:120;;;;725:1470:166;4367:251:60;;;2303:62:29;;:::i;:::-;725:1470:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;725:1470:166;;;;;;;;;5865:52:60;;725:1470:166;;5865:52:60;;;725:1470:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;725:1470:166;6227:60:60;725:1470:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;725:1470:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;725:1470:166;;2458:15:53;:11;;725:1470:166;4065:25:66;;4107:55;4065:25;;;;;;725:1470:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;725:1470:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;725:1470:166;6159:70:53;6199:19;;;725:1470:166;6199:19:53;725:1470:166;;6199:19:53;1744:119;1805:47;;;725:1470:166;1805:47:53;725:1470:166;;;;1805:47:53;5955:120:60;6026:34;;;725:1470:166;6026:34:60;725:1470:166;;;;6026:34:60;5865:52;;;;725:1470:166;5865:52:60;;725:1470:166;5865:52:60;;;;;;725:1470:166;5865:52:60;;;:::i;:::-;;;725:1470:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;1005:5:32;725:1470:166;;966:10:34;1005:5:32;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;725:1470:166;;8707:21:31;8703:91;;8832:5;725:1470:166;;;8832:5:31;;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;3980:23:40;;:::i;:::-;725:1470:166;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;;2085:2;725:1470;;;;;;;;;-1:-1:-1;;725:1470:166;;;;6102:5:31;725:1470:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;10021:4:31;725:1470:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;;;;;;;-1:-1:-1;;725:1470:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;725:1470:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;725:1470:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;725:1470:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;725:1470:166;;;;:::o;935:14::-;725:1470;;;;;;;:::i;:::-;935:14;725:1470;;-1:-1:-1;;;935:14:166;;;;:::o;725:1470::-;-1:-1:-1;;;;;725:1470:166;;;;;4771:13:31;725:1470:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;725:1470:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;725:1470:166;;;;;;;-1:-1:-1;;;;;725:1470:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;725:1470:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;;;-1:-1:-1;725:1470:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;725:1470:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;725:1470:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;-1:-1:-1;725:1470:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;725:1470:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;725:1470:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;725:1470:166;;;;;;11921:60:31;725:1470:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;725:1470:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;725:1470:166;;6687:16:31;;6683:86;;725:1470:166;6608:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;6608:1:31;725:1470:166;;7513:19:31;;;7509:115;;725:1470:166;8262:25:31;725:1470:166;;;;6608:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;6608:1:31;725:1470:166;;;6608:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;6608:1:31;725:1470:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;725:1470:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;725:1470:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;725:1470:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;725:1470:166;9233:21:31;;9229:89;;725:1470:166;9252:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;9252:1:31;725:1470:166;;7513:19:31;;;7509:115;;725:1470:166;;9252:1:31;725:1470:166;;8262:25:31;725:1470:166;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;725:1470:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;725:1470:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;725:1470:166;;11143:21:31;;11139:90;;11319:31;11238:20;;725:1470:166;11238:20:31;;:::i;:::-;725:1470:166;-1:-1:-1;725:1470:166;;;;;-1:-1:-1;725:1470:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;8262:25:31;;725:1470:166;;7822:16:31;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;7818:429:31;725:1470:166;;;;;8262:25:31;7124:1170::o;7818:429::-;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;7818:429:31;;725:1470:166;;;;;1055:9;;;;;725:1470;1055:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;725:1470:166;;4107:92:40;;;;725:1470:166;1959:95:40;725:1470:166;;;1959:95:40;;725:1470:166;1959:95:40;;;725:1470:166;4170:13:40;1959:95;;;725:1470:166;4193:4:40;1959:95;;;725:1470:166;1959:95:40;4107:92;;;;;;:::i;:::-;725:1470:166;4097:103:40;;4016:191;:::o;7082:141:30:-;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;725:1470:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;725:1470:166;;;-1:-1:-1;725:1470:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;725:1470:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;725:1470:166;7462:38:77;;725:1470:166;;7523:23:77;;;7375:20;7523:23;725:1470:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;725:1470:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;725:1470:166;;;7375:20:77;7763:32;725:1470:166;;;;7375:20:77;725:1470:166;;;;;7375:20:77;725:1470:166;6928:687:40;725:1470:166;;:::i;:::-;;;;7100:22:40;;;;725:1470:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;725:1470:166;;:::i;:::-;;;;8017:25:40;;;;725:1470:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;725:1470:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;725:1470:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;725:1470:166;;;;4933:24:66;725:1470:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"45417":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x9c3f981e55031196cbf831995ca37128c32f9f5e825745caab0096db7679bba2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc8e84a9e307d43e2e37cf7bd61638af24845f45b0aaa7d2909c6d8565915626\",\"dweb:/ipfs/QmbZUJnfW8uDgX1shNAnfhXQ2z8mkiASpQYevURFizKmoA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-core/lib/openzeppelin-contracts-upgradeable/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x9c3f981e55031196cbf831995ca37128c32f9f5e825745caab0096db7679bba2","urls":["bzz-raw://dc8e84a9e307d43e2e37cf7bd61638af24845f45b0aaa7d2909c6d8565915626","dweb:/ipfs/QmbZUJnfW8uDgX1shNAnfhXQ2z8mkiASpQYevURFizKmoA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":80735,"exportedSymbols":{"ERC20BurnableUpgradeable":[42593],"ERC20PermitUpgradeable":[42762],"ERC20Upgradeable":[42531],"Initializable":[41914],"OwnableUpgradeable":[41646],"UUPSUpgradeable":[45567],"WrappedVara":[80734]},"nodeType":"SourceUnit","src":"39:2157:166","nodes":[{"id":80597,"nodeType":"PragmaDirective","src":"39:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":80599,"nodeType":"ImportDirective","src":"65:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80735,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":80598,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"73:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80601,"nodeType":"ImportDirective","src":"167:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":80735,"sourceUnit":41915,"symbolAliases":[{"foreign":{"id":80600,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41914,"src":"175:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80603,"nodeType":"ImportDirective","src":"264:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":80735,"sourceUnit":42532,"symbolAliases":[{"foreign":{"id":80602,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"272:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80605,"nodeType":"ImportDirective","src":"367:135:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80735,"sourceUnit":42594,"symbolAliases":[{"foreign":{"id":80604,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42593,"src":"380:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80607,"nodeType":"ImportDirective","src":"503:131:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80735,"sourceUnit":42763,"symbolAliases":[{"foreign":{"id":80606,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42762,"src":"516:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80609,"nodeType":"ImportDirective","src":"635:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80735,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":80608,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"643:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80734,"nodeType":"ContractDefinition","src":"725:1470:166","nodes":[{"id":80624,"nodeType":"VariableDeclaration","src":"898:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"922:10:166","scope":80734,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80622,"name":"string","nodeType":"ElementaryTypeName","src":"898:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":80623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"935:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":80627,"nodeType":"VariableDeclaration","src":"955:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"979:12:166","scope":80734,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80625,"name":"string","nodeType":"ElementaryTypeName","src":"955:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":80626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"994:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":80630,"nodeType":"VariableDeclaration","src":"1007:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1032:20:166","scope":80734,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80628,"name":"uint256","nodeType":"ElementaryTypeName","src":"1007:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":80629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1055:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":80638,"nodeType":"FunctionDefinition","src":"1124:53:166","nodes":[],"body":{"id":80637,"nodeType":"Block","src":"1138:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80634,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"1148:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1148:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80636,"nodeType":"ExpressionStatement","src":"1148:22:166"}]},"documentation":{"id":80631,"nodeType":"StructuredDocumentation","src":"1071:48:166","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":80632,"nodeType":"ParameterList","parameters":[],"src":"1135:2:166"},"returnParameters":{"id":80633,"nodeType":"ParameterList","parameters":[],"src":"1138:0:166"},"scope":80734,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80672,"nodeType":"FunctionDefinition","src":"1183:297:166","nodes":[],"body":{"id":80671,"nodeType":"Block","src":"1244:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":80646,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80624,"src":"1267:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":80647,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80627,"src":"1279:12:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80645,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41982,"src":"1254:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":80648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80649,"nodeType":"ExpressionStatement","src":"1254:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80650,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42552,"src":"1302:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1302:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80652,"nodeType":"ExpressionStatement","src":"1302:22:166"},{"expression":{"arguments":[{"id":80654,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80640,"src":"1349:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80653,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"1334:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80656,"nodeType":"ExpressionStatement","src":"1334:28:166"},{"expression":{"arguments":[{"id":80658,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80624,"src":"1391:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80657,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42649,"src":"1372:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":80659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80660,"nodeType":"ExpressionStatement","src":"1372:30:166"},{"expression":{"arguments":[{"id":80662,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80640,"src":"1419:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80663,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80630,"src":"1433:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":80664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1456:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":80665,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[80718],"referencedDeclaration":80718,"src":"1462:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":80666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1462:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1456:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1433:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80661,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42363,"src":"1413:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":80669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1413:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80670,"nodeType":"ExpressionStatement","src":"1413:60:166"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":80643,"kind":"modifierInvocation","modifierName":{"id":80642,"name":"initializer","nameLocations":["1232:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"1232:11:166"},"nodeType":"ModifierInvocation","src":"1232:11:166"}],"name":"initialize","nameLocation":"1192:10:166","parameters":{"id":80641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80640,"mutability":"mutable","name":"initialOwner","nameLocation":"1211:12:166","nodeType":"VariableDeclaration","scope":80672,"src":"1203:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80639,"name":"address","nodeType":"ElementaryTypeName","src":"1203:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1202:22:166"},"returnParameters":{"id":80644,"nodeType":"ParameterList","parameters":[],"src":"1244:0:166"},"scope":80734,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80699,"nodeType":"FunctionDefinition","src":"1538:218:166","nodes":[],"body":{"id":80698,"nodeType":"Block","src":"1596:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":80682,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80624,"src":"1619:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":80683,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80627,"src":"1631:12:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80681,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41982,"src":"1606:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":80684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80685,"nodeType":"ExpressionStatement","src":"1606:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80686,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42552,"src":"1654:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80688,"nodeType":"ExpressionStatement","src":"1654:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80690,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"1701:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":80691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1701:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80689,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"1686:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80693,"nodeType":"ExpressionStatement","src":"1686:23:166"},{"expression":{"arguments":[{"id":80695,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80624,"src":"1738:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80694,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42649,"src":"1719:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":80696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80697,"nodeType":"ExpressionStatement","src":"1719:30:166"}]},"documentation":{"id":80673,"nodeType":"StructuredDocumentation","src":"1486:47:166","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":80676,"kind":"modifierInvocation","modifierName":{"id":80675,"name":"onlyOwner","nameLocations":["1569:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"1569:9:166"},"nodeType":"ModifierInvocation","src":"1569:9:166"},{"arguments":[{"hexValue":"32","id":80678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1593:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":80679,"kind":"modifierInvocation","modifierName":{"id":80677,"name":"reinitializer","nameLocations":["1579:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"1579:13:166"},"nodeType":"ModifierInvocation","src":"1579:16:166"}],"name":"reinitialize","nameLocation":"1547:12:166","parameters":{"id":80674,"nodeType":"ParameterList","parameters":[],"src":"1559:2:166"},"returnParameters":{"id":80680,"nodeType":"ParameterList","parameters":[],"src":"1596:0:166"},"scope":80734,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80709,"nodeType":"FunctionDefinition","src":"1921:84:166","nodes":[],"body":{"id":80708,"nodeType":"Block","src":"2003:2:166","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":80700,"nodeType":"StructuredDocumentation","src":"1762:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":80706,"kind":"modifierInvocation","modifierName":{"id":80705,"name":"onlyOwner","nameLocations":["1993:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"1993:9:166"},"nodeType":"ModifierInvocation","src":"1993:9:166"}],"name":"_authorizeUpgrade","nameLocation":"1930:17:166","overrides":{"id":80704,"nodeType":"OverrideSpecifier","overrides":[],"src":"1984:8:166"},"parameters":{"id":80703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80702,"mutability":"mutable","name":"newImplementation","nameLocation":"1956:17:166","nodeType":"VariableDeclaration","scope":80709,"src":"1948:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80701,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:27:166"},"returnParameters":{"id":80707,"nodeType":"ParameterList","parameters":[],"src":"2003:0:166"},"scope":80734,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80718,"nodeType":"FunctionDefinition","src":"2011:83:166","nodes":[],"body":{"id":80717,"nodeType":"Block","src":"2068:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":80715,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2085:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":80714,"id":80716,"nodeType":"Return","src":"2078:9:166"}]},"baseFunctions":[42051],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2020:8:166","overrides":{"id":80711,"nodeType":"OverrideSpecifier","overrides":[],"src":"2043:8:166"},"parameters":{"id":80710,"nodeType":"ParameterList","parameters":[],"src":"2028:2:166"},"returnParameters":{"id":80714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80713,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80718,"src":"2061:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80712,"name":"uint8","nodeType":"ElementaryTypeName","src":"2061:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2060:7:166"},"scope":80734,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":80733,"nodeType":"FunctionDefinition","src":"2100:93:166","nodes":[],"body":{"id":80732,"nodeType":"Block","src":"2159:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":80728,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80720,"src":"2175:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80729,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80722,"src":"2179:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80727,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42363,"src":"2169:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":80730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80731,"nodeType":"ExpressionStatement","src":"2169:17:166"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":80725,"kind":"modifierInvocation","modifierName":{"id":80724,"name":"onlyOwner","nameLocations":["2149:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"2149:9:166"},"nodeType":"ModifierInvocation","src":"2149:9:166"}],"name":"mint","nameLocation":"2109:4:166","parameters":{"id":80723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80720,"mutability":"mutable","name":"to","nameLocation":"2122:2:166","nodeType":"VariableDeclaration","scope":80733,"src":"2114:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80719,"name":"address","nodeType":"ElementaryTypeName","src":"2114:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80722,"mutability":"mutable","name":"amount","nameLocation":"2134:6:166","nodeType":"VariableDeclaration","scope":80733,"src":"2126:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80721,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2113:28:166"},"returnParameters":{"id":80726,"nodeType":"ParameterList","parameters":[],"src":"2159:0:166"},"scope":80734,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":80610,"name":"Initializable","nameLocations":["753:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":41914,"src":"753:13:166"},"id":80611,"nodeType":"InheritanceSpecifier","src":"753:13:166"},{"baseName":{"id":80612,"name":"ERC20Upgradeable","nameLocations":["772:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":42531,"src":"772:16:166"},"id":80613,"nodeType":"InheritanceSpecifier","src":"772:16:166"},{"baseName":{"id":80614,"name":"ERC20BurnableUpgradeable","nameLocations":["794:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":42593,"src":"794:24:166"},"id":80615,"nodeType":"InheritanceSpecifier","src":"794:24:166"},{"baseName":{"id":80616,"name":"OwnableUpgradeable","nameLocations":["824:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"824:18:166"},"id":80617,"nodeType":"InheritanceSpecifier","src":"824:18:166"},{"baseName":{"id":80618,"name":"ERC20PermitUpgradeable","nameLocations":["848:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":42762,"src":"848:22:166"},"id":80619,"nodeType":"InheritanceSpecifier","src":"848:22:166"},{"baseName":{"id":80620,"name":"UUPSUpgradeable","nameLocations":["876:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"876:15:166"},"id":80621,"nodeType":"InheritanceSpecifier","src":"876:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[80734,45567,44157,42762,43022,43740,44147,46222,41646,42593,42531,44199,46186,46160,42808,41914],"name":"WrappedVara","nameLocation":"734:11:166","scope":80735,"usedErrors":[41482,41487,41663,41666,42628,42635,42925,44169,44174,44179,44188,44193,44198,44751,44764,45424,45429,46696,48098,50025,50030,50035],"usedEvents":[41493,41671,44105,44127,46094,46103]}],"license":"UNLICENSED"},"id":166} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"burnFrom","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"initialOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"reinitialize","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EIP712DomainChanged","inputs":[],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ECDSAInvalidSignature","inputs":[]},{"type":"error","name":"ECDSAInvalidSignatureLength","inputs":[{"name":"length","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ECDSAInvalidSignatureS","inputs":[{"name":"s","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"ERC20InsufficientAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"allowance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InsufficientBalance","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"balance","type":"uint256","internalType":"uint256"},{"name":"needed","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC20InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC20InvalidSpender","inputs":[{"name":"spender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC2612ExpiredSignature","inputs":[{"name":"deadline","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC2612InvalidSigner","inputs":[{"name":"signer","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAccountNonce","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currentNonce","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100c257306080525f5160206125c65f395f51905f525460ff8160401c166100b3576002600160401b03196001600160401b03821601610060575b6040516124ff90816100c782396080518181816115ec01526116bb0152f35b6001600160401b0319166001600160401b039081175f5160206125c65f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610041565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00","sourceMap":"725:1470:166:-:0;;;;;;;1060:4:60;1052:13;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;7894:76:30;;-1:-1:-1;;;;;;;;;;;725:1470:166;;7983:34:30;7979:146;;-1:-1:-1;725:1470:166;;;;;;;;1052:13:60;725:1470:166;;;;;;;;;;;7979:146:30;-1:-1:-1;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;8085:29:30;;725:1470:166;;8085:29:30;7979:146;;;;7894:76;7936:23;;;-1:-1:-1;7936:23:30;;-1:-1:-1;7936:23:30;725:1470:166;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806306fdde031461198e578063095ea7b31461196857806318160ddd1461193f57806323b872dd14611907578063313ce567146118ec5780633644e515146118ca57806340c10f191461188d57806342966c68146118705780634f1ef2861461164057806352d1902d146115da5780636c2eb35014610ec757806370a0823114610e83578063715018a614610e1c57806379cc679014610dec5780637ecebe0014610d9657806384b0196e14610c725780638da5cb5b14610c3e57806395d89b4114610b48578063a9059cbb14610b17578063ad3cb1cc14610acc578063c4d66de8146102f9578063d505accf14610197578063dd62ed3e146101505763f2fde38b14610121575f80fd5b3461014c57602036600319011261014c5761014a61013d611a6f565b610145611f16565b611d10565b005b5f80fd5b3461014c57604036600319011261014c57610169611a6f565b61017a610174611a85565b91611cd8565b9060018060a01b03165f52602052602060405f2054604051908152f35b3461014c5760e036600319011261014c576101b0611a6f565b6101b8611a85565b604435906064359260843560ff8116810361014c578442116102e6576102ab6102b49160018060a01b03841696875f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb0060205260405f20908154916001830190556040519060208201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b038916606084015289608084015260a083015260c082015260c0815261027960e082611a9b565b519020610284612124565b906040519161190160f01b83526002830152602282015260c43591604260a43592206121b6565b90929192612243565b6001600160a01b03168481036102cf575061014a9350611fff565b84906325c0072360e11b5f5260045260245260445ffd5b8463313c898160e11b5f5260045260245ffd5b3461014c57602036600319011261014c57610312611a6f565b5f5160206124bf5f395f51905f5254906001600160401b0360ff8360401c1615921680159081610ac4575b6001149081610aba575b159081610ab1575b50610aa2578160016001600160401b03195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610a6d575b61038d611c8b565b91610396611cb5565b9161039f61218b565b6103a761218b565b83516001600160401b038111610759576103ce5f51602061239f5f395f51905f5254611ad7565b601f81116109f3575b50602094601f8211600114610978579481929394955f9261096d575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b82516001600160401b0381116107595761043b5f5160206123ff5f395f51905f5254611ad7565b601f81116108f3575b506020601f821160011461087857819293945f9261086d575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61048661218b565b61048e61218b565b61049661218b565b61049f81611d10565b6104a7611c8b565b916104b061218b565b604051916104bf604084611a9b565b60018352603160f81b60208401526104d561218b565b83516001600160401b038111610759576104fc5f5160206123df5f395f51905f5254611ad7565b601f81116107f3575b50602094601f8211600114610778579481929394955f9261076d575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b82516001600160401b038111610759576105695f51602061245f5f395f51905f5254611ad7565b601f81116106df575b506020601f821160011461066457819293945f92610659575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f528190555f5160206124df5f395f51905f52556001600160a01b0381161561064657670de0b6b3a76400006105ee91612062565b6105f457005b60ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63ec442f0560e01b5f525f60045260245ffd5b01519050848061058b565b601f198216905f51602061245f5f395f51905f525f52805f20915f5b8181106106c7575095836001959697106106af575b505050811b015f51602061245f5f395f51905f52556105ac565b01515f1960f88460031b161c19169055848080610695565b9192602060018192868b015181550194019201610680565b81811115610572575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b7560208410610751575b81601f9101920160051c03905f5b828110610744575050610572565b5f82820155600101610736565b5f9150610728565b634e487b7160e01b5f52604160045260245ffd5b015190508580610521565b601f198216955f5160206123df5f395f51905f525f52805f20915f5b8881106107db575083600195969798106107c3575b505050811b015f5160206123df5f395f51905f5255610542565b01515f1960f88460031b161c191690558580806107a9565b91926020600181928685015181550194019201610794565b81811115610505575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d60208410610865575b81601f9101920160051c03905f5b828110610858575050610505565b5f8282015560010161084a565b5f915061083c565b01519050848061045d565b601f198216905f5160206123ff5f395f51905f525f52805f20915f5b8181106108db575095836001959697106108c3575b505050811b015f5160206123ff5f395f51905f525561047e565b01515f1960f88460031b161c191690558480806108a9565b9192602060018192868b015181550194019201610894565b81811115610444575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa60208410610965575b81601f9101920160051c03905f5b828110610958575050610444565b5f8282015560010161094a565b5f915061093c565b0151905085806103f3565b601f198216955f51602061239f5f395f51905f525f52805f20915f5b8881106109db575083600195969798106109c3575b505050811b015f51602061239f5f395f51905f5255610414565b01515f1960f88460031b161c191690558580806109a9565b91926020600181928685015181550194019201610994565b818111156103d7575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab060208410610a65575b81601f9101920160051c03905f5b828110610a585750506103d7565b5f82820155600101610a4a565b5f9150610a3c565b6801000000000000000060ff60401b195f5160206124bf5f395f51905f525416175f5160206124bf5f395f51905f5255610385565b63f92ee8a960e01b5f5260045ffd5b9050158361034f565b303b159150610347565b83915061033d565b3461014c575f36600319011261014c57610b13604051610aed604082611a9b565b60058152640352e302e360dc1b6020820152604051918291602083526020830190611a4b565b0390f35b3461014c57604036600319011261014c57610b3d610b33611a6f565b6024359033611e45565b602060405160018152f35b3461014c575f36600319011261014c576040515f5f5160206123ff5f395f51905f5254610b7481611ad7565b8084529060018116908115610c1a5750600114610bb0575b610b1383610b9c81850382611a9b565b604051918291602083526020830190611a4b565b5f5160206123ff5f395f51905f525f9081527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b808210610c0057509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291610be8565b60ff191660208086019190915291151560051b84019091019150610b9c9050610b8c565b3461014c575f36600319011261014c575f51602061241f5f395f51905f52546040516001600160a01b039091168152602090f35b3461014c575f36600319011261014c575f51602061247f5f395f51905f52541580610d80575b15610d4357610ce7610ca8611b0f565b610cb0611bde565b6020610cf560405192610cc38385611a9b565b5f84525f368137604051958695600f60f81b875260e08588015260e0870190611a4b565b908582036040870152611a4b565b4660608501523060808501525f60a085015283810360c08501528180845192838152019301915f5b828110610d2c57505050500390f35b835185528695509381019392810192600101610d1d565b60405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606490fd5b505f5160206124df5f395f51905f525415610c98565b3461014c57602036600319011261014c57610daf611a6f565b60018060a01b03165f527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00602052602060405f2054604051908152f35b3461014c57604036600319011261014c5761014a610e08611a6f565b60243590610e17823383611d81565b611f49565b3461014c575f36600319011261014c57610e34611f16565b5f51602061241f5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461014c57602036600319011261014c576001600160a01b03610ea4611a6f565b165f525f5160206123bf5f395f51905f52602052602060405f2054604051908152f35b3461014c575f36600319011261014c57610edf611f16565b5f5160206124bf5f395f51905f525460ff8160401c169081156115c5575b50610aa2575f5160206124bf5f395f51905f52805468ffffffffffffffffff191668010000000000000002179055610f33611c8b565b610f3b611cb5565b610f4361218b565b610f4b61218b565b81516001600160401b03811161075957610f725f51602061239f5f395f51905f5254611ad7565b601f811161154b575b50602092601f82116001146114d257928192935f926114c7575b50508160011b915f199060031b1c1916175f51602061239f5f395f51905f52555b80516001600160401b03811161075957610fdd5f5160206123ff5f395f51905f5254611ad7565b601f811161144d575b50602091601f82116001146113d5579181925f926113ca575b50508160011b915f199060031b1c1916175f5160206123ff5f395f51905f52555b61102861218b565b5f51602061241f5f395f51905f5254611054906001600160a01b031661104c61218b565b61014561218b565b61105c611c8b565b61106461218b565b604051611072604082611a9b565b60018152603160f81b602082015261108861218b565b81516001600160401b038111610759576110af5f5160206123df5f395f51905f5254611ad7565b601f8111611350575b50602092601f82116001146112d757928192935f926112cc575b50508160011b915f199060031b1c1916175f5160206123df5f395f51905f52555b80516001600160401b0381116107595761111a5f51602061245f5f395f51905f5254611ad7565b601f8111611252575b50602091601f82116001146111da579181925f926111cf575b50508160011b915f199060031b1c1916175f51602061245f5f395f51905f52555b5f5f51602061247f5f395f51905f52555f5f5160206124df5f395f51905f525560ff60401b195f5160206124bf5f395f51905f5254165f5160206124bf5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160028152a1005b01519050828061113c565b601f198216925f51602061245f5f395f51905f525f52805f20915f5b85811061123a57508360019510611222575b505050811b015f51602061245f5f395f51905f525561115d565b01515f1960f88460031b161c19169055828080611208565b919260206001819286850151815501940192016111f6565b81811115611123575f51602061245f5f395f51905f525f52601f820160051c7f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b75602084106112c4575b81601f9101920160051c03905f5b8281106112b7575050611123565b5f828201556001016112a9565b5f915061129b565b0151905083806110d2565b601f198216935f5160206123df5f395f51905f525f52805f20915f5b8681106113385750836001959610611320575b505050811b015f5160206123df5f395f51905f52556110f3565b01515f1960f88460031b161c19169055838080611306565b919260206001819286850151815501940192016112f3565b818111156110b8575f5160206123df5f395f51905f525f52601f820160051c7f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d602084106113c2575b81601f9101920160051c03905f5b8281106113b55750506110b8565b5f828201556001016113a7565b5f9150611399565b015190508280610fff565b601f198216925f5160206123ff5f395f51905f525f52805f20915f5b8581106114355750836001951061141d575b505050811b015f5160206123ff5f395f51905f5255611020565b01515f1960f88460031b161c19169055828080611403565b919260206001819286850151815501940192016113f1565b81811115610fe6575f5160206123ff5f395f51905f525f52601f820160051c7f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa602084106114bf575b81601f9101920160051c03905f5b8281106114b2575050610fe6565b5f828201556001016114a4565b5f9150611496565b015190508380610f95565b601f198216935f51602061239f5f395f51905f525f52805f20915f5b868110611533575083600195961061151b575b505050811b015f51602061239f5f395f51905f5255610fb6565b01515f1960f88460031b161c19169055838080611501565b919260206001819286850151815501940192016114ee565b81811115610f7b575f51602061239f5f395f51905f525f52601f820160051c7f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0602084106115bd575b81601f9101920160051c03905f5b8281106115b0575050610f7b565b5f828201556001016115a2565b5f9150611594565b600291506001600160401b0316101581610efd565b3461014c575f36600319011261014c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036116315760206040515f51602061249f5f395f51905f528152f35b63703e46dd60e11b5f5260045ffd5b604036600319011261014c57611654611a6f565b602435906001600160401b03821161014c573660238301121561014c5781600401359061168082611abc565b9161168e6040519384611a9b565b8083526020830193366024838301011161014c57815f926024602093018737840101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630811490811561184e575b50611631576116f3611f16565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa5f918161181a575b506117355784634c9c8ce360e01b5f5260045260245ffd5b805f51602061249f5f395f51905f528692036118085750823b156117f6575f51602061249f5f395f51905f5280546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28251156117dd575f809161014a945190845af43d156117d5573d916117b983611abc565b926117c76040519485611a9b565b83523d5f602085013e612340565b606091612340565b505050346117e757005b63b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b632a87526960e21b5f5260045260245ffd5b9091506020813d602011611846575b8161183660209383611a9b565b8101031261014c5751908661171d565b3d9150611829565b5f51602061249f5f395f51905f52546001600160a01b031614159050846116e6565b3461014c57602036600319011261014c5761014a60043533611f49565b3461014c57604036600319011261014c576118a6611a6f565b6118ae611f16565b6001600160a01b038116156106465761014a9060243590612062565b3461014c575f36600319011261014c5760206118e4612124565b604051908152f35b3461014c575f36600319011261014c576020604051600c8152f35b3461014c57606036600319011261014c57610b3d611923611a6f565b61192b611a85565b6044359161193a833383611d81565b611e45565b3461014c575f36600319011261014c5760205f51602061243f5f395f51905f5254604051908152f35b3461014c57604036600319011261014c57610b3d611984611a6f565b6024359033611fff565b3461014c575f36600319011261014c576040515f5f51602061239f5f395f51905f52546119ba81611ad7565b8084529060018116908115610c1a57506001146119e157610b1383610b9c81850382611a9b565b5f51602061239f5f395f51905f525f9081527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b808210611a3157509091508101602001610b9c610b8c565b919260018160209254838588010152019101909291611a19565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361014c57565b602435906001600160a01b038216820361014c57565b90601f801991011681019081106001600160401b0382111761075957604052565b6001600160401b03811161075957601f01601f191660200190565b90600182811c92168015611b05575b6020831014611af157565b634e487b7160e01b5f52602260045260245ffd5b91607f1691611ae6565b604051905f825f5160206123df5f395f51905f525491611b2e83611ad7565b8083529260018116908115611bbf5750600114611b54575b611b5292500383611a9b565b565b505f5160206123df5f395f51905f525f90815290917f42ad5d3e1f2e6e70edcf6d991b8a3023d3fca8047a131592f9edb9fd9b89d57d5b818310611ba3575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611b8b565b60209250611b5294915060ff191682840152151560051b820101611b46565b604051905f825f51602061245f5f395f51905f525491611bfd83611ad7565b8083529260018116908115611bbf5750600114611c2057611b5292500383611a9b565b505f51602061245f5f395f51905f525f90815290917f5f9ce34815f8e11431c7bb75a8e6886a91478f7ffc1dbb0a98dc240fddd76b755b818310611c6f575050906020611b5292820101611b46565b6020919350806001915483858901015201910190918492611c57565b60405190611c9a604083611a9b565b600c82526b57726170706564205661726160a01b6020830152565b60405190611cc4604083611a9b565b6005825264575641524160d81b6020830152565b6001600160a01b03165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b6001600160a01b03168015611d6e575f51602061241f5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b9190611d8c83611cd8565b60018060a01b0382165f5260205260405f2054925f198410611daf575b50505050565b828410611e22576001600160a01b03811615611e0f576001600160a01b03821615611dfc57611ddd90611cd8565b9060018060a01b03165f5260205260405f20910390555f808080611da9565b634a1406b160e11b5f525f60045260245ffd5b63e602df0560e01b5f525f60045260245ffd5b508290637dc7a0d960e11b5f5260018060a01b031660045260245260445260645ffd5b6001600160a01b0316908115611f03576001600160a01b031691821561064657815f525f5160206123bf5f395f51905f5260205260405f2054818110611eea57817fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92602092855f525f5160206123bf5f395f51905f5284520360405f2055845f525f5160206123bf5f395f51905f52825260405f20818154019055604051908152a3565b8263391434e360e21b5f5260045260245260445260645ffd5b634b637e8f60e11b5f525f60045260245ffd5b5f51602061241f5f395f51905f52546001600160a01b03163303611f3657565b63118cdaa760e01b5f523360045260245ffd5b9091906001600160a01b03168015611f0357805f525f5160206123bf5f395f51905f5260205260405f2054838110611fe5576020845f94957fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef938587525f5160206123bf5f395f51905f528452036040862055805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f5255604051908152a3565b915063391434e360e21b5f5260045260245260445260645ffd5b916001600160a01b038316918215611e0f576001600160a01b0316928315611dfc577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259161204e602092611cd8565b855f5282528060405f2055604051908152a3565b5f51602061243f5f395f51905f525490828201809211612110575f51602061243f5f395f51905f52919091556001600160a01b0316905f907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090846120ee57805f51602061243f5f395f51905f5254035f51602061243f5f395f51905f52555b604051908152a3565b8484525f5160206123bf5f395f51905f528252604084208181540190556120e5565b634e487b7160e01b5f52601160045260245ffd5b61212c6122b7565b61213461230e565b6040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261218560c082611a9b565b51902090565b60ff5f5160206124bf5f395f51905f525460401c16156121a757565b631afcd79f60e31b5f5260045ffd5b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411612238579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa1561222d575f516001600160a01b0381161561222357905f905f90565b505f906001905f90565b6040513d5f823e3d90fd5b5050505f9160039190565b60048110156122a35780612255575050565b6001810361226c5763f645eedf60e01b5f5260045ffd5b60028103612287575063fce698f760e01b5f5260045260245ffd5b6003146122915750565b6335e2f38360e21b5f5260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b6122bf611b0f565b80519081156122cf576020012090565b50505f51602061247f5f395f51905f525480156122e95790565b507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47090565b612316611bde565b8051908115612326576020012090565b50505f5160206124df5f395f51905f525480156122e95790565b90612364575080511561235557602081519101fd5b63d6bda27560e01b5f5260045ffd5b81511580612395575b612375575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561236d56fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10252c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d101","sourceMap":"725:1470:166:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;2357:1:29;725:1470:166;;:::i;:::-;2303:62:29;;:::i;:::-;2357:1;:::i;:::-;725:1470:166;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;4771:20:31;725:1470:166;;:::i;:::-;4771:20:31;;:::i;:::-;:29;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;2286:15:33;;:26;2282:97;;7051:25:77;7105:8;725:1470:166;;;;;;;;;;;;972:64:36;725:1470:166;;;;;;;;;;;;;;;;2420:78:33;725:1470:166;2420:78:33;;725:1470:166;1279:95:33;725:1470:166;;1279:95:33;725:1470:166;1279:95:33;;725:1470:166;;;;;;;;;1279:95:33;;725:1470:166;1279:95:33;725:1470:166;1279:95:33;;725:1470:166;;1279:95:33;;725:1470:166;;1279:95:33;;725:1470:166;;2420:78:33;;;725:1470:166;2420:78:33;;:::i;:::-;725:1470:166;2410:89:33;;3980:23:40;;:::i;:::-;3993:249:80;725:1470:166;3993:249:80;;-1:-1:-1;;;3993:249:80;;;;;;;;;;725:1470:166;;;3993:249:80;725:1470:166;;3993:249:80;;7051:25:77;:::i;:::-;7105:8;;;;;:::i;:::-;-1:-1:-1;;;;;725:1470:166;2623:15:33;;;2619:88;;10021:4:31;;;;;:::i;2619:88:33:-;2661:35;;;;;725:1470:166;2661:35:33;725:1470:166;;;;;;2661:35:33;2282:97;2335:33;;;;725:1470:166;2335:33:33;725:1470:166;;;;2335:33:33;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;4301:16:30;725:1470:166;;4724:16:30;;:34;;;;725:1470:166;4803:1:30;4788:16;:50;;;;725:1470:166;4853:13:30;:30;;;;725:1470:166;4849:91:30;;;725:1470:166;4803:1:30;-1:-1:-1;;;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;4977:67:30;;725:1470:166;;;:::i;:::-;935:14;;;:::i;:::-;6891:76:30;;;:::i;:::-;;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;6891:76:30;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;6959:1;;;:::i;:::-;725:1470:166;;:::i;:::-;6891:76:30;;;:::i;:::-;725:1470:166;;;;;;;:::i;:::-;4803:1:30;725:1470:166;;-1:-1:-1;;;725:1470:166;;;;6891:76:30;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;;8707:21:31;8703:91;;1055:9:166;8832:5:31;;;:::i;:::-;5064:101:30;;725:1470:166;5064:101:30;-1:-1:-1;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;5140:14:30;725:1470:166;;;4803:1:30;725:1470:166;;5140:14:30;725:1470:166;8703:91:31;8751:32;;;725:1470:166;8751:32:31;725:1470:166;;;;;8751:32:31;725:1470:166;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4803:1:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;4977:67:30;725:1470:166;-1:-1:-1;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;4977:67:30;;4849:91;6496:23;;;725:1470:166;4906:23:30;725:1470:166;;4906:23:30;4853:30;4870:13;;;4853:30;;;4788:50;4816:4;4808:25;:30;;-1:-1:-1;4788:50:30;;4724:34;;;-1:-1:-1;4724:34:30;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;725:1470:166;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;4545:5:31;725:1470:166;;:::i;:::-;;;966:10:34;;4545:5:31;:::i;:::-;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;-1:-1:-1;725:1470:166;;;;;;;;-1:-1:-1;;725:1470:166;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;725:1470:166;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;5647:18:40;:43;;;725:1470:166;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;5835:13:40;725:1470:166;;;;5870:4:40;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;-1:-1:-1;;;725:1470:166;;;;;;;;;;;;-1:-1:-1;;;725:1470:166;;;;;;;5647:43:40;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;5669:21:40;5647:43;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;;;;;;;;;972:64:36;725:1470:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;1479:5:32;725:1470:166;;:::i;:::-;;;966:10:34;1448:5:32;966:10:34;;1448:5:32;;:::i;:::-;1479;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;725:1470:166;;;;;;;-1:-1:-1;;;;;725:1470:166;3975:40:29;725:1470:166;;3975:40:29;725:1470:166;;;;;;;-1:-1:-1;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;6429:44:30;;;;;725:1470:166;6425:105:30;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;725:1470:166;;;;;;;:::i;:::-;935:14;;:::i;:::-;6891:76:30;;:::i;:::-;;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;6891:76:30;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;6959:1:30;;-1:-1:-1;;;;;725:1470:166;6891:76:30;;:::i;:::-;;;:::i;6959:1::-;725:1470:166;;:::i;:::-;6891:76:30;;:::i;:::-;725:1470:166;;;;;;:::i;:::-;6591:4:30;725:1470:166;;-1:-1:-1;;;725:1470:166;;;;6891:76:30;;:::i;:::-;725:1470:166;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;2581:7:31;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;6654:20:30;725:1470:166;;;1593:1;725:1470;;6654:20:30;725:1470:166;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;2581:7:31;725:1470:166;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6591:4:30;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;6429:44:30;1593:1:166;725:1470;;-1:-1:-1;;;;;725:1470:166;6448:25:30;;6429:44;;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;4824:6:60;-1:-1:-1;;;;;725:1470:166;4815:4:60;4807:23;4803:145;;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;4803:145:60;4578:29;;;725:1470:166;4908:29:60;725:1470:166;;4908:29:60;725:1470:166;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4401:6:60;725:1470:166;4392:4:60;4384:23;;;:120;;;;725:1470:166;4367:251:60;;;2303:62:29;;:::i;:::-;725:1470:166;;-1:-1:-1;;;5865:52:60;;-1:-1:-1;;;;;725:1470:166;;;;;;;;;5865:52:60;;725:1470:166;;5865:52:60;;;725:1470:166;-1:-1:-1;5861:437:60;;1805:47:53;;;;725:1470:166;6227:60:60;725:1470:166;;;;6227:60:60;5861:437;5959:40;-1:-1:-1;;;;;;;;;;;5959:40:60;;;5955:120;;1748:29:53;;;:34;1744:119;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;725:1470:166;;;;;2407:36:53;-1:-1:-1;;2407:36:53;725:1470:166;;2458:15:53;:11;;725:1470:166;4065:25:66;;4107:55;4065:25;;;;;;725:1470:166;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4107:55:66;:::i;725:1470:166:-;;;4107:55:66;:::i;2454:148:53:-;6163:9;;;;6159:70;;725:1470:166;6159:70:53;6199:19;;;725:1470:166;6199:19:53;725:1470:166;;6199:19:53;1744:119;1805:47;;;725:1470:166;1805:47:53;725:1470:166;;;;1805:47:53;5955:120:60;6026:34;;;725:1470:166;6026:34:60;725:1470:166;;;;6026:34:60;5865:52;;;;725:1470:166;5865:52:60;;725:1470:166;5865:52:60;;;;;;725:1470:166;5865:52:60;;;:::i;:::-;;;725:1470:166;;;;;5865:52:60;;;;;;;-1:-1:-1;5865:52:60;;4384:120;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;4462:42:60;;;-1:-1:-1;4384:120:60;;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;1005:5:32;725:1470:166;;966:10:34;1005:5:32;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;;:::i;:::-;2303:62:29;;:::i;:::-;-1:-1:-1;;;;;725:1470:166;;8707:21:31;8703:91;;8832:5;725:1470:166;;;8832:5:31;;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;3980:23:40;;:::i;:::-;725:1470:166;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;;;;2085:2;725:1470;;;;;;;;;-1:-1:-1;;725:1470:166;;;;6102:5:31;725:1470:166;;:::i;:::-;;;:::i;:::-;;;966:10:34;6066:5:31;966:10:34;;6066:5:31;;:::i;:::-;6102;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;-1:-1:-1;;725:1470:166;;;;10021:4:31;725:1470:166;;:::i;:::-;;;966:10:34;;10021:4:31;:::i;725:1470:166:-;;;;;;-1:-1:-1;;725:1470:166;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;;;;;;;;-1:-1:-1;;725:1470:166;;;;:::o;:::-;;;;-1:-1:-1;;;;;725:1470:166;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;725:1470:166;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;725:1470:166;;;;;;;:::o;:::-;-1:-1:-1;;;;;725:1470:166;;;;;;-1:-1:-1;;725:1470:166;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;725:1470:166;;;;:::o;935:14::-;725:1470;;;;;;;:::i;:::-;935:14;725:1470;;-1:-1:-1;;;935:14:166;;;;:::o;725:1470::-;-1:-1:-1;;;;;725:1470:166;;;;;4771:13:31;725:1470:166;;;;;;:::o;3405:215:29:-;-1:-1:-1;;;;;725:1470:166;3489:22:29;;3485:91;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;725:1470:166;;;;;;;-1:-1:-1;;;;;725:1470:166;3975:40:29;-1:-1:-1;;3975:40:29;3405:215::o;3485:91::-;3534:31;;;3509:1;3534:31;3509:1;3534:31;725:1470:166;;3509:1:29;3534:31;11649:476:31;;;4771:20;;;:::i;:::-;725:1470:166;;;;;;;-1:-1:-1;725:1470:166;;;;-1:-1:-1;725:1470:166;;;;;11814:36:31;;11810:309;;11649:476;;;;;:::o;11810:309::-;11870:24;;;11866:130;;-1:-1:-1;;;;;725:1470:166;;11045:19:31;11041:89;;-1:-1:-1;;;;;725:1470:166;;11143:21:31;11139:90;;11238:20;;;:::i;:::-;:29;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;-1:-1:-1;725:1470:166;;;;;11810:309:31;;;;;;11139:90;11187:31;;;-1:-1:-1;11187:31:31;-1:-1:-1;11187:31:31;725:1470:166;;-1:-1:-1;11187:31:31;11041:89;11087:32;;;-1:-1:-1;11087:32:31;-1:-1:-1;11087:32:31;725:1470:166;;-1:-1:-1;11087:32:31;11866:130;11921:60;;;;;;-1:-1:-1;11921:60:31;725:1470:166;;;;;;11921:60:31;725:1470:166;;;;;;-1:-1:-1;11921:60:31;6509:300;-1:-1:-1;;;;;725:1470:166;;6592:18:31;;6588:86;;-1:-1:-1;;;;;725:1470:166;;6687:16:31;;6683:86;;725:1470:166;6608:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;6608:1:31;725:1470:166;;7513:19:31;;;7509:115;;725:1470:166;8262:25:31;725:1470:166;;;;6608:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;6608:1:31;725:1470:166;;;6608:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;6608:1:31;725:1470:166;;;;;;;;;;;;8262:25:31;6509:300::o;7509:115::-;7559:50;;;;6608:1;7559:50;;725:1470:166;;;;;;6608:1:31;7559:50;6588:86;6633:30;;;6608:1;6633:30;6608:1;6633:30;725:1470:166;;6608:1:31;6633:30;2658:162:29;-1:-1:-1;;;;;;;;;;;725:1470:166;-1:-1:-1;;;;;725:1470:166;966:10:34;2717:23:29;2713:101;;2658:162::o;2713:101::-;2763:40;;;-1:-1:-1;2763:40:29;966:10:34;2763:40:29;725:1470:166;;-1:-1:-1;2763:40:29;9163:206:31;;;;-1:-1:-1;;;;;725:1470:166;9233:21:31;;9229:89;;725:1470:166;9252:1:31;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;9252:1:31;725:1470:166;;7513:19:31;;;7509:115;;725:1470:166;;9252:1:31;725:1470:166;;8262:25:31;725:1470:166;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;8262:25:31;9163:206::o;7509:115::-;7559:50;;;;;9252:1;7559:50;;725:1470:166;;;;;;9252:1:31;7559:50;10880:487;;-1:-1:-1;;;;;725:1470:166;;;11045:19:31;;11041:89;;-1:-1:-1;;;;;725:1470:166;;11143:21:31;;11139:90;;11319:31;11238:20;;725:1470:166;11238:20:31;;:::i;:::-;725:1470:166;-1:-1:-1;725:1470:166;;;;;-1:-1:-1;725:1470:166;;;;;;;11319:31:31;10880:487::o;7124:1170::-;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;-1:-1:-1;;;;;725:1470:166;;;;8262:25:31;;725:1470:166;;7822:16:31;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;-1:-1:-1;;;;;;;;;;;725:1470:166;7818:429:31;725:1470:166;;;;;8262:25:31;7124:1170::o;7818:429::-;725:1470:166;;;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;;;;;;;;7818:429:31;;725:1470:166;;;;;1055:9;;;;;725:1470;1055:9;4016:191:40;4129:17;;:::i;:::-;4148:20;;:::i;:::-;725:1470:166;;4107:92:40;;;;725:1470:166;1959:95:40;725:1470:166;;;1959:95:40;;725:1470:166;1959:95:40;;;725:1470:166;4170:13:40;1959:95;;;725:1470:166;4193:4:40;1959:95;;;725:1470:166;1959:95:40;4107:92;;;;;;:::i;:::-;725:1470:166;4097:103:40;;4016:191;:::o;7082:141:30:-;725:1470:166;-1:-1:-1;;;;;;;;;;;725:1470:166;;;;7148:18:30;7144:73;;7082:141::o;7144:73::-;7189:17;;;-1:-1:-1;7189:17:30;;-1:-1:-1;7189:17:30;5203:1551:77;;;6283:66;6270:79;;6266:164;;725:1470:166;;;;;;-1:-1:-1;725:1470:166;;;;;;;;;;;;;;;;;;;6541:24:77;;;;;;;;;-1:-1:-1;6541:24:77;-1:-1:-1;;;;;725:1470:166;;6579:20:77;6575:113;;6698:49;-1:-1:-1;6698:49:77;-1:-1:-1;5203:1551:77;:::o;6575:113::-;6615:62;-1:-1:-1;6615:62:77;6541:24;6615:62;-1:-1:-1;6615:62:77;:::o;6541:24::-;725:1470:166;;;-1:-1:-1;725:1470:166;;;;;6266:164:77;6365:54;;;6381:1;6365:54;6385:30;6365:54;;:::o;7280:532::-;725:1470:166;;;;;;7366:29:77;;;7411:7;;:::o;7362:444::-;725:1470:166;7462:38:77;;725:1470:166;;7523:23:77;;;7375:20;7523:23;725:1470:166;7375:20:77;7523:23;7458:348;7576:35;7567:44;;7576:35;;7634:46;;;;7375:20;7634:46;725:1470:166;;;7375:20:77;7634:46;7563:243;7710:30;7701:39;7697:109;;7563:243;7280:532::o;7697:109::-;7763:32;;;7375:20;7763:32;725:1470:166;;;7375:20:77;7763:32;725:1470:166;;;;7375:20:77;725:1470:166;;;;;7375:20:77;725:1470:166;6928:687:40;725:1470:166;;:::i;:::-;;;;7100:22:40;;;;725:1470:166;;7145:22:40;7138:29;:::o;7096:513::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;7473:15:40;;;;7508:17;:::o;7469:130::-;7564:20;7571:13;7564:20;:::o;7836:723::-;725:1470:166;;:::i;:::-;;;;8017:25:40;;;;725:1470:166;;8065:25:40;8058:32;:::o;8013:540::-;-1:-1:-1;;;;;;;;;;;;;725:1470:166;8411:18:40;;;;8449:20;:::o;4437:582:66:-;;4609:8;;-1:-1:-1;725:1470:166;;5690:21:66;:17;;5815:105;;;;;;5686:301;5957:19;;;5710:1;5957:19;;5710:1;5957:19;4605:408;725:1470:166;;4857:22:66;:49;;;4605:408;4853:119;;4985:17;;:::o;4853:119::-;-1:-1:-1;;;4878:1:66;4933:24;;;-1:-1:-1;;;;;725:1470:166;;;;4933:24:66;725:1470:166;;;4933:24:66;4857:49;4883:18;;;:23;4857:49;","linkReferences":{},"immutableReferences":{"45417":[{"start":5612,"length":32},{"start":5819,"length":32}]}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","eip712Domain()":"84b0196e","initialize(address)":"c4d66de8","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","owner()":"8da5cb5b","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","proxiableUUID()":"52d1902d","reinitialize()":"6c2eb350","renounceOwnership()":"715018a6","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd","transferOwnership(address)":"f2fde38b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.33+commit.64118f21\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ERC2612ExpiredSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC2612InvalidSigner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentNonce\",\"type\":\"uint256\"}],\"name\":\"InvalidAccountNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialOwner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reinitialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC2612ExpiredSignature(uint256)\":[{\"details\":\"Permit deadline has expired.\"}],\"ERC2612InvalidSigner(address,address)\":[{\"details\":\"Mismatched signature.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAccountNonce(address,uint256)\":[{\"details\":\"The nonce used for an `account` is not the expected current nonce.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"reinitialize()\":{\"custom:oz-upgrades-validate-as-initializer\":\"\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/WrappedVara.sol\":\"WrappedVara\"},\"evmVersion\":\"osaka\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@symbioticfi/core/=lib/symbiotic-rewards/lib/core/\",\":core/=lib/symbiotic-rewards/lib/core/\",\":ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":script/=script/\",\":src/=src/\",\":symbiotic-core/=lib/symbiotic-core/\",\":symbiotic-rewards/=lib/symbiotic-rewards/\",\":test/=test/\"],\"viaIR\":true},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0\",\"dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol\":{\"keccak256\":\"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f\",\"dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol\":{\"keccak256\":\"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739\",\"dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol\":{\"keccak256\":\"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827\",\"dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13\",\"dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c\",\"dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae\",\"dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422\",\"dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23\",\"dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a\",\"dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d\",\"dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086\",\"dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e\",\"dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a\",\"dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f\",\"dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD\"]},\"lib/openzeppelin-contracts/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"lib/openzeppelin-contracts/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e\",\"dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"src/WrappedVara.sol\":{\"keccak256\":\"0x9c3f981e55031196cbf831995ca37128c32f9f5e825745caab0096db7679bba2\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://dc8e84a9e307d43e2e37cf7bd61638af24845f45b0aaa7d2909c6d8565915626\",\"dweb:/ipfs/QmbZUJnfW8uDgX1shNAnfhXQ2z8mkiASpQYevURFizKmoA\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.33+commit.64118f21"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[],"type":"error","name":"ECDSAInvalidSignature"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"type":"error","name":"ECDSAInvalidSignatureLength"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"type":"error","name":"ECDSAInvalidSignatureS"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientAllowance"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"type":"error","name":"ERC20InsufficientBalance"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC20InvalidApprover"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC20InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC20InvalidSender"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"type":"error","name":"ERC20InvalidSpender"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"type":"error","name":"ERC2612ExpiredSignature"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC2612InvalidSigner"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"type":"error","name":"InvalidAccountNonce"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[],"type":"event","name":"EIP712DomainChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burnFrom"},{"inputs":[],"stateMutability":"pure","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"initialOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"reinitialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"Returns the value of tokens owned by `account`."},"burn(uint256)":{"details":"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"eip712Domain()":{"details":"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"owner()":{"details":"Returns the address of the current owner."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"reinitialize()":{"custom:oz-upgrades-validate-as-initializer":""},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"Returns the value of tokens in existence."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Skips emitting an {Approval} event indicating an allowance update. This is not required by the ERC. See {xref-ERC20-_approve-address-address-uint256-bool-}[_approve]. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@symbioticfi/core/=lib/symbiotic-rewards/lib/core/","core/=lib/symbiotic-rewards/lib/core/","ds-test/=lib/symbiotic-rewards/lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","frost-secp256k1-evm/=lib/frost-secp256k1-evm/src/","halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","script/=script/","src/=src/","symbiotic-core/=lib/symbiotic-core/","symbiotic-rewards/=lib/symbiotic-rewards/","test/=test/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/WrappedVara.sol":"WrappedVara"},"evmVersion":"osaka","libraries":{},"viaIR":true},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05","urls":["bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08","dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xfcd09c2aa8cc3f93e12545454359f901965db312bc03833daf84de0c03e05022","urls":["bzz-raw://07701188648d2ab83dab1037808298585264559bddf243bd8929037adcb984b0","dweb:/ipfs/QmavmG5REdHCAWsZ8Cag26BCxAq27DRKGxr3uBg5ZYxQ51"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol":{"keccak256":"0xe74dd150d031e8ecf9755893a2aae02dec954158140424f11c28ff689a48492f","urls":["bzz-raw://554e0934aecff6725e10d4aeb2e70ff214384b68782b1ba9f9322a0d16105a2f","dweb:/ipfs/QmVvmHc7xPftEkWvJRNAqv7mXihKLEAVXpiebG7RT5rhMW"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol":{"keccak256":"0x075302c23ba4b3a1d2a5000947ac44bbb4e84b011ecadad6f5e3fd92cd568659","urls":["bzz-raw://c13806b62ea930e61dfba5fbbfd4eafe135bb0e2e4d55ce8cde1407d7b20a739","dweb:/ipfs/QmYjt4fwBLdKrMbGHZPqdsiwsK4obFdXdKFhQBBW5ruEuC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/NoncesUpgradeable.sol":{"keccak256":"0x778f4a1546a1c6c726ecc8e2348a2789690fb8f26e12bd9d89537669167b79a4","urls":["bzz-raw://851d3dfe724e918ff0a064b206e1ef46b27ab0df2aa2c8af976973a22ef59827","dweb:/ipfs/Qmd4wb7zX8ueYhMVBy5PJjfsANK3Ra3pKPN7qQkNsdwGHn"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/cryptography/EIP712Upgradeable.sol":{"keccak256":"0x89374b2a634f0a9c08f5891b6ecce0179bc2e0577819c787ed3268ca428c2459","urls":["bzz-raw://f13d2572e5bdd55e483dfac069aac47603644071616a41fce699e94368e38c13","dweb:/ipfs/QmfKeyNT6vyb99vJQatPZ88UyZgXNmAiHUXSWnaR1TPE11"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0xbf2aefe54b76d7f7bcd4f6da1080b7b1662611937d870b880db584d09cea56b5","urls":["bzz-raw://f5e7e2f12e0feec75296e57f51f82fdaa8bd1551f4b8cc6560442c0bf60f818c","dweb:/ipfs/QmcW9wDMaQ8RbQibMarfp17a3bABzY5KraWe2YDwuUrUoz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC5267.sol":{"keccak256":"0xfb223a85dd0b2175cfbbaa325a744e2cd74ecd17c3df2b77b0722f991d2725ee","urls":["bzz-raw://84bf1dea0589ec49c8d15d559cc6d86ee493048a89b2d4adb60fbe705a3d89ae","dweb:/ipfs/Qmd56n556d529wk2pRMhYhm5nhMDhviwereodDikjs68w1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x82f757819bf2429a0d4db141b99a4bbe5039e4ef86dfb94e2e6d40577ed5b28b","urls":["bzz-raw://37c30ed931e19fb71fdb806bb504cfdb9913b7127545001b64d4487783374422","dweb:/ipfs/QmUBHpv4hm3ZmwJ4GH8BeVzK4mv41Q6vBbWXxn8HExPXza"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x19fdfb0f3b89a230e7dbd1cf416f1a6b531a3ee5db4da483f946320fc74afc0e","urls":["bzz-raw://3490d794728f5bfecb46820431adaff71ba374141545ec20b650bb60353fac23","dweb:/ipfs/QmPsfxjVpMcZbpE7BH93DzTpEaktESigEw4SmDzkXuJ4WR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0xa1ad192cd45317c788618bef5cb1fb3ca4ce8b230f6433ac68cc1d850fb81618","urls":["bzz-raw://b43447bb85a53679d269a403c693b9d88d6c74177dfb35eddca63abaf7cf110a","dweb:/ipfs/QmXSDmpd4bNZj1PDgegr6C4w1jDaWHXCconC3rYiw9TSkQ"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0x20462ddb2665e9521372c76b001d0ce196e59dbbd989de9af5576cad0bd5628b","urls":["bzz-raw://f417fd12aeec8fbfaceaa30e3a08a0724c0bc39de363e2acf6773c897abbaf6d","dweb:/ipfs/QmU4Hko6sApdweVM92CsiuLKkCk8HfyBeutF89PCTz5Tye"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0x3f922173c98b186040931acb169b1221df823edaaf64d86d0b896b521abaaca6","urls":["bzz-raw://c89561e10c77472136adb154cfb04c1101c62cb371677571330da70576c25086","dweb:/ipfs/QmdpcuKmJVodzz16HX78gaj3LCB7E1RbcVGFDoK6sAjwpG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0xd6fa4088198f04eef10c5bce8a2f4d60554b7ec4b987f684393c01bf79b94d9f","urls":["bzz-raw://f95ee0bbd4dd3ac730d066ba3e785ded4565e890dbec2fa7d3b9fe3bad9d0d6e","dweb:/ipfs/QmSLr6bHkPFWT7ntj34jmwfyskpwo97T9jZUrk5sz3sdtR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0x2fa0657dd7b8bc75475a47f64bc04a9adb42236b15d65e6781594ea69a46c3e4","urls":["bzz-raw://7496f42681aed94bf0142a077324e50b86046610c1724e7c12e96cf1c365914a","dweb:/ipfs/QmZvhNdSAAbN4PKPdheAqwpXukUiXp3Q3TdQccDMg2NDTV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x6d0ae6e206645341fd122d278c2cb643dea260c190531f2f3f6a0426e77b00c0","urls":["bzz-raw://032d1201d839435be2c85b72e33206b3ea980c569d6ebf7fa57d811ab580a82f","dweb:/ipfs/QmeqQjAtMvdZT2tG7zm39itcRJkuwu8AEReK6WRnLJ18DD"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xad148d59f05165f9217d0a9e1ac8f772abb02ea6aaad8a756315c532bf79f9f4","urls":["bzz-raw://15e3599867c2182f5831e9268b274b2ef2047825837df6b4d81c9e89254b093e","dweb:/ipfs/QmZbL7XAYr5RmaNaooPgZRmcDXaudfsYQfYD9y5iAECvpS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/ECDSA.sol":{"keccak256":"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84","urls":["bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9","dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/cryptography/MessageHashUtils.sol":{"keccak256":"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631","urls":["bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59","dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6","urls":["bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3","dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3","urls":["bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03","dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ"],"license":"MIT"},"src/WrappedVara.sol":{"keccak256":"0x9c3f981e55031196cbf831995ca37128c32f9f5e825745caab0096db7679bba2","urls":["bzz-raw://dc8e84a9e307d43e2e37cf7bd61638af24845f45b0aaa7d2909c6d8565915626","dweb:/ipfs/QmbZUJnfW8uDgX1shNAnfhXQ2z8mkiASpQYevURFizKmoA"],"license":"UNLICENSED"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"src/WrappedVara.sol","id":80796,"exportedSymbols":{"ERC20BurnableUpgradeable":[42593],"ERC20PermitUpgradeable":[42762],"ERC20Upgradeable":[42531],"Initializable":[41914],"OwnableUpgradeable":[41646],"UUPSUpgradeable":[45567],"WrappedVara":[80795]},"nodeType":"SourceUnit","src":"39:2157:166","nodes":[{"id":80658,"nodeType":"PragmaDirective","src":"39:24:166","nodes":[],"literals":["solidity","^","0.8",".33"]},{"id":80660,"nodeType":"ImportDirective","src":"65:101:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80796,"sourceUnit":41647,"symbolAliases":[{"foreign":{"id":80659,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41646,"src":"73:18:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80662,"nodeType":"ImportDirective","src":"167:96:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":80796,"sourceUnit":41915,"symbolAliases":[{"foreign":{"id":80661,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41914,"src":"175:13:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80664,"nodeType":"ImportDirective","src":"264:102:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":80796,"sourceUnit":42532,"symbolAliases":[{"foreign":{"id":80663,"name":"ERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42531,"src":"272:16:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80666,"nodeType":"ImportDirective","src":"367:135:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80796,"sourceUnit":42594,"symbolAliases":[{"foreign":{"id":80665,"name":"ERC20BurnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42593,"src":"380:24:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80668,"nodeType":"ImportDirective","src":"503:131:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/ERC20PermitUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80796,"sourceUnit":42763,"symbolAliases":[{"foreign":{"id":80667,"name":"ERC20PermitUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42762,"src":"516:22:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80670,"nodeType":"ImportDirective","src":"635:88:166","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80796,"sourceUnit":45568,"symbolAliases":[{"foreign":{"id":80669,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45567,"src":"643:15:166","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80795,"nodeType":"ContractDefinition","src":"725:1470:166","nodes":[{"id":80685,"nodeType":"VariableDeclaration","src":"898:51:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_NAME","nameLocation":"922:10:166","scope":80795,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80683,"name":"string","nodeType":"ElementaryTypeName","src":"898:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"577261707065642056617261","id":80684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"935:14:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_985e2e9885ca23de2896caee5fad5adf116e2558361aa44c502ff8b2c1b2a41b","typeString":"literal_string \"Wrapped Vara\""},"value":"Wrapped Vara"},"visibility":"private"},{"id":80688,"nodeType":"VariableDeclaration","src":"955:46:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_SYMBOL","nameLocation":"979:12:166","scope":80795,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":80686,"name":"string","nodeType":"ElementaryTypeName","src":"955:6:166","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"5756415241","id":80687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"994:7:166","typeDescriptions":{"typeIdentifier":"t_stringliteral_203a7c23d1b412674989fae6808de72f52c6953d49ac548796ba3c05451693a4","typeString":"literal_string \"WVARA\""},"value":"WVARA"},"visibility":"private"},{"id":80691,"nodeType":"VariableDeclaration","src":"1007:57:166","nodes":[],"constant":true,"mutability":"constant","name":"TOKEN_INITIAL_SUPPLY","nameLocation":"1032:20:166","scope":80795,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80689,"name":"uint256","nodeType":"ElementaryTypeName","src":"1007:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"315f3030305f303030","id":80690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1055:9:166","typeDescriptions":{"typeIdentifier":"t_rational_1000000_by_1","typeString":"int_const 1000000"},"value":"1_000_000"},"visibility":"private"},{"id":80699,"nodeType":"FunctionDefinition","src":"1124:53:166","nodes":[],"body":{"id":80698,"nodeType":"Block","src":"1138:39:166","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80695,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41868,"src":"1148:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1148:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80697,"nodeType":"ExpressionStatement","src":"1148:22:166"}]},"documentation":{"id":80692,"nodeType":"StructuredDocumentation","src":"1071:48:166","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":80693,"nodeType":"ParameterList","parameters":[],"src":"1135:2:166"},"returnParameters":{"id":80694,"nodeType":"ParameterList","parameters":[],"src":"1138:0:166"},"scope":80795,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80733,"nodeType":"FunctionDefinition","src":"1183:297:166","nodes":[],"body":{"id":80732,"nodeType":"Block","src":"1244:236:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":80707,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80685,"src":"1267:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":80708,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80688,"src":"1279:12:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80706,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41982,"src":"1254:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":80709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1254:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80710,"nodeType":"ExpressionStatement","src":"1254:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80711,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42552,"src":"1302:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1302:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80713,"nodeType":"ExpressionStatement","src":"1302:22:166"},{"expression":{"arguments":[{"id":80715,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80701,"src":"1349:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80714,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"1334:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1334:28:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80717,"nodeType":"ExpressionStatement","src":"1334:28:166"},{"expression":{"arguments":[{"id":80719,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80685,"src":"1391:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80718,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42649,"src":"1372:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":80720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1372:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80721,"nodeType":"ExpressionStatement","src":"1372:30:166"},{"expression":{"arguments":[{"id":80723,"name":"initialOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80701,"src":"1419:12:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":80724,"name":"TOKEN_INITIAL_SUPPLY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80691,"src":"1433:20:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":80728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":80725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1456:2:166","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":80726,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[80779],"referencedDeclaration":80779,"src":"1462:8:166","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint8_$","typeString":"function () pure returns (uint8)"}},"id":80727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1462:10:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"1456:16:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1433:39:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80722,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42363,"src":"1413:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":80730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1413:60:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80731,"nodeType":"ExpressionStatement","src":"1413:60:166"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":80704,"kind":"modifierInvocation","modifierName":{"id":80703,"name":"initializer","nameLocations":["1232:11:166"],"nodeType":"IdentifierPath","referencedDeclaration":41754,"src":"1232:11:166"},"nodeType":"ModifierInvocation","src":"1232:11:166"}],"name":"initialize","nameLocation":"1192:10:166","parameters":{"id":80702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80701,"mutability":"mutable","name":"initialOwner","nameLocation":"1211:12:166","nodeType":"VariableDeclaration","scope":80733,"src":"1203:20:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80700,"name":"address","nodeType":"ElementaryTypeName","src":"1203:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1202:22:166"},"returnParameters":{"id":80705,"nodeType":"ParameterList","parameters":[],"src":"1244:0:166"},"scope":80795,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80760,"nodeType":"FunctionDefinition","src":"1538:218:166","nodes":[],"body":{"id":80759,"nodeType":"Block","src":"1596:160:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":80743,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80685,"src":"1619:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":80744,"name":"TOKEN_SYMBOL","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80688,"src":"1631:12:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80742,"name":"__ERC20_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41982,"src":"1606:12:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":80745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:38:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80746,"nodeType":"ExpressionStatement","src":"1606:38:166"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80747,"name":"__ERC20Burnable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42552,"src":"1654:20:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1654:22:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80749,"nodeType":"ExpressionStatement","src":"1654:22:166"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":80751,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41557,"src":"1701:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":80752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1701:7:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80750,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41506,"src":"1686:14:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1686:23:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80754,"nodeType":"ExpressionStatement","src":"1686:23:166"},{"expression":{"arguments":[{"id":80756,"name":"TOKEN_NAME","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80685,"src":"1738:10:166","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":80755,"name":"__ERC20Permit_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42649,"src":"1719:18:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":80757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:30:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80758,"nodeType":"ExpressionStatement","src":"1719:30:166"}]},"documentation":{"id":80734,"nodeType":"StructuredDocumentation","src":"1486:47:166","text":"@custom:oz-upgrades-validate-as-initializer"},"functionSelector":"6c2eb350","implemented":true,"kind":"function","modifiers":[{"id":80737,"kind":"modifierInvocation","modifierName":{"id":80736,"name":"onlyOwner","nameLocations":["1569:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"1569:9:166"},"nodeType":"ModifierInvocation","src":"1569:9:166"},{"arguments":[{"hexValue":"32","id":80739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1593:1:166","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":80740,"kind":"modifierInvocation","modifierName":{"id":80738,"name":"reinitializer","nameLocations":["1579:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":41801,"src":"1579:13:166"},"nodeType":"ModifierInvocation","src":"1579:16:166"}],"name":"reinitialize","nameLocation":"1547:12:166","parameters":{"id":80735,"nodeType":"ParameterList","parameters":[],"src":"1559:2:166"},"returnParameters":{"id":80741,"nodeType":"ParameterList","parameters":[],"src":"1596:0:166"},"scope":80795,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":80770,"nodeType":"FunctionDefinition","src":"1921:84:166","nodes":[],"body":{"id":80769,"nodeType":"Block","src":"2003:2:166","nodes":[],"statements":[]},"baseFunctions":[45521],"documentation":{"id":80761,"nodeType":"StructuredDocumentation","src":"1762:154:166","text":" @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract.\n Called by {upgradeToAndCall}."},"implemented":true,"kind":"function","modifiers":[{"id":80767,"kind":"modifierInvocation","modifierName":{"id":80766,"name":"onlyOwner","nameLocations":["1993:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"1993:9:166"},"nodeType":"ModifierInvocation","src":"1993:9:166"}],"name":"_authorizeUpgrade","nameLocation":"1930:17:166","overrides":{"id":80765,"nodeType":"OverrideSpecifier","overrides":[],"src":"1984:8:166"},"parameters":{"id":80764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80763,"mutability":"mutable","name":"newImplementation","nameLocation":"1956:17:166","nodeType":"VariableDeclaration","scope":80770,"src":"1948:25:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80762,"name":"address","nodeType":"ElementaryTypeName","src":"1948:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1947:27:166"},"returnParameters":{"id":80768,"nodeType":"ParameterList","parameters":[],"src":"2003:0:166"},"scope":80795,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80779,"nodeType":"FunctionDefinition","src":"2011:83:166","nodes":[],"body":{"id":80778,"nodeType":"Block","src":"2068:26:166","nodes":[],"statements":[{"expression":{"hexValue":"3132","id":80776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2085:2:166","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"functionReturnParameters":80775,"id":80777,"nodeType":"Return","src":"2078:9:166"}]},"baseFunctions":[42051],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2020:8:166","overrides":{"id":80772,"nodeType":"OverrideSpecifier","overrides":[],"src":"2043:8:166"},"parameters":{"id":80771,"nodeType":"ParameterList","parameters":[],"src":"2028:2:166"},"returnParameters":{"id":80775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80774,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80779,"src":"2061:5:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":80773,"name":"uint8","nodeType":"ElementaryTypeName","src":"2061:5:166","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2060:7:166"},"scope":80795,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":80794,"nodeType":"FunctionDefinition","src":"2100:93:166","nodes":[],"body":{"id":80793,"nodeType":"Block","src":"2159:34:166","nodes":[],"statements":[{"expression":{"arguments":[{"id":80789,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80781,"src":"2175:2:166","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80790,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80783,"src":"2179:6:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80788,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42363,"src":"2169:5:166","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":80791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:17:166","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80792,"nodeType":"ExpressionStatement","src":"2169:17:166"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[{"id":80786,"kind":"modifierInvocation","modifierName":{"id":80785,"name":"onlyOwner","nameLocations":["2149:9:166"],"nodeType":"IdentifierPath","referencedDeclaration":41541,"src":"2149:9:166"},"nodeType":"ModifierInvocation","src":"2149:9:166"}],"name":"mint","nameLocation":"2109:4:166","parameters":{"id":80784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80781,"mutability":"mutable","name":"to","nameLocation":"2122:2:166","nodeType":"VariableDeclaration","scope":80794,"src":"2114:10:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80780,"name":"address","nodeType":"ElementaryTypeName","src":"2114:7:166","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80783,"mutability":"mutable","name":"amount","nameLocation":"2134:6:166","nodeType":"VariableDeclaration","scope":80794,"src":"2126:14:166","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80782,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:166","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2113:28:166"},"returnParameters":{"id":80787,"nodeType":"ParameterList","parameters":[],"src":"2159:0:166"},"scope":80795,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":80671,"name":"Initializable","nameLocations":["753:13:166"],"nodeType":"IdentifierPath","referencedDeclaration":41914,"src":"753:13:166"},"id":80672,"nodeType":"InheritanceSpecifier","src":"753:13:166"},{"baseName":{"id":80673,"name":"ERC20Upgradeable","nameLocations":["772:16:166"],"nodeType":"IdentifierPath","referencedDeclaration":42531,"src":"772:16:166"},"id":80674,"nodeType":"InheritanceSpecifier","src":"772:16:166"},{"baseName":{"id":80675,"name":"ERC20BurnableUpgradeable","nameLocations":["794:24:166"],"nodeType":"IdentifierPath","referencedDeclaration":42593,"src":"794:24:166"},"id":80676,"nodeType":"InheritanceSpecifier","src":"794:24:166"},{"baseName":{"id":80677,"name":"OwnableUpgradeable","nameLocations":["824:18:166"],"nodeType":"IdentifierPath","referencedDeclaration":41646,"src":"824:18:166"},"id":80678,"nodeType":"InheritanceSpecifier","src":"824:18:166"},{"baseName":{"id":80679,"name":"ERC20PermitUpgradeable","nameLocations":["848:22:166"],"nodeType":"IdentifierPath","referencedDeclaration":42762,"src":"848:22:166"},"id":80680,"nodeType":"InheritanceSpecifier","src":"848:22:166"},{"baseName":{"id":80681,"name":"UUPSUpgradeable","nameLocations":["876:15:166"],"nodeType":"IdentifierPath","referencedDeclaration":45567,"src":"876:15:166"},"id":80682,"nodeType":"InheritanceSpecifier","src":"876:15:166"}],"canonicalName":"WrappedVara","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[80795,45567,44157,42762,43022,43740,44147,46222,41646,42593,42531,44199,46186,46160,42808,41914],"name":"WrappedVara","nameLocation":"734:11:166","scope":80796,"usedErrors":[41482,41487,41663,41666,42628,42635,42925,44169,44174,44179,44188,44193,44198,44751,44764,45424,45429,46696,48098,50025,50030,50035],"usedEvents":[41493,41671,44105,44127,46094,46103]}],"license":"UNLICENSED"},"id":166} \ No newline at end of file diff --git a/ethexe/ethereum/src/abi/mod.rs b/ethexe/ethereum/src/abi/mod.rs index 4f13d09285b..93f5af4622e 100644 --- a/ethexe/ethereum/src/abi/mod.rs +++ b/ethexe/ethereum/src/abi/mod.rs @@ -22,6 +22,8 @@ mod gear; use alloy::sol; pub use middleware_abi::*; pub use mirror_abi::*; +pub use mirror_abi_with_instrumentation::*; +pub use router_with_instrumentation_abi::IRouterWithInstrumentation; // TODO (breathx): remove this dummy hack to avoid reentrancy issues with // the `sol!` macro, dealing with internal libraries (e.g. 'Gear'). @@ -33,6 +35,14 @@ mod mirror_abi { ); } +mod mirror_abi_with_instrumentation { + alloy::sol!( + #[sol(rpc)] + IMirrorWithInstrumentation, + "abi/MirrorWithInstrumentation.json" + ); +} + pub mod middleware_abi { alloy::sol!( #[sol(rpc)] @@ -48,6 +58,15 @@ sol!( "abi/Router.json" ); +mod router_with_instrumentation_abi { + alloy::sol!( + #[allow(clippy::too_many_arguments)] + #[sol(rpc)] + IRouterWithInstrumentation, + "abi/RouterWithInstrumentation.json" + ); +} + sol!( #[sol(rpc)] IERC1967Proxy, diff --git a/ethexe/ethereum/src/benchmarking/context.rs b/ethexe/ethereum/src/benchmarking/context.rs new file mode 100644 index 00000000000..f37c60b81da --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/context.rs @@ -0,0 +1,586 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use crate::{ + abi::{Gear, utils}, + benchmarking::{ + contracts::{ContractImplKind, ExecutionMode, Router, WrappedVara}, + extensions::CalldataGasExt, + inspector::SimulationInspector, + mnemonic, + }, +}; +use alloy::sol_types::SolValue; +use anyhow::Result; +use ethexe_common::{ + Announce, HashOf, + gear::{ChainCommitment, CodeCommitment, Message, StateTransition, ValueClaim}, +}; +use gprimitives::{ActorId, CodeId, H256}; +use gsigner::secp256k1::{PublicKey, Signer}; +use revm::{ + DatabaseRef, ExecuteCommitEvm, MainBuilder, MainContext, MainnetEvm, + context::{BlockEnv, CfgEnv, Context, ContextTr, JournalTr, TxEnv}, + database::CacheDB, + database_interface::EmptyDB, + primitives::{Address, Bytes, U256}, +}; + +pub struct SimulationContext { + evm: MainnetEvm>, SimulationInspector>, + block_number: U256, + block_timestamp: U256, + deployer_address: Address, + deployer_nonce: u64, + validators_with_keys: Vec<(Signer, PublicKey, Address)>, +} + +impl SimulationContext { + const VALIDATOR_COUNT: u32 = 4; + const MIRROR_DEPLOYMENT_NONCE_OFFSET: u64 = 2; + + const PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER: u32 = 3; + const PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER: u32 = 4; + + pub fn new() -> Result { + let block_number = U256::ZERO; + let block_timestamp = U256::ZERO; + + let mut evm = Context::mainnet() + .with_db(CacheDB::::default()) + .with_block(BlockEnv { + number: block_number, + timestamp: block_timestamp, + ..Default::default() + }) + .build_mainnet_with_inspector(SimulationInspector::default()); + + let (_, _, deployer_address) = mnemonic::derive_signer(0)?; + let deployer_nonce = 0; + + let journal = evm.journal_mut(); + journal.balance_incr(deployer_address, u64::MAX.try_into().expect("infallible"))?; + let state = journal.finalize(); + evm.commit(state); + + let validators_with_keys = (1..=Self::VALIDATOR_COUNT) + .map(mnemonic::derive_signer) + .collect::>>()?; + + Ok(Self { + evm, + block_number, + block_timestamp, + deployer_address, + deployer_nonce, + validators_with_keys, + }) + } + + pub fn initialize(&mut self) -> Result> { + let wrapped_vara = WrappedVara::deploy(self)?; + + let precomputed_mirror_impl = self.deployer_address.create( + self.deployer_nonce + .checked_add(Self::MIRROR_DEPLOYMENT_NONCE_OFFSET) + .expect("infallible"), + ); + + let mut router = Router::deploy(self, precomputed_mirror_impl, &wrapped_vara)?; + + router.lookup_genesis_hash()?; + + for _ in 0..10 { + router.commit_batch_simple(None, vec![], ExecutionMode::ExecuteAndCommit)?; + } + + let validated_code_id = router.request_code_validation(b"code1")?; + router.commit_batch_simple( + None, + vec![CodeCommitment { + id: validated_code_id, + valid: true, + }], + ExecutionMode::ExecuteAndCommit, + )?; + + let validation_requested_code_id = router.request_code_validation(b"code2")?; + + let uninitialized_actor_id = + router.create_program(validated_code_id, H256([0x01; 32]), None)?; + + let journal = router.context().evm().journal_mut(); + journal.balance_incr( + uninitialized_actor_id.to_address_lossy().0.into(), + u64::MAX.try_into().expect("infallible"), + )?; + let state = journal.finalize(); + router.context().evm().commit(state); + + let initialized_actor_id = + router.create_program(validated_code_id, H256([0x02; 32]), None)?; + + let journal = router.context().evm().journal_mut(); + journal.balance_incr( + initialized_actor_id.to_address_lossy().0.into(), + u64::MAX.try_into().expect("infallible"), + )?; + let state = journal.finalize(); + router.context().evm().commit(state); + + let state_transition = Self::state_transition(initialized_actor_id); + let head_announce = Self::head_announce(); + + router.commit_batch_simple( + Some(ChainCommitment { + transitions: vec![state_transition.clone()], + head_announce, + }), + vec![], + ExecutionMode::ExecuteAndCommit, + )?; + + Ok(InitializedSimulationContext { + router, + validated_code_id, + validation_requested_code_id, + uninitialized_actor_id, + initialized_actor_id, + }) + } + + pub fn evm( + &mut self, + ) -> &mut MainnetEvm>, SimulationInspector> + { + &mut self.evm + } + + pub fn block_number(&self) -> U256 { + self.block_number + } + + fn block_timestamp(&self) -> U256 { + self.block_timestamp + } + + pub fn block_timestamp_u64(&self) -> u64 { + self.block_timestamp().try_into().expect("infallible") + } + + pub fn block_hash(&self, number: U256) -> Result { + Ok(self + .evm + .ctx + .db_ref() + .block_hash_ref(number.try_into().expect("infallible"))? + .0 + .into()) + } + + pub fn parent_block_hash(&self) -> Result { + self.block_hash( + self.block_number + .checked_sub(U256::ONE) + .expect("infallible"), + ) + } + + pub fn parent_block_timestamp_u64(&self) -> u64 { + self.block_timestamp_u64() + .checked_sub(1) + .expect("infallible") + } + + pub fn next_block(&mut self) { + self.evm.modify_block(|block_env| { + let one = U256::ONE; + + self.block_number += one; + block_env.number += one; + + self.block_timestamp += one; + block_env.timestamp += one; + }); + } + + pub fn prev_block(&mut self) { + self.evm.modify_block(|block_env| { + let one = U256::ONE; + + if self.block_number > U256::ZERO { + self.block_number -= one; + block_env.number -= one; + } + + if self.block_timestamp > U256::ZERO { + self.block_timestamp -= one; + block_env.timestamp -= one; + } + }); + } + + pub fn deployer_address(&self) -> Address { + self.deployer_address + } + + pub fn deployer_nonce(&self) -> u64 { + self.deployer_nonce + } + + pub fn increment_deployer_nonce(&mut self) { + self.deployer_nonce += 1; + } + + pub fn validators_with_keys(&self) -> &[(Signer, PublicKey, Address)] { + &self.validators_with_keys + } + + pub fn validators(&self) -> Vec
{ + self.validators_with_keys + .iter() + .map(|(_, _, address)| *address) + .collect() + } + + pub fn min_signers(&self) -> u16 { + self.max_signers() + .checked_mul(2) + .expect("multiplication failed") + .div_ceil(3) + } + + fn max_signers(&self) -> u16 { + self.validators_with_keys + .len() + .try_into() + .expect("conversion failed") + } + + fn state_transition(actor_id: ActorId) -> StateTransition { + StateTransition { + actor_id, + new_state_hash: H256::random(), + exited: false, + inheritor: ActorId::zero(), + value_to_receive: 0, + value_to_receive_negative_sign: false, + value_claims: vec![], + messages: vec![], + } + } + + fn head_announce() -> HashOf { + unsafe { HashOf::new(H256([0x01; 32])) } + } +} + +pub struct InitializedSimulationContext<'a> { + router: Router<'a>, + validated_code_id: CodeId, + validation_requested_code_id: CodeId, + uninitialized_actor_id: ActorId, + initialized_actor_id: ActorId, +} + +impl<'a> InitializedSimulationContext<'a> { + pub fn uninitialized_actor_id(&self) -> ActorId { + self.uninitialized_actor_id + } + + pub fn initialized_actor_id(&self) -> ActorId { + self.initialized_actor_id + } + + pub fn switch_to_impl(&mut self, contract_impl_kind: ContractImplKind) -> Result<()> { + self.router.switch_to_impl(contract_impl_kind) + } + + pub fn empty_batch_gas(&mut self) -> Result { + let empty_batch_gas = self + .router + .estimate_commit_batch_gas(None, vec![], ExecutionMode::Execute)? + .total_tx_gas(); + Ok(empty_batch_gas) + } + + pub fn code_commitment_gas(&mut self) -> Result { + const COMMIT_BATCH_BEFORE_COMMIT_CODES: u32 = 1; + const COMMIT_BATCH_AFTER_COMMIT_CODES: u32 = 2; + + let code_commitment = CodeCommitment { + id: self.validation_requested_code_id, + valid: true, + }; + let alloy_code_commitment: Gear::CodeCommitment = code_commitment.clone().into(); + let calldata: Bytes = alloy_code_commitment.abi_encode().into(); + let calldata_gas = calldata.calldata_gas().total_gas(); + + let code_commitment_gas = self.router.estimate_commit_batch_gas_between_topics( + None, + vec![code_commitment], + self.router.proxy_address(), + COMMIT_BATCH_BEFORE_COMMIT_CODES, + COMMIT_BATCH_AFTER_COMMIT_CODES, + )?; + Ok(code_commitment_gas + .execution_gas + .checked_add(calldata_gas) + .expect("infallible")) + } + + fn state_transition(actor_id: ActorId) -> StateTransition { + StateTransition { + actor_id, + new_state_hash: H256::random(), + exited: false, + inheritor: ActorId::zero(), + value_to_receive: 0, + value_to_receive_negative_sign: false, + value_claims: vec![], + messages: vec![], + } + } + + fn head_announce() -> HashOf { + unsafe { HashOf::new(H256([0x01; 32])) } + } + + pub fn state_transition_actor_id_gas(&mut self, actor_id: ActorId) -> u64 { + let alloy_actor_id: Address = actor_id.into(); + let calldata: Bytes = alloy_actor_id.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_new_state_hash_gas(&mut self, new_state_hash: H256) -> u64 { + let alloy_new_state_hash = utils::h256_to_bytes32(new_state_hash); + let calldata: Bytes = alloy_new_state_hash.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_exited_gas(&mut self, exited: bool) -> u64 { + let calldata: Bytes = exited.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_inheritor_gas(&mut self, inheritor: ActorId) -> u64 { + let alloy_inheritor: Address = inheritor.into(); + let calldata: Bytes = alloy_inheritor.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_value_to_receive_gas(&mut self, value_to_receive: u128) -> u64 { + let calldata: Bytes = value_to_receive.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_value_to_receive_negative_sign_gas( + &mut self, + value_to_receive_negative_sign: bool, + ) -> u64 { + let calldata: Bytes = value_to_receive_negative_sign.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_value_claims_gas(&mut self, value_claims: Vec) -> u64 { + let alloy_value_claims: Vec = + value_claims.into_iter().map(Into::into).collect(); + let calldata: Bytes = alloy_value_claims.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn state_transition_messages_gas(&mut self, messages: Vec) -> u64 { + let alloy_messages: Vec = messages.into_iter().map(Into::into).collect(); + let calldata: Bytes = alloy_messages.abi_encode().into(); + calldata.calldata_gas().total_gas() + } + + pub fn verify_actor_id_gas(&mut self) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID: u32 = 1; + const PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID: u32 = 2; + + let verify_actor_id_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![Self::state_transition(self.initialized_actor_id)], + head_announce: Self::head_announce(), + }), + vec![], + self.initialized_actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_VERIFY_ACTOR_ID, + PERFORM_STATE_TRANSITION_AFTER_VERIFY_ACTOR_ID, + )?; + Ok(verify_actor_id_gas.execution_gas) + } + + pub fn retrieve_ether_gas( + &mut self, + value_to_receive: u128, + value_to_receive_negative_sign: bool, + ) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER: u32 = 3; + const PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER: u32 = 4; + + let retrieve_ether_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![StateTransition { + value_to_receive, + value_to_receive_negative_sign, + ..Self::state_transition(self.initialized_actor_id) + }], + head_announce: Self::head_announce(), + }), + vec![], + self.initialized_actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_RETRIEVE_ETHER, + PERFORM_STATE_TRANSITION_AFTER_RETRIEVE_ETHER, + )?; + Ok(retrieve_ether_gas.execution_gas) + } + + pub fn send_message_gas(&mut self, message: Message) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES: u32 = 5; + const PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES: u32 = 6; + + let alloy_message: Gear::Message = message.clone().into(); + let calldata: Bytes = alloy_message.abi_encode().into(); + let calldata_gas = calldata.calldata_gas().total_gas(); + + let send_message_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![StateTransition { + messages: vec![message.clone()], + ..Self::state_transition(self.initialized_actor_id) + }], + head_announce: Self::head_announce(), + }), + vec![], + self.initialized_actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_SEND_MESSAGES, + PERFORM_STATE_TRANSITION_AFTER_SEND_MESSAGES, + )?; + + if message.call { + const CALL_GAS: u64 = 500_000; + + Ok(send_message_gas + .execution_gas + .checked_add(calldata_gas) + .expect("infallible") + .checked_add(CALL_GAS) + .expect("infallible")) + } else { + Ok(send_message_gas + .execution_gas + .checked_add(calldata_gas) + .expect("infallible")) + } + } + + pub fn value_claim_gas(&mut self, value_claim: ValueClaim) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES: u32 = 7; + const PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES: u32 = 8; + + let alloy_value_claim: Gear::ValueClaim = value_claim.clone().into(); + let calldata: Bytes = alloy_value_claim.abi_encode().into(); + let calldata_gas = calldata.calldata_gas().total_gas(); + + let value_claim_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![StateTransition { + value_claims: vec![value_claim.clone()], + ..Self::state_transition(self.initialized_actor_id) + }], + head_announce: Self::head_announce(), + }), + vec![], + self.initialized_actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_CLAIM_VALUES, + PERFORM_STATE_TRANSITION_AFTER_CLAIM_VALUES, + )?; + + Ok(value_claim_gas + .execution_gas + .checked_add(calldata_gas) + .expect("infallible")) + } + + pub fn set_inheritor_gas(&mut self, inheritor: Option) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR: u32 = 9; + const PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR: u32 = 10; + + let set_inheritor_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![StateTransition { + exited: inheritor.is_some(), + inheritor: inheritor.unwrap_or_default(), + ..Self::state_transition(self.initialized_actor_id) + }], + head_announce: Self::head_announce(), + }), + vec![], + self.initialized_actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_SET_INHERITOR, + PERFORM_STATE_TRANSITION_AFTER_SET_INHERITOR, + )?; + + Ok(set_inheritor_gas.execution_gas) + } + + pub fn update_state_hash_gas( + &mut self, + actor_id: ActorId, + new_state_hash: H256, + ) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH: u32 = 11; + const PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH: u32 = 12; + + let update_state_hash_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![StateTransition { + new_state_hash, + ..Self::state_transition(actor_id) + }], + head_announce: Self::head_announce(), + }), + vec![], + actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_UPDATE_STATE_HASH, + PERFORM_STATE_TRANSITION_AFTER_UPDATE_STATE_HASH, + )?; + + Ok(update_state_hash_gas.execution_gas) + } + + pub fn state_transition_hash_gas(&mut self) -> Result { + const PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH: u32 = 13; + const PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH: u32 = 14; + + let state_transition_hash_gas = self.router.estimate_commit_batch_gas_between_topics( + Some(ChainCommitment { + transitions: vec![Self::state_transition(self.initialized_actor_id)], + head_announce: Self::head_announce(), + }), + vec![], + self.initialized_actor_id.into(), + PERFORM_STATE_TRANSITION_BEFORE_RETURN_HASH, + PERFORM_STATE_TRANSITION_AFTER_RETURN_HASH, + )?; + + Ok(state_transition_hash_gas.execution_gas) + } +} diff --git a/ethexe/ethereum/src/benchmarking/contracts/mirror_impl.rs b/ethexe/ethereum/src/benchmarking/contracts/mirror_impl.rs new file mode 100644 index 00000000000..2598cd5f745 --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/contracts/mirror_impl.rs @@ -0,0 +1,122 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use crate::{ + abi::{IMirror, IMirrorWithInstrumentation}, + benchmarking::{SimulationContext, contracts::ExecutionMode}, +}; +use alloy::sol_types::SolConstructor; +use anyhow::{Result, anyhow, bail}; +use revm::{ + ExecuteCommitEvm, ExecuteEvm, InspectEvm, + context::TxEnv, + context_interface::result::{ExecutionResult, Output}, + primitives::{Address, Bytes}, +}; + +pub struct MirrorImpl { + address: Address, + mirror_impl_bytecode: Bytes, + mirror_impl_with_instrumentation_bytecode: Bytes, +} + +impl MirrorImpl { + pub fn deploy(context: &mut SimulationContext, router_proxy: Address) -> Result { + let (_, mirror_impl_bytecode) = Self::deploy_with_execution_mode( + context, + router_proxy, + &IMirror::BYTECODE[..], + ExecutionMode::Execute, + )?; + let (_, mirror_impl_with_instrumentation_bytecode) = Self::deploy_with_execution_mode( + context, + router_proxy, + &IMirrorWithInstrumentation::BYTECODE[..], + ExecutionMode::Execute, + )?; + + let (mirror_impl, _) = Self::deploy_with_execution_mode( + context, + router_proxy, + &IMirror::BYTECODE[..], + ExecutionMode::ExecuteAndCommit, + )?; + + Ok(Self { + address: mirror_impl, + mirror_impl_bytecode, + mirror_impl_with_instrumentation_bytecode, + }) + } + + fn deploy_with_execution_mode( + context: &mut SimulationContext, + router_proxy: Address, + bytecode: &[u8], + execution_mode: ExecutionMode, + ) -> Result<(Address, Bytes)> { + let tx = TxEnv::builder() + .caller(context.deployer_address()) + .create() + .data( + [ + bytecode, + &SolConstructor::abi_encode(&IMirror::constructorCall { + _router: router_proxy, + })[..], + ] + .concat() + .into(), + ) + .nonce(context.deployer_nonce()) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?; + + let execution_result = match execution_mode { + ExecutionMode::Execute => context.evm().transact(tx)?.result, + ExecutionMode::ExecuteAndCommit => context.evm().transact_commit(tx)?, + ExecutionMode::ExecuteAndInspect => context.evm().inspect_tx(tx)?.result, + }; + + let ExecutionResult::Success { + output: Output::Create(mirror_impl_bytecode, Some(mirror_impl)), + .. + } = execution_result + else { + bail!("failed to deploy Mirror contract"); + }; + + if let ExecutionMode::ExecuteAndCommit = execution_mode { + context.increment_deployer_nonce(); + } + + Ok((mirror_impl, mirror_impl_bytecode)) + } + + pub fn address(&self) -> Address { + self.address + } + + pub fn mirror_impl_bytecode(&self) -> &Bytes { + &self.mirror_impl_bytecode + } + + pub fn mirror_impl_with_instrumentation_bytecode(&self) -> &Bytes { + &self.mirror_impl_with_instrumentation_bytecode + } +} diff --git a/ethexe/ethereum/src/benchmarking/contracts/mod.rs b/ethexe/ethereum/src/benchmarking/contracts/mod.rs new file mode 100644 index 00000000000..341cf5d6ea8 --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/contracts/mod.rs @@ -0,0 +1,27 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +pub use mirror_impl::MirrorImpl; +pub use router::{ContractImplKind, ExecutionMode, Router}; +pub use router_impl::RouterImpl; +pub use wvara::WrappedVara; + +mod mirror_impl; +mod router; +mod router_impl; +mod wvara; diff --git a/ethexe/ethereum/src/benchmarking/contracts/router.rs b/ethexe/ethereum/src/benchmarking/contracts/router.rs new file mode 100644 index 00000000000..c9edceaed9b --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/contracts/router.rs @@ -0,0 +1,556 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use crate::{ + abi::{Gear, IERC1967Proxy, IRouter}, + benchmarking::{ + SimulationContext, + contracts::{MirrorImpl, RouterImpl, WrappedVara}, + extensions::CalldataGasExt, + }, +}; +use alloy::sol_types::{SolCall, SolConstructor}; +use anyhow::{Result, anyhow, bail}; +use ethexe_common::{ + Digest, ToDigest, + gear::{BatchCommitment, ChainCommitment, CodeCommitment, SignatureType}, +}; +use gear_core::ids::prelude::CodeIdExt as _; +use gprimitives::{ActorId, CodeId, H256}; +use gsigner::secp256k1::Secp256k1SignerExt; +use revm::{ + ExecuteCommitEvm, ExecuteEvm, InspectEvm, + bytecode::Bytecode, + context::{ContextTr, JournalTr, TxEnv}, + context_interface::result::{ExecutionResult, Output}, + primitives::{Address, B256, Bytes, U256, eip4844::VERSIONED_HASH_VERSION_KZG}, +}; + +#[derive(Debug, Clone, Copy)] +pub enum ContractImplKind { + Regular, + WithInstrumentation, +} + +#[derive(Debug)] +pub struct GasResult { + pub execution_gas: u64, + pub calldata_gas: u64, +} + +impl GasResult { + pub fn total_gas(&self) -> u64 { + self.execution_gas + .checked_add(self.calldata_gas) + .expect("infallible") + } + + pub fn total_tx_gas(&self) -> u64 { + const BASE_FEE: u64 = 21_000; + self.total_gas().checked_add(BASE_FEE).expect("infallible") + } +} + +#[derive(Debug)] +pub enum ExecutionMode { + Execute, + ExecuteAndCommit, + ExecuteAndInspect, +} + +pub struct Router<'a> { + context: &'a mut SimulationContext, + router_impl: RouterImpl, + proxy_address: Address, + mirror_impl: MirrorImpl, +} + +impl<'a> Router<'a> { + pub fn deploy( + context: &'a mut SimulationContext, + precomputed_mirror_impl: Address, + wrapped_vara: &WrappedVara, + ) -> Result { + let router_impl = RouterImpl::deploy(context)?; + + context.next_block(); + + let middleware_address = Address::ZERO; + let aggregated_public_key = Gear::AggregatedPublicKey { + x: "0x1b84c5567b126440995d3ed5aaba0565d71e1834604819ff9c17f5e9d5dd078f".parse()?, + y: "0x70beaf8f588b541507fed6a642c5ab42dfdf8120a7f639de5122d47a69a8e8d1".parse()?, + }; + + let router_proxy = Self::deploy_proxy( + context, + router_impl.address(), + precomputed_mirror_impl, + wrapped_vara, + middleware_address, + aggregated_public_key, + context.validators(), + )?; + + let journal = context.evm().journal_mut(); + journal.balance_incr(router_proxy, u64::MAX.try_into().expect("infallible"))?; + let state = journal.finalize(); + context.evm().commit(state); + + let mirror_impl = MirrorImpl::deploy(context, router_proxy)?; + assert_eq!(mirror_impl.address(), precomputed_mirror_impl); + + Ok(Self { + context, + router_impl, + proxy_address: router_proxy, + mirror_impl, + }) + } + + fn deploy_proxy( + context: &mut SimulationContext, + router_impl: Address, + mirror_impl: Address, + wrapped_vara: &WrappedVara, + middleware_address: Address, + aggregated_public_key: Gear::AggregatedPublicKey, + validators: Vec
, + ) -> Result
{ + let deployer_address = context.deployer_address(); + let deployer_nonce = context.deployer_nonce(); + + let ExecutionResult::Success { + output: Output::Create(_, Some(router_proxy)), + .. + } = context.evm().transact_commit( + TxEnv::builder() + .caller(deployer_address) + .create() + .data( + [ + &IERC1967Proxy::BYTECODE[..], + &SolConstructor::abi_encode(&IERC1967Proxy::constructorCall { + implementation: router_impl, + _data: Bytes::copy_from_slice( + &IRouter::initializeCall { + _owner: deployer_address, + _mirror: mirror_impl, + _wrappedVara: wrapped_vara.proxy_address(), + _middleware: middleware_address, + _eraDuration: U256::from(24 * 60 * 60), + _electionDuration: U256::from(2 * 60 * 60), + _validationDelay: U256::from(5 * 60), + _aggregatedPublicKey: aggregated_public_key, + _verifiableSecretSharingCommitment: Bytes::new(), + _validators: validators, + } + .abi_encode(), + ), + })[..], + ] + .concat() + .into(), + ) + .nonce(deployer_nonce) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + else { + bail!("failed to deploy TransparentUpgradeableProxy contract (Router proxy)"); + }; + + context.increment_deployer_nonce(); + + Ok(router_proxy) + } + + pub fn context(&mut self) -> &mut SimulationContext { + self.context + } + + pub fn router_impl(&self) -> &RouterImpl { + &self.router_impl + } + + pub fn proxy_address(&self) -> Address { + self.proxy_address + } + + fn mirror_impl(&self) -> &MirrorImpl { + &self.mirror_impl + } + + fn switch_to_mirror_impl(&mut self, kind: ContractImplKind) -> Result<()> { + let mirror_impl = self.mirror_impl(); + let address = mirror_impl.address(); + let code = Bytecode::new_legacy( + match kind { + ContractImplKind::Regular => mirror_impl.mirror_impl_bytecode(), + ContractImplKind::WithInstrumentation => { + mirror_impl.mirror_impl_with_instrumentation_bytecode() + } + } + .clone(), + ); + + let journal = self.context.evm().journal_mut(); + journal.load_account(address)?; + journal.set_code(address, code); + let state = journal.finalize(); + self.context.evm().commit(state); + + Ok(()) + } + + fn switch_to_router_impl(&mut self, kind: ContractImplKind) -> Result<()> { + let address = self.router_impl.address(); + let code = Bytecode::new_legacy( + match kind { + ContractImplKind::Regular => self.router_impl.router_impl_bytecode(), + ContractImplKind::WithInstrumentation => { + self.router_impl.router_impl_with_instrumentation_bytecode() + } + } + .clone(), + ); + + let journal = self.context.evm().journal_mut(); + journal.load_account(address)?; + journal.set_code(address, code); + let state = journal.finalize(); + self.context.evm().commit(state); + + Ok(()) + } + + pub fn switch_to_impl(&mut self, contract_impl_kind: ContractImplKind) -> Result<()> { + self.switch_to_mirror_impl(contract_impl_kind)?; + self.switch_to_router_impl(contract_impl_kind)?; + Ok(()) + } + + fn latest_committed_batch_hash(&mut self) -> Result { + let deployer_address = self.context.deployer_address(); + let deployer_nonce = self.context.deployer_nonce(); + + let proxy_address = self.proxy_address(); + + let ExecutionResult::Success { + output: Output::Call(hash), + .. + } = self + .context + .evm() + .transact( + TxEnv::builder() + .caller(deployer_address) + .call(proxy_address) + .data(IRouter::latestCommittedBatchHashCall {}.abi_encode().into()) + .nonce(deployer_nonce) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + .result + else { + bail!("failed to get latest committed batch hash"); + }; + + Ok(Digest(H256::from_slice(&hash).to_fixed_bytes())) + } + + pub fn lookup_genesis_hash(&mut self) -> Result<()> { + let deployer_address = self.context.deployer_address(); + let deployer_nonce = self.context.deployer_nonce(); + + let proxy_address = self.proxy_address(); + + self.context.next_block(); + + let ExecutionResult::Success { .. } = self.context.evm().transact_commit( + TxEnv::builder() + .caller(deployer_address) + .call(proxy_address) + .data(IRouter::lookupGenesisHashCall {}.abi_encode().into()) + .nonce(deployer_nonce) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + else { + bail!("failed to lookup genesis hash"); + }; + + self.context.increment_deployer_nonce(); + + Ok(()) + } + + pub fn request_code_validation(&mut self, code: &[u8]) -> Result { + let deployer_address = self.context.deployer_address(); + let deployer_nonce = self.context.deployer_nonce(); + + let proxy_address = self.proxy_address(); + let code_id = CodeId::generate(code); + + let ExecutionResult::Success { .. } = self.context.evm().transact_commit( + TxEnv::builder() + .caller(deployer_address) + .call(proxy_address) + .data( + IRouter::requestCodeValidationCall { + _codeId: code_id.into_bytes().into(), + } + .abi_encode() + .into(), + ) + .nonce(deployer_nonce) + .blob_hashes(vec![B256::from([VERSIONED_HASH_VERSION_KZG; 32])]) + .max_fee_per_blob_gas(1) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + else { + bail!("failed to request code validation"); + }; + + self.context.increment_deployer_nonce(); + + Ok(code_id) + } + + pub fn create_program( + &mut self, + code_id: CodeId, + salt: H256, + override_initializer: Option, + ) -> Result { + let deployer_address = self.context.deployer_address(); + let deployer_nonce = self.context.deployer_nonce(); + + let proxy_address = self.proxy_address(); + + let ExecutionResult::Success { + output: Output::Call(actor_id), + .. + } = self.context.evm().transact_commit( + TxEnv::builder() + .caller(deployer_address) + .call(proxy_address) + .data( + IRouter::createProgramCall { + _codeId: code_id.into_bytes().into(), + _salt: salt.0.into(), + _overrideInitializer: override_initializer + .map(|initializer| initializer.to_address_lossy().0.into()) + .unwrap_or_default(), + } + .abi_encode() + .into(), + ) + .nonce(deployer_nonce) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + else { + bail!("failed to create program"); + }; + + self.context.increment_deployer_nonce(); + + Ok(actor_id.as_ref().try_into().expect("infallible")) + } + + fn commit_batch_tx(&mut self, batch: BatchCommitment) -> Result<(u64, TxEnv)> { + let batch_digest = batch.to_digest(); + + let signatures = self + .context + .validators_with_keys() + .iter() + .map(|(signer, pubkey, _)| { + Bytes::from( + signer + .sign_for_contract_digest( + self.proxy_address().into(), + *pubkey, + batch_digest, + None, + ) + .expect("infallible") + .into_pre_eip155_bytes(), + ) + }) + .take(self.context.min_signers() as _) + .collect::>(); + + let data: Bytes = IRouter::commitBatchCall { + _batch: batch.into(), + _signatureType: SignatureType::ECDSA as u8, + _signatures: signatures, + } + .abi_encode() + .into(); + + let calldata_gas = data.calldata_gas().total_gas(); + + let tx = TxEnv::builder() + .caller(self.context.deployer_address()) + .call(self.proxy_address()) + .data(data) + .nonce(self.context.deployer_nonce()) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?; + + Ok((calldata_gas, tx)) + } + + fn commit_batch( + &mut self, + batch: BatchCommitment, + execution_mode: ExecutionMode, + ) -> Result { + let (calldata_gas, tx) = self.commit_batch_tx(batch)?; + + let execution_result = match execution_mode { + ExecutionMode::Execute => self.context.evm().transact(tx)?.result, + ExecutionMode::ExecuteAndCommit => self.context.evm().transact_commit(tx)?, + ExecutionMode::ExecuteAndInspect => self.context.evm().inspect_tx(tx)?.result, + }; + let ExecutionResult::Success { + gas_used: execution_gas, + .. + } = execution_result + else { + bail!("failed to commit batch"); + }; + + if let ExecutionMode::ExecuteAndCommit = execution_mode { + self.context.increment_deployer_nonce(); + } + + const BASE_FEE: u64 = 21_000; + + let execution_gas = execution_gas + .checked_sub(BASE_FEE) + .expect("infallible") + .checked_sub(calldata_gas) + .expect("infallible"); + + Ok(GasResult { + execution_gas, + calldata_gas, + }) + } + + pub fn commit_batch_simple( + &mut self, + chain_commitment: Option, + code_commitments: Vec, + execution_mode: ExecutionMode, + ) -> Result<()> { + self.context.next_block(); + + let latest_committed_batch_hash = self.latest_committed_batch_hash()?; + + self.commit_batch( + BatchCommitment { + block_hash: self.context.parent_block_hash()?, + timestamp: self.context.parent_block_timestamp_u64(), + previous_batch: latest_committed_batch_hash, + expiry: 1, + chain_commitment, + code_commitments, + validators_commitment: None, + rewards_commitment: None, + }, + execution_mode, + )?; + + Ok(()) + } + + pub fn estimate_commit_batch_gas_between_topics( + &mut self, + chain_commitment: Option, + code_commitments: Vec, + contract_address: Address, + start_topic: u32, + end_topic: u32, + ) -> Result { + self.context.evm().inspector.topic_bounded_gas_inspector( + contract_address, + U256::try_from(start_topic).expect("infallible").into(), + U256::try_from(end_topic).expect("infallible").into(), + ); + + let GasResult { calldata_gas, .. } = self.estimate_commit_batch_gas( + chain_commitment, + code_commitments, + ExecutionMode::ExecuteAndInspect, + )?; + let execution_gas = self.context.evm().inspector.gas_diff().expect("infallible"); + + Ok(GasResult { + execution_gas, + calldata_gas, + }) + } + + pub fn estimate_commit_batch_gas( + &mut self, + chain_commitment: Option, + code_commitments: Vec, + execution_mode: ExecutionMode, + ) -> Result { + let expiry = 3; + + for _ in 0..expiry { + self.context.next_block(); + } + + let latest_committed_batch_hash = self.latest_committed_batch_hash()?; + + let gas_result = self.commit_batch( + BatchCommitment { + block_hash: self.context.block_hash( + self.context + .block_number() + .checked_sub(U256::from(3)) + .expect("infallible"), + )?, + timestamp: self + .context + .block_timestamp_u64() + .checked_sub(3) + .expect("infallible"), + previous_batch: latest_committed_batch_hash, + expiry, + chain_commitment, + code_commitments, + validators_commitment: None, + rewards_commitment: None, + }, + execution_mode, + )?; + + for _ in 0..expiry { + self.context.prev_block(); + } + + Ok(gas_result) + } +} diff --git a/ethexe/ethereum/src/benchmarking/contracts/router_impl.rs b/ethexe/ethereum/src/benchmarking/contracts/router_impl.rs new file mode 100644 index 00000000000..67c5c7e97b3 --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/contracts/router_impl.rs @@ -0,0 +1,108 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use crate::{ + abi::{IRouter, IRouterWithInstrumentation}, + benchmarking::{SimulationContext, contracts::ExecutionMode}, +}; +use anyhow::{Result, anyhow, bail}; +use revm::{ + ExecuteCommitEvm, ExecuteEvm, InspectEvm, + context::TxEnv, + context_interface::result::{ExecutionResult, Output}, + primitives::{Address, Bytes}, +}; + +pub struct RouterImpl { + address: Address, + router_impl_bytecode: Bytes, + router_impl_with_instrumentation_bytecode: Bytes, +} + +impl RouterImpl { + pub fn deploy(context: &mut SimulationContext) -> Result { + let (_, router_impl_bytecode) = Self::deploy_with_execution_mode( + context, + &IRouter::BYTECODE[..], + ExecutionMode::Execute, + )?; + let (_, router_impl_with_instrumentation_bytecode) = Self::deploy_with_execution_mode( + context, + &IRouterWithInstrumentation::BYTECODE[..], + ExecutionMode::Execute, + )?; + + let (router_impl, _) = Self::deploy_with_execution_mode( + context, + &IRouter::BYTECODE[..], + ExecutionMode::ExecuteAndCommit, + )?; + + Ok(Self { + address: router_impl, + router_impl_bytecode, + router_impl_with_instrumentation_bytecode, + }) + } + + fn deploy_with_execution_mode( + context: &mut SimulationContext, + bytecode: &[u8], + execution_mode: ExecutionMode, + ) -> Result<(Address, Bytes)> { + let tx = TxEnv::builder() + .caller(context.deployer_address()) + .create() + .data(Bytes::copy_from_slice(bytecode)) + .nonce(context.deployer_nonce()) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?; + + let execution_result = match execution_mode { + ExecutionMode::Execute => context.evm().transact(tx)?.result, + ExecutionMode::ExecuteAndCommit => context.evm().transact_commit(tx)?, + ExecutionMode::ExecuteAndInspect => context.evm().inspect_tx(tx)?.result, + }; + + let ExecutionResult::Success { + output: Output::Create(router_impl_bytecode, Some(router_impl)), + .. + } = execution_result + else { + bail!("failed to deploy Router contract"); + }; + + if let ExecutionMode::ExecuteAndCommit = execution_mode { + context.increment_deployer_nonce(); + } + + Ok((router_impl, router_impl_bytecode)) + } + + pub fn address(&self) -> Address { + self.address + } + + pub fn router_impl_bytecode(&self) -> &Bytes { + &self.router_impl_bytecode + } + + pub fn router_impl_with_instrumentation_bytecode(&self) -> &Bytes { + &self.router_impl_with_instrumentation_bytecode + } +} diff --git a/ethexe/ethereum/src/benchmarking/contracts/wvara.rs b/ethexe/ethereum/src/benchmarking/contracts/wvara.rs new file mode 100644 index 00000000000..a3097851500 --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/contracts/wvara.rs @@ -0,0 +1,118 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use crate::{ + abi::{IERC1967Proxy, IWrappedVara}, + benchmarking::SimulationContext, +}; +use alloy::sol_types::SolConstructor; +use anyhow::{Result, anyhow, bail}; +use revm::{ + ExecuteCommitEvm, + context::TxEnv, + context_interface::result::{ExecutionResult, Output}, + primitives::{Address, Bytes}, +}; + +pub struct WrappedVara { + impl_address: Address, + proxy_address: Address, +} + +impl WrappedVara { + pub fn deploy(context: &mut SimulationContext) -> Result { + let wrapped_vara_impl = Self::deploy_impl(context)?; + let wrapped_vara_proxy = Self::deploy_proxy(context, wrapped_vara_impl)?; + + Ok(Self { + impl_address: wrapped_vara_impl, + proxy_address: wrapped_vara_proxy, + }) + } + + fn deploy_impl(context: &mut SimulationContext) -> Result
{ + let deployer_address = context.deployer_address(); + let deployer_nonce = context.deployer_nonce(); + + let ExecutionResult::Success { + output: Output::Create(_, Some(wrapped_vara_impl)), + .. + } = context.evm().transact_commit( + TxEnv::builder() + .caller(deployer_address) + .create() + .data(IWrappedVara::BYTECODE.clone()) + .nonce(deployer_nonce) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + else { + bail!("failed to deploy WrappedVara contract"); + }; + + context.increment_deployer_nonce(); + + Ok(wrapped_vara_impl) + } + + fn deploy_proxy( + context: &mut SimulationContext, + wrapped_vara_impl: Address, + ) -> Result
{ + let deployer_address = context.deployer_address(); + let deployer_nonce = context.deployer_nonce(); + + let ExecutionResult::Success { + output: Output::Create(_, Some(wrapped_vara_proxy)), + .. + } = context.evm().transact_commit( + TxEnv::builder() + .caller(deployer_address) + .create() + .data( + [ + &IERC1967Proxy::BYTECODE[..], + &SolConstructor::abi_encode(&IERC1967Proxy::constructorCall { + implementation: wrapped_vara_impl, + _data: Bytes::new(), + })[..], + ] + .concat() + .into(), + ) + .nonce(deployer_nonce) + .build() + .map_err(|_| anyhow!("failed to build TxEnv"))?, + )? + else { + bail!("failed to deploy TransparentUpgradeableProxy contract (WrappedVara proxy)"); + }; + + context.increment_deployer_nonce(); + + Ok(wrapped_vara_proxy) + } + + pub fn impl_address(&self) -> Address { + self.impl_address + } + + pub fn proxy_address(&self) -> Address { + self.proxy_address + } +} diff --git a/ethexe/ethereum/src/benchmarking/extensions.rs b/ethexe/ethereum/src/benchmarking/extensions.rs new file mode 100644 index 00000000000..24d7e2ab32c --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/extensions.rs @@ -0,0 +1,47 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use revm::primitives::Bytes; + +#[derive(Debug)] +pub struct CalldataGas { + pub zero_bytes: usize, + pub non_zero_bytes: usize, +} + +impl CalldataGas { + pub fn total_gas(&self) -> u64 { + (self.zero_bytes * 4 + self.non_zero_bytes * 16) as u64 + } +} + +pub trait CalldataGasExt { + fn calldata_gas(&self) -> CalldataGas; +} + +impl CalldataGasExt for Bytes { + fn calldata_gas(&self) -> CalldataGas { + let zero_bytes = self.iter().filter(|&&b| b == 0).count(); + let non_zero_bytes = self.len() - zero_bytes; + + CalldataGas { + zero_bytes, + non_zero_bytes, + } + } +} diff --git a/ethexe/ethereum/src/benchmarking/inspector.rs b/ethexe/ethereum/src/benchmarking/inspector.rs new file mode 100644 index 00000000000..d3cfb8564aa --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/inspector.rs @@ -0,0 +1,149 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use revm::{ + Database, Inspector, + context::ContextTr, + context_interface::cfg::gas, + inspector::{JournalExt, inspectors::GasInspector}, + interpreter::{ + CallInputs, CallOutcome, CreateInputs, CreateOutcome, Interpreter, InterpreterTypes, + }, + primitives::{Address, B256, Log}, +}; + +pub struct TopicBoundedGasInspector { + contract_address: Address, + start_execution_topic: B256, + end_execution_topic: B256, + gas_at_start: Option, + gas_diff: Option, +} + +#[derive(Default)] +pub struct SimulationInspector { + gas_inspector: GasInspector, + topic_bounded_gas_inspector: Option, +} + +impl SimulationInspector { + pub fn topic_bounded_gas_inspector( + &mut self, + contract_address: Address, + start_execution_topic: B256, + end_execution_topic: B256, + ) { + self.topic_bounded_gas_inspector = Some(TopicBoundedGasInspector { + contract_address, + start_execution_topic, + end_execution_topic, + gas_at_start: None, + gas_diff: None, + }); + } + + pub fn gas_diff(&self) -> Option { + self.topic_bounded_gas_inspector.as_ref()?.gas_diff + } +} + +impl Inspector for SimulationInspector +where + DB: Database, + CTX: ContextTr, + CTX::Journal: JournalExt, +{ + fn initialize_interp(&mut self, interp: &mut Interpreter, _context: &mut CTX) { + self.gas_inspector.initialize_interp(&interp.gas); + } + + fn step(&mut self, interp: &mut Interpreter, _context: &mut CTX) { + // Do not remove, useful for debugging purposes + + /*use revm::{ + bytecode::OpCode, + context::JournalTr, + interpreter::interpreter_types::{Jumps, MemoryTr, StackTr}, + }; + + let opcode = interp.bytecode.opcode(); + let name = OpCode::name_by_op(opcode); + + let gas_remaining = self.gas_inspector.gas_remaining(); + let memory_size = interp.memory.size(); + + println!( + "depth:{}, PC:{}, gas:{:#x}({}), OPCODE: {:?}({:?}) refund:{:#x}({}) Stack:{:?}, Data size:{}, Memory gas:{}", + _context.journal().depth(), + interp.bytecode.pc(), + gas_remaining, + gas_remaining, + name, + opcode, + interp.gas.refunded(), + interp.gas.refunded(), + interp.stack.data(), + memory_size, + interp.gas.memory().expansion_cost, + );*/ + + self.gas_inspector.step(&interp.gas); + } + + fn step_end(&mut self, interp: &mut Interpreter, _context: &mut CTX) { + self.gas_inspector.step_end(&interp.gas); + } + + fn call_end(&mut self, _context: &mut CTX, _inputs: &CallInputs, outcome: &mut CallOutcome) { + self.gas_inspector.call_end(outcome) + } + + fn create_end( + &mut self, + _context: &mut CTX, + _inputs: &CreateInputs, + outcome: &mut CreateOutcome, + ) { + self.gas_inspector.create_end(outcome) + } + + fn log_full(&mut self, _interp: &mut Interpreter, _context: &mut CTX, log: Log) { + if let Some(TopicBoundedGasInspector { + contract_address, + start_execution_topic, + end_execution_topic, + gas_at_start, + gas_diff, + }) = &mut self.topic_bounded_gas_inspector + && log.address == *contract_address + && let Some(topic0) = log.data.topics().first() + { + let gas_remaining = self.gas_inspector.gas_remaining(); + + if topic0 == start_execution_topic { + const LOG_GAS_COST: u64 = gas::LOG + gas::LOGTOPIC; + let gas = gas_remaining.checked_sub(LOG_GAS_COST).expect("infallible"); + *gas_at_start = Some(gas); + } else if topic0 == end_execution_topic + && let Some(gas_at_start) = gas_at_start + { + *gas_diff = Some(gas_at_start.checked_sub(gas_remaining).expect("infallible")); + } + } + } +} diff --git a/ethexe/ethereum/src/benchmarking/mnemonic.rs b/ethexe/ethereum/src/benchmarking/mnemonic.rs new file mode 100644 index 00000000000..057ba114d3a --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/mnemonic.rs @@ -0,0 +1,50 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use alloy::{ + primitives::Address, + signers::local::{MnemonicBuilder, coins_bip39::English}, +}; +use anyhow::{Result, anyhow}; +use gsigner::secp256k1::{PrivateKey, PublicKey, Signer}; + +/// Default Hardhat/Anvil mnemonic. +const MNEMONIC: &str = "test test test test test test test test test test test junk"; + +/// Derive a [`Signer`] (with one imported key) from the +/// standard derivation index `m/44'/60'/0'/0/{index}`. +/// +/// Returns the signer together with the corresponding gsigner address. +pub fn derive_signer(index: u32) -> Result<(Signer, PublicKey, Address)> { + // Derive the raw k256 key via alloy's BIP-32/BIP-39 MnemonicBuilder. + let alloy_signer = MnemonicBuilder::::default() + .phrase(MNEMONIC) + .index(index) + .map_err(|e| anyhow!("bad derivation index {index}: {e}"))? + .build() + .map_err(|e| anyhow!("mnemonic derivation failed at index {index}: {e}"))?; + + // Extract the 32-byte secret and import it into a gsigner in-memory signer. + let seed: [u8; 32] = alloy_signer.to_bytes().0; + let private_key = PrivateKey::from_seed(seed)?; + let signer = Signer::memory(); + let pubkey = signer.import(private_key)?; + let address = pubkey.to_address(); + + Ok((signer, pubkey, address.into())) +} diff --git a/ethexe/ethereum/src/benchmarking/mod.rs b/ethexe/ethereum/src/benchmarking/mod.rs new file mode 100644 index 00000000000..7542196e149 --- /dev/null +++ b/ethexe/ethereum/src/benchmarking/mod.rs @@ -0,0 +1,26 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +pub use context::{InitializedSimulationContext, SimulationContext}; +pub use contracts::ContractImplKind; + +mod context; +mod contracts; +mod extensions; +mod inspector; +mod mnemonic; diff --git a/ethexe/ethereum/src/lib.rs b/ethexe/ethereum/src/lib.rs index bbdcb1ee33b..9c416db5f6b 100644 --- a/ethexe/ethereum/src/lib.rs +++ b/ethexe/ethereum/src/lib.rs @@ -51,6 +51,7 @@ use router::{Router, RouterQuery}; use std::time::Duration; pub mod abi; +pub mod benchmarking; pub mod deploy; pub mod middleware; pub mod mirror; diff --git a/ethexe/ethereum/src/main.rs b/ethexe/ethereum/src/main.rs new file mode 100644 index 00000000000..e3f55902fc7 --- /dev/null +++ b/ethexe/ethereum/src/main.rs @@ -0,0 +1,138 @@ +// This file is part of Gear. +// +// Copyright (C) 2026 Gear Technologies Inc. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +use anyhow::Result; +use ethexe_common::gear::{Message, ValueClaim}; +use ethexe_ethereum::benchmarking::{ContractImplKind, SimulationContext}; +use gprimitives::{ActorId, H256, MessageId}; + +fn main() -> Result<()> { + let mut simulation_context = SimulationContext::new()?; + let mut context = simulation_context.initialize()?; + + context.switch_to_impl(ContractImplKind::Regular)?; + + let empty_batch_gas = context.empty_batch_gas()?; + dbg!(empty_batch_gas); + + context.switch_to_impl(ContractImplKind::WithInstrumentation)?; + + let code_commitment_gas = context.code_commitment_gas()?; + dbg!(code_commitment_gas); + + let state_transition_zero_actor_id_gas = context.state_transition_actor_id_gas(ActorId::zero()); + dbg!(state_transition_zero_actor_id_gas); + + let state_transition_non_zero_actor_id_gas = + context.state_transition_actor_id_gas(ActorId::new([0x01; 32])); + dbg!(state_transition_non_zero_actor_id_gas); + + let state_transition_zero_state_hash_gas = + context.state_transition_new_state_hash_gas(H256::zero()); + dbg!(state_transition_zero_state_hash_gas); + + let state_transition_non_zero_state_hash_gas = + context.state_transition_new_state_hash_gas(H256([0x01; 32])); + dbg!(state_transition_non_zero_state_hash_gas); + + let state_transition_not_exited_gas = context.state_transition_exited_gas(false); + dbg!(state_transition_not_exited_gas); + + let state_transition_exited_gas = context.state_transition_exited_gas(true); + dbg!(state_transition_exited_gas); + + let state_transition_zero_inheritor_gas = + context.state_transition_inheritor_gas(ActorId::zero()); + dbg!(state_transition_zero_inheritor_gas); + + let state_transition_non_zero_inheritor_gas = + context.state_transition_inheritor_gas(ActorId::new([0x01; 32])); + dbg!(state_transition_non_zero_inheritor_gas); + + let state_transition_zero_value_to_receive_gas = + context.state_transition_value_to_receive_gas(0); + dbg!(state_transition_zero_value_to_receive_gas); + + // dynamic gas cost + let state_transition_non_zero_value_to_receive_gas = + context.state_transition_value_to_receive_gas(1); + dbg!(state_transition_non_zero_value_to_receive_gas); + + let state_transition_value_to_receive_positive_sign_gas = + context.state_transition_value_to_receive_negative_sign_gas(false); + dbg!(state_transition_value_to_receive_positive_sign_gas); + + let state_transition_value_to_receive_negative_sign_gas = + context.state_transition_value_to_receive_negative_sign_gas(true); + dbg!(state_transition_value_to_receive_negative_sign_gas); + + let empty_state_transition_value_claims_gas = context.state_transition_value_claims_gas(vec![]); + dbg!(empty_state_transition_value_claims_gas); + + let empty_state_transition_messages_gas = context.state_transition_messages_gas(vec![]); + dbg!(empty_state_transition_messages_gas); + + let verify_actor_id_gas = context.verify_actor_id_gas()?; + dbg!(verify_actor_id_gas); + + let retrieve_ether_positive_value_gas = context.retrieve_ether_gas(0, false)?; + dbg!(retrieve_ether_positive_value_gas); + + let retrieve_ether_negative_value_gas = context.retrieve_ether_gas(1, true)?; + dbg!(retrieve_ether_negative_value_gas); + + // dynamic gas cost + let send_message_gas = context.send_message_gas(Message { + id: MessageId::zero(), + destination: H256::random().into(), + payload: vec![], + value: 0, + reply_details: None, + call: false, + })?; + dbg!(send_message_gas); + + // dynamic gas cost + let value_claim_gas = context.value_claim_gas(ValueClaim { + message_id: MessageId::zero(), + destination: ActorId::zero(), + value: 0, + })?; + dbg!(value_claim_gas); + + let set_inheritor_not_exited_gas = context.set_inheritor_gas(None)?; + dbg!(set_inheritor_not_exited_gas); + + let set_inheritor_exited_gas = context.set_inheritor_gas(Some(ActorId::new([0x01; 32])))?; + dbg!(set_inheritor_exited_gas); + + // TODO: same state hash + + let update_state_hash_uninitialized_actor_id_gas = + context.update_state_hash_gas(context.uninitialized_actor_id(), H256::random())?; + dbg!(update_state_hash_uninitialized_actor_id_gas); + + let update_state_hash_initialized_actor_id_gas = + context.update_state_hash_gas(context.initialized_actor_id(), H256::random())?; + dbg!(update_state_hash_initialized_actor_id_gas); + + let state_transition_hash_gas = context.state_transition_hash_gas()?; + dbg!(state_transition_hash_gas); + + Ok(()) +} diff --git a/utils/gear-workspace-hack/Cargo.toml b/utils/gear-workspace-hack/Cargo.toml index 147d61f8e92..c895f497c4b 100644 --- a/utils/gear-workspace-hack/Cargo.toml +++ b/utils/gear-workspace-hack/Cargo.toml @@ -214,16 +214,17 @@ branch = "gear-polkadot-stable2409-wasm32v1-none" features = ["test-helpers"] ### BEGIN HAKARI SECTION -[dependencies] +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] aes = { version = "0.8", default-features = false, features = ["zeroize"] } ahash = { version = "0.8" } alloy = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", features = ["kzg", "node-bindings", "provider-anvil-api", "provider-ws", "rpc-types-beacon", "rpc-types-eth", "signer-mnemonic"] } alloy-chains = { version = "0.2" } alloy-consensus = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["kzg", "serde"] } alloy-contract = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["pubsub"] } +alloy-eip7702 = { version = "0.6", default-features = false, features = ["k256", "serde", "std"] } alloy-eips = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["kzg", "serde", "std"] } alloy-json-abi = { version = "1", features = ["serde_json"] } -alloy-primitives = { version = "1", features = ["k256", "rlp", "serde"] } +alloy-primitives = { version = "1", features = ["k256", "map-indexmap", "rlp", "serde"] } alloy-provider = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["anvil-node", "ws"] } alloy-rpc-client = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["reqwest", "ws"] } alloy-rpc-types = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["anvil", "beacon", "eth", "kzg"] } @@ -242,11 +243,12 @@ ark-std = { version = "0.4", default-features = false, features = ["parallel"] } arrayvec = { version = "0.7", features = ["serde"] } base64 = { version = "0.22" } binary-merkle-tree = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } -bitflags = { version = "2", default-features = false, features = ["std"] } -bitvec = { version = "1" } +bitflags = { version = "2", default-features = false, features = ["serde", "std"] } +bitvec = { version = "1", features = ["serde"] } blake2 = { version = "0.10" } blake2b_simd = { version = "1", default-features = false, features = ["std"] } blake3 = { version = "1" } +blst = { version = "0.3", features = ["portable"] } bounded-collections = { version = "0.2", default-features = false, features = ["std"] } bp-header-chain = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } bp-runtime = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } @@ -255,6 +257,7 @@ byte-slice-cast = { version = "1", default-features = false, features = ["std"] bytemuck = { version = "1", default-features = false, features = ["const_zeroed", "derive", "min_const_generics", "must_cast"] } byteorder = { version = "1" } bytes = { version = "1", features = ["serde"] } +c-kzg = { version = "2", default-features = false, features = ["ethereum_kzg_settings", "portable", "serde", "std"] } cipher = { version = "0.4", default-features = false, features = ["zeroize"] } clap = { version = "4", features = ["derive", "env", "string", "wrap_help"] } clap_builder = { version = "4", default-features = false, features = ["color", "env", "std", "string", "suggestions", "usage", "wrap_help"] } @@ -342,6 +345,7 @@ num-bigint = { version = "0.4" } num-integer = { version = "0.1", default-features = false, features = ["i128", "std"] } num-rational = { version = "0.4", features = ["num-bigint-std"] } num-traits = { version = "0.2", features = ["i128", "libm"] } +num_enum = { version = "0.7", default-features = false, features = ["std"] } object-51543b5218fc235c = { package = "object", version = "0.32", features = ["write"] } object-fa1f6196edfd7249 = { package = "object", version = "0.30", default-features = false, features = ["read_core", "write"] } once_cell = { version = "1" } @@ -395,7 +399,7 @@ semver = { version = "1", features = ["serde"] } serde = { version = "1", features = ["alloc", "derive", "rc"] } serde-json-wasm = { version = "1", default-features = false, features = ["std"] } serde_core = { version = "1", features = ["alloc", "rc"] } -serde_json = { version = "1", features = ["alloc", "arbitrary_precision", "raw_value", "unbounded_depth"] } +serde_json = { version = "1", features = ["alloc", "arbitrary_precision", "preserve_order", "raw_value", "unbounded_depth"] } serdect = { version = "0.2" } sha1 = { version = "0.10" } sha2 = { version = "0.10" } @@ -487,16 +491,17 @@ wasmtime-runtime = { version = "8", default-features = false, features = ["async winnow = { version = "0.7" } zeroize = { version = "1", features = ["derive", "std"] } -[build-dependencies] +[target.'cfg(not(target_arch = "wasm32"))'.build-dependencies] aes = { version = "0.8", default-features = false, features = ["zeroize"] } ahash = { version = "0.8" } alloy = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", features = ["kzg", "node-bindings", "provider-anvil-api", "provider-ws", "rpc-types-beacon", "rpc-types-eth", "signer-mnemonic"] } alloy-chains = { version = "0.2" } alloy-consensus = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["kzg", "serde"] } alloy-contract = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["pubsub"] } +alloy-eip7702 = { version = "0.6", default-features = false, features = ["k256", "serde", "std"] } alloy-eips = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["kzg", "serde", "std"] } alloy-json-abi = { version = "1", features = ["serde_json"] } -alloy-primitives = { version = "1", features = ["k256", "rlp", "serde"] } +alloy-primitives = { version = "1", features = ["k256", "map-indexmap", "rlp", "serde"] } alloy-provider = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["anvil-node", "ws"] } alloy-rpc-client = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["reqwest", "ws"] } alloy-rpc-types = { git = "https://github.com/gear-tech/alloy.git", branch = "fix-blob-gas-filler", default-features = false, features = ["anvil", "beacon", "eth", "kzg"] } @@ -518,11 +523,12 @@ ark-std = { version = "0.4", default-features = false, features = ["parallel"] } arrayvec = { version = "0.7", features = ["serde"] } base64 = { version = "0.22" } binary-merkle-tree = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } -bitflags = { version = "2", default-features = false, features = ["std"] } -bitvec = { version = "1" } +bitflags = { version = "2", default-features = false, features = ["serde", "std"] } +bitvec = { version = "1", features = ["serde"] } blake2 = { version = "0.10" } blake2b_simd = { version = "1", default-features = false, features = ["std"] } blake3 = { version = "1" } +blst = { version = "0.3", features = ["portable"] } bounded-collections = { version = "0.2", default-features = false, features = ["std"] } bp-header-chain = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } bp-runtime = { git = "https://github.com/gear-tech/polkadot-sdk.git", branch = "gear-polkadot-stable2409-wasm32v1-none", default-features = false, features = ["std"] } @@ -531,6 +537,7 @@ byte-slice-cast = { version = "1", default-features = false, features = ["std"] bytemuck = { version = "1", default-features = false, features = ["const_zeroed", "derive", "min_const_generics", "must_cast"] } byteorder = { version = "1" } bytes = { version = "1", features = ["serde"] } +c-kzg = { version = "2", default-features = false, features = ["ethereum_kzg_settings", "portable", "serde", "std"] } cc = { version = "1", default-features = false, features = ["parallel"] } cipher = { version = "0.4", default-features = false, features = ["zeroize"] } clap = { version = "4", features = ["derive", "env", "string", "wrap_help"] } @@ -548,6 +555,7 @@ darling = { version = "0.21", features = ["serde"] } darling_core = { version = "0.21", default-features = false, features = ["serde", "suggestions"] } data-encoding = { version = "2" } der = { version = "0.7", default-features = false, features = ["oid", "std", "zeroize"] } +derive-where = { version = "1", default-features = false, features = ["serde"] } derive_more-2247a326473123a6 = { package = "derive_more", version = "0.99" } derive_more-f595c2ba2a3f28df = { package = "derive_more", version = "2", features = ["full"] } derive_more-impl = { version = "2", features = ["add", "add_assign", "as_ref", "constructor", "debug", "deref", "deref_mut", "display", "eq", "error", "from", "from_str", "index", "index_mut", "into", "into_iterator", "is_variant", "mul", "mul_assign", "not", "sum", "try_from", "try_into", "try_unwrap", "unwrap"] } @@ -625,6 +633,8 @@ num-bigint = { version = "0.4" } num-integer = { version = "0.1", default-features = false, features = ["i128", "std"] } num-rational = { version = "0.4", features = ["num-bigint-std"] } num-traits = { version = "0.2", features = ["i128", "libm"] } +num_enum = { version = "0.7", default-features = false, features = ["std"] } +num_enum_derive = { version = "0.7", default-features = false, features = ["std"] } object-51543b5218fc235c = { package = "object", version = "0.32", features = ["write"] } object-fa1f6196edfd7249 = { package = "object", version = "0.30", default-features = false, features = ["read_core", "write"] } once_cell = { version = "1" } @@ -680,7 +690,7 @@ semver = { version = "1", features = ["serde"] } serde = { version = "1", features = ["alloc", "derive", "rc"] } serde-json-wasm = { version = "1", default-features = false, features = ["std"] } serde_core = { version = "1", features = ["alloc", "rc"] } -serde_json = { version = "1", features = ["alloc", "arbitrary_precision", "raw_value", "unbounded_depth"] } +serde_json = { version = "1", features = ["alloc", "arbitrary_precision", "preserve_order", "raw_value", "unbounded_depth"] } serdect = { version = "0.2" } sha1 = { version = "0.10" } sha2 = { version = "0.10" }