60806040526000600660006101000a81548160ff021916908315150217905550600f600755604660085560006009556000600a556045600b556101a4600c55601e600d556000600e556008600a6200005891906200062e565b6301312d006200006991906200067f565b600f556008600a6200007c91906200062e565b6301c9c3806200008d91906200067f565b6010556008600a620000a091906200062e565b625b8d80620000b091906200067f565b6011556008600a620000c391906200062e565b625b8d80620000d391906200067f565b6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200011957600080fd5b5060006200012c6200046360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001da6200046360201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200022a91906200062e565b633b9aca006200023b91906200067f565b600160006200024f6200046360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002a36200046b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003d66200046360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a6200043591906200062e565b633b9aca006200044691906200067f565b604051620004559190620006db565b60405180910390a3620006f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200052257808604811115620004fa57620004f962000494565b5b60018516156200050a5780820291505b80810290506200051a85620004c3565b9450620004da565b94509492505050565b6000826200053d576001905062000610565b816200054d576000905062000610565b81600181146200056657600281146200057157620005a7565b600191505062000610565b60ff84111562000586576200058562000494565b5b8360020a915084821115620005a0576200059f62000494565b5b5062000610565b5060208310610133831016604e8410600b8410161715620005e15782820a905083811115620005db57620005da62000494565b5b62000610565b620005f08484846001620004d0565b925090508184048111156200060a576200060962000494565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200063b8262000617565b9150620006488362000621565b9250620006777fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200052b565b905092915050565b60006200068c8262000617565b9150620006998362000617565b9250828202620006a98162000617565b91508282048414831517620006c357620006c262000494565b5b5092915050565b620006d58162000617565b82525050565b6000602082019050620006f26000830184620006ca565b92915050565b61366a80620007086000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063bf474bed1161006f578063bf474bed1461047d578063c36956a0146104a8578063c876d0b9146104d3578063d34628cc146104fe578063dd62ed3e14610527578063f2359f921461056457610156565b8063751039fc1461037d5780637d1db4a5146103945780638da5cb5b146103bf5780638f9a55c0146103ea57806395d89b4114610415578063a9059cbb1461044057610156565b8063313ce56711610108578063313ce5671461028157806331c2d847146102ac5780633bbac579146102d557806351bc3c851461031257806370a0823114610329578063715018a61461036657610156565b806306fdde031461015b578063095ea7b3146101865780630c193045146101c35780630faee56f146101ee57806318160ddd1461021957806323b872dd1461024457610156565b3661015657005b600080fd5b34801561016757600080fd5b5061017061057b565b60405161017d9190612568565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612632565b61059b565b6040516101ba919061268d565b60405180910390f35b3480156101cf57600080fd5b506101d86105b9565b6040516101e591906126b7565b60405180910390f35b3480156101fa57600080fd5b506102036105bf565b60405161021091906126b7565b60405180910390f35b34801561022557600080fd5b5061022e6105c5565b60405161023b91906126b7565b60405180910390f35b34801561025057600080fd5b5061026b600480360381019061026691906126d2565b6105e9565b604051610278919061268d565b60405180910390f35b34801561028d57600080fd5b506102966106c2565b6040516102a39190612741565b60405180910390f35b3480156102b857600080fd5b506102d360048036038101906102ce91906128a4565b6106cb565b005b3480156102e157600080fd5b506102fc60048036038101906102f791906128ed565b6107f5565b604051610309919061268d565b60405180910390f35b34801561031e57600080fd5b5061032761084b565b005b34801561033557600080fd5b50610350600480360381019061034b91906128ed565b6108e8565b60405161035d91906126b7565b60405180910390f35b34801561037257600080fd5b5061037b610931565b005b34801561038957600080fd5b50610392610a84565b005b3480156103a057600080fd5b506103a9610bdf565b6040516103b691906126b7565b60405180910390f35b3480156103cb57600080fd5b506103d4610be5565b6040516103e19190612929565b60405180910390f35b3480156103f657600080fd5b506103ff610c0e565b60405161040c91906126b7565b60405180910390f35b34801561042157600080fd5b5061042a610c14565b6040516104379190612568565b60405180910390f35b34801561044c57600080fd5b5061046760048036038101906104629190612632565b610c51565b604051610474919061268d565b60405180910390f35b34801561048957600080fd5b50610492610c6f565b60405161049f91906126b7565b60405180910390f35b3480156104b457600080fd5b506104bd610c75565b6040516104ca91906126b7565b60405180910390f35b3480156104df57600080fd5b506104e8610c7b565b6040516104f5919061268d565b60405180910390f35b34801561050a57600080fd5b50610525600480360381019061052091906128a4565b610c8e565b005b34801561053357600080fd5b5061054e60048036038101906105499190612944565b610db8565b60405161055b91906126b7565b60405180910390f35b34801561057057600080fd5b50610579610e3f565b005b60606040518060600160405280602d81526020016135e0602d9139905090565b60006105af6105a8611374565b848461137c565b6001905092915050565b600b5481565b60125481565b60006008600a6105d59190612ae6565b633b9aca006105e49190612b31565b905090565b60006105f6848484611545565b6106b784610602611374565b6106b28560405180606001604052806028815260200161360d60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610668611374565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8a9092919063ffffffff16565b61137c565b600190509392505050565b60006008905090565b6106d3611374565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610760576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161075790612bbf565b60405180910390fd5b60005b81518110156107f15760006004600084848151811061078557610784612bdf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107e990612c0e565b915050610763565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088c611374565b73ffffffffffffffffffffffffffffffffffffffff16146108ac57600080fd5b60006108b7306108e8565b905060008111156108cc576108cb81611fee565b5b600047905060008111156108e4576108e381612284565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610939611374565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd90612bbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a8c611374565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b19576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1090612bbf565b60405180910390fd5b6008600a610b279190612ae6565b633b9aca00610b369190612b31565b600f819055506008600a610b4a9190612ae6565b633b9aca00610b599190612b31565b6010819055506000600660006101000a81548160ff0219169083151502179055506004600c819055506004600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610bb99190612ae6565b633b9aca00610bc89190612b31565b604051610bd591906126b7565b60405180910390a1565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f4458590000000000000000000000000000000000000000000000000000000000815250905090565b6000610c65610c5e611374565b8484611545565b6001905092915050565b60115481565b600c5481565b600660009054906101000a900460ff1681565b610c96611374565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90612bbf565b60405180910390fd5b60005b8151811015610db457600160046000848481518110610d4857610d47612bdf565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dac90612c0e565b915050610d26565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e47611374565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecb90612bbf565b60405180910390fd5b60148054906101000a900460ff1615610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990612ca2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610fc030601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610fac9190612ae6565b633b9aca00610fbb9190612b31565b61137c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561102d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110519190612cd7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe9190612cd7565b6040518363ffffffff1660e01b815260040161111b929190612d04565b6020604051808303816000875af115801561113a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115e9190612cd7565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306111e7306108e8565b6000806111f2610be5565b426040518863ffffffff1660e01b815260040161121496959493929190612d72565b60606040518083038185885af1158015611232573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906112579190612de8565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016112f9929190612e3b565b6020604051808303816000875af1158015611318573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133c9190612e90565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e290612f2f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361145a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145190612fc1565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161153891906126b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ab90613053565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161a906130e5565b60405180910390fd5b60008111611666576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165d90613177565b60405180910390fd5b6000611670610be5565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116de57506116ae610be5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ccd57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61179057600080fd5b600660009054906101000a900460ff161561191d57601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118515750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561191c5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106118d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ce90613209565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119c85750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a1e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ad957600f54821115611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613275565b60405180910390fd5b60105482611a75856108e8565b611a7f9190613295565b1115611ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab790613315565b60405180910390fd5b600e6000815480929190611ad390612c0e565b91905055505b611b156064611b07600b54600e5411611af457600754611af8565b6009545b856122f090919063ffffffff16565b61236a90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ba057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611be457611be16064611bd3600c54600e5411611bc057600854611bc4565b600a545b856122f090919063ffffffff16565b61236a90919063ffffffff16565b90505b6000611bef306108e8565b9050601460159054906101000a900460ff16158015611c5b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611c735750601460169054906101000a900460ff165b8015611c80575060115481115b8015611c8f5750600d54600e54115b15611ccb57611cb1611cac84611ca7846012546123b4565b6123b4565b611fee565b60004790506000811115611cc957611cc847612284565b5b505b505b6000811115611dd157611d2881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123cd90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611dc891906126b7565b60405180910390a35b611e2382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461242b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611eca611e7c828461242b90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123cd90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611f6f848661242b90919063ffffffff16565b604051611f7c91906126b7565b60405180910390a350505050565b6000838311158290611fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc99190612568565b60405180910390fd5b5060008385611fe19190613335565b9050809150509392505050565b6001601460156101000a81548160ff02191690831515021790555060008103156122665760148054906101000a900460ff1615612266576000600267ffffffffffffffff81111561204257612041612761565b5b6040519080825280602002602001820160405280156120705781602001602082028036833780820191505090505b509050308160008151811061208857612087612bdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561212f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121539190612cd7565b8160018151811061216757612166612bdf565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ce30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461137c565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612232959493929190613427565b600060405180830381600087803b15801561224c57600080fd5b505af1158015612260573d6000803e3d6000fd5b50505050505b6000601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156122ec573d6000803e3d6000fd5b5050565b60008083036123025760009050612364565b600082846123109190612b31565b905082848261231f91906134b0565b1461235f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235690613553565b60405180910390fd5b809150505b92915050565b60006123ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612475565b905092915050565b60008183116123c357826123c5565b815b905092915050565b60008082846123dc9190613295565b905083811015612421576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612418906135bf565b60405180910390fd5b8091505092915050565b600061246d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f8a565b905092915050565b600080831182906124bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b39190612568565b60405180910390fd5b50600083856124cb91906134b0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156125125780820151818401526020810190506124f7565b60008484015250505050565b6000601f19601f8301169050919050565b600061253a826124d8565b61254481856124e3565b93506125548185602086016124f4565b61255d8161251e565b840191505092915050565b60006020820190508181036000830152612582818461252f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125c98261259e565b9050919050565b6125d9816125be565b81146125e457600080fd5b50565b6000813590506125f6816125d0565b92915050565b6000819050919050565b61260f816125fc565b811461261a57600080fd5b50565b60008135905061262c81612606565b92915050565b6000806040838503121561264957612648612594565b5b6000612657858286016125e7565b92505060206126688582860161261d565b9150509250929050565b60008115159050919050565b61268781612672565b82525050565b60006020820190506126a2600083018461267e565b92915050565b6126b1816125fc565b82525050565b60006020820190506126cc60008301846126a8565b92915050565b6000806000606084860312156126eb576126ea612594565b5b60006126f9868287016125e7565b935050602061270a868287016125e7565b925050604061271b8682870161261d565b9150509250925092565b600060ff82169050919050565b61273b81612725565b82525050565b60006020820190506127566000830184612732565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127998261251e565b810181811067ffffffffffffffff821117156127b8576127b7612761565b5b80604052505050565b60006127cb61258a565b90506127d78282612790565b919050565b600067ffffffffffffffff8211156127f7576127f6612761565b5b602082029050602081019050919050565b600080fd5b600061282061281b846127dc565b6127c1565b9050808382526020820190506020840283018581111561284357612842612808565b5b835b8181101561286c578061285888826125e7565b845260208401935050602081019050612845565b5050509392505050565b600082601f83011261288b5761288a61275c565b5b813561289b84826020860161280d565b91505092915050565b6000602082840312156128ba576128b9612594565b5b600082013567ffffffffffffffff8111156128d8576128d7612599565b5b6128e484828501612876565b91505092915050565b60006020828403121561290357612902612594565b5b6000612911848285016125e7565b91505092915050565b612923816125be565b82525050565b600060208201905061293e600083018461291a565b92915050565b6000806040838503121561295b5761295a612594565b5b6000612969858286016125e7565b925050602061297a858286016125e7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612a0a578086048111156129e6576129e5612984565b5b60018516156129f55780820291505b8081029050612a03856129b3565b94506129ca565b94509492505050565b600082612a235760019050612adf565b81612a315760009050612adf565b8160018114612a475760028114612a5157612a80565b6001915050612adf565b60ff841115612a6357612a62612984565b5b8360020a915084821115612a7a57612a79612984565b5b50612adf565b5060208310610133831016604e8410600b8410161715612ab55782820a905083811115612ab057612aaf612984565b5b612adf565b612ac284848460016129c0565b92509050818404811115612ad957612ad8612984565b5b81810290505b9392505050565b6000612af1826125fc565b9150612afc83612725565b9250612b297fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a13565b905092915050565b6000612b3c826125fc565b9150612b47836125fc565b9250828202612b55816125fc565b91508282048414831517612b6c57612b6b612984565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ba96020836124e3565b9150612bb482612b73565b602082019050919050565b60006020820190508181036000830152612bd881612b9c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c19826125fc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c4b57612c4a612984565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612c8c6017836124e3565b9150612c9782612c56565b602082019050919050565b60006020820190508181036000830152612cbb81612c7f565b9050919050565b600081519050612cd1816125d0565b92915050565b600060208284031215612ced57612cec612594565b5b6000612cfb84828501612cc2565b91505092915050565b6000604082019050612d19600083018561291a565b612d26602083018461291a565b9392505050565b6000819050919050565b6000819050919050565b6000612d5c612d57612d5284612d2d565b612d37565b6125fc565b9050919050565b612d6c81612d41565b82525050565b600060c082019050612d87600083018961291a565b612d9460208301886126a8565b612da16040830187612d63565b612dae6060830186612d63565b612dbb608083018561291a565b612dc860a08301846126a8565b979650505050505050565b600081519050612de281612606565b92915050565b600080600060608486031215612e0157612e00612594565b5b6000612e0f86828701612dd3565b9350506020612e2086828701612dd3565b9250506040612e3186828701612dd3565b9150509250925092565b6000604082019050612e50600083018561291a565b612e5d60208301846126a8565b9392505050565b612e6d81612672565b8114612e7857600080fd5b50565b600081519050612e8a81612e64565b92915050565b600060208284031215612ea657612ea5612594565b5b6000612eb484828501612e7b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612f196024836124e3565b9150612f2482612ebd565b604082019050919050565b60006020820190508181036000830152612f4881612f0c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fab6022836124e3565b9150612fb682612f4f565b604082019050919050565b60006020820190508181036000830152612fda81612f9e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061303d6025836124e3565b915061304882612fe1565b604082019050919050565b6000602082019050818103600083015261306c81613030565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006130cf6023836124e3565b91506130da82613073565b604082019050919050565b600060208201905081810360008301526130fe816130c2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006131616029836124e3565b915061316c82613105565b604082019050919050565b6000602082019050818103600083015261319081613154565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006131f36024836124e3565b91506131fe82613197565b604082019050919050565b60006020820190508181036000830152613222816131e6565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b600061325f6019836124e3565b915061326a82613229565b602082019050919050565b6000602082019050818103600083015261328e81613252565b9050919050565b60006132a0826125fc565b91506132ab836125fc565b92508282019050808211156132c3576132c2612984565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006132ff601a836124e3565b915061330a826132c9565b602082019050919050565b6000602082019050818103600083015261332e816132f2565b9050919050565b6000613340826125fc565b915061334b836125fc565b925082820390508181111561336357613362612984565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61339e816125be565b82525050565b60006133b08383613395565b60208301905092915050565b6000602082019050919050565b60006133d482613369565b6133de8185613374565b93506133e983613385565b8060005b8381101561341a57815161340188826133a4565b975061340c836133bc565b9250506001810190506133ed565b5085935050505092915050565b600060a08201905061343c60008301886126a8565b6134496020830187612d63565b818103604083015261345b81866133c9565b905061346a606083018561291a565b61347760808301846126a8565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006134bb826125fc565b91506134c6836125fc565b9250826134d6576134d5613481565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061353d6021836124e3565b9150613548826134e1565b604082019050919050565b6000602082019050818103600083015261356c81613530565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006135a9601b836124e3565b91506135b482613573565b602082019050919050565b600060208201905081810360008301526135d88161359c565b905091905056fe4149204c617965722035204d6f64756c6172697a656420506172616c6c656c2044616e6b205368617264696e6745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d2b18815ff30f2735f2723cf0a9a2b92109c01e1f0981311853a3d779de043a264736f6c63430008130033