60c0604052601a60809081527f53746f72792050726f746f636f6c204c6963656e7365204e465400000000000060a0526004906200003e9082620001e9565b5060408051808201909152600681526514d41313919560d21b60208201526005906200006b9082620001e9565b503480156200007957600080fd5b5060405162003de638038062003de68339810160408190526200009c91620002b5565b6040805160208101909152600081528190620000b88162000130565b506001600160a01b038116620000e15760405163239261b360e11b815260040160405180910390fd5b600380546001600160a01b0319166001600160a01b0383169081179091556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab90600090a25050620002e7565b60026200013e8282620001e9565b5050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200016d57607f821691505b6020821081036200018e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001e4576000816000526020600020601f850160051c81016020861015620001bf5750805b601f850160051c820191505b81811015620001e057828155600101620001cb565b5050505b505050565b81516001600160401b0381111562000205576200020562000142565b6200021d8162000216845462000158565b8462000194565b602080601f8311600181146200025557600084156200023c5750858301515b600019600386901b1c1916600185901b178555620001e0565b600085815260208120601f198616915b82811015620002865788860151825594840194600190910190840162000265565b5085821015620002a55787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215620002c857600080fd5b81516001600160a01b0381168114620002e057600080fd5b9392505050565b613aef80620002f76000396000f3fe608060405234801561001057600080fd5b50600436106101a25760003560e01c80635aa6e675116100ee578063b24387df11610097578063daa34fd011610071578063daa34fd01461044f578063e985e9c514610462578063f242432a146104ab578063f943f090146104be57600080fd5b8063b24387df14610414578063b754f2721461041c578063cc5b60841461043c57600080fd5b8063a22cb465116100c8578063a22cb465146103db578063a36a3f05146103ee578063ab033ea91461040157600080fd5b80635aa6e6751461039357806365165aa5146103b357806395d89b41146103d357600080fd5b80632eb2c2d6116101505780634e1273f41161012a5780634e1273f41461034d5780634e23932f1461036d57806359784cad1461038057600080fd5b80632eb2c2d6146102ec57806334d70eea146103015780633a5384cb1461033a57600080fd5b80630e89341c116101815780630e89341c14610205578063178ed28414610218578063289b3c0d146102ad57600080fd5b8062fdd58e146101a757806301ffc9a7146101cd57806306fdde03146101f0575b600080fd5b6101ba6101b5366004612999565b6104de565b6040519081526020015b60405180910390f35b6101e06101db3660046129f3565b610513565b60405190151581526020016101c4565b6101f86105f6565b6040516101c49190612a7e565b6101f8610213366004612a91565b610684565b6102a0610226366004612a91565b604080516060808201835260008083526020808401829052928401819052938452600982529282902082519384018352805484526001015473ffffffffffffffffffffffffffffffffffffffff81169184019190915274010000000000000000000000000000000000000000900460ff1615159082015290565b6040516101c49190612aaa565b60035473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101c4565b6102ff6102fa366004612cb4565b610a43565b005b6102c761030f366004612a91565b60009081526009602052604090206001015473ffffffffffffffffffffffffffffffffffffffff1690565b6101e0610348366004612a91565b610b0e565b61036061035b366004612d62565b610bb4565b6040516101c49190612e60565b6101e061037b366004612e73565b610c9a565b6101ba61038e366004612eb1565b610caf565b6003546102c79073ffffffffffffffffffffffffffffffffffffffff1681565b6006546102c79073ffffffffffffffffffffffffffffffffffffffff1681565b6101f8610e5e565b6102ff6103e9366004612f10565b610e6b565b6102ff6103fc366004612f3e565b610e7a565b6102ff61040f366004612f3e565b610fdd565b600a546101ba565b6101ba61042a366004612a91565b60009081526009602052604090205490565b6102ff61044a366004612f3e565b611350565b6102ff61045d366004612f5b565b6114b3565b6101e0610470366004612fe3565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205460ff1690565b6102ff6104b9366004613011565b6115c3565b6007546102c79073ffffffffffffffffffffffffffffffffffffffff1681565b60008181526020818152604080832073ffffffffffffffffffffffffffffffffffffffff861684529091529020545b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167fd9b67a260000000000000000000000000000000000000000000000000000000014806105a657507fffffffff0000000000000000000000000000000000000000000000000000000082167f0e89341c00000000000000000000000000000000000000000000000000000000145b8061050d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461050d565b600480546106039061307a565b80601f016020809104026020016040519081016040528092919081815260200182805461062f9061307a565b801561067c5780601f106106515761010080835404028352916020019161067c565b820191906000526020600020905b81548152906001019060200180831161065f57829003601f168201915b505050505081565b6000818152600960209081526040808320815160608082018452825480835260019093015473ffffffffffffffffffffffffffffffffffffffff8082169684019690965274010000000000000000000000000000000000000000900460ff1615158285015260065493517f3cea5120000000000000000000000000000000000000000000000000000000008152600481019390935294909390921690633cea512090602401600060405180830381865afa158015610746573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261078c9190810190613138565b905060006107b3836020015173ffffffffffffffffffffffffffffffffffffffff16611681565b905060006107c0866116a4565b826040516020016107d2929190613233565b604051602081830303815290604052905080836020015173ffffffffffffffffffffffffffffffffffffffff1663eb6b331585604001516040518263ffffffff1660e01b81526004016108259190612a7e565b600060405180830381865afa158015610842573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261088891908101906134d1565b60405160200161089992919061351a565b604051602081830303815290604052905080826108cf856020015173ffffffffffffffffffffffffffffffffffffffff16611681565b8660400151610913576040518060400160405280600581526020017f66616c736500000000000000000000000000000000000000000000000000000081525061094a565b6040518060400160405280600481526020017f74727565000000000000000000000000000000000000000000000000000000008152505b6109538a610b0e565b610992576040518060400160405280600581526020017f66616c73650000000000000000000000000000000000000000000000000000008152506109c9565b6040518060400160405280600481526020017f74727565000000000000000000000000000000000000000000000000000000008152505b6040516020016109dd959493929190613549565b6040516020818303038152906040529050806040516020016109ff9190613768565b6040516020818303038152906040529050610a1981611762565b604051602001610a2991906137a9565b604051602081830303815290604052945050505050919050565b3373ffffffffffffffffffffffffffffffffffffffff86168114801590610a9d575073ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209385168352929052205460ff16155b15610af9576040517fe237d92200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8083166004830152871660248201526044015b60405180910390fd5b610b0686868686866118b5565b505050505050565b6007546000828152600960205260408082206001015490517f13f46c4200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152919216906313f46c4290602401602060405180830381865afa158015610b90573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050d91906137ee565b60608151835114610bfe57815183516040517f5b05999100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610af0565b6000835167ffffffffffffffff811115610c1a57610c1a612ae3565b604051908082528060200260200182016040528015610c43578160200160208202803683370190505b50905060005b8451811015610c9257602080820286010151610c6d906020808402870101516104de565b828281518110610c7f57610c7f61380b565b6020908102919091010152600101610c49565b509392505050565b600080610ca783856104de565b119392505050565b60065460009073ffffffffffffffffffffffffffffffffffffffff163314610d03576040517f6b9c60a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060405180606001604052808881526020018773ffffffffffffffffffffffffffffffffffffffff16815260200186151581525090506000610d6982604051602001610d509190612aaa565b6040516020818303038152906040526008600a54611969565b90935090508015610e3857600a83905560008381526009602090815260409182902084518155908401516001909101805483860151151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00000000000000000000000000000000000000000090911673ffffffffffffffffffffffffffffffffffffffff938416171790559051849186169033907f08f994adef75dc0c809636b2fb0004553e15a247a89664f0b038034801c719a190610e2f908a90889061383a565b60405180910390a45b610e53848487604051806020016040528060008152506119c0565b505095945050505050565b600580546106039061307a565b610e76338383611a43565b5050565b6003546040517f91d148540000000000000000000000000000000000000000000000000000000081526000600482015233602482015273ffffffffffffffffffffffffffffffffffffffff909116906391d1485490604401602060405180830381865afa158015610eef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1391906137ee565b610f49576040517f59a8f42a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116610f96576040517ff9699b4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6003546040517f91d148540000000000000000000000000000000000000000000000000000000081526000600482015233602482015273ffffffffffffffffffffffffffffffffffffffff909116906391d1485490604401602060405180830381865afa158015611052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107691906137ee565b6110ac576040517f59a8f42a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff81166110f9576040517f4724c36600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611123817f4ebb53a600000000000000000000000000000000000000000000000000000000611b2b565b611188576040517ea73c8d00000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f49476f7665726e616e63650000000000000000000000000000000000000000006044820152606401610af0565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631865c57d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611219919061387a565b600181111561122a5761122a61389b565b8173ffffffffffffffffffffffffffffffffffffffff16631865c57d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611275573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611299919061387a565b60018111156112aa576112aa61389b565b146112e1576040517f649cdd9900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517f9d3e522e1e47a2f6009739342b9cc7b252a1888154e843ab55ee1c81745795ab90600090a250565b6003546040517f91d148540000000000000000000000000000000000000000000000000000000081526000600482015233602482015273ffffffffffffffffffffffffffffffffffffffff909116906391d1485490604401602060405180830381865afa1580156113c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e991906137ee565b61141f576040517f59a8f42a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811661146c576040517fb028818e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60065473ffffffffffffffffffffffffffffffffffffffff163314611504576040517f6b9c60a300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff81111561151f5761151f612ae3565b604051908082528060200260200182016040528015611548578160200160208202803683370190505b50905060005b8281101561157d57600182828151811061156a5761156a61380b565b602090810291909101015260010161154e565b506115bd84848480806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250869250611b4e915050565b50505050565b3373ffffffffffffffffffffffffffffffffffffffff8616811480159061161d575073ffffffffffffffffffffffffffffffffffffffff80871660009081526001602090815260408083209385168352929052205460ff16155b15611674576040517fe237d92200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015287166024820152604401610af0565b610b068686868686611bc0565b606061050d73ffffffffffffffffffffffffffffffffffffffff83166014611c9b565b606060006116b183611ec1565b600101905060008167ffffffffffffffff8111156116d1576116d1612ae3565b6040519080825280601f01601f1916602001820160405280156116fb576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a850494508461170557509392505050565b6060815160000361178157505060408051602081019091526000815290565b6000604051806060016040528060408152602001613a7a60409139905060006003845160026117b091906138f9565b6117ba919061390c565b6117c5906004613947565b67ffffffffffffffff8111156117dd576117dd612ae3565b6040519080825280601f01601f191660200182016040528015611807576020820181803683370190505b509050600182016020820185865187015b80821015611873576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845350600183019250611818565b505060038651066001811461188f57600281146118a2576118aa565b603d6001830353603d60028303536118aa565b603d60018303535b509195945050505050565b73ffffffffffffffffffffffffffffffffffffffff8416611905576040517f57f447ce00000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b73ffffffffffffffffffffffffffffffffffffffff8516611955576040517f01a8351400000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b6119628585858585611fa3565b5050505050565b82516020808501919091206000818152918490526040822054919082156119945750600090506119b8565b61199f8460016138f9565b6000918252602086905260409091208190559150600190505b935093915050565b73ffffffffffffffffffffffffffffffffffffffff8416611a10576040517f57f447ce00000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b60408051600180825260208201869052818301908152606082018590526080820190925290610b06600087848487611fa3565b73ffffffffffffffffffffffffffffffffffffffff8216611a93576040517fced3e10000000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526001602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000611b3683612003565b8015611b475750611b478383612067565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff8316611b9e576040517f01a8351400000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b611bbb836000848460405180602001604052806000815250611fa3565b505050565b73ffffffffffffffffffffffffffffffffffffffff8416611c10576040517f57f447ce00000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b73ffffffffffffffffffffffffffffffffffffffff8516611c60576040517f01a8351400000000000000000000000000000000000000000000000000000000815260006004820152602401610af0565b60408051600180825260208201869052818301908152606082018590526080820190925290611c928787848487611fa3565b50505050505050565b6060826000611cab846002613947565b611cb69060026138f9565b67ffffffffffffffff811115611cce57611cce612ae3565b6040519080825280601f01601f191660200182016040528015611cf8576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611d2f57611d2f61380b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611d9257611d9261380b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000611dce856002613947565b611dd99060016138f9565b90505b6001811115611e76577f303132333435363738396162636465660000000000000000000000000000000083600f1660108110611e1a57611e1a61380b565b1a60f81b828281518110611e3057611e3061380b565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049290921c91611e6f8161395e565b9050611ddc565b508115611eb9576040517fe22e27eb0000000000000000000000000000000000000000000000000000000081526004810186905260248101859052604401610af0565b949350505050565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611f0a577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611f36576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611f5457662386f26fc10000830492506010015b6305f5e1008310611f6c576305f5e100830492506008015b6127108310611f8057612710830492506004015b60648310611f92576064830492506002015b600a831061050d5760010192915050565b611faf85858585612155565b73ffffffffffffffffffffffffffffffffffffffff8416156119625782513390600103611ff55760208481015190840151611fee83898985858961230f565b5050610b06565b610b06818787878787612501565b600061202f827f01ffc9a700000000000000000000000000000000000000000000000000000000612067565b801561050d5750612060827fffffffff00000000000000000000000000000000000000000000000000000000612067565b1592915050565b6040517fffffffff00000000000000000000000000000000000000000000000000000000821660248201526000908190604401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052602080820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f01ffc9a700000000000000000000000000000000000000000000000000000000178152825192935060009283928392909183918a617530fa92503d9150600051905082801561213e575060208210155b801561214a5750600081115b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff84161580159061218f575073ffffffffffffffffffffffffffffffffffffffff831615155b156123035760005b8251811015612301576000600960008584815181106121b8576121b861380b565b602090810291909101810151825281810192909252604090810160002081516060810183528154815260019091015473ffffffffffffffffffffffffffffffffffffffff8116938201939093527401000000000000000000000000000000000000000090920460ff16151590820152845190915061224f908590849081106122425761224261380b565b6020026020010151610b0e565b15612286576040517fdf1d1ad200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80604001516122f857806020015173ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146122f8576040517ffa45c60e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50600101612197565b505b6115bd84848484612692565b73ffffffffffffffffffffffffffffffffffffffff84163b15610b06576040517ff23a6e6100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063f23a6e61906123869089908990889088908890600401613993565b6020604051808303816000875af19250505080156123df575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526123dc918101906139d8565b60015b61246e573d80801561240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b606091505b508051600003612466576040517f57f447ce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602401610af0565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167ff23a6e610000000000000000000000000000000000000000000000000000000014611c92576040517f57f447ce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602401610af0565b73ffffffffffffffffffffffffffffffffffffffff84163b15610b06576040517fbc197c8100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063bc197c819061257890899089908890889088906004016139f5565b6020604051808303816000875af19250505080156125d1575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526125ce918101906139d8565b60015b6125ff573d80801561240d576040519150601f19603f3d011682016040523d82523d6000602084013e612412565b7fffffffff0000000000000000000000000000000000000000000000000000000081167fbc197c810000000000000000000000000000000000000000000000000000000014611c92576040517f57f447ce00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602401610af0565b80518251146126da57815181516040517f5b05999100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401610af0565b3360005b83518110156128475760208181028581018201519085019091015173ffffffffffffffffffffffffffffffffffffffff8816156127de5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8c168452909152902054818110156127aa576040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a166004820152602481018290526044810183905260648101849052608401610af0565b60008381526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8d16845290915290209082900390555b73ffffffffffffffffffffffffffffffffffffffff87161561283d5760008281526020818152604080832073ffffffffffffffffffffffffffffffffffffffff8b168452909152812080548392906128379084906138f9565b90915550505b50506001016126de565b5082516001036128ef57602083015160009060208401519091508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516128e0929190918252602082015260400190565b60405180910390a45050611962565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612965929190613a54565b60405180910390a45050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461299657600080fd5b50565b600080604083850312156129ac57600080fd5b82356129b781612974565b946020939093013593505050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461299657600080fd5b600060208284031215612a0557600080fd5b8135611b47816129c5565b60005b83811015612a2b578181015183820152602001612a13565b50506000910152565b60008151808452612a4c816020860160208601612a10565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611b476020830184612a34565b600060208284031215612aa357600080fd5b5035919050565b8151815260208083015173ffffffffffffffffffffffffffffffffffffffff16908201526040808301511515908201526060810161050d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff81118282101715612b3557612b35612ae3565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612b8257612b82612ae3565b604052919050565b600067ffffffffffffffff821115612ba457612ba4612ae3565b5060051b60200190565b600082601f830112612bbf57600080fd5b81356020612bd4612bcf83612b8a565b612b3b565b8083825260208201915060208460051b870101935086841115612bf657600080fd5b602086015b84811015612c125780358352918301918301612bfb565b509695505050505050565b600067ffffffffffffffff821115612c3757612c37612ae3565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b600082601f830112612c7457600080fd5b8135612c82612bcf82612c1d565b818152846020838601011115612c9757600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215612ccc57600080fd5b8535612cd781612974565b94506020860135612ce781612974565b9350604086013567ffffffffffffffff80821115612d0457600080fd5b612d1089838a01612bae565b94506060880135915080821115612d2657600080fd5b612d3289838a01612bae565b93506080880135915080821115612d4857600080fd5b50612d5588828901612c63565b9150509295509295909350565b60008060408385031215612d7557600080fd5b823567ffffffffffffffff80821115612d8d57600080fd5b818501915085601f830112612da157600080fd5b81356020612db1612bcf83612b8a565b82815260059290921b84018101918181019089841115612dd057600080fd5b948201945b83861015612df7578535612de881612974565b82529482019490820190612dd5565b96505086013592505080821115612e0d57600080fd5b50612e1a85828601612bae565b9150509250929050565b60008151808452602080850194506020840160005b83811015612e5557815187529582019590820190600101612e39565b509495945050505050565b602081526000611b476020830184612e24565b60008060408385031215612e8657600080fd5b823591506020830135612e9881612974565b809150509250929050565b801515811461299657600080fd5b600080600080600060a08688031215612ec957600080fd5b853594506020860135612edb81612974565b93506040860135612eeb81612ea3565b9250606086013591506080860135612f0281612974565b809150509295509295909350565b60008060408385031215612f2357600080fd5b8235612f2e81612974565b91506020830135612e9881612ea3565b600060208284031215612f5057600080fd5b8135611b4781612974565b600080600060408486031215612f7057600080fd5b8335612f7b81612974565b9250602084013567ffffffffffffffff80821115612f9857600080fd5b818601915086601f830112612fac57600080fd5b813581811115612fbb57600080fd5b8760208260051b8501011115612fd057600080fd5b6020830194508093505050509250925092565b60008060408385031215612ff657600080fd5b823561300181612974565b91506020830135612e9881612974565b600080600080600060a0868803121561302957600080fd5b853561303481612974565b9450602086013561304481612974565b93506040860135925060608601359150608086013567ffffffffffffffff81111561306e57600080fd5b612d5588828901612c63565b600181811c9082168061308e57607f821691505b6020821081036130c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b80516130d881612ea3565b919050565b80516130d881612974565b60006130f6612bcf84612c1d565b905082815283838301111561310a57600080fd5b611b47836020830184612a10565b600082601f83011261312957600080fd5b611b47838351602085016130e8565b60006020828403121561314a57600080fd5b815167ffffffffffffffff8082111561316257600080fd5b9083019060e0828603121561317657600080fd5b61317e612b12565b613187836130cd565b8152613195602084016130dd565b60208201526040830151828111156131ac57600080fd5b6131b887828601613118565b6040830152506131ca606084016130dd565b60608201526080830151828111156131e157600080fd5b6131ed87828601613118565b60808301525060a083015160a082015261320960c084016130dd565b60c082015295945050505050565b60008151613229818560208601612a10565b9290920192915050565b7f7b0000000000000000000000000000000000000000000000000000000000000081527f226e616d65223a202253746f72792050726f746f636f6c204c6963656e73652060018201527f23000000000000000000000000000000000000000000000000000000000000006021820152600083516132b7816022850160208801612a10565b7f222c0000000000000000000000000000000000000000000000000000000000006022918401918201527f226465736372697074696f6e223a20224c6963656e73652061677265656d656e60248201527f742073746174696e6720746865207465726d73206f6620612053746f7279205060448201527f726f746f636f6c2049504173736574222c00000000000000000000000000000060648201527f2265787465726e616c5f75726c223a202268747470733a2f2f70726f746f636f60758201527f6c2e73746f727970726f746f636f6c2e78797a2f6970612f000000000000000060958201526134c861349f6133de6133b560ad850188613217565b7f222c000000000000000000000000000000000000000000000000000000000000815260020190565b7f22696d616765223a202268747470733a2f2f696d616765732e6374666173736581527f74732e6e65742f3565693377783534743164702f3157584f486e504c524f734760208201527f6942734934367a4543652f34663338613935633538643362303332396166333060408201527f38356233366437323063382f53746f72795f50726f746f636f6c5f49636f6e2e60608201527f706e67222c000000000000000000000000000000000000000000000000000000608082015260850190565b7f2261747472696275746573223a205b00000000000000000000000000000000008152600f0190565b95945050505050565b6000602082840312156134e357600080fd5b815167ffffffffffffffff8111156134fa57600080fd5b8201601f8101841361350b57600080fd5b611eb9848251602084016130e8565b6000835161352c818460208801612a10565b835190830190613540818360208801612a10565b01949350505050565b6000865161355b818460208b01612a10565b80830190507f7b2274726169745f74797065223a20224c6963656e736f72222c202276616c7581527f65223a2022000000000000000000000000000000000000000000000000000000602082015286516135bc816025840160208b01612a10565b8082019150507f227d2c00000000000000000000000000000000000000000000000000000000008060258301527f7b2274726169745f74797065223a2022506f6c696379204672616d65776f726b60288301527f222c202276616c7565223a20220000000000000000000000000000000000000060488301528651613648816055850160208b01612a10565b60559201918201527f7b2274726169745f74797065223a20225472616e7366657261626c65222c202260588201527f76616c7565223a20220000000000000000000000000000000000000000000000607882015261375c61373361372d6136de6136b5608186018a613217565b7f227d2c0000000000000000000000000000000000000000000000000000000000815260030190565b7f7b2274726169745f74797065223a20225265766f6b6564222c202276616c756581527f223a202200000000000000000000000000000000000000000000000000000000602082015260240190565b86613217565b7f227d000000000000000000000000000000000000000000000000000000000000815260020190565b98975050505050505050565b6000825161377a818460208701612a10565b7f5d7d000000000000000000000000000000000000000000000000000000000000920191825250600201919050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c0000008152600082516137e181601d850160208701612a10565b91909101601d0192915050565b60006020828403121561380057600080fd5b8151611b4781612ea3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b82815260808101611b4760208301848051825260208082015173ffffffffffffffffffffffffffffffffffffffff16908301526040908101511515910152565b60006020828403121561388c57600080fd5b815160028110611b4757600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082018082111561050d5761050d6138ca565b600082613942577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b808202811582820484141761050d5761050d6138ca565b60008161396d5761396d6138ca565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525084604083015283606083015260a0608083015261214a60a0830184612a34565b6000602082840312156139ea57600080fd5b8151611b47816129c5565b600073ffffffffffffffffffffffffffffffffffffffff808816835280871660208401525060a06040830152613a2e60a0830186612e24565b8281036060840152613a408186612e24565b9050828103608084015261375c8185612a34565b604081526000613a676040830185612e24565b82810360208401526134c88185612e2456fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220167d6a5a6d4a53a86e2a7bb64d9c099b0ce415d6f72edea08dc0b214f2fe551264736f6c6343000817003300000000000000000000000014ac96796aadef6053e993abdc3c1e7830ede901