Loading
60806040526040518060400160405280600a81526020017f526562616c616e633372000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5242334c00000000000000000000000000000000000000000000000000000000815250601269021e19e0c9bab24000006200009e620000916200041e60201b60201c565b826200042660201b60201c565b508260039080519060200190620000b792919062001064565b508160049080519060200190620000d092919062001064565b5080600560006101000a81548160ff021916908360ff160217905550505050426013819055506064600f8190555060326010819055506028601181905550610e106014819055506276a70042016015819055506801158e460913d0000060128190555033600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051620001a590620010eb565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f080158015620001f8573d6000803e3d6000fd5b50601660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d6000601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601660006101000a81548160ff0219169083151502179055506001600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e6000601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004186200040c6200041e60201b60201c565b620004b460201b60201c565b62001121565b600033905090565b620004996000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836200051560201b60201c565b620004b08282620007d860201b620051b91760201c565b5050565b620004cf816017620009a260201b62004ab91790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015620005525750600081115b15620007d357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000695576000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611620005f95760006200065d565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006200067b848362000a8660201b620044971790919060201c565b9050620006918684848462000ad860201b60201c565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620007d2576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611620007365760006200079a565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b90506000620007b8848362000d7860201b62003ac21790919060201c565b9050620007ce8584848462000ad860201b60201c565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b620008988160025462000d7860201b62003ac21790919060201c565b600281905550620008f6816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205462000d7860201b62003ac21790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b620009b4828262000e0160201b60201c565b1562000a28576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600062000ad083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000ee160201b60201c565b905092915050565b600062000b05436040518060600160405280603f8152602001620077d0603f913962000fa560201b60201c565b905060008463ffffffff1611801562000b9b57508063ffffffff16600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b1562000c0e5781600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff1681526020019081526020016000206001018190555062000d1b565b60405180604001604052808263ffffffff16815260200183815250600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b60008082840190508381101562000df7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000e8a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806200780f6022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600083831115829062000f92576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000f5657808201518184015260208101905062000f39565b50505050905090810190601f16801562000f845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000640100000000831082906200105a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200101e57808201518184015260208101905062001001565b50505050905090810190601f1680156200104c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620010a757805160ff1916838001178555620010d8565b82800160010185558215620010d8579182015b82811115620010d7578251825591602001919060010190620010ba565b5b509050620010e79190620010f9565b5090565b610e77806200695983390190565b6200111e91905b808211156200111a57600081600090555060010162001100565b5090565b90565b61582880620011316000396000f3fe60806040526004361061034f5760003560e01c8063782d6fe1116101c6578063b6833c59116100f7578063dc654a7311610095578063e7a324dc1161006f578063e7a324dc14611251578063e84354c51461127c578063f1127ed8146112a7578063f95379731461132f5761034f565b8063dc654a7314611176578063dd62ed3e146111a1578063e161eb56146112265761034f565b8063c3cda520116100d1578063c3cda5201461106b578063ca5c7b91146110f1578063cafab2891461111c578063cf309012146111475761034f565b8063b6833c5914610fb0578063b91f3f9714610feb578063bb5f747b146110025761034f565b8063a29a608911610164578063a8a5550e1161013e578063a8a5550e14610e82578063a9059cbb14610ead578063b439824414610f20578063b4b5ea5714610f4b5761034f565b8063a29a608914610da7578063a457c2d714610df8578063a69df4b514610e6b5761034f565b80637ecebe00116101a05780637ecebe0014610c705780637f4aeb1a14610cd5578063858750ab14610cec57806395d89b4114610d175761034f565b8063782d6fe114610b6b57806379cc679014610bda5780637e0d943e14610c355761034f565b806339509351116102a05780635c19a95c1161023e5780636fcfff45116102185780636fcfff45146109f357806370709a7c14610a6457806370a0823114610ab55780637362d9c814610b1a5761034f565b80635c19a95c1461091057806361d027b31461096157806367a9fca6146109b85761034f565b80634c5a628c1161027a5780634c5a628c1461080257806355d0a1d014610819578063587cde1e146108445780635b7dcaed146108d55761034f565b806339509351146106fd57806342966c681461077057806349bd5a5e146107ab5761034f565b80631694505e1161030d57806320606b70116102e757806320606b70146105e357806323b872dd1461060e5780632898cafa146106a1578063313ce567146106cc5761034f565b80631694505e1461053657806316d1d9161461058d57806318160ddd146105b85761034f565b80629a81301461035157806302dd19d91461038c57806306fdde03146103b7578063095ea7b314610447578063106b9ca1146104ba5780631419841d146104e5575b005b34801561035d57600080fd5b5061038a6004803603602081101561037457600080fd5b8101908080359060200190929190505050611380565b005b34801561039857600080fd5b506103a1611452565b6040518082815260200191505060405180910390f35b3480156103c357600080fd5b506103cc611458565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040c5780820151818401526020810190506103f1565b50505050905090810190601f1680156104395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561045357600080fd5b506104a06004803603604081101561046a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114fa565b604051808215151515815260200191505060405180910390f35b3480156104c657600080fd5b506104cf611518565b6040518082815260200191505060405180910390f35b3480156104f157600080fd5b506105346004803603602081101561050857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061151e565b005b34801561054257600080fd5b5061054b61166e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059957600080fd5b506105a2611694565b6040518082815260200191505060405180910390f35b3480156105c457600080fd5b506105cd61169a565b6040518082815260200191505060405180910390f35b3480156105ef57600080fd5b506105f86116a4565b6040518082815260200191505060405180910390f35b34801561061a57600080fd5b506106876004803603606081101561063157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116c0565b604051808215151515815260200191505060405180910390f35b3480156106ad57600080fd5b506106b6611799565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b506106e161187b565b604051808260ff1660ff16815260200191505060405180910390f35b34801561070957600080fd5b506107566004803603604081101561072057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611892565b604051808215151515815260200191505060405180910390f35b34801561077c57600080fd5b506107a96004803603602081101561079357600080fd5b8101908080359060200190929190505050611945565b005b3480156107b757600080fd5b506107c0611959565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561080e57600080fd5b5061081761197f565b005b34801561082557600080fd5b5061082e611991565b6040518082815260200191505060405180910390f35b34801561085057600080fd5b506108936004803603602081101561086757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611adb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108e157600080fd5b5061090e600480360360208110156108f857600080fd5b8101908080359060200190929190505050611b44565b005b34801561091c57600080fd5b5061095f6004803603602081101561093357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611bb3565b005b34801561096d57600080fd5b50610976611bc0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109c457600080fd5b506109f1600480360360208110156109db57600080fd5b8101908080359060200190929190505050611be6565b005b3480156109ff57600080fd5b50610a4260048036036020811015610a1657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cb8565b604051808263ffffffff1663ffffffff16815260200191505060405180910390f35b348015610a7057600080fd5b50610ab360048036036020811015610a8757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cdb565b005b348015610ac157600080fd5b50610b0460048036036020811015610ad857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611de7565b6040518082815260200191505060405180910390f35b348015610b2657600080fd5b50610b6960048036036020811015610b3d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2f565b005b348015610b7757600080fd5b50610bc460048036036040811015610b8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611ea0565b6040518082815260200191505060405180910390f35b348015610be657600080fd5b50610c3360048036036040811015610bfd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612265565b005b348015610c4157600080fd5b50610c6e60048036036020811015610c5857600080fd5b8101908080359060200190929190505050612273565b005b348015610c7c57600080fd5b50610cbf60048036036020811015610c9357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612345565b6040518082815260200191505060405180910390f35b348015610ce157600080fd5b50610cea61235d565b005b348015610cf857600080fd5b50610d01612646565b6040518082815260200191505060405180910390f35b348015610d2357600080fd5b50610d2c612727565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d6c578082015181840152602081019050610d51565b50505050905090810190601f168015610d995780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610db357600080fd5b50610df660048036036020811015610dca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127c9565b005b348015610e0457600080fd5b50610e5160048036036040811015610e1b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612919565b604051808215151515815260200191505060405180910390f35b348015610e7757600080fd5b50610e806129e6565b005b348015610e8e57600080fd5b50610e97612a68565b6040518082815260200191505060405180910390f35b348015610eb957600080fd5b50610f0660048036036040811015610ed057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a78565b604051808215151515815260200191505060405180910390f35b348015610f2c57600080fd5b50610f35612a96565b6040518082815260200191505060405180910390f35b348015610f5757600080fd5b50610f9a60048036036020811015610f6e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612abe565b6040518082815260200191505060405180910390f35b348015610fbc57600080fd5b50610fe960048036036020811015610fd357600080fd5b8101908080359060200190929190505050612b94565b005b348015610ff757600080fd5b50611000612c03565b005b34801561100e57600080fd5b506110516004803603602081101561102557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ea5565b604051808215151515815260200191505060405180910390f35b34801561107757600080fd5b506110ef600480360360c081101561108e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190803560ff1690602001909291908035906020019092919080359060200190929190505050612ec2565b005b3480156110fd57600080fd5b50611106613245565b6040518082815260200191505060405180910390f35b34801561112857600080fd5b5061113161338f565b6040518082815260200191505060405180910390f35b34801561115357600080fd5b5061115c613395565b604051808215151515815260200191505060405180910390f35b34801561118257600080fd5b5061118b6133a8565b6040518082815260200191505060405180910390f35b3480156111ad57600080fd5b50611210600480360360408110156111c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133ae565b6040518082815260200191505060405180910390f35b34801561123257600080fd5b5061123b613435565b6040518082815260200191505060405180910390f35b34801561125d57600080fd5b5061126661343b565b6040518082815260200191505060405180910390f35b34801561128857600080fd5b50611291613457565b6040518082815260200191505060405180910390f35b3480156112b357600080fd5b50611306600480360360408110156112ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803563ffffffff16906020019092919050505061345d565b604051808363ffffffff1663ffffffff1681526020018281526020019250505060405180910390f35b34801561133b57600080fd5b5061137e6004803603602081101561135257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061349e565b005b61139061138b6135aa565b612ea5565b6113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b6000811461144857600a811015611447576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806157a3602c913960400191505060405180910390fd5b5b8060108190555050565b60105481565b606060038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114f05780601f106114c5576101008083540402835291602001916114f0565b820191906000526020600020905b8154815290600101906020018083116114d357829003601f168201915b5050505050905090565b600061150e6115076135aa565b84846135b2565b6001905092915050565b60135481565b61152e6115296135aa565b612ea5565b611583576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461162a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061545e602a913960400191505060405180910390fd5b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b6000600254905090565b604051808061553b604391396043019050604051809103902081565b60006116cd8484846137a9565b61178e846116d96135aa565b6117898560405180606001604052806028815260200161559f60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061173f6135aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a029092919063ffffffff16565b6135b2565b600190509392505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a0823160006040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561183b57600080fd5b505afa15801561184f573d6000803e3d6000fd5b505050506040513d602081101561186557600080fd5b8101908080519060200190929190505050905090565b6000600560009054906101000a900460ff16905090565b600061193b61189f6135aa565b8461193685600160006118b06135aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ac290919063ffffffff16565b6135b2565b6001905092915050565b6119566119506135aa565b82613b4a565b50565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61198f61198a6135aa565b613bc3565b565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156119fc57600080fd5b505afa158015611a10573d6000803e3d6000fd5b505050506040513d6020811015611a2657600080fd5b810190808051906020019092919050505090506000611a43611799565b90506000611a7183611a6364e8d4a5100085613c1d90919063ffffffff16565b613ca390919063ffffffff16565b90506000611aa0600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611de7565b90506000611ace64e8d4a51000611ac08585613c1d90919063ffffffff16565b613ca390919063ffffffff16565b9050809550505050505090565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b611b54611b4f6135aa565b612ea5565b611ba9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b8060148190555050565b611bbd3382613ced565b50565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611bf6611bf16135aa565b612ea5565b611c4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b60008114611cae57600a811015611cad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806154ae602d913960400191505060405180910390fd5b5b80600f8190555050565b60086020528060005260406000206000915054906101000a900463ffffffff1681565b611ceb611ce66135aa565b612ea5565b611d40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b600d60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611e3f611e3a6135aa565b612ea5565b611e94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b611e9d81613e5e565b50565b6000438210611efa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806156e66032913960400191505060405180910390fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415611f6757600091505061225f565b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161161205157600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff1681526020019081526020016000206001015491505061225f565b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611156120d257600091505061225f565b600080905060006001830390505b8163ffffffff168163ffffffff1611156121f9576000600283830363ffffffff168161210857fe5b0482039050612115615199565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001600182015481525050905086816000015163ffffffff1614156121d15780602001519550505050505061225f565b86816000015163ffffffff1610156121eb578193506121f2565b6001820392505b50506120e0565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206001015493505050505b92915050565b61226f8282613eb8565b5050565b61228361227e6135aa565b612ea5565b6122d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b6000811461233b57600a81101561233a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806153756029913960400191505060405180910390fd5b5b8060118190555050565b60096020528060005260406000206000915090505481565b60125461236933611de7565b10156123c0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061564d6022913960400191505060405180910390fd5b60145460135401421161243b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f546f6f20536f6f6e2e000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b42601381905550600061244d30611de7565b905061245881613f87565b6000612548601154600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156124ff57600080fd5b505afa158015612513573d6000803e3d6000fd5b505050506040513d602081101561252957600080fd5b8101908080519060200190929190505050613ca390919063ffffffff16565b905061255381614070565b506000601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f49930186010546040518263ffffffff1660e01b815260040180828152602001915050602060405180830381600087803b1580156125cd57600080fd5b505af11580156125e1573d6000803e3d6000fd5b505050506040513d60208110156125f757600080fd5b810190808051906020019092919050505090507f811d4760f1a92875eb76dbd3dc2359544b2f6a000ba5b78784c0b105b3469bd0816040518082815260200191505060405180910390a1505050565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156126e757600080fd5b505afa1580156126fb573d6000803e3d6000fd5b505050506040513d602081101561271157600080fd5b8101908080519060200190929190505050905090565b606060048054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156127bf5780601f10612794576101008083540402835291602001916127bf565b820191906000526020600020905b8154815290600101906020018083116127a257829003601f168201915b5050505050905090565b6127d96127d46135aa565b612ea5565b61282e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146128d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806154146028913960400191505060405180910390fd5b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006129dc6129266135aa565b846129d7856040518060600160405280602581526020016157cf60259139600160006129506135aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a029092919063ffffffff16565b6135b2565b6001905092915050565b6129f66129f16135aa565b612ea5565b612a4b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b6000601660006101000a81548160ff021916908315150217905550565b6000612a7330611de7565b905090565b6000612a8c612a856135aa565b84846137a9565b6001905092915050565b6000612ab9612aa3611799565b612aab612646565b613ac290919063ffffffff16565b905090565b600080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611612b28576000612b8c565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff168152602001908152602001600020600101545b915050919050565b612ba4612b9f6135aa565b612ea5565b612bf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b8060128190555050565b612c13612c0e6135aa565b612ea5565b612c68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b6015544211612cdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4e6f7420756e6c6f636b6564207965740000000000000000000000000000000081525060200191505060405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612d8057600080fd5b505afa158015612d94573d6000803e3d6000fd5b505050506040513d6020811015612daa57600080fd5b81019080805190602001909291905050509050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015612e6657600080fd5b505af1158015612e7a573d6000803e3d6000fd5b505050506040513d6020811015612e9057600080fd5b81019080805190602001909291905050505050565b6000612ebb8260176142d390919063ffffffff16565b9050919050565b6000604051808061553b6043913960430190506040518091039020612ee5611458565b80519060200120612ef46143b1565b30604051602001808581526020018481526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200194505050505060405160208183030381529060405280519060200120905060006040518080615769603a9139603a0190506040518091039020888888604051602001808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019450505050506040516020818303038152906040528051906020012090506000828260405160200180807f190100000000000000000000000000000000000000000000000000000000000081525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018288888860405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561309f573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613131576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806153e36031913960400191505060405180910390fd5b600960008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505589146131d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d81526020018061573c602d913960400191505060405180910390fd5b8742111561322f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603181526020018061566f6031913960400191505060405180910390fd5b613239818b613ced565b50505050505050505050565b600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156132b057600080fd5b505afa1580156132c4573d6000803e3d6000fd5b505050506040513d60208110156132da57600080fd5b8101908080519060200190929190505050905060006132f7612a96565b905060006133258361331764e8d4a5100085613c1d90919063ffffffff16565b613ca390919063ffffffff16565b90506000613354600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611de7565b9050600061338264e8d4a510006133748585613c1d90919063ffffffff16565b613ca390919063ffffffff16565b9050809550505050505090565b60155481565b601660009054906101000a900460ff1681565b600f5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60115481565b6040518080615769603a9139603a019050604051809103902081565b60125481565b6007602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060010154905082565b6134ae6134a96135aa565b612ea5565b613503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260408152602001806155e96040913960400191505060405180910390fd5b600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613638576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806157186024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156136be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061543c6022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b601660009054906101000a900460ff168015613816575060011515600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b8015613873575060011515600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514155b156138e6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4c6f636b656420756e74696c20656e64206f662070726573616c65000000000081525060200191505060405180910390fd5b6000600f5414158015613949575060001515600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80156139a5575060001515600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156139f15760006139c1600f5483613ca390919063ffffffff16565b90506139ce8430836143be565b6139eb84846139e6848661449790919063ffffffff16565b6143be565b506139fd565b6139fc8383836143be565b5b505050565b6000838311158290613aaf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a74578082015181840152602081019050613a59565b50505050905090810190601f168015613aa15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015613b40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b613bb5600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000836144e1565b613bbf828261477e565b5050565b613bd781601761493690919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f0a8eb35e5ca14b3d6f28e4abf2f128dbab231a58b56e89beb5d636115001e16560405160405180910390a250565b600080831415613c305760009050613c9d565b6000828402905082848281613c4157fe5b0414613c98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061557e6021913960400191505060405180910390fd5b809150505b92915050565b6000613ce583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506149f3565b905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000613d5c84611de7565b905082600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4613e588284836144e1565b50505050565b613e72816017614ab990919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f22380c05984257a1cb900161c713dd71d39e74820f1aea43bd3f1bdd2096129960405160405180910390a250565b613ec28282613b4a565b613f8382613ece6135aa565b613f7e8460405180606001604052806024815260200161562960249139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000613f346135aa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a029092919063ffffffff16565b6135b2565b5050565b613fb430600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836143be565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561401e57600080fd5b505af1158015614032573d6000803e3d6000fd5b505050507f8765d2bb982ed6ee74d2b03c76c9c129aa4a4e3e6b17bd7cf7830088e9d49054816040518082815260200191505060405180910390a150565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561413d57600080fd5b505af1158015614151573d6000803e3d6000fd5b505050506040513d602081101561416757600080fd5b810190808051906020019092919050505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663af2979eb3084600080601660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518763ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019650505050505050602060405180830381600087803b15801561429157600080fd5b505af11580156142a5573d6000803e3d6000fd5b505050506040513d60208110156142bb57600080fd5b81019080805190602001909291905050509050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561435a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806155c76022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000804690508091505090565b614487600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836144e1565b614492838383614b94565b505050565b60006144d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613a02565b905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561451d5750600081115b1561477957600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461464d576000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116145c0576000614624565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b9050600061463b848361449790919063ffffffff16565b905061464986848484614e4a565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614614778576000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff16116146eb57600061474f565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff168152602001908152602001600020600101545b905060006147668483613ac290919063ffffffff16565b905061477485848484614e4a565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806156a06021913960400191505060405180910390fd5b61486f816040518060600160405280602281526020016153c1602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a029092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506148c68160025461449790919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61494082826142d3565b614995576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806154db6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008083118290614a9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a64578082015181840152602081019050614a49565b50505050905090810190601f168015614a915780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614aab57fe5b049050809150509392505050565b614ac382826142d3565b15614b36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614c1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806156c16025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614ca0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061539e6023913960400191505060405180910390fd5b614d0b81604051806060016040528060268152602001615488602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613a029092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614d9e816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ac290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000614e6e436040518060600160405280603f81526020016154fc603f91396150de565b905060008463ffffffff16118015614f0357508063ffffffff16600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b15614f745781600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060010181905550615081565b60405180604001604052808263ffffffff16815260200183815250600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff1602179055506020820151816001015590505060018401600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248484604051808381526020018281526020019250505060405180910390a25050505050565b60006401000000008310829061518f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015615154578082015181840152602081019050615139565b50505050905090810190601f1680156151815780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff168152602001600081525090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561525c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61527181600254613ac290919063ffffffff16565b6002819055506152c8816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ac290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505056fe5242334c546f6b656e3a3a736574526562616c616e636544697669736f723a20746f6f20736d616c6c45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e63654552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964207369676e61747572655242334c546f6b656e3a3a736574556e69737761705632506169723a20616c72656164792073657445524332303a20617070726f766520746f20746865207a65726f20616464726573735242334c546f6b656e3a3a736574556e69737761705632526f757465723a20616c72656164792073657445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655242334c546f6b656e3a3a7365744c69717569646974794c6f636b44697669736f723a20746f6f20736d616c6c526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c654552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473454950373132446f6d61696e28737472696e67206e616d652c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737357686974656c69737441646d696e526f6c653a2063616c6c657220646f6573206e6f742068617665207468652057686974656c69737441646d696e20726f6c6545524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365596f7520617265206e6f742070617274206f662074686520636f6d6d756e6974792e4552433230476f7665726e616e63653a3a64656c656761746542795369673a207369676e6174757265206578706972656445524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e656445524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734552433230476f7665726e616e63653a3a64656c656761746542795369673a20696e76616c6964206e6f6e636544656c65676174696f6e28616464726573732064656c6567617465652c75696e74323536206e6f6e63652c75696e7432353620657870697279295242334c546f6b656e3a3a73657443616c6c657252657761726444697669736f723a20746f6f20736d616c6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a72315820776b267ea065f5cdef415ab6d5affc641324f6b3f6a91de340a1299581205d7264736f6c63430005110032608060405261dead600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005357600080fd5b50604051610e77380380610e778339818101604052602081101561007657600080fd5b8101908080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050610d5f806101186000396000f3fe6080604052600436106100345760003560e01c806361d027b314610036578063d246d4111461008d578063f4993018146100e4575b005b34801561004257600080fd5b5061004b610133565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561009957600080fd5b506100a2610159565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100f057600080fd5b5061011d6004803603602081101561010757600080fd5b810190808035906020019092919050505061017f565b6040518082815260200191505060405180910390f35b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f6f6e6c7920746f6b656e0000000000000000000000000000000000000000000081525060200191505060405180910390fd5b61024d4783610559565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b1580156102ed57600080fd5b505afa158015610301573d6000803e3d6000fd5b505050506040513d602081101561031757600080fd5b81019080805190602001909291905050509050600061033f8483610b1090919063ffffffff16565b90506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156103e957600080fd5b505af11580156103fd573d6000803e3d6000fd5b505050506040513d602081101561041357600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166104988486610b5a90919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561050157600080fd5b505af1158015610515573d6000803e3d6000fd5b505050506040513d602081101561052b57600080fd5b8101908080519060200190929190505050506105508183610b5a90919063ffffffff16565b92505050919050565b6060600260405190808252806020026020018201604052801561058b5781602001602082028038833980820191505090505b5090506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631694505e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105f557600080fd5b505afa158015610609573d6000803e3d6000fd5b505050506040513d602081101561061f57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561067557600080fd5b505afa158015610689573d6000803e3d6000fd5b505050506040513d602081101561069f57600080fd5b8101908080519060200190929190505050816000815181106106bd57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168160018151811061072657fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060006107758385610b1090919063ffffffff16565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156107df573d6000803e3d6000fd5b506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b36000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631694505e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561088457600080fd5b505afa158015610898573d6000803e3d6000fd5b505050506040513d60208110156108ae57600080fd5b8101908080519060200190929190505050866040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561092957600080fd5b505af115801561093d573d6000803e3d6000fd5b505050506040513d602081101561095357600080fd5b8101908080519060200190929190505050506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631694505e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109cc57600080fd5b505afa1580156109e0573d6000803e3d6000fd5b505050506040513d60208110156109f657600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663b6f9de95610a358387610b5a90919063ffffffff16565b60008530426040518663ffffffff1660e01b815260040180858152602001806020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015610aca578082015181840152602081019050610aaf565b50505050905001955050505050506000604051808303818588803b158015610af157600080fd5b505af1158015610b05573d6000803e3d6000fd5b505050505050505050565b6000610b5283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610ba4565b905092915050565b6000610b9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c6a565b905092915050565b60008083118290610c50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c15578082015181840152602081019050610bfa565b50505050905090810190601f168015610c425780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581610c5c57fe5b049050809150509392505050565b6000838311158290610d17576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610cdc578082015181840152602081019050610cc1565b50505050905090810190601f168015610d095780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838503905080915050939250505056fea265627a7a72315820add1d5dfbba1ee55897dce946d0014d9ac53662bc4625739729b1345922c292964736f6c634300051100324552433230476f7665726e616e63653a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373