6101606040526000600b553480156200001757600080fd5b50604051620036a5380380620036a58339810160408190526200003a91620001ce565b6040805180820182526011808252704a75696365626f782050726f6a6563747360781b60208084018290528451808601865260018152603160f81b81830152855180870187529384528382019290925284518086019095526008855267094aa92868a849eb60c31b908501526001600160a01b03851660805291926000620000c38382620002a5565b506001620000d28282620002a5565b505082516020938401208251928401929092206101008390526101208190524660c0818152604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81890181905281830197909752606081019490945260808401929092523060a080850182905283518086038201815294909201909252825192909501919091209093525060e0919091526101405262000175336200017c565b5062000371565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600060208284031215620001e157600080fd5b81516001600160a01b0381168114620001f957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200022b57607f821691505b6020821081036200024c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002a057600081815260208120601f850160051c810160208610156200027b5750805b601f850160051c820191505b818110156200029c5782815560010162000287565b5050505b505050565b81516001600160401b03811115620002c157620002c162000200565b620002d981620002d2845462000216565b8462000252565b602080601f831160018114620003115760008415620002f85750858301515b600019600386901b1c1916600185901b1785556200029c565b600085815260208120601f198616915b82811015620003425788860151825594840194600190910190840162000321565b5085821015620003615787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60805160a05160c05160e0516101005161012051610140516132cb620003da60003960006114fe0152600061154d0152600061152801526000611481015260006114ab015260006114d50152600081816103e2015281816115fb01526116bb01526132cb6000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063666d87a01161010f578063a22cb465116100a2578063c87b56dd11610071578063c87b56dd1461042a578063e131fc0c1461043d578063e985e9c514610450578063f2fde38b1461048c57600080fd5b8063a22cb465146103ca578063ad007d63146103dd578063b88d4fde14610404578063c3cda5201461041757600080fd5b80638da5cb5b116100de5780638da5cb5b1461038b5780638e539e8c1461039c57806395d89b41146103af5780639ab24eb0146103b757600080fd5b8063666d87a01461034a57806370a082311461035d578063715018a6146103705780637ecebe001461037857600080fd5b80633644e5151161018757806342842e0e1161015657806342842e0e146102e5578063587cde1e146102f85780635c19a95c146103245780636352211e1461033757600080fd5b80633644e515146102a457806336574975146102ac57806339fbc775146102bf5780633a46b1a8146102d257600080fd5b8063081812fc116101c3578063081812fc1461023e578063095ea7b31461026957806323b872dd1461027e5780632407497e1461029157600080fd5b806301ffc9a7146101ea57806306661abd1461021257806306fdde0314610229575b600080fd5b6101fd6101f83660046129da565b61049f565b60405190151581526020015b60405180910390f35b61021b600b5481565b604051908152602001610209565b610231610547565b6040516102099190612a47565b61025161024c366004612a5a565b6105d9565b6040516001600160a01b039091168152602001610209565b61027c610277366004612a88565b610600565b005b61027c61028c366004612ab4565b610736565b61027c61029f366004612af5565b6107bd565b61021b610831565b61027c6102ba366004612b24565b610840565b6102316102cd366004612b6b565b6108cb565b61021b6102e0366004612a88565b610970565b61027c6102f3366004612ab4565b610999565b610251610306366004612af5565b6001600160a01b039081166000908152600660205260409020541690565b61027c610332366004612af5565b6109b4565b610251610345366004612a5a565b6109c3565b61021b610358366004612b8d565b610a28565b61021b61036b366004612af5565b610adc565b61027c610b76565b61021b610386366004612af5565b610b8a565b600a546001600160a01b0316610251565b61021b6103aa366004612a5a565b610ba8565b610231610c04565b61021b6103c5366004612af5565b610c13565b61027c6103d8366004612bd5565b610c58565b6102517f000000000000000000000000000000000000000000000000000000000000000081565b61027c610412366004612c96565b610c63565b61027c610425366004612d45565b610cf1565b610231610438366004612a5a565b610e27565b600d54610251906001600160a01b031681565b6101fd61045e366004612da7565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61027c61049a366004612af5565b610ed7565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167faa91a66f00000000000000000000000000000000000000000000000000000000148061053257507fffffffff0000000000000000000000000000000000000000000000000000000082167fad007d6300000000000000000000000000000000000000000000000000000000145b80610541575061054182610f67565b92915050565b60606000805461055690612dd5565b80601f016020809104026020016040519081016040528092919081815260200182805461058290612dd5565b80156105cf5780601f106105a4576101008083540402835291602001916105cf565b820191906000526020600020905b8154815290600101906020018083116105b257829003601f168201915b5050505050905090565b60006105e48261104a565b506000908152600460205260409020546001600160a01b031690565b600061060b826109c3565b9050806001600160a01b0316836001600160a01b0316036106995760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b336001600160a01b03821614806106b557506106b5813361045e565b6107275760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610690565b61073183836110ae565b505050565b6107403382611134565b6107b25760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610690565b6107318383836111b3565b6107c561141a565b600d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040513381527fe7784d93cfbfa4408e19577e6cc0436f4dbb51214b70e100905dfce9def88c169060200160405180910390a250565b600061083b611474565b905090565b610849826109c3565b82600661085783838361159b565b6108618480612e22565b6000878152600c60209081526040808320898301358452909152902091610889919083612ed5565b50847fd07720acb527321c9d1766f359139d0e0e3551bd99fb3ca353d4f008f3aad8e685336040516108bc929190612fd2565b60405180910390a25050505050565b600c602090815260009283526040808420909152908252902080546108ef90612dd5565b80601f016020809104026020016040519081016040528092919081815260200182805461091b90612dd5565b80156109685780601f1061093d57610100808354040283529160200191610968565b820191906000526020600020905b81548152906001019060200180831161094b57829003601f168201915b505050505081565b6001600160a01b0382166000908152600760205260408120610992908361175f565b9392505050565b61073183838360405180602001604052806000815250610c63565b336109bf81836118a5565b5050565b6000818152600260205260408120546001600160a01b0316806105415760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610690565b6000600b60008154610a39906130b1565b91829055509050610a4a838261192f565b6000610a568380612e22565b90501115610a9257610a688280612e22565b6000838152600c60209081526040808320878301358452909152902091610a90919083612ed5565b505b826001600160a01b0316817fa1c6fd563bcbc3222f6031d7c26ff58cd6c701abff0bfffe652d055ce40629d48433604051610ace929190612fd2565b60405180910390a392915050565b60006001600160a01b038216610b5a5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610690565b506001600160a01b031660009081526003602052604090205490565b610b7e61141a565b610b886000611949565b565b6001600160a01b038116600090815260096020526040812054610541565b6000438210610bf95760405162461bcd60e51b815260206004820152601a60248201527f566f7465733a20626c6f636b206e6f7420796574206d696e65640000000000006044820152606401610690565b61054160088361175f565b60606001805461055690612dd5565b6001600160a01b0381166000908152600760205260408120610c34906119b3565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1692915050565b6109bf338383611a02565b610c6d3383611134565b610cdf5760405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f766564000000000000000000000000000000000000006064820152608401610690565b610ceb84848484611aee565b50505050565b83421115610d415760405162461bcd60e51b815260206004820152601860248201527f566f7465733a207369676e6174757265206578706972656400000000000000006044820152606401610690565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b038816918101919091526060810186905260808101859052600090610dbb90610db39060a00160405160208183030381529060405280519060200120611b77565b858585611be0565b9050610dc681611c08565b8614610e145760405162461bcd60e51b815260206004820152601460248201527f566f7465733a20696e76616c6964206e6f6e63650000000000000000000000006044820152606401610690565b610e1e81886118a5565b50505050505050565b600d546060906001600160a01b031680610e51575050604080516020810190915260008152919050565b6040517fda0544aa000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0382169063da0544aa90602401600060405180830381865afa158015610eaf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261099291908101906130e9565b610edf61141a565b6001600160a01b038116610f5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610690565b610f6481611949565b50565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480610ffa57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061054157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610541565b6000818152600260205260409020546001600160a01b0316610f645760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610690565b600081815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03841690811790915581906110fb826109c3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611140836109c3565b9050806001600160a01b0316846001600160a01b0316148061118757506001600160a01b0380821660009081526005602090815260408083209388168352929052205460ff165b806111ab5750836001600160a01b03166111a0846105d9565b6001600160a01b0316145b949350505050565b826001600160a01b03166111c6826109c3565b6001600160a01b0316146112425760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610690565b6001600160a01b0382166112bd5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610690565b826001600160a01b03166112d0826109c3565b6001600160a01b03161461134c5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610690565b600081815260046020908152604080832080547fffffffffffffffffffffffff00000000000000000000000000000000000000009081169091556001600160a01b038781168086526003855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a46107318383836001611c30565b600a546001600160a01b03163314610b885760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610690565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156114cd57507f000000000000000000000000000000000000000000000000000000000000000046145b156114f757507f000000000000000000000000000000000000000000000000000000000000000090565b50604080517f00000000000000000000000000000000000000000000000000000000000000006020808301919091527f0000000000000000000000000000000000000000000000000000000000000000828401527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b336001600160a01b0384161480159061166857506040517fc161c93f0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03848116602483015260448201849052606482018390527f0000000000000000000000000000000000000000000000000000000000000000169063c161c93f90608401602060405180830381865afa158015611642573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116669190613160565b155b801561172857506040517fc161c93f0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03848116602483015260006044830152606482018390527f0000000000000000000000000000000000000000000000000000000000000000169063c161c93f90608401602060405180830381865afa158015611702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117269190613160565b155b15610731576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60004382106117b05760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610690565b60006117bb83611c40565b845490915060008160058111156118195760006117d784611cc0565b6117e1908561317d565b60008981526020902090915081015463ffffffff908116908616101561180957809150611817565b611814816001613190565b92505b505b600061182788868585611da8565b905080156118785761184c8861183e60018461317d565b600091825260209091200190565b5464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661187b565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1698975050505050505050565b6001600160a01b0382811660008181526006602052604080822080548686167fffffffffffffffffffffffff0000000000000000000000000000000000000000821681179092559151919094169392849290917f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610731818361192a86611e06565b611e11565b6109bf828260405180602001604052806000815250611f3f565b600a80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b805460009080156119f9576119cd8361183e60018461317d565b5464010000000090047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16610992565b60009392505050565b816001600160a01b0316836001600160a01b031603611a635760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610690565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611af98484846111b3565b611b0584848484611fc8565b610ceb5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610690565b6000610541611b84611474565b836040517f19010000000000000000000000000000000000000000000000000000000000006020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000611bf187878787612166565b91509150611bfe8161222a565b5095945050505050565b6001600160a01b03811660009081526009602052604090208054600181018255905b50919050565b611c3b84848361238f565b610ceb565b600063ffffffff821115611cbc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f32206269747300000000000000000000000000000000000000000000000000006064820152608401610690565b5090565b600081600003611cd257506000919050565b60006001611cdf846123ff565b901c6001901b90506001818481611cf857611cf86131a3565b048201901c90506001818481611d1057611d106131a3565b048201901c90506001818481611d2857611d286131a3565b048201901c90506001818481611d4057611d406131a3565b048201901c90506001818481611d5857611d586131a3565b048201901c90506001818481611d7057611d706131a3565b048201901c90506001818481611d8857611d886131a3565b048201901c905061099281828581611da257611da26131a3565b04612493565b60005b81831015611dfe576000611dbf84846124a9565b60008781526020902090915063ffffffff86169082015463ffffffff161115611dea57809250611df8565b611df5816001613190565b93505b50611dab565b509392505050565b600061054182610adc565b816001600160a01b0316836001600160a01b031614158015611e335750600081115b15610731576001600160a01b03831615611ec1576001600160a01b03831660009081526007602052604081208190611e6e906124c4856124d0565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051611eb6929190918252602082015260400190565b60405180910390a250505b6001600160a01b03821615610731576001600160a01b03821660009081526007602052604081208190611ef79061251d856124d0565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72483836040516108bc929190918252602082015260400190565b611f498383612529565b611f566000848484611fc8565b6107315760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610690565b60006001600160a01b0384163b1561215e576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a02906120259033908990889088906004016131d2565b6020604051808303816000875af1925050508015612060575060408051601f3d908101601f1916820190925261205d9181019061320e565b60015b612113573d80801561208e576040519150601f19603f3d011682016040523d82523d6000602084013e612093565b606091505b50805160000361210b5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610690565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506111ab565b5060016111ab565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561219d5750600090506003612221565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156121f1573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661221a57600060019250925050612221565b9150600090505b94509492505050565b600081600481111561223e5761223e61322b565b036122465750565b600181600481111561225a5761225a61322b565b036122a75760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610690565b60028160048111156122bb576122bb61322b565b036123085760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610690565b600381600481111561231c5761231c61322b565b03610f645760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f75650000000000000000000000000000000000000000000000000000000000006064820152608401610690565b6001600160a01b0383166123ae576123ab600861251d836124d0565b50505b6001600160a01b0382166123cd576123ca60086124c4836124d0565b50505b6001600160a01b0383811660009081526006602052604080822054858416835291205461073192918216911683611e11565b600080608083901c1561241457608092831c92015b604083901c1561242657604092831c92015b602083901c1561243857602092831c92015b601083901c1561244a57601092831c92015b600883901c1561245c57600892831c92015b600483901c1561246e57600492831c92015b600283901c1561248057600292831c92015b600183901c156105415760010192915050565b60008183106124a25781610992565b5090919050565b60006124b8600284841861325a565b61099290848416613190565b6000610992828461317d565b6000806125108561250b6124e3886119b3565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16868863ffffffff16565b6126d6565b915091505b935093915050565b60006109928284613190565b6001600160a01b03821661257f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610690565b6000818152600260205260409020546001600160a01b0316156125e45760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610690565b6000818152600260205260409020546001600160a01b0316156126495760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610690565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a46109bf600083836001611c30565b6000806126f4846126e643611c40565b6126ef86612721565b6127b5565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff91821693501690505b9250929050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115611cbc5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f32342062697473000000000000000000000000000000000000000000000000006064820152608401610690565b82546000908190801561293d5760006127d38761183e60018561317d565b60408051808201909152905463ffffffff8082168084526401000000009092047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166020840152919250908716101561286a5760405162461bcd60e51b815260206004820152601760248201527f436865636b706f696e743a20696e76616c6964206b65790000000000000000006044820152606401610690565b805163ffffffff8088169116036128c8578461288b8861183e60018661317d565b80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff929092166401000000000263ffffffff90921691909117905561292d565b6040805180820190915263ffffffff80881682527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80881660208085019182528b54600181018d5560008d81529190912094519151909216640100000000029216919091179101555b6020015192508391506125159050565b50506040805180820190915263ffffffff80851682527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80851660208085019182528854600181018a5560008a815291822095519251909316640100000000029190931617920191909155905081612515565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610f6457600080fd5b6000602082840312156129ec57600080fd5b8135610992816129ac565b60005b83811015612a125781810151838201526020016129fa565b50506000910152565b60008151808452612a338160208601602086016129f7565b601f01601f19169290920160200192915050565b6020815260006109926020830184612a1b565b600060208284031215612a6c57600080fd5b5035919050565b6001600160a01b0381168114610f6457600080fd5b60008060408385031215612a9b57600080fd5b8235612aa681612a73565b946020939093013593505050565b600080600060608486031215612ac957600080fd5b8335612ad481612a73565b92506020840135612ae481612a73565b929592945050506040919091013590565b600060208284031215612b0757600080fd5b813561099281612a73565b600060408284031215611c2a57600080fd5b60008060408385031215612b3757600080fd5b82359150602083013567ffffffffffffffff811115612b5557600080fd5b612b6185828601612b12565b9150509250929050565b60008060408385031215612b7e57600080fd5b50508035926020909101359150565b60008060408385031215612ba057600080fd5b8235612bab81612a73565b9150602083013567ffffffffffffffff811115612b5557600080fd5b8015158114610f6457600080fd5b60008060408385031215612be857600080fd5b8235612bf381612a73565b91506020830135612c0381612bc7565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612c6657612c66612c0e565b604052919050565b600067ffffffffffffffff821115612c8857612c88612c0e565b50601f01601f191660200190565b60008060008060808587031215612cac57600080fd5b8435612cb781612a73565b93506020850135612cc781612a73565b925060408501359150606085013567ffffffffffffffff811115612cea57600080fd5b8501601f81018713612cfb57600080fd5b8035612d0e612d0982612c6e565b612c3d565b818152886020838501011115612d2357600080fd5b8160208401602083013760006020838301015280935050505092959194509250565b60008060008060008060c08789031215612d5e57600080fd5b8635612d6981612a73565b95506020870135945060408701359350606087013560ff81168114612d8d57600080fd5b9598949750929560808101359460a0909101359350915050565b60008060408385031215612dba57600080fd5b8235612dc581612a73565b91506020830135612c0381612a73565b600181811c90821680612de957607f821691505b602082108103611c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e5757600080fd5b83018035915067ffffffffffffffff821115612e7257600080fd5b60200191503681900382131561271a57600080fd5b601f82111561073157600081815260208120601f850160051c81016020861015612eae5750805b601f850160051c820191505b81811015612ecd57828155600101612eba565b505050505050565b67ffffffffffffffff831115612eed57612eed612c0e565b612f0183612efb8354612dd5565b83612e87565b6000601f841160018114612f535760008515612f1d5750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612fcb565b600083815260209020601f19861690835b82811015612f845786850135825560209485019460019092019101612f64565b5086821015612fbf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60408152600083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe185360301811261300a57600080fd5b840160208101903567ffffffffffffffff81111561302757600080fd5b80360382131561303657600080fd5b604080850152806080850152808260a0860137600060a082860101526020860135606085015260a0601f19601f8301168501019250505061099260208301846001600160a01b03169052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130e2576130e2613082565b5060010190565b6000602082840312156130fb57600080fd5b815167ffffffffffffffff81111561311257600080fd5b8201601f8101841361312357600080fd5b8051613131612d0982612c6e565b81815285602083850101111561314657600080fd5b6131578260208301602086016129f7565b95945050505050565b60006020828403121561317257600080fd5b815161099281612bc7565b8181038181111561054157610541613082565b8082018082111561054157610541613082565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006001600160a01b038087168352808616602084015250836040830152608060608301526132046080830184612a1b565b9695505050505050565b60006020828403121561322057600080fd5b8151610992816129ac565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082613290577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea2646970667358221220a7133fa78e871aaeae47d76d05088e9cf4b4ffd5f902409a46b1122a7c85ba8564736f6c634300081000330000000000000000000000008f63c744c0280ef4b32af1f821c65e0fd4150ab3