{
  "_format": "hh-sol-artifact-1",
  "contractName": "ArbitrumDVNAdapterL2",
  "sourceName": "contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "_admins",
          "type": "address[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "actual",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "requested",
          "type": "uint256"
        }
      ],
      "name": "DVNAdapter_InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DVNAdapter_InvalidMessageSize",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sendLib",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "dstEid",
          "type": "uint32"
        }
      ],
      "name": "DVNAdapter_MissingRecieveLib",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "DVNAdapter_NotImplemented",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "Transfer_NativeFailed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Transfer_ToAddressIsZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "peer",
          "type": "address"
        }
      ],
      "name": "UntrustedPeer",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Worker_NotAllowed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Worker_OnlyMessageLib",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Worker_RoleRenouncingDisabled",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Paused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "peer",
          "type": "address"
        }
      ],
      "name": "PeerSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "sendLib",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "dstEid",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "receiveLib",
              "type": "bytes32"
            }
          ],
          "indexed": false,
          "internalType": "struct ReceiveLibParam[]",
          "name": "params",
          "type": "tuple[]"
        }
      ],
      "name": "ReceiveLibsSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "previousAdminRole",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "newAdminRole",
          "type": "bytes32"
        }
      ],
      "name": "RoleAdminChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "multiplierBps",
          "type": "uint16"
        }
      ],
      "name": "SetDefaultMultiplierBps",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "priceFeed",
          "type": "address"
        }
      ],
      "name": "SetPriceFeed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "dstEid",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "uint8[]",
          "name": "optionTypes",
          "type": "uint8[]"
        }
      ],
      "name": "SetSupportedOptionTypes",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "workerLib",
          "type": "address"
        }
      ],
      "name": "SetWorkerLib",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "Unpaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "lib",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Withdraw",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_ADMIN_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "allowlistSize",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "dstEid",
              "type": "uint32"
            },
            {
              "internalType": "bytes",
              "name": "packetHeader",
              "type": "bytes"
            },
            {
              "internalType": "bytes32",
              "name": "payloadHash",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "confirmations",
              "type": "uint64"
            },
            {
              "internalType": "address",
              "name": "sender",
              "type": "address"
            }
          ],
          "internalType": "struct ILayerZeroDVN.AssignJobParam",
          "name": "",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "assignJob",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "defaultMultiplierBps",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        },
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "getFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "getRoleAdmin",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_eid",
          "type": "uint32"
        }
      ],
      "name": "getSupportedOptionTypes",
      "outputs": [
        {
          "internalType": "uint8[]",
          "name": "",
          "type": "uint8[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        }
      ],
      "name": "hasAcl",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "peer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "priceFeed",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sendLib",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "dstEid",
          "type": "uint32"
        }
      ],
      "name": "receiveLibs",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "receiveLib",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_multiplierBps",
          "type": "uint16"
        }
      ],
      "name": "setDefaultMultiplierBps",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "_paused",
          "type": "bool"
        }
      ],
      "name": "setPaused",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_peer",
          "type": "address"
        }
      ],
      "name": "setPeer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_priceFeed",
          "type": "address"
        }
      ],
      "name": "setPriceFeed",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "sendLib",
              "type": "address"
            },
            {
              "internalType": "uint32",
              "name": "dstEid",
              "type": "uint32"
            },
            {
              "internalType": "bytes32",
              "name": "receiveLib",
              "type": "bytes32"
            }
          ],
          "internalType": "struct ReceiveLibParam[]",
          "name": "_params",
          "type": "tuple[]"
        }
      ],
      "name": "setReceiveLibs",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_eid",
          "type": "uint32"
        },
        {
          "internalType": "uint8[]",
          "name": "_optionTypes",
          "type": "uint8[]"
        }
      ],
      "name": "setSupportedOptionTypes",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_workerFeeLib",
          "type": "address"
        }
      ],
      "name": "setWorkerFeeLib",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes4",
          "name": "interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_payload",
          "type": "bytes"
        }
      ],
      "name": "verify",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_lib",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawFee",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdrawToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "workerFeeLib",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405162002c8638038062002c868339810160408190526200003491620002d1565b604080516000808252602082019092526001805460ff61ffff60e81b01191661017760ed1b179055600280546001600160a01b031916905533918391612ee09182858581156200008b576200008b60008362000150565b60005b8551811015620000ef57620000e67f724aface199fe5bed93ae8508474576a9adf3dc443b2c451842a2242919f19de878381518110620000d257620000d2620003a3565b60200260200101516200015060201b60201c565b6001016200008e565b5060005b81518110156200014057620001377fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775838381518110620000d257620000d2620003a3565b600101620000f3565b50505050505050505050620003f6565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015620001a157506000828152602081815260408083206001600160a01b038516845290915290205460ff16155b15620001ee5760018054601590620001c990600160a81b90046001600160401b0316620003b9565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505b620001fa8282620001fe565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16620001fa576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200025a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b0381168114620002cc57600080fd5b919050565b60006020808385031215620002e557600080fd5b82516001600160401b0380821115620002fd57600080fd5b818501915085601f8301126200031257600080fd5b8151818111156200032757620003276200029e565b8060051b604051601f19603f830116810181811085821117156200034f576200034f6200029e565b6040529182528482019250838101850191888311156200036e57600080fd5b938501935b8285101562000397576200038785620002b4565b8452938501939285019262000373565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60006001600160401b038281166002600160401b03198101620003ec57634e487b7160e01b600052601160045260246000fd5b6001019392505050565b61288080620004066000396000f3fe6080604052600436106101ba5760003560e01c80635c975abb116100ec578063a217fddf1161008a578063c7b2370b11610064578063c7b2370b146105ac578063cd88b903146105cc578063d2ae2104146105ec578063d547741f1461063f57600080fd5b8063a217fddf14610545578063c358de0a1461055a578063c416aa511461057a57600080fd5b8063741bef1a116100c6578063741bef1a146104995780638e760afe146104c657806391d14854146104e657806395d376d71461053757600080fd5b80635c975abb1461044157806369b90d6814610459578063724e78da1461047957600080fd5b806326e67a371161015957806330bb3aac1161013357806330bb3aac146103a957806336568abe146103c95780634cfa6d2c146103e957806351b6a0fd1461042157600080fd5b806326e67a371461033c5780632de11376146103695780632f2ff15d1461038957600080fd5b80631095b6d7116101955780631095b6d71461026c57806311cda4151461028c57806316c38b3c146102de578063248a9ca3146102fe57600080fd5b8062bf2e80146101c657806301e336671461021a57806301ffc9a71461023c57600080fd5b366101c157005b600080fd5b3480156101d257600080fd5b50600154610202907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022657600080fd5b5061023a610235366004611fce565b61065f565b005b34801561024857600080fd5b5061025c61025736600461200a565b61069a565b6040519015158152602001610211565b34801561027857600080fd5b5061023a610287366004611fce565b610733565b34801561029857600080fd5b506005546102b99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b3480156102ea57600080fd5b5061023a6102f936600461205a565b6108c2565b34801561030a57600080fd5b5061032e610319366004612077565b60009081526020819052604090206001015490565b604051908152602001610211565b34801561034857600080fd5b5061035c6103573660046120a4565b6108e7565b60405161021191906120bf565b34801561037557600080fd5b5061025c610384366004612106565b61096e565b34801561039557600080fd5b5061023a6103a4366004612121565b610a53565b3480156103b557600080fd5b5061032e6103c4366004612196565b610a7d565b3480156103d557600080fd5b5061023a6103e4366004612121565b610ab1565b3480156103f557600080fd5b5061032e610404366004612218565b600460209081526000928352604080842090915290825290205481565b34801561042d57600080fd5b5061023a61043c366004612242565b610ae3565b34801561044d57600080fd5b5060015460ff1661025c565b34801561046557600080fd5b5061023a610474366004612106565b610bda565b34801561048557600080fd5b5061023a610494366004612106565b610c7f565b3480156104a557600080fd5b506002546102b99073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104d257600080fd5b5061023a6104e13660046122b7565b610d1c565b3480156104f257600080fd5b5061025c610501366004612121565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61032e6103c43660046122f9565b34801561055157600080fd5b5061032e600081565b34801561056657600080fd5b5061023a61057536600461236a565b610dc9565b34801561058657600080fd5b506001546102b990610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156105b857600080fd5b5061023a6105c7366004612106565b610e77565b3480156105d857600080fd5b5061023a6105e736600461238e565b610f1b565b3480156105f857600080fd5b50600154610626907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610211565b34801561064b57600080fd5b5061023a61065a366004612121565b610f6c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561068981610f91565b610694848484610f9e565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061072d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561075d81610f91565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff166107db576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561084b57600080fd5b505af115801561085f573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b60006108cd81610f91565b81156108df576108db610fce565b5050565b6108db61104d565b63ffffffff811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561096257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116109335790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff16156109c357506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610a39575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610a4657506001919050565b506000919050565b919050565b600082815260208190526040902060010154610a6e81610f91565b610a7883836110a4565b505050565b60006040517f9c5846fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aee81610f91565b60005b82811015610b9b5736848483818110610b0c57610b0c612414565b60600291909101915050604081013560046000610b2c6020850185612106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836020016020810190610b7b91906120a4565b63ffffffff16815260208101919091526040016000205550600101610af1565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610bcd929190612443565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c0481610f91565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f25fecc89eba6e3655a12d5db63dceb5f0711081bd42663652110b98d9a1ec773906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ca981610f91565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c73565b600554610d529073ffffffffffffffffffffffffffffffffffffffff167311110000000000000000000000000000000011110190565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f624ac8030000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6108db6000838361116a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610df381610f91565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c73565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ea181610f91565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c73565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610f4581610f91565b63ffffffff84166000908152600360205260409020610f65908484611eec565b5050505050565b600082815260208190526040902060010154610f8781610f91565b610a788383611289565b610f9b813361134e565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610fc357610a788282611406565b610a7883838361150c565b610fd661157a565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6110556115e9565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611023565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611101575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b156111605760018054601590611139907501000000000000000000000000000000000000000000900467ffffffffffffffff166124ed565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6108db8282611655565b8263ffffffff1661753061117e8484611745565b6111889190612514565b63ffffffff16146111f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c69642073726345696400006044820152606401610db4565b60008060006112048585611776565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b815260040161124f939291906125cc565b600060405180830381600087803b15801561126957600080fd5b505af115801561127d573d6000803e3d6000fd5b50505050505050505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156112e5575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15611344576001805460159061131d907501000000000000000000000000000000000000000000900467ffffffffffffffff166125ff565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6108db8282611845565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166108db5761138c816118fc565b61139783602061191b565b6040516020016113a8929190612641565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610db4916004016126c2565b73ffffffffffffffffffffffffffffffffffffffff8216611453576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146114ad576040519150601f19603f3d011682016040523d82523d6000602084013e6114b2565b606091505b5050905080610a78576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610db4565b73ffffffffffffffffffffffffffffffffffffffff8216611559576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a7873ffffffffffffffffffffffffffffffffffffffff84168383611b65565b60015460ff16156115e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610db4565b565b60015460ff166115e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610db4565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166108db5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556116e73390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000826049836117568260046126d5565b92611763939291906126e8565b61176c91612712565b60e01c9392505050565b6000606081611787605160406126d5565b84146117bf576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117dc6117d06020600087896126e8565b6117d99161275a565b90565b92506117ec6040602086886126e8565b6117f59161275a565b905061180484604081886126e8565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156108db5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606061072d73ffffffffffffffffffffffffffffffffffffffff831660145b6060600061192a836002612796565b6119359060026126d5565b67ffffffffffffffff81111561194d5761194d6127ad565b6040519080825280601f01601f191660200182016040528015611977576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106119ae576119ae612414565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a1157611a11612414565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611a4d846002612796565b611a589060016126d5565b90505b6001811115611af5577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a9957611a99612414565b1a60f81b828281518110611aaf57611aaf612414565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611aee816127dc565b9050611a5b565b508315611b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610db4565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610a7892869291600091611c30918516908490611cdd565b9050805160001480611c51575080806020019051810190611c519190612811565b610a78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610db4565b6060611cec8484600085611cf4565b949350505050565b606082471015611d86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610db4565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611daf919061282e565b60006040518083038185875af1925050503d8060008114611dec576040519150601f19603f3d011682016040523d82523d6000602084013e611df1565b606091505b5091509150611e0287838387611e0d565b979650505050505050565b60608315611ea3578251600003611e9c5773ffffffffffffffffffffffffffffffffffffffff85163b611e9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610db4565b5081611cec565b611cec8383815115611eb85781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db491906126c2565b82805482825590600052602060002090601f01602090048101928215611f855791602002820160005b83821115611f5657833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302611f15565b8015611f835782816101000a81549060ff0219169055600101602081600001049283019260010302611f56565b505b50611f91929150611f95565b5090565b5b80821115611f915760008155600101611f96565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a4e57600080fd5b600080600060608486031215611fe357600080fd5b611fec84611faa565b9250611ffa60208501611faa565b9150604084013590509250925092565b60006020828403121561201c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b5e57600080fd5b8015158114610f9b57600080fd5b60006020828403121561206c57600080fd5b8135611b5e8161204c565b60006020828403121561208957600080fd5b5035919050565b803563ffffffff81168114610a4e57600080fd5b6000602082840312156120b657600080fd5b611b5e82612090565b6020808252825182820181905260009190848201906040850190845b818110156120fa57835160ff16835292840192918401916001016120db565b50909695505050505050565b60006020828403121561211857600080fd5b611b5e82611faa565b6000806040838503121561213457600080fd5b8235915061214460208401611faa565b90509250929050565b60008083601f84011261215f57600080fd5b50813567ffffffffffffffff81111561217757600080fd5b60208301915083602082850101111561218f57600080fd5b9250929050565b6000806000806000608086880312156121ae57600080fd5b6121b786612090565b9450602086013567ffffffffffffffff80821682146121d557600080fd5b8195506121e460408901611faa565b945060608801359150808211156121fa57600080fd5b506122078882890161214d565b969995985093965092949392505050565b6000806040838503121561222b57600080fd5b61223483611faa565b915061214460208401612090565b6000806020838503121561225557600080fd5b823567ffffffffffffffff8082111561226d57600080fd5b818501915085601f83011261228157600080fd5b81358181111561229057600080fd5b8660206060830285010111156122a557600080fd5b60209290920196919550909350505050565b600080602083850312156122ca57600080fd5b823567ffffffffffffffff8111156122e157600080fd5b6122ed8582860161214d565b90969095509350505050565b60008060006040848603121561230e57600080fd5b833567ffffffffffffffff8082111561232657600080fd5b9085019060a0828803121561233a57600080fd5b9093506020850135908082111561235057600080fd5b5061235d8682870161214d565b9497909650939450505050565b60006020828403121561237c57600080fd5b813561ffff81168114611b5e57600080fd5b6000806000604084860312156123a357600080fd5b6123ac84612090565b9250602084013567ffffffffffffffff808211156123c957600080fd5b818601915086601f8301126123dd57600080fd5b8135818111156123ec57600080fd5b8760208260051b850101111561240157600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252818101839052600090604080840186845b878110156124b15773ffffffffffffffffffffffffffffffffffffffff61247f83611faa565b16835263ffffffff612492868401612090565b1683860152818401358484015260609283019290910190600101612459565b5090979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361250a5761250a6124be565b6001019392505050565b600063ffffffff80841680612552577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b60005b83811015612579578181015183820152602001612561565b50506000910152565b6000815180845261259a81602086016020860161255e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6060815260006125df6060830186612582565b905083602083015267ffffffffffffffff83166040830152949350505050565b600067ffffffffffffffff821680612619576126196124be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161267981601785016020880161255e565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516126b681602884016020880161255e565b01602801949350505050565b602081526000611b5e6020830184612582565b8082018082111561072d5761072d6124be565b600080858511156126f857600080fd5b8386111561270557600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156127525780818660040360031b1b83161692505b505092915050565b8035602083101561072d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b808202811582820484141761072d5761072d6124be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816127eb576127eb6124be565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561282357600080fd5b8151611b5e8161204c565b6000825161284081846020870161255e565b919091019291505056fea2646970667358221220156bd30fadf7617002d2f89397f1ac5b48d7db9203542b5f890a83779872ea2764736f6c63430008160033",
  "deployedBytecode": "0x6080604052600436106101ba5760003560e01c80635c975abb116100ec578063a217fddf1161008a578063c7b2370b11610064578063c7b2370b146105ac578063cd88b903146105cc578063d2ae2104146105ec578063d547741f1461063f57600080fd5b8063a217fddf14610545578063c358de0a1461055a578063c416aa511461057a57600080fd5b8063741bef1a116100c6578063741bef1a146104995780638e760afe146104c657806391d14854146104e657806395d376d71461053757600080fd5b80635c975abb1461044157806369b90d6814610459578063724e78da1461047957600080fd5b806326e67a371161015957806330bb3aac1161013357806330bb3aac146103a957806336568abe146103c95780634cfa6d2c146103e957806351b6a0fd1461042157600080fd5b806326e67a371461033c5780632de11376146103695780632f2ff15d1461038957600080fd5b80631095b6d7116101955780631095b6d71461026c57806311cda4151461028c57806316c38b3c146102de578063248a9ca3146102fe57600080fd5b8062bf2e80146101c657806301e336671461021a57806301ffc9a71461023c57600080fd5b366101c157005b600080fd5b3480156101d257600080fd5b50600154610202907d010000000000000000000000000000000000000000000000000000000000900461ffff1681565b60405161ffff90911681526020015b60405180910390f35b34801561022657600080fd5b5061023a610235366004611fce565b61065f565b005b34801561024857600080fd5b5061025c61025736600461200a565b61069a565b6040519015158152602001610211565b34801561027857600080fd5b5061023a610287366004611fce565b610733565b34801561029857600080fd5b506005546102b99073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610211565b3480156102ea57600080fd5b5061023a6102f936600461205a565b6108c2565b34801561030a57600080fd5b5061032e610319366004612077565b60009081526020819052604090206001015490565b604051908152602001610211565b34801561034857600080fd5b5061035c6103573660046120a4565b6108e7565b60405161021191906120bf565b34801561037557600080fd5b5061025c610384366004612106565b61096e565b34801561039557600080fd5b5061023a6103a4366004612121565b610a53565b3480156103b557600080fd5b5061032e6103c4366004612196565b610a7d565b3480156103d557600080fd5b5061023a6103e4366004612121565b610ab1565b3480156103f557600080fd5b5061032e610404366004612218565b600460209081526000928352604080842090915290825290205481565b34801561042d57600080fd5b5061023a61043c366004612242565b610ae3565b34801561044d57600080fd5b5060015460ff1661025c565b34801561046557600080fd5b5061023a610474366004612106565b610bda565b34801561048557600080fd5b5061023a610494366004612106565b610c7f565b3480156104a557600080fd5b506002546102b99073ffffffffffffffffffffffffffffffffffffffff1681565b3480156104d257600080fd5b5061023a6104e13660046122b7565b610d1c565b3480156104f257600080fd5b5061025c610501366004612121565b60009182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b61032e6103c43660046122f9565b34801561055157600080fd5b5061032e600081565b34801561056657600080fd5b5061023a61057536600461236a565b610dc9565b34801561058657600080fd5b506001546102b990610100900473ffffffffffffffffffffffffffffffffffffffff1681565b3480156105b857600080fd5b5061023a6105c7366004612106565b610e77565b3480156105d857600080fd5b5061023a6105e736600461238e565b610f1b565b3480156105f857600080fd5b50600154610626907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610211565b34801561064b57600080fd5b5061023a61065a366004612121565b610f6c565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561068981610f91565b610694848484610f9e565b50505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061072d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177561075d81610f91565b73ffffffffffffffffffffffffffffffffffffffff841660009081527f9b50f4667d2d24216ccbf0dce3a90c0f620fa4d895e7b069d80ff6247fd25620602052604090205460ff166107db576040517f5ee08b9700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301526024820184905285169063fd9be52290604401600060405180830381600087803b15801561084b57600080fd5b505af115801561085f573d6000803e3d6000fd5b50506040805173ffffffffffffffffffffffffffffffffffffffff8089168252871660208201529081018590527f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb9250606001905060405180910390a150505050565b60006108cd81610f91565b81156108df576108db610fce565b5050565b6108db61104d565b63ffffffff811660009081526003602090815260409182902080548351818402810184019094528084526060939283018282801561096257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116109335790505b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff811660009081527f93c430521711328044ae92d0f1f1286cf040bc4a382f1642bd89984e86630553602052604081205460ff16156109c357506000919050565b6001547501000000000000000000000000000000000000000000900467ffffffffffffffff161580610a39575073ffffffffffffffffffffffffffffffffffffffff821660009081527f4ac82e3087b7dedf7f532cbc6915c722df8c1e31f1388c318a617b52760eaf8b602052604090205460ff165b15610a4657506001919050565b506000919050565b919050565b600082815260208190526040902060010154610a6e81610f91565b610a7883836110a4565b505050565b60006040517f9c5846fd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fdec9f03100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610aee81610f91565b60005b82811015610b9b5736848483818110610b0c57610b0c612414565b60600291909101915050604081013560046000610b2c6020850185612106565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000836020016020810190610b7b91906120a4565b63ffffffff16815260208101919091526040016000205550600101610af1565b507f360a0efdea8fcc9a11ee20a2099e314ddcf49a941d66790cd4e5adea30faa0748383604051610bcd929190612443565b60405180910390a1505050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610c0481610f91565b600580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527f25fecc89eba6e3655a12d5db63dceb5f0711081bd42663652110b98d9a1ec773906020015b60405180910390a15050565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ca981610f91565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040519081527ff724a45d041687842411f2b977ef22ab8f43c8f1104f4592b42a00f9b34a643d90602001610c73565b600554610d529073ffffffffffffffffffffffffffffffffffffffff167311110000000000000000000000000000000011110190565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610dbd576040517f624ac8030000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6108db6000838361116a565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610df381610f91565b600180547fff0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff167d01000000000000000000000000000000000000000000000000000000000061ffff8516908102919091179091556040519081527f7af0ac740036ffb1c97b03697859d729e80a44ae5030543d64971c313565ab4d90602001610c73565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610ea181610f91565b600180547fffffffffffffffffffffff0000000000000000000000000000000000000000ff1661010073ffffffffffffffffffffffffffffffffffffffff8516908102919091179091556040519081527f1399be28223800f8669b3ba5f8721d9fc16fc4e8d0bbf98378791c8c5a3015e090602001610c73565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775610f4581610f91565b63ffffffff84166000908152600360205260409020610f65908484611eec565b5050505050565b600082815260208190526040902060010154610f8781610f91565b610a788383611289565b610f9b813361134e565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610fc357610a788282611406565b610a7883838361150c565b610fd661157a565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b6110556115e9565b600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611023565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca82148015611101575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16155b156111605760018054601590611139907501000000000000000000000000000000000000000000900467ffffffffffffffff166124ed565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6108db8282611655565b8263ffffffff1661753061117e8484611745565b6111889190612514565b63ffffffff16146111f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f44564e41646170746572426173653a20696e76616c69642073726345696400006044820152606401610db4565b60008060006112048585611776565b9250925092508273ffffffffffffffffffffffffffffffffffffffff16630223536e838367ffffffffffffffff6040518463ffffffff1660e01b815260040161124f939291906125cc565b600060405180830381600087803b15801561126957600080fd5b505af115801561127d573d6000803e3d6000fd5b50505050505050505050565b7f74845de37cfabd357633214b47fa91ccd19b05b7c5a08ac22c187f811fb62bca821480156112e5575060008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff165b15611344576001805460159061131d907501000000000000000000000000000000000000000000900467ffffffffffffffff166125ff565b91906101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055505b6108db8282611845565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166108db5761138c816118fc565b61139783602061191b565b6040516020016113a8929190612641565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610db4916004016126c2565b73ffffffffffffffffffffffffffffffffffffffff8216611453576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146114ad576040519150601f19603f3d011682016040523d82523d6000602084013e6114b2565b606091505b5050905080610a78576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610db4565b73ffffffffffffffffffffffffffffffffffffffff8216611559576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a7873ffffffffffffffffffffffffffffffffffffffff84168383611b65565b60015460ff16156115e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610db4565b565b60015460ff166115e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610db4565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff166108db5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556116e73390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000826049836117568260046126d5565b92611763939291906126e8565b61176c91612712565b60e01c9392505050565b6000606081611787605160406126d5565b84146117bf576040517ff1d10e0d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117dc6117d06020600087896126e8565b6117d99161275a565b90565b92506117ec6040602086886126e8565b6117f59161275a565b905061180484604081886126e8565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598929750929550909350505050565b60008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16156108db5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b606061072d73ffffffffffffffffffffffffffffffffffffffff831660145b6060600061192a836002612796565b6119359060026126d5565b67ffffffffffffffff81111561194d5761194d6127ad565b6040519080825280601f01601f191660200182016040528015611977576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106119ae576119ae612414565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611a1157611a11612414565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611a4d846002612796565b611a589060016126d5565b90505b6001811115611af5577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110611a9957611a99612414565b1a60f81b828281518110611aaf57611aaf612414565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c93611aee816127dc565b9050611a5b565b508315611b5e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610db4565b9392505050565b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656490840152610a7892869291600091611c30918516908490611cdd565b9050805160001480611c51575080806020019051810190611c519190612811565b610a78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610db4565b6060611cec8484600085611cf4565b949350505050565b606082471015611d86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610db4565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611daf919061282e565b60006040518083038185875af1925050503d8060008114611dec576040519150601f19603f3d011682016040523d82523d6000602084013e611df1565b606091505b5091509150611e0287838387611e0d565b979650505050505050565b60608315611ea3578251600003611e9c5773ffffffffffffffffffffffffffffffffffffffff85163b611e9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610db4565b5081611cec565b611cec8383815115611eb85781518083602001fd5b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db491906126c2565b82805482825590600052602060002090601f01602090048101928215611f855791602002820160005b83821115611f5657833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302611f15565b8015611f835782816101000a81549060ff0219169055600101602081600001049283019260010302611f56565b505b50611f91929150611f95565b5090565b5b80821115611f915760008155600101611f96565b803573ffffffffffffffffffffffffffffffffffffffff81168114610a4e57600080fd5b600080600060608486031215611fe357600080fd5b611fec84611faa565b9250611ffa60208501611faa565b9150604084013590509250925092565b60006020828403121561201c57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114611b5e57600080fd5b8015158114610f9b57600080fd5b60006020828403121561206c57600080fd5b8135611b5e8161204c565b60006020828403121561208957600080fd5b5035919050565b803563ffffffff81168114610a4e57600080fd5b6000602082840312156120b657600080fd5b611b5e82612090565b6020808252825182820181905260009190848201906040850190845b818110156120fa57835160ff16835292840192918401916001016120db565b50909695505050505050565b60006020828403121561211857600080fd5b611b5e82611faa565b6000806040838503121561213457600080fd5b8235915061214460208401611faa565b90509250929050565b60008083601f84011261215f57600080fd5b50813567ffffffffffffffff81111561217757600080fd5b60208301915083602082850101111561218f57600080fd5b9250929050565b6000806000806000608086880312156121ae57600080fd5b6121b786612090565b9450602086013567ffffffffffffffff80821682146121d557600080fd5b8195506121e460408901611faa565b945060608801359150808211156121fa57600080fd5b506122078882890161214d565b969995985093965092949392505050565b6000806040838503121561222b57600080fd5b61223483611faa565b915061214460208401612090565b6000806020838503121561225557600080fd5b823567ffffffffffffffff8082111561226d57600080fd5b818501915085601f83011261228157600080fd5b81358181111561229057600080fd5b8660206060830285010111156122a557600080fd5b60209290920196919550909350505050565b600080602083850312156122ca57600080fd5b823567ffffffffffffffff8111156122e157600080fd5b6122ed8582860161214d565b90969095509350505050565b60008060006040848603121561230e57600080fd5b833567ffffffffffffffff8082111561232657600080fd5b9085019060a0828803121561233a57600080fd5b9093506020850135908082111561235057600080fd5b5061235d8682870161214d565b9497909650939450505050565b60006020828403121561237c57600080fd5b813561ffff81168114611b5e57600080fd5b6000806000604084860312156123a357600080fd5b6123ac84612090565b9250602084013567ffffffffffffffff808211156123c957600080fd5b818601915086601f8301126123dd57600080fd5b8135818111156123ec57600080fd5b8760208260051b850101111561240157600080fd5b6020830194508093505050509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020808252818101839052600090604080840186845b878110156124b15773ffffffffffffffffffffffffffffffffffffffff61247f83611faa565b16835263ffffffff612492868401612090565b1683860152818401358484015260609283019290910190600101612459565b5090979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff80831681810361250a5761250a6124be565b6001019392505050565b600063ffffffff80841680612552577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b92169190910692915050565b60005b83811015612579578181015183820152602001612561565b50506000910152565b6000815180845261259a81602086016020860161255e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6060815260006125df6060830186612582565b905083602083015267ffffffffffffffff83166040830152949350505050565b600067ffffffffffffffff821680612619576126196124be565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161267981601785016020880161255e565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516126b681602884016020880161255e565b01602801949350505050565b602081526000611b5e6020830184612582565b8082018082111561072d5761072d6124be565b600080858511156126f857600080fd5b8386111561270557600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156127525780818660040360031b1b83161692505b505092915050565b8035602083101561072d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b808202811582820484141761072d5761072d6124be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000816127eb576127eb6124be565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60006020828403121561282357600080fd5b8151611b5e8161204c565b6000825161284081846020870161255e565b919091019291505056fea2646970667358221220156bd30fadf7617002d2f89397f1ac5b48d7db9203542b5f890a83779872ea2764736f6c63430008160033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
