Overview ERC1155
Total Supply:
0

Holders:
1,461
Profile Summary
Blockchain:
C-Chain (43114)

Contract Source Code Verified (Partial Match)
Contract Name:
Resource

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Created At:
Fri, 26 Nov 2021 10:31:30 GMT
Ownable.sol
home
user
.brownie
packages
OpenZeppelin
openzeppelin-contracts@4.3.2
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "contract IERC20",
        "name": "phi",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "craftId",
        "type": "uint256"
      }
    ],
    "name": "CraftClaimed",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "craftId",
        "type": "uint256"
      }
    ],
    "name": "CraftStarted",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "newValue",
        "type": "uint256"
      }
    ],
    "name": "CraftWaitSkipPriceUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "craftId",
        "type": "uint256"
      }
    ],
    "name": "CraftWaitSkipped",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "weight",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "string",
        "name": "ipfsHash",
        "type": "string"
      }
    ],
    "name": "ResourceTypeRegistered",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "bool",
        "name": "newValue",
        "type": "bool"
      }
    ],
    "name": "ReverseCraftStatusUpdated",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "ids",
        "type": "uint256[]"
      },
      {
        "indexed": false,
        "internalType": "uint256[]",
        "name": "values",
        "type": "uint256[]"
      }
    ],
    "name": "TransferBatch",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "TransferSingle",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "string",
        "name": "value",
        "type": "string"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "URI",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "accounts",
        "type": "address[]"
      },
      {
        "internalType": "uint256[]",
        "name": "ids",
        "type": "uint256[]"
      }
    ],
    "name": "balanceOfBatch",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "craftId",
        "type": "uint256"
      }
    ],
    "name": "claimCraft",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "craft",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "craftWaitSkipPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId1",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "tokenId2",
        "type": "uint256"
      }
    ],
    "name": "getCraftingResult",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "ids",
        "type": "uint256[]"
      }
    ],
    "name": "getCrafts",
    "outputs": [
      {
        "components": [
          {
            "internalType": "uint256",
            "name": "tokenId",
            "type": "uint256"
          },
          {
            "internalType": "uint256",
            "name": "finishTimestamp",
            "type": "uint256"
          },
          {
            "internalType": "bool",
            "name": "claimed",
            "type": "bool"
          }
        ],
        "internalType": "struct Resource.PendingCraft[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getPlayers",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "offset",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "count",
        "type": "uint256"
      }
    ],
    "name": "getPlayersPaginated",
    "outputs": [
      {
        "internalType": "address[]",
        "name": "",
        "type": "address[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256[]",
        "name": "ids",
        "type": "uint256[]"
      }
    ],
    "name": "getResourceTypes",
    "outputs": [
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "weight",
            "type": "uint256"
          },
          {
            "internalType": "enum Resource.Tier",
            "name": "tier",
            "type": "uint8"
          },
          {
            "internalType": "uint256[]",
            "name": "ingredients",
            "type": "uint256[]"
          },
          {
            "internalType": "string",
            "name": "ipfsHash",
            "type": "string"
          }
        ],
        "internalType": "struct Resource.ResourceType[]",
        "name": "",
        "type": "tuple[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      }
    ],
    "name": "getResourceWeight",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "contract ChestSale",
        "name": "chest",
        "type": "address"
      }
    ],
    "name": "initialMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "player",
        "type": "address"
      }
    ],
    "name": "ownedTokens",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "player",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "offset",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "count",
        "type": "uint256"
      }
    ],
    "name": "ownedTokensPaginated",
    "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": "player",
        "type": "address"
      }
    ],
    "name": "pendingCrafts",
    "outputs": [
      {
        "internalType": "uint256[]",
        "name": "",
        "type": "uint256[]"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "components": [
          {
            "internalType": "string",
            "name": "name",
            "type": "string"
          },
          {
            "internalType": "uint256",
            "name": "weight",
            "type": "uint256"
          },
          {
            "internalType": "enum Resource.Tier",
            "name": "tier",
            "type": "uint8"
          },
          {
            "internalType": "uint256[]",
            "name": "ingredients",
            "type": "uint256[]"
          },
          {
            "internalType": "string",
            "name": "ipfsHash",
            "type": "string"
          }
        ],
        "internalType": "struct Resource.ResourceType[]",
        "name": "types",
        "type": "tuple[]"
      }
    ],
    "name": "registerResourceTypes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "resourceCount",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "resourceTypes",
    "outputs": [
      {
        "internalType": "string",
        "name": "name",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "weight",
        "type": "uint256"
      },
      {
        "internalType": "enum Resource.Tier",
        "name": "tier",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "ipfsHash",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "reverseCraft",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "reverseCraftActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256[]",
        "name": "ids",
        "type": "uint256[]"
      },
      {
        "internalType": "uint256[]",
        "name": "amounts",
        "type": "uint256[]"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "safeBatchTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "id",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "newValue",
        "type": "uint256"
      }
    ],
    "name": "setCraftSkipWaitPrice",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "newValue",
        "type": "bool"
      }
    ],
    "name": "setReverseCraftActive",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "craftId",
        "type": "uint256"
      }
    ],
    "name": "skipCraftWait",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "name": "uri",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "withdrawFees",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60a0604052678ac7230489e80000600955600a805460ff191690553480156200002757600080fd5b5060405162004943380380620049438339810160408190526200004a9162000817565b604051806060016040528060258152602001620048c2602591396200006f8162000317565b506200007b3362000330565b606081901b6001600160601b03191660805260408051600480825260a08201909252600091816020015b620000af620006f1565b815260200190600190039081620000a5579050506040805160e081018252600560a08201908152640cac2e4e8d60db1b60c0830152815260016020820152919250810160008152602001600060405190808252806020026020018201604052801562000125578160200160208202803683370190505b5081526020016040518060600160405280602e815260200162004915602e9139815250816000815181106200015e576200015e6200094f565b6020908102919091018101919091526040805160e081018252600560a08201908152643bb0ba32b960d91b60c08301528152600181840152600081830181905282518181529384019092529160608301915081526020016040518060600160405280602e815260200162004894602e913981525081600181518110620001e857620001e86200094f565b6020908102919091018101919091526040805160e081018252600460a08201908152636669726560e01b60c08301528152600181840152600081830181905282518181529384019092529160608301915081526020016040518060600160405280602e8152602001620048e7602e9139815250816002815181106200027157620002716200094f565b6020908102919091018101919091526040805160e081018252600360a082019081526230b4b960e91b60c08301528152600181840152600081830181905282518181529384019092529160608301915081526020016040518060600160405280602e815260200162004866602e913981525081600381518110620002f957620002f96200094f565b60209081029190910101526200030f8162000382565b505062000965565b80516200032c90600290602084019062000734565b5050565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6003546001600160a01b03163314620003e25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b60005b81518110156200032c57620004066004620006e460201b620021871760201c565b60006200041f6004620006ed60201b620021901760201c565b90508282815181106200043657620004366200094f565b6020908102919091018101516000838152600b835260409020815180519293919262000466928492019062000734565b506020820151816001015560408201518160020160006101000a81548160ff021916908360058111156200049e576200049e62000939565b021790555060608201518051620004c0916003840191602090910190620007c3565b5060808201518051620004de91600484019160209091019062000734565b50905050828281518110620004f757620004f76200094f565b6020026020010151606001515160001415620005135762000630565b8282815181106200052857620005286200094f565b6020026020010151606001515160021415620005e75780600f60008585815181106200055857620005586200094f565b6020026020010151606001516000815181106200057957620005796200094f565b602002602001015181526020019081526020016000206000858581518110620005a657620005a66200094f565b602002602001015160600151600181518110620005c757620005c76200094f565b602002602001015181526020019081526020016000208190555062000630565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c696420696e6772656469656e747320636f756e74000000000000006044820152606401620003d9565b807fc61fac2cf66079c61febae7d287c6afef4bc46ad9dc3d5ceca684238efde13c88484815181106200066757620006676200094f565b6020026020010151600001518585815181106200068857620006886200094f565b602002602001015160200151868681518110620006a957620006a96200094f565b602002602001015160800151604051620006c69392919062000899565b60405180910390a25080620006db816200090f565b915050620003e5565b80546001019055565b5490565b6040518060a0016040528060608152602001600081526020016000600581111562000720576200072062000939565b815260200160608152602001606081525090565b8280546200074290620008d2565b90600052602060002090601f016020900481019282620007665760008555620007b1565b82601f106200078157805160ff1916838001178555620007b1565b82800160010185558215620007b1579182015b82811115620007b157825182559160200191906001019062000794565b50620007bf92915062000800565b5090565b828054828255906000526020600020908101928215620007b15791602002820182811115620007b157825182559160200191906001019062000794565b5b80821115620007bf576000815560010162000801565b6000602082840312156200082a57600080fd5b81516001600160a01b03811681146200084257600080fd5b9392505050565b6000815180845260005b81811015620008715760208185018101518683018201520162000853565b8181111562000884576000602083870101525b50601f01601f19169290920160200192915050565b606081526000620008ae606083018662000849565b8460208401528281036040840152620008c8818562000849565b9695505050505050565b600181811c90821680620008e757607f821691505b602082108114156200090957634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156200093257634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60805160601c613ec6620009a0600039600081816106890152818161097e01528181610b9601528181610c1a01526120980152613ec66000f3fe608060405234801561001057600080fd5b50600436106101fa5760003560e01c8063715018a61161011a578063a22cb465116100ad578063e985e9c51161007c578063e985e9c514610470578063edb6b279146104ac578063f242432a146104bf578063f2fde38b146104d2578063f3917bd2146104e557600080fd5b8063a22cb4651461042a578063b12ab40f1461043d578063bf7a296b14610450578063c268f9ba1461045d57600080fd5b806388b5adca116100e957806388b5adca146103c45780638b5b9ccc146103e45780638da5cb5b146103ec57806395810f211461040757600080fd5b8063715018a61461036657806375b94ff41461036e57806376487804146103815780637a15d30e146103a457600080fd5b806318951440116101925780633b508352116101615780633b5083521461031757806346c8165d146103375780634e1273f41461034a57806358650dbb1461035d57600080fd5b806318951440146102be578063296453fc146102de5780632eb2c2d6146102f1578063306e49e71461030457600080fd5b80630a3fa24a116101ce5780630a3fa24a146102705780630e89341c14610278578063164e68de14610298578063184cf99b146102ab57600080fd5b8062fdd58e146101ff57806301ffc9a7146102255780630670884d1461024857806307ce1c4d1461025d575b600080fd5b61021261020d3660046133d7565b6104f8565b6040519081526020015b60405180910390f35b6102386102333660046136d0565b610592565b604051901515815260200161021c565b61025b61025636600461370a565b6105e2565b005b61025b61026b36600461370a565b610703565b610212610aa5565b61028b61028636600461370a565b610ab5565b60405161021c9190613a44565b61025b6102a636600461323e565b610b49565b61025b6102b936600461350a565b610c44565b6102d16102cc36600461373c565b610f27565b60405161021c919061389b565b61025b6102ec366004613696565b610ff0565b61025b6102ff366004613294565b6110a7565b61025b61031236600461370a565b61113e565b61032a61032536600461323e565b611257565b60405161021c9190613a03565b61032a610345366004613403565b61127b565b61032a610358366004613438565b611351565b61021260095481565b61025b61147a565b61021261037c36600461373c565b6114b0565b61039461038f36600461370a565b6114ed565b60405161021c9493929190613a57565b6103b76103b2366004613662565b61162d565b60405161021c9190613943565b6103d76103d2366004613662565b6118b9565b60405161021c91906138e8565b6102d16119c6565b6003546040516001600160a01b03909116815260200161021c565b61021261041536600461370a565b6000908152600b602052604090206001015490565b61025b6104383660046133a9565b6119d2565b61032a61044b36600461323e565b611aa9565b600a546102389060ff1681565b61025b61046b36600461323e565b611acd565b61023861047e36600461325b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61025b6104ba36600461370a565b611be0565b61025b6104cd366004613341565b611c7d565b61025b6104e036600461323e565b611d04565b61025b6104f336600461370a565b611d9c565b60006001600160a01b0383166105695760405162461bcd60e51b815260206004820152602b60248201527f455243313135353a2062616c616e636520717565727920666f7220746865207a60448201526a65726f206164647265737360a81b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006001600160e01b03198216636cdb3d1360e11b14806105c357506001600160e01b031982166303a24d0760e21b145b8061058c57506301ffc9a760e01b6001600160e01b031983161461058c565b336000908152600c602052604090206105fb9082612194565b6106175760405162461bcd60e51b815260040161056090613bd0565b6000818152600d60205260409020600181015442106106785760405162461bcd60e51b815260206004820152601960248201527f74686973206372616674206973206e6f742070656e64696e67000000000000006044820152606401610560565b6009546106b3906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690339030906121ac565b6106be600142613c5b565b60018201556040518281527f32a29a9989119bf9bb63829e6c8d5ebbb60c7820c7f672c523eebafa7c6d60d49060200160405180910390a16106ff8261113e565b5050565b600a5460ff166107555760405162461bcd60e51b815260206004820152601b60248201527f72657665727365206372616674206973206e6f742061637469766500000000006044820152606401610560565b600061076133836104f8565b116107ae5760405162461bcd60e51b815260206004820152601c60248201527f796f7520646f206e6f74206f776e2074686973207265736f75726365000000006044820152606401610560565b6000818152600b602090815260408083206003018054825181850281018501909352808352919290919083018282801561080757602002820191906000526020600020905b8154815260200190600101908083116107f3575b50505050509050600081511161086a5760405162461bcd60e51b815260206004820152602260248201527f796f752063616e6e6f74207265766572736520612062617365207265736f7572604482015261636560f01b6064820152608401610560565b6000828152600b602052604081206002015460ff169080600183600581111561089557610895613d5b565b14156108af57506107089050670de0b6b3a7640000610965565b60028360058111156108c3576108c3613d5b565b14156108dd5750611c209050671bc16d674ec80000610965565b60038360058111156108f1576108f1613d5b565b141561090b575061a8c090506729a2241af62c0000610965565b600483600581111561091f5761091f613d5b565b141561093a5750620151809050673782dace9d900000610965565b600583600581111561094e5761094e613d5b565b1415610965575062093a809050674563918244f400005b6109713386600161221d565b6109a66001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846121ac565b60005b8451811015610a9d576109c0600580546001019055565b60006109cb60055490565b905060405180606001604052808784815181106109ea576109ea613d87565b602002602001015181526020018542610a039190613c43565b815260006020918201819052838152600d8252604080822084518155848401516001820155938101516002909401805460ff191694151594909417909355338152600c90915220610a549082612396565b5060405181815233907f7a1a44d9e743fa2a37d296b9222e3bf4f01742cf19a9c6dc2c4f0270a97c45df9060200160405180910390a25080610a9581613d2a565b9150506109a9565b505050505050565b6000610ab060045490565b905090565b606060028054610ac490613c9e565b80601f0160208091040260200160405190810160405280929190818152602001828054610af090613c9e565b8015610b3d5780601f10610b1257610100808354040283529160200191610b3d565b820191906000526020600020905b815481529060010190602001808311610b2057829003601f168201915b50505050509050919050565b6003546001600160a01b03163314610b735760405162461bcd60e51b815260040161056090613b9b565b6040516370a0823160e01b8152306004820152610c419082906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a082319060240160206040518083038186803b158015610bd857600080fd5b505afa158015610bec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c109190613723565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906123a2565b50565b6003546001600160a01b03163314610c6e5760405162461bcd60e51b815260040161056090613b9b565b60005b81518110156106ff57610c88600480546001019055565b6000610c9360045490565b9050828281518110610ca757610ca7613d87565b6020908102919091018101516000838152600b8352604090208151805192939192610cd59284920190613023565b506020820151816001015560408201518160020160006101000a81548160ff02191690836005811115610d0a57610d0a613d5b565b021790555060608201518051610d2a9160038401916020909101906130a7565b5060808201518051610d46916004840191602090910190613023565b50905050828281518110610d5c57610d5c613d87565b6020026020010151606001515160001415610d7657610e81565b828281518110610d8857610d88613d87565b6020026020010151606001515160021415610e395780600f6000858581518110610db457610db4613d87565b602002602001015160600151600081518110610dd257610dd2613d87565b602002602001015181526020019081526020016000206000858581518110610dfc57610dfc613d87565b602002602001015160600151600181518110610e1a57610e1a613d87565b6020026020010151815260200190815260200160002081905550610e81565b60405162461bcd60e51b815260206004820152601960248201527f496e76616c696420696e6772656469656e747320636f756e74000000000000006044820152606401610560565b807fc61fac2cf66079c61febae7d287c6afef4bc46ad9dc3d5ceca684238efde13c8848481518110610eb557610eb5613d87565b602002602001015160000151858581518110610ed357610ed3613d87565b602002602001015160200151868681518110610ef157610ef1613d87565b602002602001015160800151604051610f0c93929190613a8f565b60405180910390a25080610f1f81613d2a565b915050610c71565b60606000610f3560076123d7565b90506000836001600160401b03811115610f5157610f51613d9d565b604051908082528060200260200182016040528015610f7a578160200160208202803683370190505b50905060005b84811015610fe75782610f938288613c43565b81518110610fa357610fa3613d87565b6020026020010151828281518110610fbd57610fbd613d87565b6001600160a01b039092166020928302919091019091015280610fdf81613d2a565b915050610f80565b50949350505050565b6003546001600160a01b0316331461101a5760405162461bcd60e51b815260040161056090613b9b565b600a5460ff161515811515141561105f5760405162461bcd60e51b81526020600482015260096024820152686e6f206368616e676560b81b6044820152606401610560565b600a805460ff19168215159081179091556040519081527f92ff5a73ae2464db424f5bf6c3e3ebd76bab16d1adc7a3dbb64061eb7ed6ef52906020015b60405180910390a150565b6001600160a01b0385163314806110c357506110c3853361047e565b61112a5760405162461bcd60e51b815260206004820152603260248201527f455243313135353a207472616e736665722063616c6c6572206973206e6f74206044820152711bdddb995c881b9bdc88185c1c1c9bdd995960721b6064820152608401610560565b61113785858585856123e4565b5050505050565b336000908152600c602052604090206111579082612194565b6111735760405162461bcd60e51b815260040161056090613bd0565b6000818152600d6020526040902060018101544210156111d55760405162461bcd60e51b815260206004820152601b60248201527f74686973206372616674206973207374696c6c2070656e64696e6700000000006044820152606401610560565b60028101805460ff19166001179055336000908152600c602052604090206111fd90836125c7565b5061121e3382600001546001604051806020016040528060008152506125d3565b60405182815233907f09cb363b7330c08920dd04bde0d0a87880b774eaf89de7f30d518975888299be9060200160405180910390a25050565b6001600160a01b0381166000908152600c6020526040902060609061058c906123d7565b6001600160a01b0383166000908152600e60205260408120606091906112a0906123d7565b90506000836001600160401b038111156112bc576112bc613d9d565b6040519080825280602002602001820160405280156112e5578160200160208202803683370190505b50905060005b8481101561134557826112fe8288613c43565b8151811061130e5761130e613d87565b602002602001015182828151811061132857611328613d87565b60209081029190910101528061133d81613d2a565b9150506112eb565b509150505b9392505050565b606081518351146113b65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610560565b600083516001600160401b038111156113d1576113d1613d9d565b6040519080825280602002602001820160405280156113fa578160200160208202803683370190505b50905060005b84518110156114725761144585828151811061141e5761141e613d87565b602002602001015185838151811061143857611438613d87565b60200260200101516104f8565b82828151811061145757611457613d87565b602090810291909101015261146b81613d2a565b9050611400565b509392505050565b6003546001600160a01b031633146114a45760405162461bcd60e51b815260040161056090613b9b565b6114ae60006126e3565b565b6000828152600f602090815260408083208484529091528120548061134a5750506000908152600f60209081526040808320938352929052205490565b600b6020526000908152604090208054819061150890613c9e565b80601f016020809104026020016040519081016040528092919081815260200182805461153490613c9e565b80156115815780601f1061155657610100808354040283529160200191611581565b820191906000526020600020905b81548152906001019060200180831161156457829003601f168201915b50505050600183015460028401546004850180549495929460ff9092169350906115aa90613c9e565b80601f01602080910402602001604051908101604052809291908181526020018280546115d690613c9e565b80156116235780601f106115f857610100808354040283529160200191611623565b820191906000526020600020905b81548152906001019060200180831161160657829003601f168201915b5050505050905084565b6060600082516001600160401b0381111561164a5761164a613d9d565b60405190808252806020026020018201604052801561168357816020015b6116706130e1565b8152602001906001900390816116685790505b50905060005b83518110156118b257600b60008583815181106116a8576116a8613d87565b602002602001015181526020019081526020016000206040518060a00160405290816000820180546116d990613c9e565b80601f016020809104026020016040519081016040528092919081815260200182805461170590613c9e565b80156117525780601f1061172757610100808354040283529160200191611752565b820191906000526020600020905b81548152906001019060200180831161173557829003601f168201915b505050918352505060018201546020820152600282015460409091019060ff16600581111561178357611783613d5b565b600581111561179457611794613d5b565b8152602001600382018054806020026020016040519081016040528092919081815260200182805480156117e757602002820191906000526020600020905b8154815260200190600101908083116117d3575b5050505050815260200160048201805461180090613c9e565b80601f016020809104026020016040519081016040528092919081815260200182805461182c90613c9e565b80156118795780601f1061184e57610100808354040283529160200191611879565b820191906000526020600020905b81548152906001019060200180831161185c57829003601f168201915b50505050508152505082828151811061189457611894613d87565b602002602001018190525080806118aa90613d2a565b915050611689565b5092915050565b6060600082516001600160401b038111156118d6576118d6613d9d565b60405190808252806020026020018201604052801561192d57816020015b61191a604051806060016040528060008152602001600081526020016000151581525090565b8152602001906001900390816118f45790505b50905060005b83518110156118b257600d600085838151811061195257611952613d87565b60209081029190910181015182528181019290925260409081016000208151606081018352815481526001820154938101939093526002015460ff1615159082015282518390839081106119a8576119a8613d87565b602002602001018190525080806119be90613d2a565b915050611933565b6060610ab060076123d7565b336001600160a01b0383161415611a3d5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610560565b3360008181526001602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6001600160a01b0381166000908152600e6020526040902060609061058c906123d7565b6003546001600160a01b03163314611af75760405162461bcd60e51b815260040161056090613b9b565b60065460ff1615611b545760405162461bcd60e51b815260206004820152602160248201527f696e697469616c206d696e7420697320706572666f726d656420616c726561646044820152607960f81b6064820152608401610560565b611b73816001620124f8604051806020016040528060008152506125d3565b611b92816002620124f8604051806020016040528060008152506125d3565b611bb1816003620124f8604051806020016040528060008152506125d3565b611bd0816004620124f8604051806020016040528060008152506125d3565b506006805460ff19166001179055565b6003546001600160a01b03163314611c0a5760405162461bcd60e51b815260040161056090613b9b565b806009541415611c485760405162461bcd60e51b81526020600482015260096024820152686e6f206368616e676560b81b6044820152606401610560565b60098190556040518181527f79acb201b3851cc3ece125c4e64dbf028e08b34fd7c61dff43543d818fdab8f79060200161109c565b6001600160a01b038516331480611c995750611c99853361047e565b611cf75760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7260448201526808185c1c1c9bdd995960ba1b6064820152608401610560565b6111378585858585612735565b6003546001600160a01b03163314611d2e5760405162461bcd60e51b815260040161056090613b9b565b6001600160a01b038116611d935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610560565b610c41816126e3565b6000818152600b6020526040902060030154611dfa5760405162461bcd60e51b815260206004820152601b60248201527f4e6f2072656369706520666f722074686973207265736f7572636500000000006044820152606401610560565b6000818152600b6020908152604080832060030180548251818502810185019093528083529192909190830182828015611e5357602002820191906000526020600020905b815481526020019060010190808311611e3f575b505050505090506000805b8251811015611f9d576000611e7f3385848151811061143857611438613d87565b11611ecc5760405162461bcd60e51b815260206004820152601860248201527f696e73756666696369656e7420696e6772656469656e747300000000000000006044820152606401610560565b611ef133848381518110611ee257611ee2613d87565b6020026020010151600161221d565b816005811115611f0357611f03613d5b565b600b6000858481518110611f1957611f19613d87565b60209081029190910181015182528101919091526040016000206002015460ff166005811115611f4b57611f4b613d5b565b1115611f8b57600b6000848381518110611f6757611f67613d87565b60209081029190910181015182528101919091526040016000206002015460ff1691505b80611f9581613d2a565b915050611e5e565b506000806001836005811115611fb557611fb5613d5b565b1415611fcf57506107089050670de0b6b3a7640000612085565b6002836005811115611fe357611fe3613d5b565b1415611ffd5750611c209050671bc16d674ec80000612085565b600383600581111561201157612011613d5b565b141561202b575061a8c090506729a2241af62c0000612085565b600483600581111561203f5761203f613d5b565b141561205a5750620151809050673782dace9d900000612085565b600583600581111561206e5761206e613d5b565b1415612085575062093a809050674563918244f400005b80156120c0576120c06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846121ac565b6120ce600580546001019055565b60006120d960055490565b9050604051806060016040528087815260200184426120f89190613c43565b815260006020918201819052838152600d8252604080822084518155848401516001820155938101516002909401805460ff191694151594909417909355338152600c909152206121499082612396565b5060405181815233907f7a1a44d9e743fa2a37d296b9222e3bf4f01742cf19a9c6dc2c4f0270a97c45df9060200160405180910390a2505050505050565b80546001019055565b5490565b6000818152600183016020526040812054151561134a565b6040516001600160a01b03808516602483015283166044820152606481018290526122179085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612852565b50505050565b6001600160a01b03831661227f5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610560565b336122ae8185600061229087612924565b61229987612924565b6040518060200160405280600081525061296f565b6000838152602081815260408083206001600160a01b03881684529091529020548281101561232b5760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610560565b6000848152602081815260408083206001600160a01b03898116808652918452828520888703905582518981529384018890529092908616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a45050505050565b600061134a8383612ac4565b6040516001600160a01b0383166024820152604481018290526123d290849063a9059cbb60e01b906064016121e0565b505050565b6060600061134a83612b13565b81518351146124465760405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608401610560565b6001600160a01b03841661246c5760405162461bcd60e51b815260040161056090613b0c565b3361247b81878787878761296f565b60005b845181101561256157600085828151811061249b5761249b613d87565b6020026020010151905060008583815181106124b9576124b9613d87565b602090810291909101810151600084815280835260408082206001600160a01b038e1683529093529190912054909150818110156125095760405162461bcd60e51b815260040161056090613b51565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612546908490613c43565b925050819055505050508061255a90613d2a565b905061247e565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516125b1929190613a16565b60405180910390a4610a9d818787878787612b6e565b600061134a8383612cd9565b6001600160a01b0384166126335760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610560565b336126538160008761264488612924565b61264d88612924565b8761296f565b6000848152602081815260408083206001600160a01b038916845290915281208054859290612683908490613c43565b909155505060408051858152602081018590526001600160a01b0380881692600092918516917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a461113781600087878787612dcc565b600380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03841661275b5760405162461bcd60e51b815260040161056090613b0c565b3361276b81878761264488612924565b6000848152602081815260408083206001600160a01b038a168452909152902054838110156127ac5760405162461bcd60e51b815260040161056090613b51565b6000858152602081815260408083206001600160a01b038b81168552925280832087850390559088168252812080548692906127e9908490613c43565b909155505060408051868152602081018690526001600160a01b03808916928a821692918616917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612849828888888888612dcc565b50505050505050565b60006128a7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612e969092919063ffffffff16565b8051909150156123d257808060200190518101906128c591906136b3565b6123d25760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610560565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061295e5761295e613d87565b602090810291909101015292915050565b60005b8351811015612aac576001600160a01b038616158015906129c157508281815181106129a0576129a0613d87565b60200260200101516129be8786848151811061143857611438613d87565b11155b15612a1857612a168482815181106129db576129db613d87565b6020026020010151600e6000896001600160a01b03166001600160a01b031681526020019081526020016000206125c790919063ffffffff16565b505b6001600160a01b03851615801590612a435750612a418585838151811061143857611438613d87565b155b15612a9a57612a98848281518110612a5d57612a5d613d87565b6020026020010151600e6000886001600160a01b03166001600160a01b0316815260200190815260200160002061239690919063ffffffff16565b505b80612aa481613d2a565b915050612972565b50612ab8600786612ead565b50612849600785612ead565b6000818152600183016020526040812054612b0b5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561058c565b50600061058c565b606081600001805480602002602001604051908101604052809291908181526020018280548015610b3d57602002820191906000526020600020905b815481526020019060010190808311612b4f5750505050509050919050565b6001600160a01b0384163b15610a9d5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612bb29089908990889088908890600401613803565b602060405180830381600087803b158015612bcc57600080fd5b505af1925050508015612bfc575060408051601f3d908101601f19168201909252612bf9918101906136ed565b60015b612ca957612c08613db3565b806308c379a01415612c425750612c1d613dce565b80612c285750612c44565b8060405162461bcd60e51b81526004016105609190613a44565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e20455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610560565b6001600160e01b0319811663bc197c8160e01b146128495760405162461bcd60e51b815260040161056090613ac4565b60008181526001830160205260408120548015612dc2576000612cfd600183613c5b565b8554909150600090612d1190600190613c5b565b9050818114612d76576000866000018281548110612d3157612d31613d87565b9060005260206000200154905080876000018481548110612d5457612d54613d87565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612d8757612d87613d71565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061058c565b600091505061058c565b6001600160a01b0384163b15610a9d5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190612e109089908990889088908890600401613861565b602060405180830381600087803b158015612e2a57600080fd5b505af1925050508015612e5a575060408051601f3d908101601f19168201909252612e57918101906136ed565b60015b612e6657612c08613db3565b6001600160e01b0319811663f23a6e6160e01b146128495760405162461bcd60e51b815260040161056090613ac4565b6060612ea58484600085612ec2565b949350505050565b600061134a836001600160a01b038416612ac4565b606082471015612f235760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610560565b843b612f715760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610560565b600080866001600160a01b03168587604051612f8d91906137e7565b60006040518083038185875af1925050503d8060008114612fca576040519150601f19603f3d011682016040523d82523d6000602084013e612fcf565b606091505b5091509150612fdf828286612fea565b979650505050505050565b60608315612ff957508161134a565b8251156130095782518084602001fd5b8160405162461bcd60e51b81526004016105609190613a44565b82805461302f90613c9e565b90600052602060002090601f0160209004810192826130515760008555613097565b82601f1061306a57805160ff1916838001178555613097565b82800160010185558215613097579182015b8281111561309757825182559160200191906001019061307c565b506130a3929150613121565b5090565b828054828255906000526020600020908101928215613097579160200282018281111561309757825182559160200191906001019061307c565b6040518060a0016040528060608152602001600081526020016000600581111561310d5761310d613d5b565b815260200160608152602001606081525090565b5b808211156130a35760008155600101613122565b60006001600160401b0383111561314f5761314f613d9d565b604051613166601f8501601f191660200182613cfe565b80915083815284848401111561317b57600080fd5b83836020830137600060208583010152509392505050565b600082601f8301126131a457600080fd5b813560206131b182613c20565b6040516131be8282613cfe565b8381528281019150858301600585901b870184018810156131de57600080fd5b60005b858110156131fd578135845292840192908401906001016131e1565b5090979650505050505050565b600082601f83011261321b57600080fd5b61134a83833560208501613136565b80356006811061323957600080fd5b919050565b60006020828403121561325057600080fd5b813561134a81613e57565b6000806040838503121561326e57600080fd5b823561327981613e57565b9150602083013561328981613e57565b809150509250929050565b600080600080600060a086880312156132ac57600080fd5b85356132b781613e57565b945060208601356132c781613e57565b935060408601356001600160401b03808211156132e357600080fd5b6132ef89838a01613193565b9450606088013591508082111561330557600080fd5b61331189838a01613193565b9350608088013591508082111561332757600080fd5b506133348882890161320a565b9150509295509295909350565b600080600080600060a0868803121561335957600080fd5b853561336481613e57565b9450602086013561337481613e57565b9350604086013592506060860135915060808601356001600160401b0381111561339d57600080fd5b6133348882890161320a565b600080604083850312156133bc57600080fd5b82356133c781613e57565b9150602083013561328981613e6c565b600080604083850312156133ea57600080fd5b82356133f581613e57565b946020939093013593505050565b60008060006060848603121561341857600080fd5b833561342381613e57565b95602085013595506040909401359392505050565b6000806040838503121561344b57600080fd5b82356001600160401b038082111561346257600080fd5b818501915085601f83011261347657600080fd5b8135602061348382613c20565b6040516134908282613cfe565b8381528281019150858301600585901b870184018b10156134b057600080fd5b600096505b848710156134dc5780356134c881613e57565b8352600196909601959183019183016134b5565b50965050860135925050808211156134f357600080fd5b5061350085828601613193565b9150509250929050565b6000602080838503121561351d57600080fd5b82356001600160401b038082111561353457600080fd5b818501915085601f83011261354857600080fd5b813561355381613c20565b604080516135618382613cfe565b8381528681019250858701600585901b870188018b101561358157600080fd5b60005b858110156136525781358781111561359b57600080fd5b880160a0818e03601f190112156135b157600080fd5b6135b9613c11565b8a820135898111156135ca57600080fd5b6135d88f8d8386010161320a565b825250858201358b8201526135ef6060830161322a565b8682015260808201358981111561360557600080fd5b6136138f8d83860101613193565b60608301525060a08201358981111561362b57600080fd5b6136398f8d8386010161320a565b6080830152508652509388019390880190600101613584565b50909a9950505050505050505050565b60006020828403121561367457600080fd5b81356001600160401b0381111561368a57600080fd5b612ea584828501613193565b6000602082840312156136a857600080fd5b813561134a81613e6c565b6000602082840312156136c557600080fd5b815161134a81613e6c565b6000602082840312156136e257600080fd5b813561134a81613e7a565b6000602082840312156136ff57600080fd5b815161134a81613e7a565b60006020828403121561371c57600080fd5b5035919050565b60006020828403121561373557600080fd5b5051919050565b6000806040838503121561374f57600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b8381101561378e57815187529582019590820190600101613772565b509495945050505050565b600081518084526137b1816020860160208601613c72565b601f01601f19169290920160200192915050565b600681106137e357634e487b7160e01b600052602160045260246000fd5b9052565b600082516137f9818460208701613c72565b9190910192915050565b6001600160a01b0386811682528516602082015260a06040820181905260009061382f9083018661375e565b8281036060840152613841818661375e565b905082810360808401526138558185613799565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612fdf90830184613799565b6020808252825182820181905260009190848201906040850190845b818110156138dc5783516001600160a01b0316835292840192918401916001016138b7565b50909695505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561393657815180518552868101518786015285015115158585015260609093019290850190600101613905565b5091979650505050505050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156139f557603f19898403018552815160a0815181865261399082870182613799565b9150508882015189860152878201516139ab898701826137c5565b50606080830151868303828801526139c3838261375e565b92505050608080830151925085820381870152506139e18183613799565b96890196945050509086019060010161396a565b509098975050505050505050565b60208152600061134a602083018461375e565b604081526000613a29604083018561375e565b8281036020840152613a3b818561375e565b95945050505050565b60208152600061134a6020830184613799565b608081526000613a6a6080830187613799565b856020840152613a7d60408401866137c5565b8281036060840152612fdf8185613799565b606081526000613aa26060830186613799565b8460208401528281036040840152613aba8185613799565b9695505050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f74686973206372616674206973206e6f742070656e64696e6720666f7220796f6040820152607560f81b606082015260800190565b604051613c1d81613cd9565b90565b60006001600160401b03821115613c3957613c39613d9d565b5060051b60200190565b60008219821115613c5657613c56613d45565b500190565b600082821015613c6d57613c6d613d45565b500390565b60005b83811015613c8d578181015183820152602001613c75565b838111156122175750506000910152565b600181811c90821680613cb257607f821691505b60208210811415613cd357634e487b7160e01b600052602260045260246000fd5b50919050565b60a081016001600160401b0381118282101715613cf857613cf8613d9d565b60405250565b601f8201601f191681016001600160401b0381118282101715613d2357613d23613d9d565b6040525050565b6000600019821415613d3e57613d3e613d45565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d1115613c1d5760046000803e5060005160e01c90565b600060443d1015613ddc5790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715613e0b57505050505090565b8285019150815181811115613e235750505050505090565b843d8701016020828501011115613e3d5750505050505090565b613e4c60208286010187613cfe565b509095945050505050565b6001600160a01b0381168114610c4157600080fd5b8015158114610c4157600080fd5b6001600160e01b031981168114610c4157600080fdfea264697066735822122059fdf96625ee9d875367b6919031a7087e8517c056b7a745c91ff0e8e7ff6d6564736f6c63430008050033516d66325a41795a5847694233505270316e454731737339564d7274726e777574616f7454685535744d786a6a35516d54336a516a437a416d5059384d6f3473485970674e33636f767477376f37586275644d444469435834516839687474703a2f2f6465762e62656e6e6e6e7373732e636f6d3a33393130302f5f6d6574612f516d55615247715379774d3455797642684c5736366577574468654b32684b666e763450596f746a7543766f4161516d594b47623770366b32335850374847643633744a38633466745054386d59515a754c5a704c6a3236654674630000000000000000000000008ae8be25c23833e0a01aa200403e826f611f9cd2