60806040526040518060a00160405280606b815260200162003ba4606b9139600a90805190602001906200003592919062000257565b506115b3600b556103e8600c55600a600d5566038d7ea4c68000600e55600a600f5560056010556001601160006101000a81548160ff0219169083151502179055506000601160016101000a81548160ff0219169083151502179055503480156200009f57600080fd5b506040518060400160405280600d81526020017f546966664d7574616e74417065000000000000000000000000000000000000008152506040518060400160405280600581526020017f544d41594300000000000000000000000000000000000000000000000000000081525081600290805190602001906200012492919062000257565b5080600390805190602001906200013d92919062000257565b506200014e6200018460201b60201c565b6000819055505050620001766200016a6200018960201b60201c565b6200019160201b60201c565b60016009819055506200036c565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002659062000307565b90600052602060002090601f016020900481019282620002895760008555620002d5565b82601f10620002a457805160ff1916838001178555620002d5565b82800160010185558215620002d5579182015b82811115620002d4578251825591602001919060010190620002b7565b5b509050620002e49190620002e8565b5090565b5b8082111562000303576000816000905550600101620002e9565b5090565b600060028204905060018216806200032057607f821691505b602082108114156200033757620003366200033d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613828806200037c6000396000f3fe60806040526004361061020f5760003560e01c80638129fc1c11610118578063a22cb465116100a0578063d547cfb71161006f578063d547cfb714610768578063e19979f514610793578063e985e9c5146107bc578063f2fde38b146107f9578063f43a22dc146108225761020f565b8063a22cb4651461069c578063ad66639e146106c5578063b88d4fde14610702578063c87b56dd1461072b5761020f565b8063940cd05b116100e7578063940cd05b146105d857806395d89b411461060157806398710d1e1461062c5780639e9fcffc14610657578063a0712d68146106805761020f565b80638129fc1c1461052e5780638d859f3e146105595780638da5cb5b1461058457806391b7f5ed146105af5761020f565b80633ccfd60b1161019b5780636352211e1161016a5780636352211e146104495780636a3c167b1461048657806370a08231146104af578063715018a6146104ec5780637dc949b2146105035761020f565b80633ccfd60b146103b557806342842e0e146103cc57806351830227146103f557806355f804b3146104205761020f565b8063095ea7b3116101e2578063095ea7b3146102e45780630c23bb3f1461030d57806318160ddd1461033657806323b872dd1461036157806332cb6b0c1461038a5761020f565b806301ffc9a71461021457806302ddb65b1461025157806306fdde031461027c578063081812fc146102a7575b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612a48565b61084d565b6040516102489190612f15565b60405180910390f35b34801561025d57600080fd5b506102666108df565b6040516102739190613092565b60405180910390f35b34801561028857600080fd5b506102916108e5565b60405161029e9190612f30565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612adb565b610977565b6040516102db9190612eae565b60405180910390f35b3480156102f057600080fd5b5061030b600480360381019061030691906129e3565b6109f3565b005b34801561031957600080fd5b50610334600480360381019061032f9190612adb565b610b34565b005b34801561034257600080fd5b5061034b610bba565b6040516103589190613092565b60405180910390f35b34801561036d57600080fd5b50610388600480360381019061038391906128dd565b610bd1565b005b34801561039657600080fd5b5061039f610ef6565b6040516103ac9190613092565b60405180910390f35b3480156103c157600080fd5b506103ca610efc565b005b3480156103d857600080fd5b506103f360048036038101906103ee91906128dd565b610fda565b005b34801561040157600080fd5b5061040a610ffa565b6040516104179190612f15565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612a9a565b61100d565b005b34801561045557600080fd5b50610470600480360381019061046b9190612adb565b6110a3565b60405161047d9190612eae565b60405180910390f35b34801561049257600080fd5b506104ad60048036038101906104a89190612a1f565b6110b5565b005b3480156104bb57600080fd5b506104d660048036038101906104d19190612878565b61114e565b6040516104e39190613092565b60405180910390f35b3480156104f857600080fd5b50610501611207565b005b34801561050f57600080fd5b5061051861128f565b6040516105259190613092565b60405180910390f35b34801561053a57600080fd5b50610543611295565b6040516105509190612f15565b60405180910390f35b34801561056557600080fd5b5061056e6112a8565b60405161057b9190613092565b60405180910390f35b34801561059057600080fd5b506105996112ae565b6040516105a69190612eae565b60405180910390f35b3480156105bb57600080fd5b506105d660048036038101906105d19190612adb565b6112d8565b005b3480156105e457600080fd5b506105ff60048036038101906105fa9190612a1f565b61135e565b005b34801561060d57600080fd5b506106166113f7565b6040516106239190612f30565b60405180910390f35b34801561063857600080fd5b50610641611489565b60405161064e9190613092565b60405180910390f35b34801561066357600080fd5b5061067e60048036038101906106799190612adb565b61148f565b005b61069a60048036038101906106959190612adb565b611515565b005b3480156106a857600080fd5b506106c360048036038101906106be91906129a7565b6117c4565b005b3480156106d157600080fd5b506106ec60048036038101906106e79190612878565b61193c565b6040516106f99190613092565b60405180910390f35b34801561070e57600080fd5b506107296004803603810190610724919061292c565b611954565b005b34801561073757600080fd5b50610752600480360381019061074d9190612adb565b6119c7565b60405161075f9190612f30565b60405180910390f35b34801561077457600080fd5b5061077d611a80565b60405161078a9190612f30565b60405180910390f35b34801561079f57600080fd5b506107ba60048036038101906107b59190612adb565b611b0e565b005b3480156107c857600080fd5b506107e360048036038101906107de91906128a1565b611b94565b6040516107f09190612f15565b60405180910390f35b34801561080557600080fd5b50610820600480360381019061081b9190612878565b611c28565b005b34801561082e57600080fd5b50610837611d20565b6040516108449190613092565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108a857506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108d85750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600c5481565b6060600280546108f490613362565b80601f016020809104026020016040519081016040528092919081815260200182805461092090613362565b801561096d5780601f106109425761010080835404028352916020019161096d565b820191906000526020600020905b81548152906001019060200180831161095057829003601f168201915b5050505050905090565b600061098282611d26565b6109b8576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109fe826110a3565b90508073ffffffffffffffffffffffffffffffffffffffff16610a1f611d85565b73ffffffffffffffffffffffffffffffffffffffff1614610a8257610a4b81610a46611d85565b611b94565b610a81576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610b3c611d8d565b73ffffffffffffffffffffffffffffffffffffffff16610b5a6112ae565b73ffffffffffffffffffffffffffffffffffffffff1614610bb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba790612fd2565b60405180910390fd5b80600c8190555050565b6000610bc4611d95565b6001546000540303905090565b6000610bdc82611d9a565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610c43576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610c4f84611e68565b91509150610c658187610c60611d85565b611e8a565b610cb157610c7a86610c75611d85565b611b94565b610cb0576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610d18576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d258686866001611ece565b8015610d3057600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610dfe85610dda888887611ed4565b7c020000000000000000000000000000000000000000000000000000000017611efc565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084161415610e86576000600185019050600060046000838152602001908152602001600020541415610e84576000548114610e83578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610eee8686866001611f27565b505050505050565b600b5481565b610f04611d8d565b73ffffffffffffffffffffffffffffffffffffffff16610f226112ae565b73ffffffffffffffffffffffffffffffffffffffff1614610f78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6f90612fd2565b60405180910390fd5b60026009541415610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590613072565b60405180910390fd5b6002600981905550610fd03347611f2d565b6001600981905550565b610ff583838360405180602001604052806000815250611954565b505050565b601160019054906101000a900460ff1681565b611015611d8d565b73ffffffffffffffffffffffffffffffffffffffff166110336112ae565b73ffffffffffffffffffffffffffffffffffffffff1614611089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108090612fd2565b60405180910390fd5b80600a908051906020019061109f92919061269c565b5050565b60006110ae82611d9a565b9050919050565b6110bd611d8d565b73ffffffffffffffffffffffffffffffffffffffff166110db6112ae565b73ffffffffffffffffffffffffffffffffffffffff1614611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890612fd2565b60405180910390fd5b80601160006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111b6576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61120f611d8d565b73ffffffffffffffffffffffffffffffffffffffff1661122d6112ae565b73ffffffffffffffffffffffffffffffffffffffff1614611283576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127a90612fd2565b60405180910390fd5b61128d6000612021565b565b60105481565b601160009054906101000a900460ff1681565b600e5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6112e0611d8d565b73ffffffffffffffffffffffffffffffffffffffff166112fe6112ae565b73ffffffffffffffffffffffffffffffffffffffff1614611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612fd2565b60405180910390fd5b80600e8190555050565b611366611d8d565b73ffffffffffffffffffffffffffffffffffffffff166113846112ae565b73ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d190612fd2565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60606003805461140690613362565b80601f016020809104026020016040519081016040528092919081815260200182805461143290613362565b801561147f5780601f106114545761010080835404028352916020019161147f565b820191906000526020600020905b81548152906001019060200180831161146257829003601f168201915b5050505050905090565b600f5481565b611497611d8d565b73ffffffffffffffffffffffffffffffffffffffff166114b56112ae565b73ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150290612fd2565b60405180910390fd5b80600d8190555050565b6000600e549050600080831161152c57600161152e565b825b905060006001600c546115419190613197565b8261154a610bba565b6115549190613197565b1080156115ad5750600f5482601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115aa9190613197565b11155b90508015611664576000925081601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116089190613197565b92505081905550600160105461161e9190613197565b821061165f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165690613052565b60405180910390fd5b6116b5565b6001600d546116739190613197565b82106116b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ab90613052565b60405180910390fd5b5b601160009054906101000a900460ff16611704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fb90612ff2565b60405180910390fd5b8282611710919061321e565b341015611752576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174990613032565b60405180910390fd5b6001600b546117619190613197565b8261176a610bba565b6117749190613197565b106117b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ab90612f52565b60405180910390fd5b6117be33836120e7565b50505050565b6117cc611d85565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611831576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806007600061183e611d85565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166118eb611d85565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119309190612f15565b60405180910390a35050565b60126020528060005260406000206000915090505481565b61195f848484610bd1565b60008373ffffffffffffffffffffffffffffffffffffffff163b146119c15761198a84848484612105565b6119c0576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b60606119d282611d26565b611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0890613012565b60405180910390fd5b601160019054906101000a900460ff16611a4d57600a604051602001611a379190612e3d565b6040516020818303038152906040529050611a7b565b600a611a5883612265565b604051602001611a69929190612e5f565b60405160208183030381529060405290505b919050565b600a8054611a8d90613362565b80601f0160208091040260200160405190810160405280929190818152602001828054611ab990613362565b8015611b065780601f10611adb57610100808354040283529160200191611b06565b820191906000526020600020905b815481529060010190602001808311611ae957829003601f168201915b505050505081565b611b16611d8d565b73ffffffffffffffffffffffffffffffffffffffff16611b346112ae565b73ffffffffffffffffffffffffffffffffffffffff1614611b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8190612fd2565b60405180910390fd5b80600f8190555050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611c30611d8d565b73ffffffffffffffffffffffffffffffffffffffff16611c4e6112ae565b73ffffffffffffffffffffffffffffffffffffffff1614611ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9b90612fd2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b90612f72565b60405180910390fd5b611d1d81612021565b50565b600d5481565b600081611d31611d95565b11158015611d40575060005482105b8015611d7e575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b600090565b60008082905080611da9611d95565b11611e3157600054811015611e305760006004600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415611e2e575b6000811415611e24576004600083600190039350838152602001908152602001600020549050611df9565b8092505050611e63565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600690508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611eeb868684612412565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b80471015611f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6790612fb2565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051611f9690612e99565b60006040518083038185875af1925050503d8060008114611fd3576040519150601f19603f3d011682016040523d82523d6000602084013e611fd8565b606091505b505090508061201c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201390612f92565b60405180910390fd5b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61210182826040518060200160405280600081525061241b565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261212b611d85565b8786866040518563ffffffff1660e01b815260040161214d9493929190612ec9565b602060405180830381600087803b15801561216757600080fd5b505af192505050801561219857506040513d601f19601f820116820180604052508101906121959190612a71565b60015b612212573d80600081146121c8576040519150601f19603f3d011682016040523d82523d6000602084013e6121cd565b606091505b5060008151141561220a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060008214156122ad576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061240d565b600082905060005b600082146122df5780806122c8906133c5565b915050600a826122d891906131ed565b91506122b5565b60008167ffffffffffffffff811115612321577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156123535781602001600182028036833780820191505090505b5090505b600085146124065760018261236c9190613278565b9150600a8561237b919061340e565b60306123879190613197565b60f81b8183815181106123c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123ff91906131ed565b9450612357565b8093505050505b919050565b60009392505050565b61242583836124b8565b60008373ffffffffffffffffffffffffffffffffffffffff163b146124b357600080549050600083820390505b6124656000868380600101945086612105565b61249b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106124525781600054146124b057600080fd5b50505b505050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612525576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000821415612560576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61256d6000848385611ece565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506125e4836125d56000866000611ed4565b6125de8561268c565b17611efc565b60046000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808210612608578060008190555050506126876000848385611f27565b505050565b60006001821460e11b9050919050565b8280546126a890613362565b90600052602060002090601f0160209004810192826126ca5760008555612711565b82601f106126e357805160ff1916838001178555612711565b82800160010185558215612711579182015b828111156127105782518255916020019190600101906126f5565b5b50905061271e9190612722565b5090565b5b8082111561273b576000816000905550600101612723565b5090565b600061275261274d846130d2565b6130ad565b90508281526020810184848401111561276a57600080fd5b612775848285613320565b509392505050565b600061279061278b84613103565b6130ad565b9050828152602081018484840111156127a857600080fd5b6127b3848285613320565b509392505050565b6000813590506127ca81613796565b92915050565b6000813590506127df816137ad565b92915050565b6000813590506127f4816137c4565b92915050565b600081519050612809816137c4565b92915050565b600082601f83011261282057600080fd5b813561283084826020860161273f565b91505092915050565b600082601f83011261284a57600080fd5b813561285a84826020860161277d565b91505092915050565b600081359050612872816137db565b92915050565b60006020828403121561288a57600080fd5b6000612898848285016127bb565b91505092915050565b600080604083850312156128b457600080fd5b60006128c2858286016127bb565b92505060206128d3858286016127bb565b9150509250929050565b6000806000606084860312156128f257600080fd5b6000612900868287016127bb565b9350506020612911868287016127bb565b925050604061292286828701612863565b9150509250925092565b6000806000806080858703121561294257600080fd5b6000612950878288016127bb565b9450506020612961878288016127bb565b935050604061297287828801612863565b925050606085013567ffffffffffffffff81111561298f57600080fd5b61299b8782880161280f565b91505092959194509250565b600080604083850312156129ba57600080fd5b60006129c8858286016127bb565b92505060206129d9858286016127d0565b9150509250929050565b600080604083850312156129f657600080fd5b6000612a04858286016127bb565b9250506020612a1585828601612863565b9150509250929050565b600060208284031215612a3157600080fd5b6000612a3f848285016127d0565b91505092915050565b600060208284031215612a5a57600080fd5b6000612a68848285016127e5565b91505092915050565b600060208284031215612a8357600080fd5b6000612a91848285016127fa565b91505092915050565b600060208284031215612aac57600080fd5b600082013567ffffffffffffffff811115612ac657600080fd5b612ad284828501612839565b91505092915050565b600060208284031215612aed57600080fd5b6000612afb84828501612863565b91505092915050565b612b0d816132ac565b82525050565b612b1c816132be565b82525050565b6000612b2d82613149565b612b37818561315f565b9350612b4781856020860161332f565b612b50816134fb565b840191505092915050565b6000612b6682613154565b612b70818561317b565b9350612b8081856020860161332f565b612b89816134fb565b840191505092915050565b6000612b9f82613154565b612ba9818561318c565b9350612bb981856020860161332f565b80840191505092915050565b60008154612bd281613362565b612bdc818661318c565b94506001821660008114612bf75760018114612c0857612c3b565b60ff19831686528186019350612c3b565b612c1185613134565b60005b83811015612c3357815481890152600182019150602081019050612c14565b838801955050505b50505092915050565b6000612c51600c8361318c565b9150612c5c8261350c565b600c82019050919050565b6000612c7460078361317b565b9150612c7f82613535565b602082019050919050565b6000612c9760268361317b565b9150612ca28261355e565b604082019050919050565b6000612cba603a8361317b565b9150612cc5826135ad565b604082019050919050565b6000612cdd601d8361317b565b9150612ce8826135fc565b602082019050919050565b6000612d0060058361318c565b9150612d0b82613625565b600582019050919050565b6000612d2360208361317b565b9150612d2e8261364e565b602082019050919050565b6000612d4660188361317b565b9150612d5182613677565b602082019050919050565b6000612d69602f8361317b565b9150612d74826136a0565b604082019050919050565b6000612d8c601d8361317b565b9150612d97826136ef565b602082019050919050565b6000612daf600083613170565b9150612dba82613718565b600082019050919050565b6000612dd260138361317b565b9150612ddd8261371b565b602082019050919050565b6000612df5601f8361317b565b9150612e0082613744565b602082019050919050565b6000612e1860018361318c565b9150612e238261376d565b600182019050919050565b612e3781613316565b82525050565b6000612e498284612bc5565b9150612e5482612c44565b915081905092915050565b6000612e6b8285612bc5565b9150612e7682612e0b565b9150612e828284612b94565b9150612e8d82612cf3565b91508190509392505050565b6000612ea482612da2565b9150819050919050565b6000602082019050612ec36000830184612b04565b92915050565b6000608082019050612ede6000830187612b04565b612eeb6020830186612b04565b612ef86040830185612e2e565b8181036060830152612f0a8184612b22565b905095945050505050565b6000602082019050612f2a6000830184612b13565b92915050565b60006020820190508181036000830152612f4a8184612b5b565b905092915050565b60006020820190508181036000830152612f6b81612c67565b9050919050565b60006020820190508181036000830152612f8b81612c8a565b9050919050565b60006020820190508181036000830152612fab81612cad565b9050919050565b60006020820190508181036000830152612fcb81612cd0565b9050919050565b60006020820190508181036000830152612feb81612d16565b9050919050565b6000602082019050818103600083015261300b81612d39565b9050919050565b6000602082019050818103600083015261302b81612d5c565b9050919050565b6000602082019050818103600083015261304b81612d7f565b9050919050565b6000602082019050818103600083015261306b81612dc5565b9050919050565b6000602082019050818103600083015261308b81612de8565b9050919050565b60006020820190506130a76000830184612e2e565b92915050565b60006130b76130c8565b90506130c38282613394565b919050565b6000604051905090565b600067ffffffffffffffff8211156130ed576130ec6134cc565b5b6130f6826134fb565b9050602081019050919050565b600067ffffffffffffffff82111561311e5761311d6134cc565b5b613127826134fb565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006131a282613316565b91506131ad83613316565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131e2576131e161343f565b5b828201905092915050565b60006131f882613316565b915061320383613316565b9250826132135761321261346e565b5b828204905092915050565b600061322982613316565b915061323483613316565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561326d5761326c61343f565b5b828202905092915050565b600061328382613316565b915061328e83613316565b9250828210156132a1576132a061343f565b5b828203905092915050565b60006132b7826132f6565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561334d578082015181840152602081019050613332565b8381111561335c576000848401525b50505050565b6000600282049050600182168061337a57607f821691505b6020821081141561338e5761338d61349d565b5b50919050565b61339d826134fb565b810181811067ffffffffffffffff821117156133bc576133bb6134cc565b5b80604052505050565b60006133d082613316565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134035761340261343f565b5b600182019050919050565b600061341982613316565b915061342483613316565b9250826134345761343361346e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f2f68696464656e2e6a736f6e0000000000000000000000000000000000000000600082015250565b7f4e6f206d6f726500000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d696e74696e67206973206e6f74206c697665207965742e0000000000000000600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f506c656173652073656e642074686520657861637420616d6f756e742e000000600082015250565b50565b7f4d61782070657220545820726561636865642e00000000000000000000000000600082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f2f00000000000000000000000000000000000000000000000000000000000000600082015250565b61379f816132ac565b81146137aa57600080fd5b50565b6137b6816132be565b81146137c157600080fd5b50565b6137cd816132ca565b81146137d857600080fd5b50565b6137e481613316565b81146137ef57600080fd5b5056fea2646970667358221220dfa280830d109d9b8f92be551198f4e1dc3b9f23c2142f411d199f2ccbee329c64736f6c6343000804003368747470733a2f2f6261667962656964616e70756d7170766d70676d776169686165766b617662356178376135666f6c66746d6e7064617a767873777a35327674726d2e697066732e6e667473746f726167652e6c696e6b2f6d657461646174612d746966662d6d617963