60806040526000600760146101000a81548160ff02191690831515021790555060006008557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6009553480156200005557600080fd5b50604051620040173803806200401783398181016040526101208110156200007c57600080fd5b810190808051906020019092919080516040519392919084640100000000821115620000a757600080fd5b83820191506020820185811115620000be57600080fd5b8251866020820283011164010000000082111715620000dc57600080fd5b8083526020830192505050908051906020019060200280838360005b8381101562000115578082015181840152602081019050620000f8565b50505050905001604052602001805160405193929190846401000000008211156200013f57600080fd5b838201915060208201858111156200015657600080fd5b82518660208202830111640100000000821117156200017457600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620001ad57808201518184015260208101905062000190565b5050505090500160405260200180516040519392919084640100000000821115620001d757600080fd5b83820191506020820185811115620001ee57600080fd5b82518660208202830111640100000000821117156200020c57600080fd5b8083526020830192505050908051906020019060200280838360005b838110156200024557808201518184015260208101905062000228565b50505050905001604052602001805160405193929190846401000000008211156200026f57600080fd5b838201915060208201858111156200028657600080fd5b8251866020820283011164010000000082111715620002a457600080fd5b8083526020830192505050908051906020019060200280838360005b83811015620002dd578082015181840152602081019050620002c0565b50505050905001604052602001805160405193929190846401000000008211156200030757600080fd5b838201915060208201858111156200031e57600080fd5b82518660208202830111640100000000821117156200033c57600080fd5b8083526020830192505050908051906020019060200280838360005b838110156200037557808201518184015260208101905062000358565b50505050905001604052602001805160405193929190846401000000008211156200039f57600080fd5b83820191506020820185811115620003b657600080fd5b8251866001820283011164010000000082111715620003d457600080fd5b8083526020830192505050908051906020019080838360005b838110156200040a578082015181840152602081019050620003ed565b50505050905090810190601f168015620004385780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919080519060200190929190505050826200046f6301ffc9a760e01b6200072d60201b60201c565b62000480816200083660201b60201c565b6200049863d9b67a2660e01b6200072d60201b60201c565b620004b0630e89341c60e01b6200072d60201b60201c565b50620004d263bc197c8160e01b63f23a6e6160e01b186200072d60201b60201c565b88600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060005b60328160ff1610156200071d578060ff1689511415620005d35780600660006101000a81548160ff021916908360ff1602179055506200071d565b6200061b888260ff1681518110620005e757fe5b60200260200101518a8360ff1681518110620005ff57fe5b60200260200101516200085260201b6200257c1790919060201c565b6008600082825401925050819055506040518060a001604052808a8360ff16815181106200064557fe5b60200260200101518152602001898360ff16815181106200066257fe5b60200260200101518152602001888360ff16815181106200067f57fe5b60200260200101518152602001878360ff16815181106200069c57fe5b60200260200101518152602001868360ff1681518110620006b957fe5b6020026020010151815250600560008360ff1681526020019081526020016000206000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050808060010191505062000598565b5050505050505050505062000983565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620007ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b80600390805190602001906200084e929190620008dd565b5050565b600080831415620008675760009050620008d7565b60008284029050828482816200087957fe5b0414620008d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062003ff66021913960400191505060405180910390fd5b809150505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200092057805160ff191683800117855562000951565b8280016001018555821562000951579182015b828111156200095057825182559160200191906001019062000933565b5b50905062000960919062000964565b5090565b5b808211156200097f57600081600090555060010162000965565b5090565b61366380620009936000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c8063833ce3e1116100b8578063c45a01551161007c578063c45a015514610a1f578063e118658b14610a53578063e985e9c514610a74578063ed61cc9514610aee578063f23a6e6114610b0c578063f242432a14610c0c57610136565b8063833ce3e1146107955780638867596f146107c3578063a22cb465146107e1578063a27c282e14610831578063bc197c811461088957610136565b80632495a599116100ff5780632495a599146102fb5780632eb2c2d61461032f5780634e1273f4146105525780637145a6b2146106f357806371e928af1461075157610136565b8062fdd58e1461013b57806301ffc9a71461019d57806302fb0c5e146102005780630e89341c146102205780631d143848146102c7575b600080fd5b6101876004803603604081101561015157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d1b565b6040518082815260200191505060405180910390f35b6101e8600480360360208110156101b357600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610dfb565b60405180821515815260200191505060405180910390f35b610208610e62565b60405180821515815260200191505060405180910390f35b61024c6004803603602081101561023657600080fd5b8101908080359060200190929190505050610e75565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561028c578082015181840152602081019050610271565b50505050905090810190601f1680156102b95780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102cf610f19565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610303610f3f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610550600480360360a081101561034557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156103a257600080fd5b8201836020820111156103b457600080fd5b803590602001918460208302840111640100000000831117156103d657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561043657600080fd5b82018360208201111561044857600080fd5b8035906020019184602083028401116401000000008311171561046a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156104ca57600080fd5b8201836020820111156104dc57600080fd5b803590602001918460018302840111640100000000831117156104fe57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610f65565b005b61069c6004803603604081101561056857600080fd5b810190808035906020019064010000000081111561058557600080fd5b82018360208201111561059757600080fd5b803590602001918460208302840111640100000000831117156105b957600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561061957600080fd5b82018360208201111561062b57600080fd5b8035906020019184602083028401116401000000008311171561064d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192905050506113f0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106df5780820151818401526020810190506106c4565b505050509050019250505060405180910390f35b61071f6004803603602081101561070957600080fd5b8101908080359060200190929190505050611502565b604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390f35b6107936004803603602081101561076757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611538565b005b6107c1600480360360208110156107ab57600080fd5b810190808035906020019092919050505061191c565b005b6107cb611aa9565b6040518082815260200191505060405180910390f35b61082f600480360360408110156107f757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611aaf565b005b6108876004803603606081101561084757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611c48565b005b6109ea600480360360a081101561089f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156108fc57600080fd5b82018360208201111561090e57600080fd5b8035906020019184602083028401116401000000008311171561093057600080fd5b90919293919293908035906020019064010000000081111561095157600080fd5b82018360208201111561096357600080fd5b8035906020019184602083028401116401000000008311171561098557600080fd5b9091929391929390803590602001906401000000008111156109a657600080fd5b8201836020820111156109b857600080fd5b803590602001918460018302840111640100000000831117156109da57600080fd5b9091929391929390505050612036565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610a276120b6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a5b6120dc565b604051808260ff16815260200191505060405180910390f35b610ad660048036036040811015610a8a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ef565b60405180821515815260200191505060405180910390f35b610af6612183565b6040518082815260200191505060405180910390f35b610bd7600480360360a0811015610b2257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610b9357600080fd5b820183602082011115610ba557600080fd5b80359060200191846001830284011164010000000083111715610bc757600080fd5b9091929391929390505050612189565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b610d19600480360360a0811015610c2257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610c9357600080fd5b820183602082011115610ca557600080fd5b80359060200191846001830284011164010000000083111715610cc757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612207565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610da2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001806133f5602b913960400191505060405180910390fd5b6001600083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b600760149054906101000a900460ff1681565b606060038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f0d5780601f10610ee257610100808354040283529160200191610f0d565b820191906000526020600020905b815481529060010190602001808311610ef057829003601f168201915b50505050509050919050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b8151835114610fbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806135966028913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611045576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134496025913960400191505060405180910390fd5b61104d612602565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061109357506110928561108d612602565b6120ef565b5b6110e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061346e6032913960400191505060405180910390fd5b60006110f2612602565b905061110281878787878761260a565b60005b84518110156112d357600085828151811061111c57fe5b60200260200101519050600085838151811061113457fe5b602002602001015190506111bb816040518060600160405280602a81526020016134a0602a91396001600086815260200190815260200160002060008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126129092919063ffffffff16565b6001600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611272816001600085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cc90919063ffffffff16565b6001600084815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050806001019050611105565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015611383578082015181840152602081019050611368565b50505050905001838103825284818151815260200191508051906020019060200280838360005b838110156113c55780820151818401526020810190506113aa565b5050505090500194505050505060405180910390a46113e8818787878787612754565b505050505050565b6060815183511461144c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061356d6029913960400191505060405180910390fd5b6060835167ffffffffffffffff8111801561146657600080fd5b506040519080825280602002602001820160405280156114955781602001602082028036833780820191505090505b50905060005b84518110156114f7576114d48582815181106114b357fe5b60200260200101518583815181106114c757fe5b6020026020010151610d1b565b8282815181106114e057fe5b60200260200101818152505080600101905061149b565b508091505092915050565b60056020528060005260406000206000915090508060000154908060010154908060020154908060030154908060040154905085565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806135be602c913960400191505060405180910390fd5b600760149054906101000a900460ff1615611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602381526020018061360b6023913960400191505060405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd33306008546040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156116f757600080fd5b505af115801561170b573d6000803e3d6000fd5b505050506040513d602081101561172157600080fd5b8101908080519060200190929190505050506000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663017e7e586040518163ffffffff1660e01b815260040160206040518083038186803b15801561179d57600080fd5b505afa1580156117b1573d6000803e3d6000fd5b505050506040513d60208110156117c757600080fd5b81019080805190602001909291905050509050606060005b60328160ff1610156118fb578060ff16600660009054906101000a900460ff1660ff16141561180d576118fb565b611815613213565b600560008360ff1681526020019081526020016000206040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050905060008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146118d7576118b760648360000151612ae390919063ffffffff16565b905060008114156118c757600190505b6118d6858460ff168387612b6c565b5b6118ec868460ff168385600001510387612b6c565b505080806001019150506117df565b506001600760146101000a81548160ff021916908315150217905550505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061351e6026913960400191505060405180910390fd5b6009546119cd612d6f565b10611a40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f47656e5469636b6574733a2054474520616c7265616479206f6363757272656481525060200191505060405180910390fd5b80611a49612d6f565b10611a9f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806133cc6029913960400191505060405180910390fd5b8060098190555050565b60095481565b8173ffffffffffffffffffffffffffffffffffffffff16611ace612602565b73ffffffffffffffffffffffffffffffffffffffff161415611b3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806135446029913960400191505060405180910390fd5b8060026000611b48612602565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611bf5612602565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6000611c6f600660009054906101000a900460ff1660ff1684612d7790919063ffffffff16565b9050611c79613213565b600560008381526020019081526020016000206040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250509050611cfa600954611cec8360600151846080015161257c90919063ffffffff16565b6126cc90919063ffffffff16565b611d02612d6f565b11611d58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613373602f913960400191505060405180910390fd5b6000611d7f600660009054906101000a900460ff1660ff1686612ae390919063ffffffff16565b9050611dd8600954611dca611da184866080015161257c90919063ffffffff16565b611dbc8660600151876080015161257c90919063ffffffff16565b6126cc90919063ffffffff16565b6126cc90919063ffffffff16565b611de0612d6f565b11611e36576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806134eb6033913960400191505060405180910390fd5b611e5182606001518360400151612e0090919063ffffffff16565b8110611ea8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806133a2602a913960400191505060405180910390fd5b611eea333087876040518060400160405280600281526020017f4a43000000000000000000000000000000000000000000000000000000000000815250612207565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87611f6c611f4786606001518760400151612e0090919063ffffffff16565b611f5e87602001518a61257c90919063ffffffff16565b612ae390919063ffffffff16565b6040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611fbf57600080fd5b505af1158015611fd3573d6000803e3d6000fd5b505050506040513d6020811015611fe957600080fd5b810190808051906020019092919050505050606061202d87612026600660009054906101000a900460ff1660ff16896126cc90919063ffffffff16565b8784612b6c565b50505050505050565b60006040518060400160405280600281526020017f4a43000000000000000000000000000000000000000000000000000000000000815250805190602001208383604051808383808284378083019250505092505050604051809103902014156120a95763bc197c8160e01b90506120aa565b5b98975050505050505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60085481565b60006040518060400160405280600281526020017f4a43000000000000000000000000000000000000000000000000000000000000815250805190602001208383604051808383808284378083019250505092505050604051809103902014156121fc5763f23a6e6160e01b90506121fd565b5b9695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561228d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806134496025913960400191505060405180910390fd5b612295612602565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614806122db57506122da856122d5612602565b6120ef565b5b612330576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806134206029913960400191505060405180910390fd5b600061233a612602565b905061235a81878761234b88612e83565b61235488612e83565b8761260a565b6123d7836040518060600160405280602a81526020016134a0602a91396001600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126129092919063ffffffff16565b6001600086815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061248e836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cc90919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4612574818787878787612ef3565b505050505050565b60008083141561258f57600090506125fc565b60008284029050828482816125a057fe5b04146125f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806134ca6021913960400191505060405180910390fd5b809150505b92915050565b600033905090565b505050505050565b60008383111582906126bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612684578082015181840152602081019050612669565b50505050905090810190601f1680156126b15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5082840390509392505050565b60008082840190508381101561274a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6127738473ffffffffffffffffffffffffffffffffffffffff16613200565b15612adb578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001806020018060200180602001848103845287818151815260200191508051906020019060200280838360005b8381101561282b578082015181840152602081019050612810565b50505050905001848103835286818151815260200191508051906020019060200280838360005b8381101561286d578082015181840152602081019050612852565b50505050905001848103825285818151815260200191508051906020019080838360005b838110156128ac578082015181840152602081019050612891565b50505050905090810190601f1680156128d95780820380516001836020036101000a031916815260200191505b5098505050505050505050602060405180830381600087803b1580156128fe57600080fd5b505af192505050801561293257506040513d602081101561291e57600080fd5b810190808051906020019092919050505060015b612a3c5761293e613260565b8061294957506129eb565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129b0578082015181840152602081019050612995565b50505050905090810190601f1680156129dd5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806133176034913960400191505060405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614612ad9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061334b6028913960400191505060405180910390fd5b505b505050505050565b6000808211612b5a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b818381612b6357fe5b04905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612bf2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806135ea6021913960400191505060405180910390fd5b6000612bfc612602565b9050612c1d81600087612c0e88612e83565b612c1788612e83565b8761260a565b612c80836001600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126cc90919063ffffffff16565b6001600086815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628787604051808381526020018281526020019250505060405180910390a4612d6881600087878787612ef3565b5050505050565b600042905090565b6000808211612dee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f536166654d6174683a206d6f64756c6f206279207a65726f000000000000000081525060200191505060405180910390fd5b818381612df757fe5b06905092915050565b600082821115612e78576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b818303905092915050565b606080600167ffffffffffffffff81118015612e9e57600080fd5b50604051908082528060200260200182016040528015612ecd5781602001602082028036833780820191505090505b5090508281600081518110612ede57fe5b60200260200101818152505080915050919050565b612f128473ffffffffffffffffffffffffffffffffffffffff16613200565b156131f8578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff16815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015612fcb578082015181840152602081019050612fb0565b50505050905090810190601f168015612ff85780820380516001836020036101000a031916815260200191505b509650505050505050602060405180830381600087803b15801561301b57600080fd5b505af192505050801561304f57506040513d602081101561303b57600080fd5b810190808051906020019092919050505060015b6131595761305b613260565b806130665750613108565b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156130cd5780820151818401526020810190506130b2565b50505050905090810190601f1680156130fa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260348152602001806133176034913960400191505060405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146131f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061334b6028913960400191505060405180910390fd5b505b505050505050565b600080823b905060008111915050919050565b6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6000601f19601f8301169050919050565b60008160e01c9050919050565b600060443d101561327057613313565b60046000803e613281600051613253565b6308c379a081146132925750613313565b60405160043d036004823e80513d602482011167ffffffffffffffff821117156132be57505050613313565b808201805167ffffffffffffffff8111156132dd575050505050613313565b8060208301013d85018111156132f857505050505050613313565b61330182613242565b60208401016040528296505050505050505b9056fe455243313135353a207472616e7366657220746f206e6f6e2045524331313535526563656976657220696d706c656d656e746572455243313135353a204552433131353552656365697665722072656a656374656420746f6b656e7347656e5469636b6574733a205469636b6574206973207374696c6c2077697468696e20636c69666620706572696f6447656e5469636b6574733a205469636b6574206861732072656465656d656420616c6c20746f6b656e7347656e5469636b6574733a204e657720544745206d75737420626520696e2074686520667574757265455243313135353a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a207472616e7366657220746f20746865207a65726f2061646472657373455243313135353a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564455243313135353a20696e73756666696369656e742062616c616e636520666f72207472616e73666572536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7747656e5469636b6574733a20546f6b656e7320666f722074686973207469636b657420617265206265696e672076657374656447656e5469636b6574733a204f6e6c79206973737565722063616e2075706461746520544745455243313135353a2073657474696e6720617070726f76616c2073746174757320666f722073656c66455243313135353a206163636f756e747320616e6420696473206c656e677468206d69736d61746368455243313135353a2069647320616e6420616d6f756e7473206c656e677468206d69736d6174636847656e5469636b6574733a204f6e6c79206973737565722063616e2069737375652074686520746f6b656e73455243313135353a206d696e7420746f20746865207a65726f206164647265737347656e5469636b6574733a20546f6b656e20697320616c726561647920616374697665a26469706673582212204da9b10f512cffac871beb7e3e6aeca836843f5ae3e9a973b75d0f548faac83564736f6c634300060c0033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7700000000000000000000000033f391f4c4fe802b70b77ae37670037a92114a7c000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000003a00000000000000000000000000000000000000000000000000000000000000440000000000000000000000000b108c27139ca10462f6f802ee14e3e0cda4ab9f10000000000000000000000000e616785638663c88a493a82972e2f9cadaab4bc00000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000005e00000000000000000000000000000000000000000000000000000000000000c800000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000001b87506a3e7b0d4000000000000000000000000000000000000000000000000010f0cf064dd592000000000000000000000000000000000000000000000000000a968163f0a57b40000000000000000000000000000000000000000000000000043c33c193756480000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000b400000000000000000000000000000000000000000000000000000000000000b40000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000151800000000000000000000000000000000000000000000000000000000000015180000000000000000000000000000000000000000000000000000000000000003368747470733a2f2f636c6f756466726f6e742e67656e7368617264732e636f6d2f636f696e627572702f7b69647d2e6a736f6e00000000000000000000000000