60806040526611c37937e08000600b556002600c55600a600d55610d05600e553480156200002c57600080fd5b506040518060400160405280600d81526020017f476f6f64204769726166666573000000000000000000000000000000000000008152506040518060400160405280600281526020017f47470000000000000000000000000000000000000000000000000000000000008152508160029080519060200190620000b1929190620001e4565b508060039080519060200190620000ca929190620001e4565b50620000db6200011160201b60201c565b600081905550505062000103620000f76200011660201b60201c565b6200011e60201b60201c565b6001600981905550620002f8565b600090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001f290620002c3565b90600052602060002090601f01602090048101928262000216576000855562000262565b82601f106200023157805160ff191683800117855562000262565b8280016001018555821562000262579182015b828111156200026157825182559160200191906001019062000244565b5b50905062000271919062000275565b5090565b5b808211156200029057600081600090555060010162000276565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002dc57607f821691505b602082108103620002f257620002f162000294565b5b50919050565b61405d80620003086000396000f3fe60806040526004361061020f5760003560e01c80636992d22911610118578063a22cb465116100a0578063d2cab0561161006f578063d2cab05614610746578063e834a83414610762578063e985e9c51461078d578063f030c526146107ca578063f2fde38b146107f55761020f565b8063a22cb4651461067a578063b88d4fde146106a3578063b8a20ed0146106cc578063c87b56dd146107095761020f565b8063715018a6116100e7578063715018a6146105c85780637cb64759146105df5780638da5cb5b1461060857806395d89b4114610633578063a0712d681461065e5761020f565b80636992d2291461050a5780636c0360eb146105355780636eb7c7a61461056057806370a082311461058b5761020f565b80632eb4a7ab1161019b57806342842e0e1161016a57806342842e0e14610425578063453c23101461044e57806353ac010a1461047957806355f804b3146104a45780636352211e146104cd5761020f565b80632eb4a7ab1461038f5780633ccfd60b146103ba5780633ec4de35146103d15780633fe5f0541461040e5761020f565b8063095ea7b3116101e2578063095ea7b3146102d057806318160ddd146102f95780631bb59fcb1461032457806323b872dd1461033b57806325ee97e3146103645761020f565b806301401cb31461021457806301ffc9a71461022b57806306fdde0314610268578063081812fc14610293575b600080fd5b34801561022057600080fd5b5061022961081e565b005b34801561023757600080fd5b50610252600480360381019061024d9190612b47565b6108c6565b60405161025f9190612b8f565b60405180910390f35b34801561027457600080fd5b5061027d610958565b60405161028a9190612c43565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190612c9b565b6109ea565b6040516102c79190612d09565b60405180910390f35b3480156102dc57600080fd5b506102f760048036038101906102f29190612d50565b610a66565b005b34801561030557600080fd5b5061030e610ba7565b60405161031b9190612d9f565b60405180910390f35b34801561033057600080fd5b50610339610bbe565b005b34801561034757600080fd5b50610362600480360381019061035d9190612dba565b610c66565b005b34801561037057600080fd5b50610379610f88565b6040516103869190612d9f565b60405180910390f35b34801561039b57600080fd5b506103a4610f8e565b6040516103b19190612e26565b60405180910390f35b3480156103c657600080fd5b506103cf610f94565b005b3480156103dd57600080fd5b506103f860048036038101906103f39190612e41565b6110bf565b6040516104059190612d9f565b60405180910390f35b34801561041a57600080fd5b506104236110d7565b005b34801561043157600080fd5b5061044c60048036038101906104479190612dba565b6111cb565b005b34801561045a57600080fd5b506104636111eb565b6040516104709190612d9f565b60405180910390f35b34801561048557600080fd5b5061048e6111f1565b60405161049b9190612b8f565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612ed3565b611204565b005b3480156104d957600080fd5b506104f460048036038101906104ef9190612c9b565b611296565b6040516105019190612d09565b60405180910390f35b34801561051657600080fd5b5061051f6112a8565b60405161052c9190612b8f565b60405180910390f35b34801561054157600080fd5b5061054a6112bb565b6040516105579190612c43565b60405180910390f35b34801561056c57600080fd5b50610575611349565b6040516105829190612d9f565b60405180910390f35b34801561059757600080fd5b506105b260048036038101906105ad9190612e41565b61134f565b6040516105bf9190612d9f565b60405180910390f35b3480156105d457600080fd5b506105dd611407565b005b3480156105eb57600080fd5b5061060660048036038101906106019190612f4c565b61148f565b005b34801561061457600080fd5b5061061d611515565b60405161062a9190612d09565b60405180910390f35b34801561063f57600080fd5b5061064861153f565b6040516106559190612c43565b60405180910390f35b61067860048036038101906106739190612c9b565b6115d1565b005b34801561068657600080fd5b506106a1600480360381019061069c9190612fa5565b6118f8565b005b3480156106af57600080fd5b506106ca60048036038101906106c59190613115565b611a6f565b005b3480156106d857600080fd5b506106f360048036038101906106ee919061325b565b611ae2565b6040516107009190612b8f565b60405180910390f35b34801561071557600080fd5b50610730600480360381019061072b9190612c9b565b611af9565b60405161073d9190612c43565b60405180910390f35b610760600480360381019061075b91906132b7565b611ba7565b005b34801561076e57600080fd5b50610777611f3e565b6040516107849190612b8f565b60405180910390f35b34801561079957600080fd5b506107b460048036038101906107af9190613313565b611f51565b6040516107c19190612b8f565b60405180910390f35b3480156107d657600080fd5b506107df611fe5565b6040516107ec9190612d9f565b60405180910390f35b34801561080157600080fd5b5061081c60048036038101906108179190612e41565b611feb565b005b6108266120e2565b73ffffffffffffffffffffffffffffffffffffffff16610844611515565b73ffffffffffffffffffffffffffffffffffffffff161461089a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108919061339f565b60405180910390fd5b600f60019054906101000a900460ff1615600f60016101000a81548160ff021916908315150217905550565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061092157506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109515750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610967906133ee565b80601f0160208091040260200160405190810160405280929190818152602001828054610993906133ee565b80156109e05780601f106109b5576101008083540402835291602001916109e0565b820191906000526020600020905b8154815290600101906020018083116109c357829003601f168201915b5050505050905090565b60006109f5826120ea565b610a2b576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a7182611296565b90508073ffffffffffffffffffffffffffffffffffffffff16610a92612149565b73ffffffffffffffffffffffffffffffffffffffff1614610af557610abe81610ab9612149565b611f51565b610af4576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000610bb1612151565b6001546000540303905090565b610bc66120e2565b73ffffffffffffffffffffffffffffffffffffffff16610be4611515565b73ffffffffffffffffffffffffffffffffffffffff1614610c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c319061339f565b60405180910390fd5b600f60029054906101000a900460ff1615600f60026101000a81548160ff021916908315150217905550565b6000610c7182612156565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cd8576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610ce484612222565b91509150610cfa8187610cf5612149565b612244565b610d4657610d0f86610d0a612149565b611f51565b610d45576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610dac576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610db98686866001612288565b8015610dc457600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610e9285610e6e88888761228e565b7c0200000000000000000000000000000000000000000000000000000000176122b6565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610f185760006001850190506000600460008381526020019081526020016000205403610f16576000548114610f15578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f8086868660016122e1565b505050505050565b600c5481565b60105481565b610f9c6120e2565b73ffffffffffffffffffffffffffffffffffffffff16610fba611515565b73ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110079061339f565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff164760405161103690613450565b60006040518083038185875af1925050503d8060008114611073576040519150601f19603f3d011682016040523d82523d6000602084013e611078565b606091505b50509050806110bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b3906134b1565b60405180910390fd5b50565b60116020528060005260406000206000915090505481565b6110df6120e2565b73ffffffffffffffffffffffffffffffffffffffff166110fd611515565b73ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a9061339f565b60405180910390fd5b600f60009054906101000a900460ff16156111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a9061351d565b60405180910390fd5b6111ae3360216122e7565b6001600f60006101000a81548160ff021916908315150217905550565b6111e683838360405180602001604052806000815250611a6f565b505050565b600d5481565b600f60019054906101000a900460ff1681565b61120c6120e2565b73ffffffffffffffffffffffffffffffffffffffff1661122a611515565b73ffffffffffffffffffffffffffffffffffffffff1614611280576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112779061339f565b60405180910390fd5b8181600a9190611291929190612a38565b505050565b60006112a182612156565b9050919050565b600f60029054906101000a900460ff1681565b600a80546112c8906133ee565b80601f01602080910402602001604051908101604052809291908181526020018280546112f4906133ee565b80156113415780601f1061131657610100808354040283529160200191611341565b820191906000526020600020905b81548152906001019060200180831161132457829003601f168201915b505050505081565b600b5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b6576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61140f6120e2565b73ffffffffffffffffffffffffffffffffffffffff1661142d611515565b73ffffffffffffffffffffffffffffffffffffffff1614611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a9061339f565b60405180910390fd5b61148d6000612305565b565b6114976120e2565b73ffffffffffffffffffffffffffffffffffffffff166114b5611515565b73ffffffffffffffffffffffffffffffffffffffff161461150b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115029061339f565b60405180910390fd5b8060108190555050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606003805461154e906133ee565b80601f016020809104026020016040519081016040528092919081815260200182805461157a906133ee565b80156115c75780601f1061159c576101008083540402835291602001916115c7565b820191906000526020600020905b8154815290600101906020018083116115aa57829003601f168201915b5050505050905090565b600260095403611616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160d90613589565b60405180910390fd5b60026009819055503373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461168c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611683906135f5565b60405180910390fd5b600f60019054906101000a900460ff166116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613687565b60405180910390fd5b600181101561171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690613719565b60405180910390fd5b600e548161172b610ba7565b6117359190613768565b1115611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90613830565b60405180910390fd5b80600b546117849190613850565b3410156117c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bd906138f6565b60405180910390fd5b600d5481601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118149190613768565b1115611855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184c90613988565b60405180910390fd5b80601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118a09190613768565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118ed33826122e7565b600160098190555050565b611900612149565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611964576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611971612149565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a1e612149565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a639190612b8f565b60405180910390a35050565b611a7a848484610c66565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611adc57611aa5848484846123cb565b611adb576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6000611af1836010548461251b565b905092915050565b6060611b04826120ea565b611b43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3a90613a1a565b60405180910390fd5b6000600a8054611b52906133ee565b905011611b6e5760405180602001604052806000815250611ba0565b611b76612532565b611b7f836125c4565b604051602001611b90929190613ac2565b6040516020818303038152906040525b9050919050565b600260095403611bec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be390613589565b60405180910390fd5b60026009819055503373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c59906135f5565b60405180910390fd5b600f60019054906101000a900460ff1615611cb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca990613b63565b60405180910390fd5b600f60029054906101000a900460ff16611d01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf890613bf5565b60405180910390fd5b6001821015611d45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3c90613719565b60405180910390fd5b600e5482611d51610ba7565b611d5b9190613768565b1115611d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9390613830565b60405180910390fd5b600c5482601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dea9190613768565b1115611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2290613c87565b60405180910390fd5b611e5b8133604051602001611e409190613cef565b60405160208183030381529060405280519060200120611ae2565b611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9190613d56565b60405180910390fd5b81601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee59190613768565b601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f3233836122e7565b60016009819055505050565b600f60009054906101000a900460ff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600e5481565b611ff36120e2565b73ffffffffffffffffffffffffffffffffffffffff16612011611515565b73ffffffffffffffffffffffffffffffffffffffff1614612067576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205e9061339f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036120d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120cd90613de8565b60405180910390fd5b6120df81612305565b50565b600033905090565b6000816120f5612151565b11158015612104575060005482105b8015612142575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600090565b60008082905080612165612151565b116121eb576000548110156121ea5760006004600083815260200190815260200160002054905060007c01000000000000000000000000000000000000000000000000000000008216036121e8575b600081036121de5760046000836001900393508381526020019081526020016000205490506121b4565b809250505061221d565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600690508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86122a5868684612724565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61230182826040518060200160405280600081525061272d565b5050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a026123f1612149565b8786866040518563ffffffff1660e01b81526004016124139493929190613e5d565b6020604051808303816000875af192505050801561244f57506040513d601f19601f8201168201806040525081019061244c9190613ebe565b60015b6124c8573d806000811461247f576040519150601f19603f3d011682016040523d82523d6000602084013e612484565b606091505b5060008151036124c0576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60008261252885846127ca565b1490509392505050565b6060600a8054612541906133ee565b80601f016020809104026020016040519081016040528092919081815260200182805461256d906133ee565b80156125ba5780601f1061258f576101008083540402835291602001916125ba565b820191906000526020600020905b81548152906001019060200180831161259d57829003601f168201915b5050505050905090565b60606000820361260b576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061271f565b600082905060005b6000821461263d57808061262690613eeb565b915050600a826126369190613f62565b9150612613565b60008167ffffffffffffffff81111561265957612658612fea565b5b6040519080825280601f01601f19166020018201604052801561268b5781602001600182028036833780820191505090505b5090505b60008514612718576001826126a49190613f93565b9150600a856126b39190613fc7565b60306126bf9190613768565b60f81b8183815181106126d5576126d4613ff8565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856127119190613f62565b945061268f565b8093505050505b919050565b60009392505050565b612737838361283f565b60008373ffffffffffffffffffffffffffffffffffffffff163b146127c557600080549050600083820390505b61277760008683806001019450866123cb565b6127ad576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106127645781600054146127c257600080fd5b50505b505050565b60008082905060005b84518110156128345760008582815181106127f1576127f0613ff8565b5b602002602001015190508083116128135761280c8382612a11565b9250612820565b61281d8184612a11565b92505b50808061282c90613eeb565b9150506127d3565b508091505092915050565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036128ab576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600082036128e5576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6128f26000848385612288565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506129698361295a600086600061228e565b61296385612a28565b176122b6565b60046000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a480821061298d57806000819055505050612a0c60008483856122e1565b505050565b600082600052816020526040600020905092915050565b60006001821460e11b9050919050565b828054612a44906133ee565b90600052602060002090601f016020900481019282612a665760008555612aad565b82601f10612a7f57803560ff1916838001178555612aad565b82800160010185558215612aad579182015b82811115612aac578235825591602001919060010190612a91565b5b509050612aba9190612abe565b5090565b5b80821115612ad7576000816000905550600101612abf565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612b2481612aef565b8114612b2f57600080fd5b50565b600081359050612b4181612b1b565b92915050565b600060208284031215612b5d57612b5c612ae5565b5b6000612b6b84828501612b32565b91505092915050565b60008115159050919050565b612b8981612b74565b82525050565b6000602082019050612ba46000830184612b80565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612be4578082015181840152602081019050612bc9565b83811115612bf3576000848401525b50505050565b6000601f19601f8301169050919050565b6000612c1582612baa565b612c1f8185612bb5565b9350612c2f818560208601612bc6565b612c3881612bf9565b840191505092915050565b60006020820190508181036000830152612c5d8184612c0a565b905092915050565b6000819050919050565b612c7881612c65565b8114612c8357600080fd5b50565b600081359050612c9581612c6f565b92915050565b600060208284031215612cb157612cb0612ae5565b5b6000612cbf84828501612c86565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cf382612cc8565b9050919050565b612d0381612ce8565b82525050565b6000602082019050612d1e6000830184612cfa565b92915050565b612d2d81612ce8565b8114612d3857600080fd5b50565b600081359050612d4a81612d24565b92915050565b60008060408385031215612d6757612d66612ae5565b5b6000612d7585828601612d3b565b9250506020612d8685828601612c86565b9150509250929050565b612d9981612c65565b82525050565b6000602082019050612db46000830184612d90565b92915050565b600080600060608486031215612dd357612dd2612ae5565b5b6000612de186828701612d3b565b9350506020612df286828701612d3b565b9250506040612e0386828701612c86565b9150509250925092565b6000819050919050565b612e2081612e0d565b82525050565b6000602082019050612e3b6000830184612e17565b92915050565b600060208284031215612e5757612e56612ae5565b5b6000612e6584828501612d3b565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612e9357612e92612e6e565b5b8235905067ffffffffffffffff811115612eb057612eaf612e73565b5b602083019150836001820283011115612ecc57612ecb612e78565b5b9250929050565b60008060208385031215612eea57612ee9612ae5565b5b600083013567ffffffffffffffff811115612f0857612f07612aea565b5b612f1485828601612e7d565b92509250509250929050565b612f2981612e0d565b8114612f3457600080fd5b50565b600081359050612f4681612f20565b92915050565b600060208284031215612f6257612f61612ae5565b5b6000612f7084828501612f37565b91505092915050565b612f8281612b74565b8114612f8d57600080fd5b50565b600081359050612f9f81612f79565b92915050565b60008060408385031215612fbc57612fbb612ae5565b5b6000612fca85828601612d3b565b9250506020612fdb85828601612f90565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61302282612bf9565b810181811067ffffffffffffffff8211171561304157613040612fea565b5b80604052505050565b6000613054612adb565b90506130608282613019565b919050565b600067ffffffffffffffff8211156130805761307f612fea565b5b61308982612bf9565b9050602081019050919050565b82818337600083830152505050565b60006130b86130b384613065565b61304a565b9050828152602081018484840111156130d4576130d3612fe5565b5b6130df848285613096565b509392505050565b600082601f8301126130fc576130fb612e6e565b5b813561310c8482602086016130a5565b91505092915050565b6000806000806080858703121561312f5761312e612ae5565b5b600061313d87828801612d3b565b945050602061314e87828801612d3b565b935050604061315f87828801612c86565b925050606085013567ffffffffffffffff8111156131805761317f612aea565b5b61318c878288016130e7565b91505092959194509250565b600067ffffffffffffffff8211156131b3576131b2612fea565b5b602082029050602081019050919050565b60006131d76131d284613198565b61304a565b905080838252602082019050602084028301858111156131fa576131f9612e78565b5b835b81811015613223578061320f8882612f37565b8452602084019350506020810190506131fc565b5050509392505050565b600082601f83011261324257613241612e6e565b5b81356132528482602086016131c4565b91505092915050565b6000806040838503121561327257613271612ae5565b5b600083013567ffffffffffffffff8111156132905761328f612aea565b5b61329c8582860161322d565b92505060206132ad85828601612f37565b9150509250929050565b600080604083850312156132ce576132cd612ae5565b5b60006132dc85828601612c86565b925050602083013567ffffffffffffffff8111156132fd576132fc612aea565b5b6133098582860161322d565b9150509250929050565b6000806040838503121561332a57613329612ae5565b5b600061333885828601612d3b565b925050602061334985828601612d3b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613389602083612bb5565b915061339482613353565b602082019050919050565b600060208201905081810360008301526133b88161337c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061340657607f821691505b602082108103613419576134186133bf565b5b50919050565b600081905092915050565b50565b600061343a60008361341f565b91506134458261342a565b600082019050919050565b600061345b8261342d565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b600061349b601083612bb5565b91506134a682613465565b602082019050919050565b600060208201905081810360008301526134ca8161348e565b9050919050565b7f7265736572766520616c726561647920636c61696d6564000000000000000000600082015250565b6000613507601783612bb5565b9150613512826134d1565b602082019050919050565b60006020820190508181036000830152613536816134fa565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000613573601f83612bb5565b915061357e8261353d565b602082019050919050565b600060208201905081810360008301526135a281613566565b9050919050565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b60006135df601e83612bb5565b91506135ea826135a9565b602082019050919050565b6000602082019050818103600083015261360e816135d2565b9050919050565b7f474f4f44204749524146464553205055424c4943204d494e54204e4f5420414360008201527f5449564500000000000000000000000000000000000000000000000000000000602082015250565b6000613671602483612bb5565b915061367c82613615565b604082019050919050565b600060208201905081810360008301526136a081613664565b9050919050565b7f4154204c45415354203120474f4f442047495241464645204e4545445320544f60008201527f204245204d494e54454400000000000000000000000000000000000000000000602082015250565b6000613703602a83612bb5565b915061370e826136a7565b604082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061377382612c65565b915061377e83612c65565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156137b3576137b2613739565b5b828201905092915050565b7f4d494e54494e472054484953204d414e5920574f554c4420455843454544204760008201527f4f4f4420474952414646455320535550504c5900000000000000000000000000602082015250565b600061381a603383612bb5565b9150613825826137be565b604082019050919050565b600060208201905081810360008301526138498161380d565b9050919050565b600061385b82612c65565b915061386683612c65565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561389f5761389e613739565b5b828202905092915050565b7f4e4f5420454e4f554748204554482053454e5400000000000000000000000000600082015250565b60006138e0601383612bb5565b91506138eb826138aa565b602082019050919050565b6000602082019050818103600083015261390f816138d3565b9050919050565b7f4d415820474f4f44204749524146464553204d494e54454420544f2057414c4c60008201527f4554204953203130000000000000000000000000000000000000000000000000602082015250565b6000613972602883612bb5565b915061397d82613916565b604082019050919050565b600060208201905081810360008301526139a181613965565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000613a04602f83612bb5565b9150613a0f826139a8565b604082019050919050565b60006020820190508181036000830152613a33816139f7565b9050919050565b600081905092915050565b6000613a5082612baa565b613a5a8185613a3a565b9350613a6a818560208601612bc6565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000613aac600583613a3a565b9150613ab782613a76565b600582019050919050565b6000613ace8285613a45565b9150613ada8284613a45565b9150613ae582613a9f565b91508190509392505050565b7f474f4f44204749524146464553205055424c4943204d494e542049532041435460008201527f4956450000000000000000000000000000000000000000000000000000000000602082015250565b6000613b4d602383612bb5565b9150613b5882613af1565b604082019050919050565b60006020820190508181036000830152613b7c81613b40565b9050919050565b7f474f4f442047495241464645532057484954454c495354204d494e54204e4f5460008201527f2041435449564500000000000000000000000000000000000000000000000000602082015250565b6000613bdf602783612bb5565b9150613bea82613b83565b604082019050919050565b60006020820190508181036000830152613c0e81613bd2565b9050919050565b7f4d415820474f4f44204749524146464553204d494e54454420544f2057414c4c60008201527f4554204953203200000000000000000000000000000000000000000000000000602082015250565b6000613c71602783612bb5565b9150613c7c82613c15565b604082019050919050565b60006020820190508181036000830152613ca081613c64565b9050919050565b60008160601b9050919050565b6000613cbf82613ca7565b9050919050565b6000613cd182613cb4565b9050919050565b613ce9613ce482612ce8565b613cc6565b82525050565b6000613cfb8284613cd8565b60148201915081905092915050565b7f4e4f54204f4e20474f4f4420474952414646455320414c4c4f574c4953540000600082015250565b6000613d40601e83612bb5565b9150613d4b82613d0a565b602082019050919050565b60006020820190508181036000830152613d6f81613d33565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613dd2602683612bb5565b9150613ddd82613d76565b604082019050919050565b60006020820190508181036000830152613e0181613dc5565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613e2f82613e08565b613e398185613e13565b9350613e49818560208601612bc6565b613e5281612bf9565b840191505092915050565b6000608082019050613e726000830187612cfa565b613e7f6020830186612cfa565b613e8c6040830185612d90565b8181036060830152613e9e8184613e24565b905095945050505050565b600081519050613eb881612b1b565b92915050565b600060208284031215613ed457613ed3612ae5565b5b6000613ee284828501613ea9565b91505092915050565b6000613ef682612c65565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613f2857613f27613739565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f6d82612c65565b9150613f7883612c65565b925082613f8857613f87613f33565b5b828204905092915050565b6000613f9e82612c65565b9150613fa983612c65565b925082821015613fbc57613fbb613739565b5b828203905092915050565b6000613fd282612c65565b9150613fdd83612c65565b925082613fed57613fec613f33565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea26469706673582212206c409418bcc300ef3e37f4e83e10d6748acbfa227e3f0094b720a13d10f7109164736f6c634300080d0033