60806040526012600960156101000a81548160ff021916908360ff160217905550600960159054906101000a900460ff1660ff16600a0a6305f5e10002600a553480156200004c57600080fd5b50600a546040518060400160405280600481526020017f4f4e5553000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4f4e555300000000000000000000000000000000000000000000000000000000815250600960159054906101000a900460ff168260039080519060200190620000e49291906200087c565b508160049080519060200190620000fd9291906200087c565b5080600560006101000a81548160ff021916908360ff1602179055505050506200013c62000130620002d560201b60201c565b620002dd60201b60201c565b60008111620001b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332304361707065643a206361702069732030000000000000000000000081525060200191505060405180910390fd5b8060078190555050620001db620001cf620002d560201b60201c565b6200033e60201b60201c565b6000600960006101000a81548160ff021916908315150217905550600062000208620002d560201b60201c565b905080600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002cf734102a799b5b87db21f7707e2cc2789330254397f600a546200039f60201b60201c565b6200092b565b600033905090565b620002f88160066200045b60201b620028f61790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b620003598160086200045b60201b620028f61790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b600754620003cb82620003b76200053f60201b60201c565b6200054960201b620025ac1790919060201c565b111562000440576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b620004578282620005d260201b620026341760201c565b5050565b6200046d82826200079c60201b60201c565b15620004e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600254905090565b600080828401905083811015620005c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000676576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b62000692816002546200054960201b620025ac1790919060201c565b600281905550620006f0816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200054960201b620025ac1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000825576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620035726022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008bf57805160ff1916838001178555620008f0565b82800160010185558215620008f0579182015b82811115620008ef578251825591602001919060010190620008d2565b5b509050620008ff919062000903565b5090565b6200092891905b80821115620009245760008160009055506001016200090a565b5090565b90565b612c37806200093b6000396000f3fe6080604052600436106101b75760003560e01c8063715018a6116100ec578063983b2d561161008a578063a9059cbb11610064578063a9059cbb146108f0578063aa271e1a14610963578063dd62ed3e146109cc578063f2fde38b14610a51576101b7565b8063983b2d56146108155780639865027514610866578063a457c2d71461087d576101b7565b80638456cb59116100c65780638456cb59146106e85780638da5cb5b146106ff5780638f32d59b1461075657806395d89b4114610785576101b7565b8063715018a61461062557806379cc67901461063c57806382dc1ec414610697576101b7565b80633f4ba83a1161015957806346fbf68e1161013357806346fbf68e146105115780635c975abb1461057a5780636ef8d66d146105a957806370a08231146105c0576101b7565b80633f4ba83a1461044c57806340c10f191461046357806342966c68146104d6576101b7565b806323b872dd1161019557806323b872dd146102ea578063313ce5671461037d578063355274ea146103ae57806339509351146103d9576101b7565b806306fdde03146101bc578063095ea7b31461024c57806318160ddd146102bf575b600080fd5b3480156101c857600080fd5b506101d1610aa2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102115780820151818401526020810190506101f6565b50505050905090810190601f16801561023e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025857600080fd5b506102a56004803603604081101561026f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b44565b604051808215151515815260200191505060405180910390f35b3480156102cb57600080fd5b506102d4610bdb565b6040518082815260200191505060405180910390f35b3480156102f657600080fd5b506103636004803603606081101561030d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610be5565b604051808215151515815260200191505060405180910390f35b34801561038957600080fd5b50610392610c7e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156103ba57600080fd5b506103c3610c95565b6040518082815260200191505060405180910390f35b3480156103e557600080fd5b50610432600480360360408110156103fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9f565b604051808215151515815260200191505060405180910390f35b34801561045857600080fd5b50610461610d36565b005b34801561046f57600080fd5b506104bc6004803603604081101561048657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ea4565b604051808215151515815260200191505060405180910390f35b3480156104e257600080fd5b5061050f600480360360208110156104f957600080fd5b8101908080359060200190929190505050610f1f565b005b34801561051d57600080fd5b506105606004803603602081101561053457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f33565b604051808215151515815260200191505060405180910390f35b34801561058657600080fd5b5061058f610f50565b604051808215151515815260200191505060405180910390f35b3480156105b557600080fd5b506105be610f67565b005b3480156105cc57600080fd5b5061060f600480360360208110156105e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f79565b6040518082815260200191505060405180910390f35b34801561063157600080fd5b5061063a610fc1565b005b34801561064857600080fd5b506106956004803603604081101561065f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110fc565b005b3480156106a357600080fd5b506106e6600480360360208110156106ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061110a565b005b3480156106f457600080fd5b506106fd61117b565b005b34801561070b57600080fd5b506107146112ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561076257600080fd5b5061076b611314565b604051808215151515815260200191505060405180910390f35b34801561079157600080fd5b5061079a611373565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107da5780820151818401526020810190506107bf565b50505050905090810190601f1680156108075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561082157600080fd5b506108646004803603602081101561083857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611415565b005b34801561087257600080fd5b5061087b611486565b005b34801561088957600080fd5b506108d6600480360360408110156108a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611498565b604051808215151515815260200191505060405180910390f35b3480156108fc57600080fd5b506109496004803603604081101561091357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061152f565b604051808215151515815260200191505060405180910390f35b34801561096f57600080fd5b506109b26004803603602081101561098657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115c6565b604051808215151515815260200191505060405180910390f35b3480156109d857600080fd5b50610a3b600480360360408110156109ef57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e3565b6040518082815260200191505060405180910390f35b348015610a5d57600080fd5b50610aa060048036036020811015610a7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061166a565b005b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b3a5780601f10610b0f57610100808354040283529160200191610b3a565b820191906000526020600020905b815481529060010190602001808311610b1d57829003601f168201915b5050505050905090565b6000600960009054906101000a900460ff1615610bc9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610bd383836116f0565b905092915050565b6000600254905090565b6000600960009054906101000a900460ff1615610c6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610c7584848461170e565b90509392505050565b6000600560009054906101000a900460ff16905090565b6000600754905090565b6000600960009054906101000a900460ff1615610d24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b610d2e83836117e7565b905092915050565b610d46610d4161189a565b610f33565b610d9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a176030913960400191505060405180910390fd5b600960009054906101000a900460ff16610e1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600960006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610e6161189a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000610eb6610eb161189a565b6115c6565b610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612ab56030913960400191505060405180910390fd5b610f1583836118a2565b6001905092915050565b610f30610f2a61189a565b82611941565b50565b6000610f49826008611af990919063ffffffff16565b9050919050565b6000600960009054906101000a900460ff16905090565b610f77610f7261189a565b611bd7565b565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fc9611314565b61103b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111068282611c31565b5050565b61111a61111561189a565b610f33565b61116f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a176030913960400191505060405180910390fd5b61117881611d00565b50565b61118b61118661189a565b610f33565b6111e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612a176030913960400191505060405180910390fd5b600960009054906101000a900460ff1615611263576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600960006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586112a761189a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661135761189a565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b606060048054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561140b5780601f106113e05761010080835404028352916020019161140b565b820191906000526020600020905b8154815290600101906020018083116113ee57829003601f168201915b5050505050905090565b61142561142061189a565b6115c6565b61147a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526030815260200180612ab56030913960400191505060405180910390fd5b61148381611d5a565b50565b61149661149161189a565b611db4565b565b6000600960009054906101000a900460ff161561151d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6115278383611e0e565b905092915050565b6000600960009054906101000a900460ff16156115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6115be8383611edb565b905092915050565b60006115dc826006611af990919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611672611314565b6116e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6116ed81611ef9565b50565b60006117046116fd61189a565b848461203f565b6001905092915050565b600061171b848484612236565b6117dc8461172761189a565b6117d785604051806060016040528060288152602001612b0660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061178d61189a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ec9092919063ffffffff16565b61203f565b600190509392505050565b60006118906117f461189a565b8461188b856001600061180561189a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b61203f565b6001905092915050565b600033905090565b6007546118bf826118b1610bdb565b6125ac90919063ffffffff16565b1115611933576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f45524332304361707065643a206361702065786365656465640000000000000081525060200191505060405180910390fd5b61193d8282612634565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612b746021913960400191505060405180910390fd5b611a32816040518060600160405280602281526020016129f5602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ec9092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a89816002546127ef90919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612b2e6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611beb81600861283990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e60405160405180910390a250565b611c3b8282611941565b611cfc82611c4761189a565b611cf784604051806060016040528060248152602001612b5060249139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611cad61189a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ec9092919063ffffffff16565b61203f565b5050565b611d148160086128f690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f860405160405180910390a250565b611d6e8160066128f690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b611dc881600661283990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b6000611ed1611e1b61189a565b84611ecc85604051806060016040528060258152602001612bde6025913960016000611e4561189a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ec9092919063ffffffff16565b61203f565b6001905092915050565b6000611eef611ee861189a565b8484612236565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180612a476026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120c5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612bba6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561214b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612a6d6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156122bc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612b956025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612342576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806129d26023913960400191505060405180910390fd5b6123ad81604051806060016040528060268152602001612a8f602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ec9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612440816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612599576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561255e578082015181840152602081019050612543565b50505050905090810190601f16801561258b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008082840190508381101561262a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b6126ec816002546125ac90919063ffffffff16565b600281905550612743816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ac90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600061283183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506124ec565b905092915050565b6128438282611af9565b612898576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612ae56021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6129008282611af9565b15612973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820391143cf7aadbdb114216fe40cc22d72744c87145c0007ed7d5b8fe539bca1ef64736f6c63430005110032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373