60806040526020604051908101604052806000815250600190805190602001906200002c929190620001d5565b5060206040519081016040528060008152506002908051906020019062000055929190620001d5565b506000600360006101000a81548160ff021916908360ff16021790555060006004556000600b556000600c553480156200008e57600080fd5b506040516200374a3803806200374a83398101806040528101908080518201929190602001805182019291906020018051906020019092919080519060200190929190505050336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000845111801562000127575060008351115b15156200013357600080fd5b83600190805190602001906200014b929190620001d5565b50826002908051906020019062000164929190620001d5565b5081600360006101000a81548160ff021916908360ff1602179055508060048190555080600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050505062000284565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021857805160ff191683800117855562000249565b8280016001018555821562000249579182015b82811115620002485782518255916020019190600101906200022b565b5b5090506200025891906200025c565b5090565b6200028191905b808211156200027d57600081600090555060010162000263565b5090565b90565b6134b680620002946000396000f300608060405260043610610175576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630451f5201461017a57806306fdde03146101d1578063095ea7b31461026157806309c3e3e9146102c65780630fce887b1461035e57806313af40351461045f57806316b81889146104a2578063170f8a51146104f957806318160ddd1461055057806323b872dd1461057b578063313ce5671461060057806332308cce1461063157806334af370f1461069257806345cc5890146106f35780635a3b7e42146107365780635fc3a312146107c657806366fbc1541461081d57806370a08231146108485780638da5cb5b1461089f57806395d89b41146108f6578063a9059cbb14610986578063b91aedab146109eb578063c7cc4ee914610acc578063ca0cd7c014610af7578063ce62cd4a14610b24578063d71c9c1214610b67578063dd62ed3e14610bc2578063df51d46b14610c39578063f7053d7a14610c66575b600080fd5b34801561018657600080fd5b506101bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cfe565b6040518082815260200191505060405180910390f35b3480156101dd57600080fd5b506101e6610e7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022657808201518184015260208101905061020b565b50505050905090810190601f1680156102535780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561026d57600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f1a565b604051808215151515815260200191505060405180910390f35b3480156102d257600080fd5b50610307600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561034a57808201518184015260208101905061032f565b505050509050019250505060405180910390f35b34801561036a57600080fd5b50610445600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506112a7565b604051808215151515815260200191505060405180910390f35b34801561046b57600080fd5b506104a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061198f565b005b3480156104ae57600080fd5b506104e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a2d565b6040518082815260200191505060405180910390f35b34801561050557600080fd5b5061053a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a45565b6040518082815260200191505060405180910390f35b34801561055c57600080fd5b50610565611a5d565b6040518082815260200191505060405180910390f35b34801561058757600080fd5b506105e6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a63565b604051808215151515815260200191505060405180910390f35b34801561060c57600080fd5b50610615611df3565b604051808260ff1660ff16815260200191505060405180910390f35b34801561063d57600080fd5b5061067c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e06565b6040518082815260200191505060405180910390f35b34801561069e57600080fd5b506106dd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e36565b6040518082815260200191505060405180910390f35b3480156106ff57600080fd5b50610734600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e66565b005b34801561074257600080fd5b5061074b611f44565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078b578082015181840152602081019050610770565b50505050905090810190601f1680156107b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107d257600080fd5b50610807600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611f7d565b6040518082815260200191505060405180910390f35b34801561082957600080fd5b506108326120bd565b6040518082815260200191505060405180910390f35b34801561085457600080fd5b50610889600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120c3565b6040518082815260200191505060405180910390f35b3480156108ab57600080fd5b506108b46121cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561090257600080fd5b5061090b6121f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561094b578082015181840152602081019050610930565b50505050905090810190601f1680156109785780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561099257600080fd5b506109d1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061228f565b604051808215151515815260200191505060405180910390f35b3480156109f757600080fd5b50610ab2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506124f0565b604051808215151515815260200191505060405180910390f35b348015610ad857600080fd5b50610ae1612b57565b6040518082815260200191505060405180910390f35b348015610b0357600080fd5b50610b2260048036038101908080359060200190929190505050612b5d565b005b348015610b3057600080fd5b50610b65600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612bcd565b005b348015610b7357600080fd5b50610ba8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612cab565b604051808215151515815260200191505060405180910390f35b348015610bce57600080fd5b50610c23600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ccb565b6040518082815260200191505060405180910390f35b348015610c4557600080fd5b50610c6460048036038101908080359060200190929190505050612cf0565b005b348015610c7257600080fd5b50610ca7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d60565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610cea578082015181840152602081019050610ccf565b505050509050019250505060405180910390f35b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600090505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054811015610e7357610df1600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610dde57fe5b9060005260206000200154600b54612e1f565b610dfd42600c54612e1f565b1115610e6657610e6382600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481101515610e5357fe5b9060005260206000200154612e1f565b91505b8080600101915050610d48565b81915050919050565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f125780601f10610ee757610100808354040283529160200191610f12565b820191906000526020600020905b815481529060010190602001808311610ef557829003601f168201915b505050505081565b60008260008173ffffffffffffffffffffffffffffffffffffffff1614151515610f4357600080fd5b6000831480610fce57506000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b1515610fd957600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561102b5761102a33612e3d565b5b82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a3600191505092915050565b6060600060608360008173ffffffffffffffffffffffffffffffffffffffff161415151561114957600080fd5b60009250600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040519080825280602002602001820160405280156111bb5781602001602082028038833980820191505090505b5091505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483101561129c5761127361126b600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208581548110151561125857fe5b9060005260206000200154600b54612e1f565b600c546133d3565b828481518110151561128157fe5b906020019060200201818152505082806001019350506111bf565b819350505050919050565b60008060008660008173ffffffffffffffffffffffffffffffffffffffff16141515156112d357600080fd5b8660008173ffffffffffffffffffffffffffffffffffffffff16141515156112fa57600080fd5b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561135257600080fd5b8651865114151561136257600080fd5b6000600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156113b4576113b389612e3d565b5b60009350600092505b85518410156113f6576113e78387868151811015156113d857fe5b90602001906020020151612e1f565b925083806001019450506113bd565b82600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156114455750600083115b1561197e57600093505b8651841015611975576114b8600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205487868151811015156114a957fe5b906020019060200201516133d3565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208161158891906133ec565b506001600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208161161691906133ec565b5061163842888681518110151561162957fe5b90602001906020020151612e1f565b600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811015156116c357fe5b906000526020600020018190555085848151811015156116df57fe5b90602001906020020151600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110151561177457fe5b90600052602060002001819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167ffe070d51105133a72bb93887d77e06cf4e456c051b256e50905871f9f231b648600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110151561185c57fe5b9060005260206000200154600860008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548154811015156118f257fe5b9060005260206000200154604051808381526020018281526020019250505060405180910390a3600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154809291906001019190505550838060010194505061144f565b60019450611983565b600094505b50505050949350505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119ea57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60096020528060005260406000206000915090505481565b60056020528060005260406000206000915090505481565b60045481565b60008360008173ffffffffffffffffffffffffffffffffffffffff1614151515611a8c57600080fd5b8360008173ffffffffffffffffffffffffffffffffffffffff1614151515611ab357600080fd5b6000600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611b0557611b0486612e3d565b5b83600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410158015611b545750600084115b15611de557611bdf600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856133d3565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ca8600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054856133d3565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d34600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205485612e1f565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250611dea565b600092505b50509392505050565b600360009054906101000a900460ff1681565b600860205281600052604060002081815481101515611e2157fe5b90600052602060002001600091509150505481565b600760205281600052604060002081815481101515611e5157fe5b90600052602060002001600091509150505481565b8060008173ffffffffffffffffffffffffffffffffffffffff1614151515611e8d57600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ee857600080fd5b6001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6040805190810160405280600481526020017f302e36360000000000000000000000000000000000000000000000000000000081525081565b60008060009150600090505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548110156120b457612032600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561201f57fe5b9060005260206000200154600b54612e1f565b61203e42600c54612e1f565b10156120a7576120a482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208381548110151561209457fe5b9060005260206000200154612e1f565b91505b8080600101915050611f89565b81915050919050565b600c5481565b600080600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600090505b600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548110156121c3576121b482600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020838154811015156121a457fe5b9060005260206000200154612e1f565b9150808060010191505061210d565b81915050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156122875780601f1061225c57610100808354040283529160200191612287565b820191906000526020600020905b81548152906001019060200180831161226a57829003601f168201915b505050505081565b60008260008173ffffffffffffffffffffffffffffffffffffffff16141515156122b857600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561230a5761230933612e3d565b5b82600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101580156123595750600083115b156124e4576123a7600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846133d3565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612433600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612e1f565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191506124e9565b600091505b5092915050565b60008060008560008173ffffffffffffffffffffffffffffffffffffffff161415151561251c57600080fd5b8551855114151561252c57600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561257e5761257d33612e3d565b5b60009250600091505b84518310156125c0576125b18286858151811015156125a257fe5b90602001906020020151612e1f565b91508280600101935050612587565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015801561260f5750600082115b15612b4857600092505b8551831015612b3f57612682600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054868581518110151561267357fe5b906020019060200201516133d3565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208161275291906133ec565b506001600960008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020816127e091906133ec565b506128024287858151811015156127f357fe5b90602001906020020151612e1f565b600760008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110151561288d57fe5b906000526020600020018190555084838151811015156128a957fe5b90602001906020020151600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481548110151561293e57fe5b90600052602060002001819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167ffe070d51105133a72bb93887d77e06cf4e456c051b256e50905871f9f231b648600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481101515612a2657fe5b9060005260206000200154600860008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600960008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054815481101515612abc57fe5b9060005260206000200154604051808381526020018281526020019250505060405180910390a3600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081548092919060010191905055508280600101935050612619565b60019350612b4d565b600093505b5050509392505050565b600b5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612bb857600080fd5b612bc4600b5482612e1f565b600b8190555050565b8060008173ffffffffffffffffffffffffffffffffffffffff1614151515612bf457600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c4f57600080fd5b6000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a6020528060005260406000206000915054906101000a900460ff1681565b6006602052816000526040600020602052806000526040600020600091509150505481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d4b57600080fd5b612d57600c5482612e1f565b600c8190555050565b60608160008173ffffffffffffffffffffffffffffffffffffffff1614151515612d8957600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015612e1257602002820191906000526020600020905b815481526020019060010190808311612dfe575b5050505050915050919050565b6000808284019050838110151515612e3357fe5b8091505092915050565b6000806060806060806060806000975060009650600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051908082528060200260200182016040528015612ebf5781602001602082028038833980820191505090505b509350600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051908082528060200260200182016040528015612f305781602001602082028038833980820191505090505b509250600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015612fbc57602002820191906000526020600020905b815481526020019060010190808311612fa8575b50505050509550600860008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548060200260200160405190810160405280929190818152602001828054801561304c57602002820191906000526020600020905b815481526020019060010190808311613038575b505050505094505b600960008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548810156131f6576130be86898151811015156130ac57fe5b90602001906020020151600b54612e1f565b6130ca42600c54612e1f565b111561317857613130600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054868a81518110151561312157fe5b90602001906020020151612e1f565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131e9565b858881518110151561318657fe5b90602001906020020151848881518110151561319e57fe5b906020019060200201818152505084888151811015156131ba57fe5b9060200190602002015183888151811015156131d257fe5b906020019060200201818152505086806001019750505b8780600101985050613054565b866040519080825280602002602001820160405280156132255781602001602082028038833980820191505090505b509150866040519080825280602002602001820160405280156132575781602001602082028038833980820191505090505b509050600097505b868810156132dc57838881518110151561327557fe5b90602001906020020151828981518110151561328d57fe5b906020019060200201818152505082888151811015156132a957fe5b9060200190602002015181898151811015156132c157fe5b9060200190602002018181525050878060010198505061325f565b81600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020908051906020019061332f929190613418565b5080600860008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209080519060200190613383929190613418565b5086600960008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050505050565b60008183101515156133e157fe5b818303905092915050565b815481835581811115613413578183600052602060002091820191016134129190613465565b5b505050565b828054828255906000526020600020908101928215613454579160200282015b82811115613453578251825591602001919060010190613438565b5b5090506134619190613465565b5090565b61348791905b8082111561348357600081600090555060010161346b565b5090565b905600a165627a7a7230582068bb66c965dffdf1751ac27701ba290632166f707d45e5fbb771fd1a73612d5e0029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000006c9144c1c690d4cb4000000000000000000000000000000000000000000000000000000000000000000000655504f574552000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035550430000000000000000000000000000000000000000000000000000000000