{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC20MintBurnProxiedMock",
  "sourceName": "contracts/mocks/token/ERC20/preset/proxied/ERC20MintBurnProxiedMock.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "increment",
          "type": "uint256"
        }
      ],
      "name": "ERC20AllowanceOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20ApprovalToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20BatchMintValuesOverflow",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20BatchTransferValuesOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "allowance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "decrement",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "ERC20PermitExpired",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20PermitFromAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC20PermitInvalidSignature",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "ERC20SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "supply",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC20TotalSupplyOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC20TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        }
      ],
      "name": "IncorrectTokenContractType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "SafeERC20FailedOperation",
      "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": [
        {
          "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": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "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"
    },
    {
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "__msgData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "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": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchBurnFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "batchTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "burnFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "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": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "hasRole_",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "tokenDecimals",
          "type": "uint8"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "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": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC721[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransfer",
      "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"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "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": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "supply",
          "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": "result",
          "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": "result",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a03461007f57601f6144b738819003918201601f19168301916001600160401b038311848410176100845780849260209460405283398101031261007f57516001600160a01b038116810361007f5760805260405161441c908161009b82396080518181816129ab01528181612e960152818161400b01526141360152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714612bf557806306fdde0314612b9a578063095ea7b314612b2d57806318160ddd14612ad25780631b9a752914612a8e57806323b872dd146129cf5780632b4c9f16146129605780632f2ff15d146127d4578063313ce5671461277657806331e66e1e146126f35780633644e515146126b257806339509351146124825780633c130d901461242757806340c10f191461226457806342966c68146122005780634885b25414612152578063572b6c05146121075780636857310714611fec57806370a0823114611f6757806373c8a95814611de457806379cc679014611d2f5780637ecebe0014611caa57806388d695b214611c665780638bb9c5bf14611af75780638da5cb5b14611a8657806391d14854146119ee57806395d89b411461197b578063a457c2d71461190e578063a9059cbb146118a1578063b88d4fde14611791578063c3666c3614611554578063d505accf146112e1578063d539139314611288578063d547741f146110ff578063dd62ed3e14611050578063e0df5b6f14610e34578063eb79554914610d6f578063f2fde38b14610c7b578063f57b0182146103915763f7ba94bd146101d457600080fd5b34610335576101e236612d52565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610223613ff4565b9254169116908103610364575081810361033a5760005b81811061024357005b61024e81838761319b565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103355761027882858761319b565b359081471061030357600080809381935af13d156102fb573d9061029b82613f6b565b916102a96040519384612ede565b82523d6000602084013e5b156102c2575060010161023a565b8051156102d157602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102b4565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043567ffffffffffffffff8111610335576103e0903690600401612e51565b60243567ffffffffffffffff811161033557610400903690600401612e51565b6000939193506044359160ff8316809303610335577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc61043e613ff4565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015610bf4575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081610c26575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60208190527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f80548216831790557fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a6680548216831790557f27d9344430097694b44c54daae5d82db951e70f450202e98a31fb7e512b2167480548216831790557f56711464edcafe4e82a7e7542dffa87959622899ee5b1c678e1763c8a0b334a980548216831790557f9a550f00726f29dff2bade56048512cf1b1705f05a832e2f404d59756e57d41580548216831790557f20c07ed1000000000000000000000000000000000000000000000000000000006000527f0fe906604d4cc705ea1b9f113133426bf04f7f63322b0f5653f6f8d581e44fb48054909116821790557fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745491957f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a819390929091811015610bf4575060017fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745567ffffffffffffffff8211610ac55781906106cd8454612fc1565b601f8111610ba1575b50600090601f8311600114610aff57600092610af4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610ac5576107587f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8254612fc1565b601f8111610a41575b506000601f8211600114610945578192939460009261093a575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82555b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a83557fa219a0250000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f3c130d900000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f9d8ff7da00000000000000000000000000000000000000000000000000000000600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b01359050848061077b565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef91805b878110610a295750836001959697106109f1575b505050811b017f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82556107cd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558480806109c4565b909260206001819286860135815501940191016109b0565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a826000527f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef601f830160051c81019160208410610abb575b601f0160051c01905b818110610aaf5750610761565b60008155600101610aa2565b9091508190610a99565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905087806106ed565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110610b895750908460019594939210610b51575b505050811b01905561071f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080610b44565b91936020600181928787013581550195019201610b2e565b909150836000526020600020601f840160051c81019160208510610bea575b90601f859493920160051c01905b818110610bdb57506106d6565b60008155849350600101610bce565b9091508190610bc0565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a385806104ab565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610cb2612cdb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610cdc613ff4565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610364575073ffffffffffffffffffffffffffffffffffffffff1691828203610d2057005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610da6612cdb565b60243560443567ffffffffffffffff811161033557610dc9903690600401612e51565b9190927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92610e028383610dfb613ff4565b8097613e16565b813b610e14575b602060405160018152f35b610e2a94610e23913691613fa5565b9280614265565b8080808080610e09565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043567ffffffffffffffff811161033557610e83903690600401612e51565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610ec2613ff4565b925416911690810361036457507ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea9067ffffffffffffffff8111610ac557610f0a8254612fc1565b601f8111611008575b506000601f8211600114610f6d57819293600092610f62575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916179055600080f35b013590508380610f2c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216938382526020822091805b868110610ff05750836001959610610fb8575b505050811b019055005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055838080610fae565b90926020600181928686013581550194019101610f9b565b826000526020600020601f830160051c81019160208410611046575b601f0160051c01905b81811061103a5750610f13565b6000815560010161102d565b9091508190611024565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611087612cdb565b73ffffffffffffffffffffffffffffffffffffffff6110a4612cfe565b91166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557600435611139612cfe565b611141613ff4565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166111f357005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346103355760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611318612cdb565b611320612cfe565b6044359060643560843560ff81168091036103355773ffffffffffffffffffffffffffffffffffffffff8516917f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d831561152a578142116114fc576020926000926080928685528552604084209081549160018301905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9845288604084015273ffffffffffffffffffffffffffffffffffffffff8a1660608401528a8684015260a083015260c082015260c0815261140260e082612ede565b51902061140d613345565b9060405190868201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611452606282612ede565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156114f05773ffffffffffffffffffffffffffffffffffffffff60005116036114c6576114c4927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6130d6565b005b7f822a64c80000000000000000000000000000000000000000000000000000000060005260046000fd5b6040513d6000823e3d90fd5b507fea2b6f580000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fa97469760000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355761156236612dc2565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806115a7613ff4565b92541691169081036103645750808214801590611787575b61033a5760005b8281106115cf57005b73ffffffffffffffffffffffffffffffffffffffff6115f76115f283858a61319b565b6131da565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156114f057600091611759575b501561172c575073ffffffffffffffffffffffffffffffffffffffff6116866115f283858a61319b565b16906116966115f282868961319b565b916116a282878b61319b565b3592813b1561033557606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156114f05760019261171b575b50016115c6565b600061172691612ede565b88611714565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61177a915060203d8111611780575b6117728183612ede565b810190613fdc565b8961165c565b503d611768565b50828214156115bf565b346103355760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576117c8612cdb565b6117d0612cfe565b60443560643567ffffffffffffffff8111610335576117f3903690600401612e51565b9290937f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9361185f848484611826613ff4565b9873ffffffffffffffffffffffffffffffffffffffff8a1673ffffffffffffffffffffffffffffffffffffffff83160361189057613e16565b823b61187057602060405160018152f35b6118859561187f913691613fa5565b93614265565b808080808080610e09565b61189c848b8484613c38565b613e16565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e096118db612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611908613ff4565b90613e16565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09611948612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611975613ff4565b90613c38565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119ea6119d67f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82613014565b604051918291602083526020830190612c7c565b0390f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611a25612cfe565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611b52613ff4565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615611c1e5760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101611283565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b3461033557610e09611c7736612d52565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611ca4613ff4565b906139df565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611ce1612cdb565b73ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d91166000526020526020604060002054604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09611d69612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611d96613ff4565b8373ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603611dd2575b50506134ae565b611ddd918484613c38565b8483611dcb565b3461033557611df236612dc2565b949293917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611e35613ff4565b92541691169081036103645750808314801590611f5d575b61033a5760005b838110611e5d57005b611e6881838861319b565b3573ffffffffffffffffffffffffffffffffffffffff8116908181036103355760006020918a82611ea987611ea26115f2828f8f9061319b565b938b61319b565b356040519073ffffffffffffffffffffffffffffffffffffffff878301947fa9059cbb000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611f04606482612ede565b51925af1156114f0576000513d611f545750803b155b611f275750600101611e54565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611f1a565b5085831415611e4d565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611f9e612cdb565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91166000526020526020604060002054604051908152f35b3461033557611ffa36612d52565b92909161202f7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22612029613ff4565b906133ec565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9061205a81612f1f565b926120686040519485612ede565b818452602084019160051b81019036821161033557915b8183106120da5750505061209284612f1f565b926120a06040519485612ede565b848452602084019460051b81019036821161033557945b8186106120ca5750506114c4935061388f565b85358152602095860195016120b7565b823573ffffffffffffffffffffffffffffffffffffffff811681036103355781526020928301920161207f565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576020612148612143612cdb565b612e7f565b6040519015158152f35b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557612189612cdb565b60243567ffffffffffffffff8111610335576121a9903690600401612d21565b916044359267ffffffffffffffff8411610335576121ce610e09943690600401612d21565b9390927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6121fa613ff4565b906135cf565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e096004357f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee61225e613ff4565b906134ae565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761229b612cdb565b6024356122ca7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22612029613ff4565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92169182156123fd578161233f575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600092604051908152a3005b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf05482810190808211156123cb57507f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf0556000838152602091909152604090208054820190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61230f565b83907f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b7f92fd9c8f0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119ea6119d67ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea613014565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576124b9612cdb565b6024356124c4613ff4565b9073ffffffffffffffffffffffffffffffffffffffff831692831561266e5773ffffffffffffffffffffffffffffffffffffffff83166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef6020526040600020846000526020526040600020549180612589575b84837f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602073ffffffffffffffffffffffffffffffffffffffff886040519485521692a3602060405160018152f35b808301928084111561261357505050602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928185166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef8352604060002086600052835280604060002055925061253a565b6040517f93bc2ff100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015293909316602484015260448301526064820152608490fd5b73ffffffffffffffffffffffffffffffffffffffff837ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206126eb613345565b604051908152f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557604061272c61411f565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602060ff7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043561280e612cfe565b612816613ff4565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416156128c957005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101611283565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09612a09612cdb565b612a11612cfe565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91612a3b613ff4565b92604435938473ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603612a7c575b5050613e16565b612a87918484613c38565b8584612a75565b3461033557610e09612a9f36612d52565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612acc613ff4565b906131fb565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760207f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf054604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09612b67612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612b94613ff4565b906130d6565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119ea6119d67f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81613014565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576004357fffffffff0000000000000000000000000000000000000000000000000000000081168103610335576121486020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d612f37565b919082519283825260005b848110612cc65750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201612c87565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b9181601f840112156103355782359167ffffffffffffffff8311610335576020808501948460051b01011161033557565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff81116103355781612d9b91600401612d21565b929092916024359067ffffffffffffffff821161033557612dbe91600401612d21565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff81116103355781612e0b91600401612d21565b9290929160243567ffffffffffffffff81116103355781612e2e91600401612d21565b929092916044359067ffffffffffffffff821161033557612dbe91600401612d21565b9181601f840112156103355782359167ffffffffffffffff8311610335576020838186019501011161033557565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115612ed75773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ac557604052565b67ffffffffffffffff8111610ac55760051b60200190565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114612ed7577f01ffc9a7000000000000000000000000000000000000000000000000000000008114612fba5760005260205260ff6040600020541690565b5050600190565b90600182811c9216801561300a575b6020831014612fdb57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691612fd0565b906040519182600082549261302884612fc1565b8084529360018116908115613096575060011461304f575b5061304d92500383612ede565b565b90506000929192526020600020906000915b81831061307a57505090602061304d9282010138613040565b6020919350806001915483858901015201910190918492613061565b6020935061304d9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138613040565b929173ffffffffffffffffffffffffffffffffffffffff169283156131575773ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259260016020938383166000520183526040600020866000528352846040600020556040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff827ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b91908110156131ab5760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3573ffffffffffffffffffffffffffffffffffffffff811681036103355790565b93929480860361033a57851561333d5760009560005b8181106132325750505050505081613227575050565b600201908154039055565b6132406115f282848861319b565b61324b82858961319b565b3573ffffffffffffffffffffffffffffffffffffffff821691818773ffffffffffffffffffffffffffffffffffffffff8116850361332b575b5090506132c3575b600192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093604051908152a301613211565b98604060008381528a60205220548a810390808210156132f55750600083815260208b9052604090205589019861328c565b8b90847fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b613335928c613c38565b388187613284565b505050505050565b61336e7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81613014565b6020815191012060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526133e660c082612ede565b51902090565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff60406000205416156134465750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b826134fc575b50907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff6000946040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff8216600052806020526040600020548381039080821015613583575073ffffffffffffffffffffffffffffffffffffffff8316600090815260208390526040902055600201805483900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6134b4565b849073ffffffffffffffffffffffffffffffffffffffff857fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b9594909392919285810361033a5780156138725773ffffffffffffffffffffffffffffffffffffffff8416600052866020526040600020549160009660009260005b81811061366b575050505050505073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff821603613659575b50505050565b61366293613c38565b38808080613653565b73ffffffffffffffffffffffffffffffffffffffff61368e6115f283858b61319b565b16801561382e576136a082858761319b565b358061376a575b906020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff8c16938492604051908152a38a151580613760575b613704575b50600101613611565b8a8703908782101561372a57600090815260208d905260409020908601905560016136fb565b878c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b50858b14156136f6565b9a8b810190811115613804579a8c73ffffffffffffffffffffffffffffffffffffffff8b168381146137b65750906040602093926000908482528552208181540190555b9091506136a7565b905088829892116137ce5750908660209201966137ae565b8888917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b7fdedd83410000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff897f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50505050505050565b80518210156131ab5760209160051b010190565b90918251908051820361033a5781156136535760009360005b8381106139035750505050816138bc575050565b60020180549180830192808411156138d357505055565b7f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b73ffffffffffffffffffffffffffffffffffffffff613922828461387b565b511680156123fd57613934828561387b565b5180613972575b9060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060019594604051908152a3016138a8565b969190878301928311156139b55773ffffffffffffffffffffffffffffffffffffffff81166000908152602088905260409020805489019055919690919061393b565b7f5542ae7c0000000000000000000000000000000000000000000000000000000060005260046000fd5b929394909181850361033a57841561333d5773ffffffffffffffffffffffffffffffffffffffff8316600052836020526040600020549560009260009660005b818110613ad157505050505080151580613ac7575b613a40575b5050505050565b8085039480861015613a7d57505073ffffffffffffffffffffffffffffffffffffffff166000526020526040600020910190553880808080613a39565b73ffffffffffffffffffffffffffffffffffffffff837fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b5083811415613a34565b73ffffffffffffffffffffffffffffffffffffffff613af46115f283858961319b565b168015613bf457613b0682858761319b565b3580613b5a575b90600192916040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff8c1692a301613a1f565b9687810190811115613804579673ffffffffffffffffffffffffffffffffffffffff8916828114613ba757509060019291604060008381528c602052208181540190555b90919250613b0d565b8c829c9211613bbe5750908a60019392019a613b9e565b8c8c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff887f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b92909173ffffffffffffffffffffffffffffffffffffffff8116938415613dd2576001019073ffffffffffffffffffffffffffffffffffffffff841660005281602052604060002085600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84141580613dc9575b613d05575b50505090602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926040519485521692a3565b8084039380851015613d6e5750505073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592602092828616600052835260406000208660005283528060406000205592613cbd565b6040517f137ad6ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015293909316602484015260448301526064820152608490fd5b50801515613cb8565b73ffffffffffffffffffffffffffffffffffffffff847ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b929173ffffffffffffffffffffffffffffffffffffffff16928315613f275782613e80575b50602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff821660005280602052604060002054838103908082101561358357508260209273ffffffffffffffffffffffffffffffffffffffff9287847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef971603613f00575b5050925050613e3b565b83831660005281855260406000205586600052835260406000208581540190553880613ef6565b73ffffffffffffffffffffffffffffffffffffffff827f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b67ffffffffffffffff8111610ac557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613fb182613f6b565b91613fbf6040519384612ede565b829481845281830111610335578281602093846000960137010152565b90816020910312610335575180151581036103355790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015614110573233148015614115575b614110577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561407f575b5061407c57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156114f0576000916140f1575b5038614072565b61410a915060203d602011611780576117728183612ede565b386140ea565b503390565b506018361061403b565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561425357323314801561425b575b614253578033149081156141b2575b50614181576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103355760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156114f057600091614234575b5038614175565b61424d915060203d602011611780576117728183612ede565b3861422d565b506000903690565b5060183610614166565b6142d473ffffffffffffffffffffffffffffffffffffffff9294958360209516968460405197889687967f4fc358590000000000000000000000000000000000000000000000000000000088521660048701521660248501526044840152608060648401526084830190612c7c565b03816000865af19081156114f057600091614364575b507fffffffff000000000000000000000000000000000000000000000000000000007f4fc35859000000000000000000000000000000000000000000000000000000009116036143375750565b7f6d4497360000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6020813d6020116143de575b8161437d60209383612ede565b810103126143da5751907fffffffff00000000000000000000000000000000000000000000000000000000821682036143d757507fffffffff000000000000000000000000000000000000000000000000000000006142ea565b80fd5b5080fd5b3d915061437056fea264697066735822122029d0057bbf612f0c759b71b05d0f6d90a6b11497bd2a34059c6b919d585cb58664736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c806301ffc9a714612bf557806306fdde0314612b9a578063095ea7b314612b2d57806318160ddd14612ad25780631b9a752914612a8e57806323b872dd146129cf5780632b4c9f16146129605780632f2ff15d146127d4578063313ce5671461277657806331e66e1e146126f35780633644e515146126b257806339509351146124825780633c130d901461242757806340c10f191461226457806342966c68146122005780634885b25414612152578063572b6c05146121075780636857310714611fec57806370a0823114611f6757806373c8a95814611de457806379cc679014611d2f5780637ecebe0014611caa57806388d695b214611c665780638bb9c5bf14611af75780638da5cb5b14611a8657806391d14854146119ee57806395d89b411461197b578063a457c2d71461190e578063a9059cbb146118a1578063b88d4fde14611791578063c3666c3614611554578063d505accf146112e1578063d539139314611288578063d547741f146110ff578063dd62ed3e14611050578063e0df5b6f14610e34578063eb79554914610d6f578063f2fde38b14610c7b578063f57b0182146103915763f7ba94bd146101d457600080fd5b34610335576101e236612d52565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610223613ff4565b9254169116908103610364575081810361033a5760005b81811061024357005b61024e81838761319b565b3573ffffffffffffffffffffffffffffffffffffffff81168091036103355761027882858761319b565b359081471061030357600080809381935af13d156102fb573d9061029b82613f6b565b916102a96040519384612ede565b82523d6000602084013e5b156102c2575060010161023a565b8051156102d157602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b6060906102b4565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043567ffffffffffffffff8111610335576103e0903690600401612e51565b60243567ffffffffffffffff811161033557610400903690600401612e51565b6000939193506044359160ff8316809303610335577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc61043e613ff4565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015610bf4575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081610c26575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d60208190527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f9aed5868410a44d2b2b5afc971a20f888382428fa3391cbfac5b1840d2aa352f80548216831790557fc6b5f03b0da98290ffa91f37e0f0b8e2702961697d46a1f6b2d24c3136073a6680548216831790557f27d9344430097694b44c54daae5d82db951e70f450202e98a31fb7e512b2167480548216831790557f56711464edcafe4e82a7e7542dffa87959622899ee5b1c678e1763c8a0b334a980548216831790557f9a550f00726f29dff2bade56048512cf1b1705f05a832e2f404d59756e57d41580548216831790557f20c07ed1000000000000000000000000000000000000000000000000000000006000527f0fe906604d4cc705ea1b9f113133426bf04f7f63322b0f5653f6f8d581e44fb48054909116821790557fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745491957f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a819390929091811015610bf4575060017fd217496980d1cb14720b20a80af36676bbece8e5feeb5d8970a9681a2c76bb745567ffffffffffffffff8211610ac55781906106cd8454612fc1565b601f8111610ba1575b50600090601f8311600114610aff57600092610af4575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111610ac5576107587f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8254612fc1565b601f8111610a41575b506000601f8211600114610945578192939460009261093a575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82555b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff007f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416177f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a83557fa219a0250000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f3c130d900000000000000000000000000000000000000000000000000000000060005280602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008254161790557f9d8ff7da00000000000000000000000000000000000000000000000000000000600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00825416179055600080f35b01359050848061077b565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a8281527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef91805b878110610a295750836001959697106109f1575b505050811b017f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82556107cd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c199101351690558480806109c4565b909260206001819286860135815501940191016109b0565b7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a826000527f38f29baf5b4f1132a8b8d899467148f866f7b7a6d08f3c484abb8c5467292cef601f830160051c81019160208410610abb575b601f0160051c01905b818110610aaf5750610761565b60008155600101610aa2565b9091508190610a99565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905087806106ed565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110610b895750908460019594939210610b51575b505050811b01905561071f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080610b44565b91936020600181928787013581550195019201610b2e565b909150836000526020600020601f840160051c81019160208510610bea575b90601f859493920160051c01905b818110610bdb57506106d6565b60008155849350600101610bce565b9091508190610bc0565b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a385806104ab565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610cb2612cdb565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc90610cdc613ff4565b9073ffffffffffffffffffffffffffffffffffffffff808454169216828103610364575073ffffffffffffffffffffffffffffffffffffffff1691828203610d2057005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610da6612cdb565b60243560443567ffffffffffffffff811161033557610dc9903690600401612e51565b9190927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92610e028383610dfb613ff4565b8097613e16565b813b610e14575b602060405160018152f35b610e2a94610e23913691613fa5565b9280614265565b8080808080610e09565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043567ffffffffffffffff811161033557610e83903690600401612e51565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610ec2613ff4565b925416911690810361036457507ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea9067ffffffffffffffff8111610ac557610f0a8254612fc1565b601f8111611008575b506000601f8211600114610f6d57819293600092610f62575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916179055600080f35b013590508380610f2c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216938382526020822091805b868110610ff05750836001959610610fb8575b505050811b019055005b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055838080610fae565b90926020600181928686013581550194019101610f9b565b826000526020600020601f830160051c81019160208410611046575b601f0160051c01905b81811061103a5750610f13565b6000815560010161102d565b9091508190611024565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611087612cdb565b73ffffffffffffffffffffffffffffffffffffffff6110a4612cfe565b91166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef60205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557600435611139612cfe565b611141613ff4565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff604060002054166111f357005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346103355760e07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611318612cdb565b611320612cfe565b6044359060643560843560ff81168091036103355773ffffffffffffffffffffffffffffffffffffffff8516917f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d831561152a578142116114fc576020926000926080928685528552604084209081549160018301905560405190868201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9845288604084015273ffffffffffffffffffffffffffffffffffffffff8a1660608401528a8684015260a083015260c082015260c0815261140260e082612ede565b51902061140d613345565b9060405190868201927f190100000000000000000000000000000000000000000000000000000000000084526022830152604282015260428152611452606282612ede565b519020906040519182528482015260a435604082015260c435606082015282805260015afa156114f05773ffffffffffffffffffffffffffffffffffffffff60005116036114c6576114c4927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6130d6565b005b7f822a64c80000000000000000000000000000000000000000000000000000000060005260046000fd5b6040513d6000823e3d90fd5b507fea2b6f580000000000000000000000000000000000000000000000000000000060005260045260246000fd5b7fa97469760000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355761156236612dc2565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806115a7613ff4565b92541691169081036103645750808214801590611787575b61033a5760005b8281106115cf57005b73ffffffffffffffffffffffffffffffffffffffff6115f76115f283858a61319b565b6131da565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156114f057600091611759575b501561172c575073ffffffffffffffffffffffffffffffffffffffff6116866115f283858a61319b565b16906116966115f282868961319b565b916116a282878b61319b565b3592813b1561033557606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156114f05760019261171b575b50016115c6565b600061172691612ede565b88611714565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b61177a915060203d8111611780575b6117728183612ede565b810190613fdc565b8961165c565b503d611768565b50828214156115bf565b346103355760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576117c8612cdb565b6117d0612cfe565b60443560643567ffffffffffffffff8111610335576117f3903690600401612e51565b9290937f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9361185f848484611826613ff4565b9873ffffffffffffffffffffffffffffffffffffffff8a1673ffffffffffffffffffffffffffffffffffffffff83160361189057613e16565b823b61187057602060405160018152f35b6118859561187f913691613fa5565b93614265565b808080808080610e09565b61189c848b8484613c38565b613e16565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e096118db612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611908613ff4565b90613e16565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09611948612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611975613ff4565b90613c38565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119ea6119d67f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a82613014565b604051918291602083526020830190612c7c565b0390f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611a25612cfe565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22600435611b52613ff4565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615611c1e5760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101611283565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b3461033557610e09611c7736612d52565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611ca4613ff4565b906139df565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611ce1612cdb565b73ffffffffffffffffffffffffffffffffffffffff7f93fe0ff7226b064a4a8f0b09910762afb4bc2441835792c021ffd78cd513011d91166000526020526020604060002054604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09611d69612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee611d96613ff4565b8373ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603611dd2575b50506134ae565b611ddd918484613c38565b8483611dcb565b3461033557611df236612dc2565b949293917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611e35613ff4565b92541691169081036103645750808314801590611f5d575b61033a5760005b838110611e5d57005b611e6881838861319b565b3573ffffffffffffffffffffffffffffffffffffffff8116908181036103355760006020918a82611ea987611ea26115f2828f8f9061319b565b938b61319b565b356040519073ffffffffffffffffffffffffffffffffffffffff878301947fa9059cbb000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611f04606482612ede565b51925af1156114f0576000513d611f545750803b155b611f275750600101611e54565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611f1a565b5085831415611e4d565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557611f9e612cdb565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91166000526020526020604060002054604051908152f35b3461033557611ffa36612d52565b92909161202f7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22612029613ff4565b906133ec565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee9061205a81612f1f565b926120686040519485612ede565b818452602084019160051b81019036821161033557915b8183106120da5750505061209284612f1f565b926120a06040519485612ede565b848452602084019460051b81019036821161033557945b8186106120ca5750506114c4935061388f565b85358152602095860195016120b7565b823573ffffffffffffffffffffffffffffffffffffffff811681036103355781526020928301920161207f565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576020612148612143612cdb565b612e7f565b6040519015158152f35b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557612189612cdb565b60243567ffffffffffffffff8111610335576121a9903690600401612d21565b916044359267ffffffffffffffff8411610335576121ce610e09943690600401612d21565b9390927f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee6121fa613ff4565b906135cf565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e096004357f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee61225e613ff4565b906134ae565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355761229b612cdb565b6024356122ca7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b22612029613ff4565b73ffffffffffffffffffffffffffffffffffffffff7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee92169182156123fd578161233f575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600092604051908152a3005b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf05482810190808211156123cb57507f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf0556000838152602091909152604090208054820190557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61230f565b83907f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b7f92fd9c8f0000000000000000000000000000000000000000000000000000000060005260046000fd5b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119ea6119d67ff41bf6a5db26bffdfab174dcf66b31fbba8fdb7e3db040721ce1e62d61839cea613014565b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576124b9612cdb565b6024356124c4613ff4565b9073ffffffffffffffffffffffffffffffffffffffff831692831561266e5773ffffffffffffffffffffffffffffffffffffffff83166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef6020526040600020846000526020526040600020549180612589575b84837f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602073ffffffffffffffffffffffffffffffffffffffff886040519485521692a3602060405160018152f35b808301928084111561261357505050602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928185166000527f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbef8352604060002086600052835280604060002055925061253a565b6040517f93bc2ff100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff868116600483015293909316602484015260448301526064820152608490fd5b73ffffffffffffffffffffffffffffffffffffffff837ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760206126eb613345565b604051908152f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557604061272c61411f565b91907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8484519586946020865281602087015286860137600085828601015201168101030190f35b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602060ff7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a835416604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760043561280e612cfe565b612816613ff4565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361036457507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416156128c957005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101611283565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103355760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09612a09612cdb565b612a11612cfe565b7f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee91612a3b613ff4565b92604435938473ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff851603612a7c575b5050613e16565b612a87918484613c38565b8584612a75565b3461033557610e09612a9f36612d52565b929091907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612acc613ff4565b906131fb565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103355760207f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbf054604051908152f35b346103355760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033557610e09612b67612cdb565b602435907f1da92899d3da68bf9787824388a37ea2bfa79780bcef91b9716c390eec8ecbee612b94613ff4565b906130d6565b346103355760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576119ea6119d67f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81613014565b346103355760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610335576004357fffffffff0000000000000000000000000000000000000000000000000000000081168103610335576121486020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d612f37565b919082519283825260005b848110612cc65750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b80602080928401015182828601015201612c87565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361033557565b9181601f840112156103355782359167ffffffffffffffff8311610335576020808501948460051b01011161033557565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff81116103355781612d9b91600401612d21565b929092916024359067ffffffffffffffff821161033557612dbe91600401612d21565b9091565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126103355760043567ffffffffffffffff81116103355781612e0b91600401612d21565b9290929160243567ffffffffffffffff81116103355781612e2e91600401612d21565b929092916044359067ffffffffffffffff821161033557612dbe91600401612d21565b9181601f840112156103355782359167ffffffffffffffff8311610335576020838186019501011161033557565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016908115612ed75773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610ac557604052565b67ffffffffffffffff8111610ac55760051b60200190565b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114612ed7577f01ffc9a7000000000000000000000000000000000000000000000000000000008114612fba5760005260205260ff6040600020541690565b5050600190565b90600182811c9216801561300a575b6020831014612fdb57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691612fd0565b906040519182600082549261302884612fc1565b8084529360018116908115613096575060011461304f575b5061304d92500383612ede565b565b90506000929192526020600020906000915b81831061307a57505090602061304d9282010138613040565b6020919350806001915483858901015201910190918492613061565b6020935061304d9592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b82010138613040565b929173ffffffffffffffffffffffffffffffffffffffff169283156131575773ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259260016020938383166000520183526040600020866000528352846040600020556040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff827ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b91908110156131ab5760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b3573ffffffffffffffffffffffffffffffffffffffff811681036103355790565b93929480860361033a57851561333d5760009560005b8181106132325750505050505081613227575050565b600201908154039055565b6132406115f282848861319b565b61324b82858961319b565b3573ffffffffffffffffffffffffffffffffffffffff821691818773ffffffffffffffffffffffffffffffffffffffff8116850361332b575b5090506132c3575b600192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020600093604051908152a301613211565b98604060008381528a60205220548a810390808210156132f55750600083815260208b9052604090205589019861328c565b8b90847fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b613335928c613c38565b388187613284565b505050505050565b61336e7f335df4119bbb04f056b33eba33b826d3529129e458faf6daa9924b5a8f3b6a81613014565b6020815191012060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a081526133e660c082612ede565b51902090565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff60406000205416156134465750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b826134fc575b50907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff6000946040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff8216600052806020526040600020548381039080821015613583575073ffffffffffffffffffffffffffffffffffffffff8316600090815260208390526040902055600201805483900390557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6134b4565b849073ffffffffffffffffffffffffffffffffffffffff857fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b9594909392919285810361033a5780156138725773ffffffffffffffffffffffffffffffffffffffff8416600052866020526040600020549160009660009260005b81811061366b575050505050505073ffffffffffffffffffffffffffffffffffffffff821673ffffffffffffffffffffffffffffffffffffffff821603613659575b50505050565b61366293613c38565b38808080613653565b73ffffffffffffffffffffffffffffffffffffffff61368e6115f283858b61319b565b16801561382e576136a082858761319b565b358061376a575b906020917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef73ffffffffffffffffffffffffffffffffffffffff8c16938492604051908152a38a151580613760575b613704575b50600101613611565b8a8703908782101561372a57600090815260208d905260409020908601905560016136fb565b878c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b50858b14156136f6565b9a8b810190811115613804579a8c73ffffffffffffffffffffffffffffffffffffffff8b168381146137b65750906040602093926000908482528552208181540190555b9091506136a7565b905088829892116137ce5750908660209201966137ae565b8888917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b7fdedd83410000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff897f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50505050505050565b80518210156131ab5760209160051b010190565b90918251908051820361033a5781156136535760009360005b8381106139035750505050816138bc575050565b60020180549180830192808411156138d357505055565b7f0366a5f60000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b73ffffffffffffffffffffffffffffffffffffffff613922828461387b565b511680156123fd57613934828561387b565b5180613972575b9060007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602060019594604051908152a3016138a8565b969190878301928311156139b55773ffffffffffffffffffffffffffffffffffffffff81166000908152602088905260409020805489019055919690919061393b565b7f5542ae7c0000000000000000000000000000000000000000000000000000000060005260046000fd5b929394909181850361033a57841561333d5773ffffffffffffffffffffffffffffffffffffffff8316600052836020526040600020549560009260009660005b818110613ad157505050505080151580613ac7575b613a40575b5050505050565b8085039480861015613a7d57505073ffffffffffffffffffffffffffffffffffffffff166000526020526040600020910190553880808080613a39565b73ffffffffffffffffffffffffffffffffffffffff837fe450d38c000000000000000000000000000000000000000000000000000000006000521660045260245260445260646000fd5b5083811415613a34565b73ffffffffffffffffffffffffffffffffffffffff613af46115f283858961319b565b168015613bf457613b0682858761319b565b3580613b5a575b90600192916040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602073ffffffffffffffffffffffffffffffffffffffff8c1692a301613a1f565b9687810190811115613804579673ffffffffffffffffffffffffffffffffffffffff8916828114613ba757509060019291604060008381528c602052208181540190555b90919250613b0d565b8c829c9211613bbe5750908a60019392019a613b9e565b8c8c917fe450d38c0000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b73ffffffffffffffffffffffffffffffffffffffff887f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b92909173ffffffffffffffffffffffffffffffffffffffff8116938415613dd2576001019073ffffffffffffffffffffffffffffffffffffffff841660005281602052604060002085600052602052604060002054927fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84141580613dc9575b613d05575b50505090602073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925926040519485521692a3565b8084039380851015613d6e5750505073ffffffffffffffffffffffffffffffffffffffff7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92592602092828616600052835260406000208660005283528060406000205592613cbd565b6040517f137ad6ab00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015293909316602484015260448301526064820152608490fd5b50801515613cb8565b73ffffffffffffffffffffffffffffffffffffffff847ff7e1ac0f000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b929173ffffffffffffffffffffffffffffffffffffffff16928315613f275782613e80575b50602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef926040519485521692a3565b73ffffffffffffffffffffffffffffffffffffffff821660005280602052604060002054838103908082101561358357508260209273ffffffffffffffffffffffffffffffffffffffff9287847fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef971603613f00575b5050925050613e3b565b83831660005281855260406000205586600052835260406000208581540190553880613ef6565b73ffffffffffffffffffffffffffffffffffffffff827f754f425b000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b67ffffffffffffffff8111610ac557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192613fb182613f6b565b91613fbf6040519384612ede565b829481845281830111610335578281602093846000960137010152565b90816020910312610335575180151581036103355790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015614110573233148015614115575b614110577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c9080331490811561407f575b5061407c57503390565b90565b6040517f019a202800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201523360248201523060448201529150602090829060649082905afa9081156114f0576000916140f1575b5038614072565b61410a915060203d602011611780576117728183612ede565b386140ea565b503390565b506018361061403b565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016801561425357323314801561425b575b614253578033149081156141b2575b50614181576000903690565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec3601903682116103355760009190565b6040517f019a20280000000000000000000000000000000000000000000000000000000081527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c60048201523360248201523060448201529150602090829060649082905afa9081156114f057600091614234575b5038614175565b61424d915060203d602011611780576117728183612ede565b3861422d565b506000903690565b5060183610614166565b6142d473ffffffffffffffffffffffffffffffffffffffff9294958360209516968460405197889687967f4fc358590000000000000000000000000000000000000000000000000000000088521660048701521660248501526044840152608060648401526084830190612c7c565b03816000865af19081156114f057600091614364575b507fffffffff000000000000000000000000000000000000000000000000000000007f4fc35859000000000000000000000000000000000000000000000000000000009116036143375750565b7f6d4497360000000000000000000000000000000000000000000000000000000060005260045260246000fd5b6020813d6020116143de575b8161437d60209383612ede565b810103126143da5751907fffffffff00000000000000000000000000000000000000000000000000000000821682036143d757507fffffffff000000000000000000000000000000000000000000000000000000006142ea565b80fd5b5080fd5b3d915061437056fea264697066735822122029d0057bbf612f0c759b71b05d0f6d90a6b11497bd2a34059c6b919d585cb58664736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
