60806040526040518060a00160405280606881526020016200612260689139600b9080519060200190620000359291906200094d565b503480156200004357600080fd5b506000620000566200010a60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001046200011260201b60201c565b620009f3565b600033905090565b6040518060400160405280600581526020017f44636f7265000000000000000000000000000000000000000000000000000000815250600490805190602001906200015f9291906200094d565b506040518060400160405280600581526020017f44434f524500000000000000000000000000000000000000000000000000000081525060059080519060200190620001ad9291906200094d565b506012600660006101000a81548160ff021916908360ff160217905550620001e63069021e19e0c9bab24000006200022a60201b60201c565b4260078190555062000227737a250d5630b4cf539739df2c5dacb4c659f2488d735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f6200040a60201b60201c565b50565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620002e260008383620008bf60201b60201c565b620002fe81600354620008c460201b62003d131790919060201c565b6003819055506200035d81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620008c460201b62003d131790919060201c565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60006200041c6200010a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620004dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156200052e57737a250d5630b4cf539739df2c5dacb4c659f2488d62000530565b825b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620005c157735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f620005c3565b815b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614620006c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f546f6b656e3a20706f6f6c20616c72656164792063726561746564000000000081525060200191505060405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200076f57600080fd5b505afa15801562000784573d6000803e3d6000fd5b505050506040513d60208110156200079b57600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200081757600080fd5b505af11580156200082c573d6000803e3d6000fd5b505050506040513d60208110156200084357600080fd5b8101908080519060200190929190505050600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b505050565b60008082840190508381101562000943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200099057805160ff1916838001178555620009c1565b82800160010185558215620009c1579182015b82811115620009c0578251825591602001919060010190620009a3565b5b509050620009d09190620009d4565b5090565b5b80821115620009ef576000816000905550600101620009d5565b5090565b61571f8062000a036000396000f3fe60806040526004361061027c5760003560e01c80636a2f796c1161014f578063a457c2d7116100c1578063da620cd71161007a578063da620cd714610ee0578063dd62ed3e14610f10578063e7a324dc14610f95578063f1127ed814610fc0578063f2fde38b14611042578063f96f5b35146110935761027c565b8063a457c2d714610c81578063a9059cbb14610cf2578063b2aef26b14610d63578063b4b5ea5714610da4578063c3cda52014610e09578063ccfc2e8d14610e8f5761027c565b80637ecebe00116101135780637ecebe00146109df57806387e2e90c14610a445780638bdb2afa14610adf5780638da5cb5b14610b205780638e8e292514610b6157806395d89b4114610bf15761027c565b80636a2f796c1461085e5780636fcfff451461088957806370a08231146108f4578063715018a614610959578063782d6fe1146109705761027c565b806331a22a20116101f35780634f1a0f7d116101ac5780634f1a0f7d146106e2578063587cde1e146106f9578063596fa9e3146107745780635b5f3e87146107b55780635c19a95c146107e057806360a02590146108315761027c565b806331a22a20146105ac578063378dc3dc146105d757806338af66321461060257806339509351146106195780633e0dae6e1461068a5780634d332457146106a15761027c565b806314b8fecc1161024557806314b8fecc1461043f57806318160ddd1461046c57806320606b701461049757806323399434146104c257806323b872dd146104ed578063313ce5671461057e5761027c565b80622b13291461028157806306fdde03146102ac578063095ea7b31461033c5780630d43e8ad146103ad57806310a7a659146103ee575b600080fd5b34801561028d57600080fd5b506102966110f8565b6040518082815260200191505060405180910390f35b3480156102b857600080fd5b506102c16110fe565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103015780820151818401526020810190506102e6565b50505050905090810190601f16801561032e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561034857600080fd5b506103956004803603604081101561035f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111a0565b60405180821515815260200191505060405180910390f35b3480156103b957600080fd5b506103c26111be565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103fa57600080fd5b5061043d6004803603602081101561041157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111e4565b005b34801561044b57600080fd5b506104546112f0565b60405180821515815260200191505060405180910390f35b34801561047857600080fd5b50610481611303565b6040518082815260200191505060405180910390f35b3480156104a357600080fd5b506104ac61130d565b6040518082815260200191505060405180910390f35b3480156104ce57600080fd5b506104d7611331565b6040518082815260200191505060405180910390f35b3480156104f957600080fd5b506105666004803603606081101561051057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611337565b60405180821515815260200191505060405180910390f35b34801561058a57600080fd5b50610593611410565b604051808260ff16815260200191505060405180910390f35b3480156105b857600080fd5b506105c1611427565b6040518082815260200191505060405180910390f35b3480156105e357600080fd5b506105ec61142d565b6040518082815260200191505060405180910390f35b34801561060e57600080fd5b5061061761143b565b005b34801561062557600080fd5b506106726004803603604081101561063c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611756565b60405180821515815260200191505060405180910390f35b34801561069657600080fd5b5061069f611809565b005b3480156106ad57600080fd5b506106b6612028565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ee57600080fd5b506106f761204e565b005b34801561070557600080fd5b506107486004803603602081101561071c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061232c565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561078057600080fd5b50610789612395565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156107c157600080fd5b506107ca6123bb565b6040518082815260200191505060405180910390f35b3480156107ec57600080fd5b5061082f6004803603602081101561080357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f3565b005b34801561083d57600080fd5b50610846612500565b60405180821515815260200191505060405180910390f35b34801561086a57600080fd5b50610873612606565b6040518082815260200191505060405180910390f35b34801561089557600080fd5b506108d8600480360360208110156108ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061260c565b604051808263ffffffff16815260200191505060405180910390f35b34801561090057600080fd5b506109436004803603602081101561091757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061262f565b6040518082815260200191505060405180910390f35b34801561096557600080fd5b5061096e612678565b005b34801561097c57600080fd5b506109c96004803603604081101561099357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127fe565b6040518082815260200191505060405180910390f35b3480156109eb57600080fd5b50610a2e60048036036020811015610a0257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bbf565b6040518082815260200191505060405180910390f35b348015610a5057600080fd5b50610ab360048036036040811015610a6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bd7565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610aeb57600080fd5b50610af4613078565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b2c57600080fd5b50610b3561309e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b6d57600080fd5b50610b766130c7565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610bb6578082015181840152602081019050610b9b565b50505050905090810190601f168015610be35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610bfd57600080fd5b50610c06613165565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c46578082015181840152602081019050610c2b565b50505050905090810190601f168015610c735780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c8d57600080fd5b50610cda60048036036040811015610ca457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613207565b60405180821515815260200191505060405180910390f35b348015610cfe57600080fd5b50610d4b60048036036040811015610d1557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506132d4565b60405180821515815260200191505060405180910390f35b348015610d6f57600080fd5b50610d786132f2565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db057600080fd5b50610df360048036036020811015610dc757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613318565b6040518082815260200191505060405180910390f35b348015610e1557600080fd5b50610e8d600480360360c0811015610e2c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291905050506133ee565b005b348015610e9b57600080fd5b50610ede60048036036020811015610eb257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613752565b005b610f0e60048036036020811015610ef657600080fd5b8101908080351515906020019092919050505061385e565b005b348015610f1c57600080fd5b50610f7f60048036036040811015610f3357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a04565b6040518082815260200191505060405180910390f35b348015610fa157600080fd5b50610faa613a8b565b6040518082815260200191505060405180910390f35b348015610fcc57600080fd5b5061101f60048036036040811015610fe357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff169060200190929190505050613aaf565b604051808363ffffffff1681526020018281526020019250505060405180910390f35b34801561104e57600080fd5b506110916004803603602081101561106557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613af0565b005b34801561109f57600080fd5b506110e2600480360360208110156110b657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613cfb565b6040518082815260200191505060405180910390f35b600c5481565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111965780601f1061116b57610100808354040283529160200191611196565b820191906000526020600020905b81548152906001019060200180831161117957829003601f168201915b5050505050905090565b60006111b46111ad613d9b565b8484613da3565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111ec613d9b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600f60009054906101000a900460ff1681565b6000600354905090565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b600d5481565b6000611344848484613f9a565b61140584611350613d9b565b6114008560405180606001604052806028815260200161558960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006113b6613d9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546146709092919063ffffffff16565b613da3565b600190509392505050565b6000600660009054906101000a900460ff16905090565b600e5481565b69021e19e0c9bab240000081565b600f60009054906101000a900460ff166114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4576656e74206e6f74206f76657220796574000000000000000000000000000081525060200191505060405180910390fd5b6000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4e6f7468696e6720746f20636c61696d2c206d6f766520616c6f6e670000000081525060200191505060405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000611609670de0b6b3a76400006115fb600e54601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461473090919063ffffffff16565b6147b690919063ffffffff16565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561167c57600080fd5b505af1158015611690573d6000803e3d6000fd5b505050506040513d60208110156116a657600080fd5b8101908080519060200190929190505050506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f586e28f4f60b4d906fc69694ea6d7fe5c5668730ce3286d7af8eca868f3c27603382604051808373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b60006117ff611763613d9b565b846117fa8560026000611774613d9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d1390919063ffffffff16565b613da3565b6001905092915050565b60001515611815612500565b15151461188a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c69717569646974792067656e65726174696f6e206f6e67696e67000000000081525060200191505060405180910390fd5b60001515600f60009054906101000a900460ff161515146118f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806156c56025913960400191505060405180910390fd5b47600d819055506000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506119766040518060400160405280600f81526020017f42616c616e6365206f6620746869730000000000000000000000000000000000815250670de0b6b3a7640000600d548161197057fe5b04614800565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156119e057600080fd5b505afa1580156119f4573d6000803e3d6000fd5b505050506040513d6020811015611a0a57600080fd5b810190808051906020019092919050505090508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0600d546040518263ffffffff1660e01b81526004016000604051808303818588803b158015611a6757600080fd5b505af1158015611a7b573d6000803e3d6000fd5b505050505060004714611af6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f5472616e73666572204661696c6564000000000000000000000000000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83600d546040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611b6957600080fd5b505af1158015611b7d573d6000803e3d6000fd5b505050506040513d6020811015611b9357600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16636a627842306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611d7a57600080fd5b505af1158015611d8e573d6000803e3d6000fd5b505050506040513d6020811015611da457600080fd5b8101908080519060200190929190505050508173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611e1d57600080fd5b505afa158015611e31573d6000803e3d6000fd5b505050506040513d6020811015611e4757600080fd5b8101908080519060200190929190505050600c81905550611e9f6040518060400160405280601381526020017f546f74616c20746f6b656e73206d696e74656400000000000000000000000000815250600c54614800565b6000600c541415611f18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4c50206372656174696f6e206661696c6564000000000000000000000000000081525060200191505060405180910390fd5b611f49600d54611f3b670de0b6b3a7640000600c5461473090919063ffffffff16565b6147b690919063ffffffff16565b600e81905550611f906040518060400160405280601281526020017f546f74616c20706572204c5020746f6b656e0000000000000000000000000000815250600e54614800565b6000600e541415612009576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f4c50206372656174696f6e206661696c6564000000000000000000000000000081525060200191505060405180910390fd5b6001600f60006101000a81548160ff0219169083151502179055505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b612056613d9b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b4261212f62054600600754613d1390919063ffffffff16565b10612185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180615539602f913960400191505060405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405180600001905060006040518083038185875af1925050503d80600081146121e5576040519150601f19603f3d011682016040523d82523d6000602084013e6121ea565b606091505b5050905080612261576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5472616e73666572206661696c65642e0000000000000000000000000000000081525060200191505060405180910390fd5b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006123c5612500565b612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4576656e74206f7665720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6124c46040518060400160405280601581526020017f3320646179732073696e636520737461727420697300000000000000000000008152506124886203f480600754613d1390919063ffffffff16565b6040518060400160405280600b81526020017f54696d65206e6f7720697300000000000000000000000000000000000000000081525042614907565b6124ee426124e06203f480600754613d1390919063ffffffff16565b614a8590919063ffffffff16565b905090565b6124fd3382614acf565b50565b600061258f6040518060400160405280601581526020017f3320646179732073696e636520737461727420697300000000000000000000008152506125536203f480600754613d1390919063ffffffff16565b6040518060400160405280600b81526020017f54696d65206e6f7720697300000000000000000000000000000000000000000081525042614907565b6125e76040518060400160405280601c81526020017f6c69717569646974792067656e65726174696f6e206f6e676f696e6700000000815250426125e16203f480600754613d1390919063ffffffff16565b10614c40565b426126006203f480600754613d1390919063ffffffff16565b11905090565b60075481565b60156020528060005260406000206000915054906101000a900463ffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b612680613d9b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612740576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000438210612858576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806154c26029913960400191505060405180910390fd5b6000601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1614156128c5576000915050612bb9565b82601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16116129af57601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060010154915050612bb9565b82601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115612a30576000915050612bb9565b6000806001830390505b8163ffffffff168163ffffffff161115612b53576000600283830363ffffffff1681612a6257fe5b0482039050612a6f615436565b601460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff161415612b2b57806020015195505050505050612bb9565b86816000015163ffffffff161015612b4557819350612b4c565b6001820392505b5050612a3a565b601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b60166020528060005260406000206000915090505481565b6000612be1613d9b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ca1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612cf057737a250d5630b4cf539739df2c5dacb4c659f2488d612cf2565b825b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d8157735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f612d83565b815b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612e87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f546f6b656e3a20706f6f6c20616c72656164792063726561746564000000000081525060200191505060405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9c65396600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f2d57600080fd5b505afa158015612f41573d6000803e3d6000fd5b505050506040513d6020811015612f5757600080fd5b8101908080519060200190929190505050306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b158015612fd257600080fd5b505af1158015612fe6573d6000803e3d6000fd5b505050506040513d6020811015612ffc57600080fd5b8101908080519060200190929190505050600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561315d5780601f106131325761010080835404028352916020019161315d565b820191906000526020600020905b81548152906001019060200180831161314057829003601f168201915b505050505081565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156131fd5780601f106131d2576101008083540402835291602001916131fd565b820191906000526020600020905b8154815290600101906020018083116131e057829003601f168201915b5050505050905090565b60006132ca613214613d9b565b846132c5856040518060600160405280602581526020016156a0602591396002600061323e613d9b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546146709092919063ffffffff16565b613da3565b6001905092915050565b60006132e86132e1613d9b565b8484613f9a565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff16116133825760006133e6565b601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666134196110fe565b80519060200120613428614d49565b30604051602001808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040528051906020012090506000828260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156135ac573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561363e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806156786028913960400191505060405180910390fd5b601660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146136e3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061561e6024913960400191505060405180910390fd5b8742111561373c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806155116028913960400191505060405180910390fd5b613746818b614acf565b50505050505050505050565b61375a613d9b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461381a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b613866612500565b6138d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4c69717569646974792047656e65726174696f6e204576656e74206f7665720081525060200191505060405180910390fd5b8061394b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4e6f2061677265656d656e742070726f7669646564000000000000000000000081525060200191505060405180910390fd5b34601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506139ad34600d54613d1390919063ffffffff16565b600d819055503373ffffffffffffffffffffffffffffffffffffffff167f20b711375edba008429d2f91787c68aa13aab7f267c346bf91be1a104d8b7b8b346040518082815260200191505060405180910390a250565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6014602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b613af8613d9b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613bb8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613c3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061547a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60106020528060005260406000206000915090505481565b600080828401905083811015613d91576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613e29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155fa6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613eaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806154a06022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614020576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806155b16025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156140a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806154576023913960400191505060405180910390fd5b6140b1838383614d56565b61411d816040518060600160405280602681526020016154eb60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546146709092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600080601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663301a58018686866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200193505050506040805180830381600087803b15801561421357600080fd5b505af1158015614227573d6000803e3d6000fd5b505050506040513d604081101561423d57600080fd5b81019080805190602001909291908051906020019092919050505091509150826142708284613d1390919063ffffffff16565b146142c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806155d66024913960400191505060405180910390fd5b61431882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d1390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360008111801561441f5750600073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15614669576144988160016000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613d1390919063ffffffff16565b60016000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600073ffffffffffffffffffffffffffffffffffffffff16601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461466857601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663423d6fa0826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561464f57600080fd5b505af1158015614663573d6000803e3d6000fd5b505050505b5b5050505050565b600083831115829061471d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156146e25780820151818401526020810190506146c7565b50505050905090810190601f16801561470f5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008083141561474357600090506147b0565b600082840290508284828161475457fe5b04146147ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806155686021913960400191505060405180910390fd5b809150505b92915050565b60006147f883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614d5b565b905092915050565b61490382826040516024018080602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561484e578082015181840152602081019050614833565b50505050905090810190601f16801561487b5780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527f9710a9d0000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614e21565b5050565b614a7f84848484604051602401808060200185815260200180602001848152602001838103835287818151815260200191508051906020019080838360005b83811015614961578082015181840152602081019050614946565b50505050905090810190601f16801561498e5780820380516001836020036101000a031916815260200191505b50838103825285818151815260200191508051906020019080838360005b838110156149c75780820151818401526020810190506149ac565b50505050905090810190601f1680156149f45780820380516001836020036101000a031916815260200191505b5096505050505050506040516020818303038152906040527fa0c4b225000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614e21565b50505050565b6000614ac783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614670565b905092915050565b6000601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000614b3e8461262f565b905082601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4614c3a828483614e4a565b50505050565b614d45828260405160240180806020018315158152602001828103825284818151815260200191508051906020019080838360005b83811015614c90578082015181840152602081019050614c75565b50505050905090810190601f168015614cbd5780820380516001836020036101000a031916815260200191505b5093505050506040516020818303038152906040527fc3b55635000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614e21565b5050565b6000804690508091505090565b505050565b60008083118290614e07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614dcc578082015181840152602081019050614db1565b50505050905090810190601f168015614df95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614e1357fe5b049050809150509392505050565b60008151905060006a636f6e736f6c652e6c6f679050602083016000808483855afa5050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015614e865750600081115b156150e257600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614614fb6576000601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611614f29576000614f8d565b601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b90506000614fa48483614a8590919063ffffffff16565b9050614fb2868484846150e7565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146150e1576000601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116150545760006150b8565b601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006150cf8483613d1390919063ffffffff16565b90506150dd858484846150e7565b5050505b5b505050565b600061510b436040518060600160405280603681526020016156426036913961537b565b905060008463ffffffff161180156151a057508063ffffffff16601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156152115781601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff1681526020019081526020016000206001018190555061531e565b60405180604001604052808263ffffffff16815260200183815250601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b60006401000000008310829061542c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156153f15780820151818401526020810190506153d6565b50505050905090810190601f16801561541e5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160008152509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573736465636f72653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63656465636f72653a3a64656c656761746542795369673a207369676e617475726520657870697265644c69717569646974792067656e65726174696f6e20677261636520706572696f64207374696c6c206f6e676f696e67536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734d6174682062726f6b652c20646f65732067726176697479207374696c6c20776f726b3f45524332303a20617070726f76652066726f6d20746865207a65726f20616464726573736465636f72653a3a64656c656761746542795369673a20696e76616c6964206e6f6e63656465636f72653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d626572206578636565647320333220626974736465636f72653a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4c69717569646974792067656e65726174696f6e20616c72656164792066696e6973686564a2646970667358221220e21dd500c936deb716a367b04115852861d060c679070ab00e283adf4f85897564736f6c634300060c00334920616772656520746861742074686520646576656c6f7065727320616e6420616666696c69617465642070617274696573206f6620746865206465636f7265207465616d20617265206e6f7420726573706f6e7369626c6520666f7220796f75722066756e6473