[remove HaXml docs, add rudimentary polyparse docs Malcolm.Wallace@cs.york.ac.uk**20070122203401] { hunk ./docs/Combinators.html 1 - - - - - HaXml: Haskell and XML - - - - - -
-

Combinators

-
-
- -

-Text.XML.HaXml.Combinators is a combinator library for -generating, editing, and transforming XML documents in a generic -setting. - -

-Text.XML.HaXml.Html.Generate is a small library of functions -specifically for generating HTML from XML. - -

-Text.XML.HaXml.Wrappers contains the wrapper -processXmlWith, in which input files are parsed as HTML if the -filename ends in .html or .htm - otherwise they are parsed as XML. - -

-Usage: import Text.XML.HaXml.Combinators
- -

-Limitations
-Note that the combinator library defines the functions elm and -txt rather than the expected (elem -and text), to avoid a nasty name clash with a Prelude function. - -


- - - rmfile ./docs/Combinators.html hunk ./docs/Haskell2Xml.html 1 - - HaXml: Haskell and XML - - - -
-

Haskell2Xml

-
-
- -

-Text.XML.HaXml.Haskell2Xml is a library for translating Haskell -data from any program into a valid XML document (and back again), by -generating a DTD and the appropriate functions to write and write the -XML format. In principle, it gives an alternative to the standard Read -and Show classes, and allows you to use other standard XML-processing -tools on your Haskell datafiles. - -

-Usage. -It works rather like the existing Read and Show -classes: you must create an instance of the Haskell2Xml -class for every datatype you wish to use for I/O. However, because -this class is not a standard one, no Haskell compilers support -the deriving clause for it yet. Fear not! There is a -pre-processor tool called -DrIFT -which derives class instances automatically. We have extended -DrIFT's ruleset to include the Haskell2Xml class. -The only remaining thing is to ensure that you import the -Text.XML.HaXml.Haskell2Xml module everywhere you use it. - -

-(Please note that DrIFT is sometimes a bit fragile when parsing Haskell -sources - it occasionally fails to recognise the derive -command. We have found a workaround: isolate just the data -type declarations that are of interest, and run DrIFT on them -separately.) The syntax required is like this example: -

-  data MyType a = A a | B String deriving (Eq, Show)
-      {-! derive : Haskell2Xml !-}	-- this line is for DrIFT
-
- -

-To read and write Haskell data values as XML files, you -have a choice of function pairs: toXML/fromXML -convert between typed Haskell values and the generic internal -XML representation; showXml/readXml convert to/from -Strings; fWriteXml/fReadXml convert to/from named files; -hPutXml/hGetXml convert to/from file Handles. - -

-    toXml     :: Haskell2Xml a => a        -> Document
-    fromXml   :: Haskell2Xml a => Document -> a
-
-    readXml   :: Haskell2Xml a => String   -> Maybe a
-    showXml   :: Haskell2Xml a => a        -> String
-
-    fReadXml  :: Haskell2Xml a => FilePath -> IO a
-    fWriteXml :: Haskell2Xml a => FilePath -> a -> IO ()
-
-    hGetXml   :: Haskell2Xml a => Handle   -> IO a
-    hPutXml   :: Haskell2Xml a => Handle   -> a -> IO ()
-
- -

-(These signatures are extremely similar to those in -Xml2Haskell - the only difference is -the class context, indicating how the types have been derived.) - -

-Do not forget to resolve the overloading in one of the usual ways -(e.g. by implicit context at point of use, by explicit type signatures -on values, use value as an argument to a function with an explicit -signature, use `asTypeOf`, etc.) - -


- - - rmfile ./docs/Haskell2Xml.html hunk ./docs/Xml2Haskell.html 1 - - - - - HaXml: Haskell and XML - - - - - -
-

DtdToHaskell tool

-
-
- -

-DtdToHaskell is a tool (and Text.XML.HaXml.Xml2Haskell -provides the class framework) for translating any valid XML DTD -into equivalent Haskell types. This allows you to generate, edit, -and transform documents as normal typed values in programs, and to -read and write them as human-readable XML documents. - -

-Usage: DtdToHaskell [dtdfile [outfile]]
-(Missing file arguments or dashes (-) indicate stdin - or stdout respectively.) - -

-The program reads and parses a DTD from dtdfile (which may be -either just a DTD, or a full XML document containing an internal DTD). -It generates into outfile a Haskell module containing a -collection of type definitions plus some class instance declarations -for I/O. - -

-In order to use the resulting module, you need to import it, and also -to import Text.XML.HaXml.Xml2Haskell. To read and write -XML files as values of the declared types, use some of the following -convenience functions: -

-    readXml   :: XmlContent a => String -> Maybe a
-    showXml   :: XmlContent a => a -> String
-
-    hGetXml   :: XmlContent a => Handle -> IO a
-    hPutXml   :: XmlContent a => Handle -> a -> IO ()
-
-    fReadXml  :: XmlContent a => FilePath -> IO a
-    fWriteXml :: XmlContent a => FilePath -> a -> IO ()
-
-not forgetting to resolve the overloading in one of the usual -ways (e.g. by implicit context at point of use, by explicit type -signatures on values, use value as an argument to a function with -an explicit signature, use `asTypeOf`, etc.) (Also, note -the similarity between these signatures and those provided by the -Haskell2Xml library.) - -

-You will need to study the automatically-generated type declarations to -write your own transformation scripts - most things are pretty obvious -parallels to the DTD structure. - -

-Limitations
-The generated Haskell contains references to types like OneOf3 -where there is a choice between n (in this case 3) different -tags. Currently, the module Text.XML.HaXml.OneOfN defines -these types up to n=20. If your DTD requires larger choices, -then use the tool MkOneOf to generate the extra size or range -of sizes you need. -

-We mangle tag names and attribute names to ensure that they have the -correct lexical form in Haskell, but this means that (for instance) we -can't distinguish Myname and myname, which are -different names in XML but translate to overlapping types in Haskell -(and hence probably won't compile). -

-Attribute names translate into named fields: but because Haskell doesn't -allow different types to have the same named field, this means your XML -document which uses the same name for similar attributes on different -tags would crash and burn. We have fixed this by incorporating the -tagname into the named field in addition to the attribute name, e.g. -tagAttr instead of just attr. Uglier, but more -portable. -

-XML namespaces. Currently, we just mangle the namespace identifier into -any tag name which uses it. Probably the right way to do it is to -regard the namespace as a separate imported module, and hence translate -the namespace prefix into a module qualifier. Does this sound about -right? (It isn't implemented yet.) -

-External subset. Since HaXml release 1.00, we support the -XML DTD external subset. This means we can read and parse a whole -bunch of files as part of the same DTD, and we respect INCLUDE and -IGNORE conditional sections. -

-There are some fringe parts of the DTD we are not entirely sure -about - Tokenised Types and Notation Types. In particular, there -is no validity checking of these external references. If you find -a problem, mail us: Malcolm.Wallace@cs.york.ac.uk - -


- - - rmfile ./docs/Xml2Haskell.html hunk ./docs/XmlContent.html 1 - - HaXml: Haskell and XML - - - -
-

XmlContent

-
-
- -

-Text.XML.HaXml.XmlContent is a library/class for translating -Haskell data from any program into a valid XML document (and back -again). In principle, it gives an alternative to the standard Read and -Show classes, allowing you to use fully typed data in Haskell rather -than the generic XML tree representation. - -

-Usage 1. -It works rather like the existing Read and Show -classes: you must create an instance of the XmlContent -class for every datatype you wish to use for I/O. However, because -this class is not a standard one, no Haskell compilers support -the deriving clause for it yet. Fear not! There is a -pre-processor tool called -DrIFT -which derives class instances automatically. We have extended -DrIFT's ruleset to include the XmlContent class. - -

-(Please note that DrIFT is sometimes a bit fragile when parsing Haskell -sources - it occasionally fails to recognise the derive -command. We have found a workaround: isolate just the data -type declarations that are of interest, and run DrIFT on them -separately.) The syntax required is like this example: -

-  data MyType a = A a | B String deriving (Eq, Show)
-      {-! derive : XmlContent !-}	-- this line is for DrIFT
-
- -

-Usage 2. -Alternatively, you may start by having XML documents with a standard DTD -defined elsewhere, e.g. SVG, SMIL, MathML etc. You can convert the DTD -into an isomorphic collection of Haskell datatypes, including all the -requisite instances of XmlContent, with the tool -DtdToHaskell included in HaXml. - - -

-API -To read and write Haskell data values as XML files, you -have a choice of function pairs: toXML/fromXML -convert between typed Haskell values and the generic internal -XML representation; showXml/readXml convert to/from -Strings; fWriteXml/fReadXml convert to/from named files; -hPutXml/hGetXml convert to/from file Handles. - -

-    toXml     :: XmlContent a => Bool -> a  -> Document ()
-    fromXml   :: XmlContent a => Document Posn -> Either String a
-
-    readXml   :: XmlContent a => String        -> Either String a
-    showXml   :: XmlContent a => Bool -> a  -> String
-
-    fReadXml  :: XmlContent a => FilePath -> IO a
-    fWriteXml :: XmlContent a => FilePath -> a -> IO ()
-
-    hGetXml   :: XmlContent a => Handle   -> IO a
-    hPutXml   :: XmlContent a => Handle   -> Bool -> a -> IO ()
-
- -Because parsing the document might fail, some of these functions return -an Either String, where the string contains an error message. Boolean -arguments to output-writing functions indicate whether or not to include -a DTD in the output. - -

-Particularly when you read from XML, you may need to resolve the -overloading of the result value in one of the usual ways (e.g. by -implicit context at point of use, by explicit type signatures on values, -use value as an argument to a function with an explicit signature, use -`asTypeOf`, etc.) - -


- - - rmfile ./docs/XmlContent.html hunk ./docs/Xtract.html 1 - - - - Xtract: a query language for XML documents - - -
-

Xtract: a query language for XML documents

-
-
- Malcolm Wallace, - Colin Runciman -
- University of York -
-
December 1998,
- updated June, August 1999, February 2000
-

Introduction

-

Xtract - is a query language based originally on XQL, which was a - W3C proposal that eventually mutated into XPath and XQuery. - The syntax of Xtract is very similar to XPath, although - not completely conformant. -

-

The idea of - Xtract - is that it can be used as a kind of XML-grep at the - command-line, but it could also be used within a scripting - language (such as the Haskell XML combinator library) as a - shorthand for a complicated selection filter. -

-

All queries return a sequence of XML document fragments - (either whole tagged elements or text contained inside an - element): for our purposes, we also treat attribute - values as document fragments. -

-

This document describes the expression language for queries. -

-

Queries

-

Just as in XPath, a query looks rather like a Unix file path, - where the ``directories'' are tags of parent nodes, and the - / - separator indicates a parent/child relationship. Hence, -

    matches/match/player 
- selects the - player - elements inside - match - elements inside a - matches - element. The star - * - can be used as a wildcard meaning any tagged element, thus: -
    matches/*/player 
- means the - player - elements inside - any - element within a - matches - element. The star can also be used as a suffix or prefix to - match a range of tags: - [ - Note that this is - not - a full regular expression language: we just provide for the - common cases of wildcards. - ] -
    html/h* 
- means all the headings ( - <H1> - to - <H6> - ) within an HTML document (and HR too!). A double slash - indicates a recursive search for an element tag, so -
    matches//player 
- means all - player - elements found at any depth within a - matches - element. The plain text enclosed within a tagged element is - expressed with a dash symbol: -
    matches/location/- 
- means the plain text of the location, without any surrounding - <location> - tags. Likewise, -
    *//- 
- simply means to flatten the text of the document at all - levels, removing all tagged element structure. The union of - two queries is expressed with the - + - operator and parentheses if required: -
    matches/match/(player + spectators) 
- gives both the players and spectators at a match. - Finally, -
    matches//player/@goals 
- returns the value of the attribute `goals' on the selected - player elements, if the attribute appears. -

Predicates

- There is a notion of a predicate on an element. The square - bracket notation is used: -
    matches/match[player] 
- means all - match - elements which contain at least one - player - element. It is the match elements that are returned, not - the players they contain. One can also ask for the presence - of a particular attribute: -
    *//player[@goals] 
- means those players (found anywhere within the tree) who - scored any goals. You can compare attribute values using - any of the operators - = - , - != - , - < - , - <= - , - > - , - >= - all of which use - lexicographical - ordering. In this example: -
    */match[player/@surname!=referee/@surname] 
- we only want those matches in which the referee does not - have the same surname as any of the players. A comparison - may be either against another attribute value, or against a - literal string; however a literal string may only appear to - the - right - of the operator symbol. For instance, -
    */match[player/@name='colin'] 
- asks for only those matches in which the player named - ``colin'' participated. If lexicographical comparison is - inappropriate, numeric comparisons are also possible: these - comparison operators are surrounded by dots: - .=. - , - .!=. - , - .<. - , - .<=. - , - .>. - , - .>=. - Again, either two attribute values are compared, or one - attribute value is compared with a literal integer. For - instance -
    */match[@ourgoals .>. @theirgoals] 
- asks for the matches we won, while -
    */match[@ourgoals .<=. 3] 
- asks for the matches in which we scored three or fewer - goals. (Note that the literal integer is not surrounded by - quote marks.) -

- In addition to comparing attribute values, you can also - compare the textual content of elements. For instance, -

    */match[player/- = 'Colin'] 
- asks for the matches in which ``Colin'' participated, - where the name is recorded between the player tags, rather - than as an attribute. All the same conditions and operations - apply as for attribute value comparisons. Note however that - you can only compare texts, not whole structures. - -

Combining predicates

- Predicates can be combined using the common Boolean operations - & - | - and - ~ - , with parentheses for disambiguation if they are required: -
-	        
-	    */match/[@ourgoals .=. @theirgoals | (player/@name='colin' 
-	    & ~(@opposition='city'))] 
-	
- means the matches which either ended in a draw, or in which - ``colin'' played but the opposition was not ``city''. -

Positional selection

- The final feature of - Xtract - is that the square bracket notation is overloaded to allow - the selection of elements by position: -
    */match[3] 
- means the fourth match in the sequence (numbering starts at - zero). You can have a series of indexes, separated by - commas, and ranges are indicated with a dash. The dollar - symbol means the last in the sequence. For example: -
    */match[0,2-$,1] 
- reorders the matches to place the second one last. -

Complex queries

- The full expression language is highly recursive, - permitting you to build arbitrarily complex queries. For - instance: -
    */match[player/@name='colin'][5-$]/referee[@age.>=.34] 
-    
- means: from the sixth onwards, of those matches in which - ``colin'' was a player, select those referees who are older - than 34. -

Grammar

-

We give a full grammar for Xtract.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
textquery= queryelements
| -plain text
query= stringtagged element
- | string*prefix of tag
- | *stringsuffix of tag
| *any element
- | ( textquery )grouping
- | query/textquerydirect descendant
- | query//textquerydeep descendant
- | query/@stringvalue of attribute
- | query + textqueryunion
- | query[predicate] predicates
- | query[positions] indexing
qa= textqueryhas tagged element
| attributehas attribute
predicate= qahas tagged element or attribute
- | qa op qalexical comparison of attribute values or element texts
- | - qa op 'string' - lexical comparison of attribute value or element text
- | - qa op "string" - lexical comparison of attribute value or element text
- | qa nop qanumeric comparison of attribute values or element texts
- | qa nop integernumeric comparison of attribute value or element text
- | ( predicate )grouping
- | predicate & predicatelogical and
- | predicate | predicatelogical or
- | ~ predicatelogical not
attribute= @stringattribute of this element
- | query/@stringattribute of descendant
positions= position { , positions} comma-separated sequence
- | position - positionrange
position= integerpositions start at zero
| $last element
op= =lexical equality
| !=lexical inequality
| <lexically less than
- | <=lexically less than or equal
- | >lexically greater than
- | >=lexically greater than or equal
nop= .=.numeric equality
| .!=.numeric inequality
| .<.numeric less than
- | .<=.numeric less than or equal
- | .>.numeric greater than
- | .>=.numeric greater than or equal
- - rmfile ./docs/Xtract.html binary ./docs/brubeck.gif oldhex *4749463837618801db01f40000ffffff000000c0c0c0737373000080808080ffff008000000000 *ff00ffff800080008080b2b2b2429aa7baa0a700373c1a5f672f7e880000eee1e1e165656569b5 *b50000000000000000000000000000000000000000000000000000000000002c000000008801db *010005fea0208e64699e68aaae6cebbe702ccf746ddf78aeef6d2000c0a070482c1a8fc8a472c9 *6c3a9fd0a8744aad5aafd86c72e00310bee0b0784c2e9bcfe8b47acd6ebbdff0b87c4eafdbeff8 *33f797effbff80818283848586767b5e878b8c8d8e8f908c4d01935f95048961059b629b9b0191 *a1a2a3a4a579002d5ca82c5c96a9a0985d9a4005b340b062419640a14377446aba6bc263428d47 *73c6a68fab2baa2201d1d2d222ad04cd2ad699b6b5600500b8c58ad7a3bcbc76e7e768eac1e361 *e9ee84e65ef4f16df0cb8ed829cf02d3ffd560358b4682a0006db26c01e846e05bb85c8ad8bd5b *84afce388965ecad23a30e231b8de4d68174d371e4c87c74fef6a1e8e7c3444b6bd80c1a3c086b *9b3770b4be38cca8ebe23c60d7f0d52346d45ec95de47a46c408efa7d0a23e97067d17b5a2b9a9 *c094cee3e8136b3d30c4c0565daa0ce5a957ab5a967829702db51108f9cc0af06d61437019b122 *756a29e9d7a75e9142141b78aa5fc362855ddd1a78ebd7a0ec22ff952ab4f1638f472d1716bcf7 *f249b371549e607982ad2bb725e2c6db5977135e8e9027f7359cf9296333ee94d97e4cb533e174 *bb1ce70e8b18b0d58b853f17a73c943767c021419f6545095ae980a7474c23a1bad3ebd6af07d3 *ce1cbbeb71e25c7ff35e8cb92ae1e46525477fee19befaae676a47ec8b7ef978c4d2fd8296752e *61774d412dcdfed4dd5c37dd029b60c05d15db843f25c7d97bc62505a178b731c61c7fb2c573dc *7f15fa76587ffa6936df7ff62917e030da01045775fe5c47537633f9635a2c72dd140002402240 *497889ed175c914df9161f79c185e5e17022fa02a0702545c56291bd19371c64ea899324955c7a *b965452f5a14e37633a6f5cf5b30bdf2854d040809ce9ad12070884765fee1629e7c52342075d9 *65535342710e39279d761682679fbfdcc6e8a3140d20e9a494524a49a5984e2a50a6990eda239d *a02ada1fa4c90c45eaa98680aaeaaaff7cc16aab3cee89eaacb4d66aeb1a894ca0ebaebcf6eaeb *afc0062becb0c4166becb1c826abecb2cc36ebecb3d0462bedb4c2fee64aedb5d866abedb6dc76 *ebedb7e03e4b81b50c946beeb9e8a6abeebaecb6ebeebbf0c62befbcf4d66befbdf8e6abefbefc *f6eb6fba148cdb85aeff166cf0c10827acf0c20c37ec30be0193fbf0c414576cf1c518676c71c4 *034fa0f1c720872cf2c8242bccf10f0497acf2ca2cb7ecf2c5270390f2cb34d76cf3cd38ab1bf3 *cc39f7ecf3cf4053bcb3c741176df4d148d73b74d24c37edf4d14bbb0b2a03d1f0bb26ba55574d *7500f56a5dee340effd3efd5f27a6d35d70683ddaed6662f2cf6d768dbdb36c351af1df7b973cb *7d37d67be72df5dd7e1fec75e0f30ebeb7ddff127e2fdb87e3dd38c38c9f2db4c028138db8b959 *a3ad36bd7367bef5d6fe8aab1b39e3917f6e7ae18f6f8e3ae69a4bc37ae959832e3bdca3bb6eba *ea6503ceb5e7a0efde7aedaf3ffe37eb9f7bbeb9dac8db9eb9e1f7d6cdaed9c6b7de75dfbefb0e *b7ded7f3aebdf49c375efaead94b0f3cece2972f36f9d33b2e3bfab55bff7deec42f9ffceddcb7 *7fbcf0ee3abfeef9ee738f3ad8c03b1df8a277bde2592f7dbda3dff4e667c0f0314f81ea539eed *6687bdf8d5af7ce17320be98b7bc02f24e7d0a9ce0079546399959ee79ba3320eee0d5b600866e *7f5f73a0041b88c00c0a305e1cc4a00ae386bede1d30818ec31f0a2378411b6eef75156ca0e100 *7838f6a5f085ebd29fe89ef8c3247af080504cd7fc3ad73f2b1eb17b1634fe62172178c41cf24d *885324e215c50841dad5908005241edfd6d8c22ceaac843cdb1f15db083f2262717749fc221fc1 *c84642d2b08c3a74e10f155941d2851091851ca00e1f49c700221162783ca11ed508c4ee6d7191 *68dce415a1e73fbdc5ae93ff13a12abfc74047decf82763c230fabb8bd1eae9085af24e5125308 *442ee64b8a4f0ba6304539ccc2e90b98c54c663063394c66a20b99ca8c66d29cf9346a9e0b9ad2 *cca636b7492f6c72f39be00ca737c349ce7226739ce64ca73a9186ce75baf39d386b273ce7494f *95c9b39ef8cc27c68616b07efaf39f000da840074ad0821af4a0084da84217cad0863af4a1108d *a844274ad18a0e345716cda8fe4637cad18e7af4a3200da948259a087d9af4a42a2b294a57ca52 *8ca9b4a530cd27b7daf5d27681cb5ce152164e73aa4976f1f4573bfd69b8820a2d9b6a8b0234ed *02bcbe85d47209b5584d65004fa3eaaea7ee2aaa56652a519f655483052ca93f586a4ffff555a7 *8e35636595ea59bd4ad5ae6e0cab6b055a5af36830baee2badeaaaa94fe37a57b8926cae7cf517 *5edd5a31c03acdb00ad3d50302b0d8c632f6b18e8d2c64273b5874e9755d7615ac5f478658bab5 *75af30db2cd33a8b30c51ee0010f386d6a51abdad6b2f6b5ab5d6d65cf75597565b65fa405596e *13365bdb061661bb355a70ffa5d80728e00110602c040e0081c51e77b9c80d0074fe93db5ce62e *b6b7e5aa6dba6646361c36aeb3800c65e2cc05de5992f5b398b55c77b528de3996abbcf9f2e5e4 *762acb7ee92ab9c83d400498ab5cd42637028c7dae7153dbdc001c17bb0cd02ebab86b5eefde91 *be98b3d8dde01b477e21f85c0c96237b9348e1c535b1bd9a85f01af7a52bba4877b1d2302e0496 *dbdc020400c0d3406e739b8b60056358bd0dbe5f0f19005ed1512dc2808ca1907fcc432047f8bd *a27d20f2d6b7cb6ba2d7b71a26dd059b6c431e27997a54a66104993c4b337652751d5662978578 *df161b0a000e60717457fc83200800c00a60718d95faae0cb3717c1316ed8ff166e4f01e99c87f *f6f390ad2c622f7f5190172eb479f1fe7ce7ea91f7ca2084e404c3484931ffb18d61eea0207dbb *e238af18026d4ef38a0bb0e2074400d4a86840a93f3de7b0d619c72b1c212a096dd63eeff9d67d *c3b58f83ac6b242b9a7f8544f493b70beb198ab9c2878c5ba64b99ec0defb8d11a7c26a429bd69 *62b3f8d32b0e429ae34c17082820000900c0a7e37c6a08b41a00628df2ef648d3bd2e63a86ef06 *349f8b3ce43c2b9ada97dea1d7125deb115fedd04c8ce3b24759ed66d3cf75f65ba293ef8d6f1f *e2afcce52635aa8120ea4f9fba01e2c6f6a8cf9dee38429293beeef7adebfd677807dac87c1e72 *873f6ec98577fc74ecbe342343ae560d57bae000bf791583f86886435bace3c6f60f420dfe8153 *971be3a34ebab9879d603a5715c70d9f39ad6b5e725d7befe424cf3acdeddc6c270a9ce9375637 *2519d9c1ad435d8e92f6a5d72dadf39e8b9c8c7024dc7dcb4df71f14a0cda496380490aef11573 *fcd5c153b8fc3c8eb61e6bb1d758b775bc953ded8317d1f12e073ce16937e52e1fdbec81af9ee5 *e1c849f27551cac18b7c1e7339e6a72b5de23f80c0dd699174a49f3aef7e67ba8d457cb0e1ee53 *cf26033bed27667b91c5b2f7c89e5799351e81d44760f50bf974b8fb5ef4bf3f3df7bbff18f043 *fcf2f9be7d64ef83d7f4ad79df0234e0f5df4ffda8832071a493fafb7b5f3a58d12d79e0e25efa *ef777fbc6ebbb0e963ec96f98bbf7beda52bfebaabbae8a997004557170b11017c5774e81701ce *4758b5a77fb7177df2577dbce780724581fc725f0258741020803f10011ea86a04e87d00f0811e *b8770a287b4ec7806c0581686581d4d77ed64775a3e582fad27fdf2780e8f7030d2080119000c7 *17047cd7837bb70027b87e6205523b35520a958423357f13a08400c58450285252085146757125 *d8000b907a3bd80002d0000d4080009000dff77d42b8803e155238358508b5864a387f6ce84f6e *188748e8541465543ed8833b280009907a1247003246803dc8875af87d68185388e84e36d8000e *208004d005af220d00488687988896584ebaf285118062e0f603021889925800957889a4c84dc5 *feb51d4220009c088aa3588aae184d25068ab2d88aaf588bc2148bb21889b4688bbcc834b8988b *acb28bbd388c45f38bc0a82ac2488ccad833c6788c74928ccb188d35d38ccef80fd0288dd8c832 *d4588dd2708dd9f88d23b38ddc1800de088ee6a831f4d73c28e86ae7d88edaf85bddb48eece78e *f44832bac25146588ffa18324f888fec327bfb18904f039002599048932b069990c184470ad990 *a385900e199145c3901259913e53427498911ab9911cd9911ef99189f091223992245992267992 *01330121a97b16d99222a32b2be99232e93230d9052999553899933ab9933cd9933f15923e1994 *4239944459944149903399941983944ad99414c394fe4e19950cf3525a50955679955899955ab9 *955cd9955e1905e642955f39966459966679966899966419964ea7966ef99670199772399758c9 *96ec48977899977ab9977c699676398f7d199882399884599845f097e662988ab9988cd9986589 *98e5e2989239999459994f00990c60999ab9999c299998d999a0199aa299979f399aa6799aa8f9 *95a5999aacd99aae4905abf99ab2399bb43904b1599bb8999ba8799bbad99bbea999bcf99bc239 *9c8a199cc4799cc8a997c6999cccd99c6ab99cce199dd2d995d0399dd6799d59509dd8b99ddc79 *99d9d596dd199ee20905da399ee6399ee5799e43c02a87b295ffa09e7b999ef0790b43220df4d9 *9e5869fe9ff47966f30997f2399f86a29f3821a05549a0f8c904fcd99f56f99ff019a0d1100409 *6a950f4a0413ba0415aaa057c9a00a4aa0d3b09f94a09f06daa1147aa110faa01d2aa26b82a119 *fa9d77a9a2084aa2027aa2f619a3f599a006ba9f387aa037eaa257a0a1fd19a2150aa2132aa435 *ca9f3b4aa4397aa03c9a9d2c0a984b9a0440eaa0459aa3a0b29e244aa5431aa457faa4b0d9a489 *c9a54710a5253aa5f8b9a3635a0448aaa35b0aa660e9a591c9a6680aa35a4aa6691aa6113aa749 *6aa670ea043e0aa0722aa5584aa6766aa478aaa611baa77ceaa69989a84220a6819aa7591aa780 *3aa6ef89a387caa849d0a7e749271efaa1326aa234aaa787feb2a59f7aa6984a9e8a7aaaaaea9a *9abaaaae6a98adfaaab21a98b13aabb64a9aa97aabba4a99b5baabbefa9cb9faabc25a98bd3aac *c6ea95c57aacca9a95c9baacceaa05cdfaacd25a05d13aadd68aaa4dd7a2d7baad6b19acdcfaad *5c59ade03aaeb6e9ade47aae4c9aad4e8aaeecdaa3e6daaef08aad6219aff4ea9deafaa5f59aaf *4ba0a9226aaafaaaacaddaafb7f0afce1ab0218aa004ebaa06cba1167aa9090ba6013baa10daa8 *a15ab194eab00fcb9d11aba3257a9f493a27f719a9190b9f1b8ba28f6aa89d5a9f234bb2efea04 *52faa1275bb155bab22c7baf6f2a056736a3315ba814bba634bb9d1bdba93b3ba956eab33f6b9d *41eba143ebaffe03aba447abb12d3b0923eaa01edb9e742aa44f2b9efc7aa5172ab04afa9e959a *b5dd29ae627bab645bb6b37ab668fbaa6abbb6abdab66e7baa701bb78c3ab774bba7767bb76c9a *b77acba57cdbb74bfab780eba2823bb8185ab886db9f889bb8353baf8c3bad8bfbb8e619b992ab *b5515bb9c34ab9980bb536bba89bbbac7d9aa251e0a914fba20ddbafa2abb41dfb95187b95a05a *a046ea95ad5bb45e5bb58bc9afab8bb3eb29b5169abb540bb2c0dbb45d39bbae2bbc5940bc6a19 *a0c6dba88e89bb133b05b18b04cadbbbcf8b13cf9bb3d52ba1147a962a7b05d39b9fda1ba69e79 *b94af0bb5d8ba759aabc222bb11c6aa3bb6bbd20ebbe53cbbcaf9bfebb561baa1e4bbae71bb244 *ebbb581abff17ba8a51abc37aaa5039bbe351ab2c1ebb4cb6ba2079cc084b9b520dab4dd5bc114 *7cc1f02bbc169cc11c5ca443babdef1bbd1b3cc2204cc2d66bc2dd7bbd188cc2cb5bbd2cccbc03 *bac21a2cc327dcc2196cc1d38bbc6fe9bc300cc1b6cbc230aac2120bc3427cc0205cba254cc35d *7bc4135cc34e5cc102fcc14facc44690c3147ca73d4cc354bac297fabd3e9cc282c9c345bcc052 *4cc2f23bc5684ac4d87bc3761ac25a0cbcf2fbc2266cbb682cc7360cbf1b4cc76b3cc72f4cc76c *8cc7276cb4b8dab9d09bc4754cc57e6cc570acc65e0cc1a4dac0889cc7426cc7879cc5953cc7ef *7bc96edcc7947cc635fefcc1411ac1e42bbd5c4bb4489aa6513ca3823aaa73dabe6b2aa6f5cbb3 *64dcb1320ac7390bb347eaa9a07acbecabbf53bbcbbb1ca7ababcaf9abcbb55cc0fb0bb357acc3 *3b3cca6ec9ccb03b9dd08cb7ce9c96d32ca1d7ec9ad9bcb7d5ccbddbfcb9a2a9b9e08cb4dd3cce *0a5bce92dac4d0fbcdbacb95ecfc04824cc4480cbe6dfccb61db9cb1fabd56f0cef00c9ac4dbc5 *d69cc69f2c9df97cbcd95bbc99cc97d0fccf998cb1fc5cc5d22bcfcc19b4092cc50bdcb3ba3ccf *0f4cc6b76ccca60acaa43bcc21fdb5bf3bc4020bb63ebcc81c6ccb2f4bd2aa3bc4f90bd3e7ebb0 *1dadd1342a9b0bbbc76facc63bddc92decd39a6cc97dacc140bcd2920cc8fe952cd4571cc9113d *c94ccdaae86cc8807cd43c1dc8417cc96bccc8409dd22ebcc4128dd45b6cbf4e5dd5931ac7aaab *c8542dcf50bcbe30cd9a62ecc256ddd4686cc8926cd1630dd47a8cc11d2cd0480dc6caacd464bd *d3733dc349cdd7833dccb4f9d69fecc510cdc5c6bbd574fdd4981cd4600cd6660cc94e0cd785ed *d831fcd48dcdd9caecc8504dc8a35bca0d1ccab41bd2ae1cc055dbbe8cdccbb65cba19ddd0b84c *a4368abaa10dc5567ad0ac1cdb29bddaaafcdbb83cbff77bb21f9b9a8bfbd084a9dc7bc9dcf389 *b8ce2d98d18d97d37d9ee28c9ad53d97a2aaaad76dceced9ddde3dd1514dcf5a39bb165dd9058a *05d95d96f19cdaec9cbaf5dcfeb06909de6f29c270bad0623dbaf97dc4d47b96f4ddcedeebc655 *e0c9c99b970ecddfeffdd5fc5dbef33ddef30cccfb3ba03a5bbf318dc01febc0a4fabaa20bd215 *eec1175bdb1c2da9045ccb227dccb1cdb41daec71a3edbc5ecd55d5dcc894ccbb0edd288bdd2d4 *e9e07a1dda4a0cd9995dd947bdd5941cd89bcde329acdb43bed4992dd97a7dd0782db4314dd946 *bcde4720c159bdd645bee3654cd402ede391acce269be4843dc2400ad8457ede398eb5228ec763 *aeda448dded15ba62cfde63d8ee57e2de5538ee3368ed60d8dc8632dd63feed984dde79a3dd9bb *1dd79e9dc7776adf60bdbd7f3dd48fedd4faacd661ded3f4ebdf789ee5626ec45dfeaee957bed7 *602ec72a6bbe87ddd7a00dd87fccc767cee9022eeab24de63fedbf6a5ee35a4eea4f1ceaaafe98 *785ea6fa3bd3f77bcc534acc014ca8244ecb3aabe62c1edc27fee12b7edca81ccc91eac81e6ddc *b28dbf025edc003ce25eebc01d3cd3758ae1bcfee4ed5d95676be7c419e94f3bee886aee474bb6 *db8da1ed9eb1ff1ddec419eff22e9c8a6d98e11edfbc4dcab58bb3342decfb5cc84c5ba7fb6ebf *a97bca55acedb49aeb9399e00a0ea5fbaddf725df0fd5cdad7ebd77e0ca53addc35c3deb0b4fda *7249ee77ecb2098db0145ff1e25bf2fa8ddf8cfdc7364eca55bde8587cf27319bafdbbeb360dcc *132bb2388fd814eeda12fec3dfcee1fe4c5cd223bed16adab38ceecbeddde8239ded836ee632ce *b532bfe4305fe8198f96cecbe5506ed444aee42afde7b59ef0312ac3461ee4773df2814ee8acce *bf98cdf575aeee649ff6fe79e9190fea5fddd275dcc428ece57cbfea231ff7183fe7564dd5a0ee *caa86df8181dc207fbe9569fd5a66bd2ef8eac76efe77caed2317ff95dafd963bcd9312fe788fe *f8afeef97bcec5339ff7a8eff89acee40abef134ef97950ff760ffda9d7df6946deb15fef6562f *e98b8cfb9d2eda18efe8251ffa861df6464fe9968fc4190ee341fff2b80ef2f01ccc4a1fcb376f *caceaedad71fecd3cfb30a1feb70eeafe9ebbb82aaed376df43affca854afe7faae21dcffeca4f *efe24e8bbaf4fbed0cacf50c9fb8721fb8f76fb8f9cfa3f4deae20108800599a279aaa2bdbba2f *1ccb2a530f8100d4ccdcfb3f30281c128bc62332a90cee6eb9dd322a9d52abd62b363b6be274b5 *e2c817ce8e4d92335a0250f7d2e8d8d997d6d2eb7625f7f9050303753f0a9b60101b49e1cb214c *dc5ae29de323e44a9e170f9f0c200026194ba3dc4c6167cb61e85aa4e969d624541f66eb5859a6 *889fac092c09edad26edc86b2b67499c5af06823a8a1b030e3dc1bf0e062e90932a33229aaf535 *90ea9ed86d77a637a0e63738796d79f879facaa8613bf4a0d99cbb20fcfbfcb159e03d3476bf7f *b68d2eab7ee00aa7cb5b095fe364892bc350fe9dc130e2a2e5b3f78e19b08cfb8c6d6496a8d8c6 *7f2247c2d05689dbc25ae8c6256c997285c4132b67cafca5115e3d8afa2cf2c3a9b3a23b8bd548 *12fd67b20fc4722e5fc67469b01bcd85e82602153a2f67279f41713a0b44ef66d0a262491e6515 *8b9743aa0c67459499d6952ba96c6779a5b74c9ab278cf9a516bf666d1dfbdc70407c347752ce2 *486513c39c719831e4c863174b3617439c9bcc9a3773eeecf93368cd9547dba13c1a17e9d4aa23 *9b5eedfa356ca301f59c8c6dfb36eed2b329e5eeedfbf792d6c087132fce42b8f1e4ca81235fee *fcf9ebe6d0a753872cbd3af6ec22af6befee5df1ee81dfc79387c4bd3cfaf478c26f53effefd7a *fe064e78c3af6f7fc8f9fbfaf797c8cfff7f7dfe0138607a02127860648f1d61200a7439f8cd83 *114238a184155278a185194e0815861d6af8a187218238a288259278a28929a2b862875730a89c *8208fe1663112f5a26238ec5d9681c8d39ded6237eecd586d252b118694942401eb1162facd8e2 *23713baad010424a2849045d2f11f41494fd5c09907c02b547e4864a11d460919b0c71d0945de2 *26259a6c16c4168474aaf4109e494ec1a69174a655534d689df5a59b4610ea039c0ab11415a355 *2e8a505455c899549a4c395ae86a70def90aa59142fae9a052f069a95ca3528aa91687f690e852 *0a354a6aaba0aa1ac4a4b0022aeba5a892a6a9a3affefa7aeb4a52e58a244ba472a90b97b6ea6a *c5ac32b08a1a9367a914aaa09b4624d19356628ba79da825094b93472ebbab90e9353b6e51e796 *542eade8bacb18af33be6b9bba2fb03a2fbe64b15b5ebdf95ed36f0bf1fa3bf03502137cb00b00 *1fb7ef992c3aac22c42072f830c5115b5c31c6176b9c71c62e323c9ec2083b12320d1ff740b2c8 *296f61b27728abace614f7569a82cb58442bc4cd2c644bf3630fbd6c84c1c5be16ecce97e9d9c2 *9587613b6fcd26c85ce6ad8d11652a993426dde6cc094b7db0c159d699f32edefedbebd14b8bdb *aa8361e782ecb45a0a5da7b831ddbc6dd3b0d54d82cc8a36656cba80fe2af45a65774a8ed797fe *bdb7a7fe030b1c38a8c2668d4ab090ca7d6dd444435450db373a25b9e56b478ededd94cc271e91 *7ac72af8d437d2a468e5b82a7bd0447cfefda8e68ab34ca696ae9ae9a5e49be7827aefb4333a15 *8780273b7b5c50835ec5b3bdf83ce85c99fb93f3ef9f7b3b772f5fdf893ab862878b56f6d2fe4e *70d0b8859eeaf920337fbbd13f279cbebbe5ffe83e63a13f4d3ffef18d3ee677f0e74f6c14e4f7 *bf0132817d043ce0b090f0ac8d319063299a580323e8c0094ab08214bce0dba420c0d8f80f8167 *a2c2fd3c28c275858936e61ae1f4d65742fa20857ab4fa1c0c8ab62619e26e09c8bae1da508837 *035ee2686bc299951ed7ae3db92a72c9c291fd78a8b562f5feeb5c4a03209632881473988e8942 *cc5fbc9277b6f0754b5076f29c5b92e7331aaaae4f69935e63e2e23cb5e5f0798d6b0bed7294c4 *1592ee649ed35d4a6672b8dd212f813a1b9c144fc7b741aa057866f423169518c32a8dd1329ddb *a323bfc53925e1717874bb21a70839be5c61d26f6243d01cf737243bc6914abeabe4396cd1c729 *ce0e69a783a3dbf656bbb7510d81597424f136f44875641079306c53967cf54bb2e52e92caea95 *1e7d2847158a1288d0822517b3c7a42ec62e98d6cce125d8c62d6cf20c2ed5e36693ae87c3b389 *8f8c89a423fffa86c8258dec8a040ca59846e9983bb08e5eeed4611236c82c7342117d1dec123c *4d38447c1234fe05fa1c5a4121c7cc7826b4a14053a4430916501636cc8216a5200431a8d18b72 *74a31eada0c7d029cfeefc33a268022144b766527c1ed435255de93d83245220b6d131a1e3a742 *75162eb764336a530ae7cec6594e37b6449c79724e168fb84849fd7049457baa52632ad5f1c992 *a79f7a4a3de388b6409a62a2759ca71569a65251418ea845fd63d6bea45663c649acac2ba4e1a8 *88d494a29567608c9b329fd7c53e1d929b47a2a64f5fc838b162cdae50f1535f87aa4c292a2876 *8da3e52cc5f80fafa6b3874f2ca6260107c8c325cea9833d29614f0a49480eabb1dbfbebcca836 *d8979e82573d9325e60679cacdde558bb37492591f77d9d1f2f27afe850d2d2e33d9bac0721512 *941d69fb6ab54b63a992b6afb3aa0d732b44e53ab79561352d68b5aa39c766574774d5295595b2 *4abf5537bc789cea0b3e49dcb2f136b3d63b56a5aa8857e09ef7b6a7382e4d43a5a763cde58846 *fd6b7f0ff9df39b1569286132736c1e7a7e829b62104f69ef33659da6f858dbbc969697e0b8cde *65f670b20b15e814a39055982eb17dcac130ce70baa781517224f81d28894788e2d468d8a42f0e *3128a15ab8c522cd943ab5e68e7d6b60f1c5e92dbb78ce8c491332f53eb66dd95a6b4ff92ae122 *3ac56b16bef28ec786d299c2583d9ffded76c15ce2a5168f9167956f5cd35ce60b7f7739009ba6 *2bbb9bb905c32dc271fef331749d2c483c875575c3ecea87295a437eb970bdbb2daf6c03f94921 *a336be91d5eb72927c1a43155ab7586b6fa418fd535c1609d2d9b5b07d01bde56676d95cd22d2e *75dd0bc84ef7b994a0bdac9a43ed1b495766c9414d2b7c55ad6bf602b88cc86cb2ec38e9e15133 *b4d400625c35ffd460b5812fc141c6dca2ed6c641f476bd1916e338cfc05e514121bc41f8cb135 *b6cd662ef38bc526e676ccb02d6b70e38fd692a971446ffced1c3776a768ecf17ab7d7df665b7b *bb0e49e3b4b3fc2675f308094cd62eaf819b5e9b86f79b079e73950b8be5e2c24c83045f27494f *9d56fb8a7be1be2b9e637d613a81231c76ccb93871de5ce98d6ffab07cadfe966225ccd8fd2a1a *589d1bae9f31ceac407fb5c3ee817337c58c68d232768cb7f6772d55ebe9deb83b4194feb29c67 *aeeb571159ea5484b5ac46ac5a85d393e7953db797353ee1d94efd5466862c3989e9ea4f471dde *212575b93dbb35a5e51ad366ef35dad34e6d418679773a676ab7054d4a1941ab41085eb617193c *27e36debb4ff05a79dfdcc2d500f9cdce4713b49c11a09790f9add5a067be5e17ef99fb5f8be5e *472e993d7fc0a64306f309e5fce09108137b83f5c860b3f7c10d0e5406db7c9c8feffdd70aaf1b *cbab4feee00dad8aafde702993f37c66d33a568df8f157e77abef95e10ca5d3f16a8dffbecdca8 *d59af92c6263d2dd75e67f35fe5b11fef662c71d4b2b27b9dea7c25fe56d35ed9cece416f73ae1 *273ef2f97e6d729a6415ec695ed8711ffd9d56d9d1ddef395a027a5f1801d363351e1a8d9866fd *9d02a1dc70a81cf7fd19f7a483dcfc96830556232d0a6c6d113071d7cd811c9f51e0de5ddf4311 *5fec15e093e556aaad4e049a99a9509ef0491fa82593b5689795f9d4a848df86d508060287ad59 *4dcb3545a6114df5550bb8445c2c5d8ee12ddf93449fb0889cccb14da399a00b1a210c1220e1b1 *dae1b1d15b3dd8e438985e45def7b02081fd1f097a13e4e9201a8a9f15b05efd4c9a1d50e0173e *82aac055ba85a1cfd14f81f16111a6cabca5c211ca4b826858eec91cef88e121aefe8c20829eea *9d93e815df25025e2066620c6e62bb2da26f681f410de02082622856627690223e99a225a2e2cb *e06162b0a20eb962eac1a2fbc82262d0220ad9a2c7e122fde8e2f601e3f8055ecfbd2231728d28 *f6062f8e902f8e5932a68c308a45338ad03346a38c2d2336fedce9b550477de3478523388ea338 *962339dea1366e23f9a4a33afacb34b6e381bc233c0e883ccee37fd4a33dee073ee6e37dec233f *06083bfee3b2f8a340ba074116648104244216ca412e247934a4437e07444664774c2445668745 *5e647564a4464e0747762492292448c6a3488e243d96a449de234aa6a43eae244bf6a34bbe2440 *aaa24cbecb47d6e4c9d1244e8ecb4dfeee24d3c5a44fa2474f06e56d0c2551c686511e657400a5 *527a8749ec005446a5544e255556a5555e255666a5566e255776a5577e255886a5588e255996a5 *599ea5558a125aae255bb6a55bbe255cc6a55cce255d8aa55ad6255ee6a55eee255ff6a55ff2e5 *7c4c00050c266116a6611e266226a6622e266336a6633e266446a6644e266556a6655e266666a6 *666e26672a66604e006886a6688e266996a6699e266aa6a66aae266bb6a66bbe266cc6a66cce26 *6dd6a66dde266ee6a66952c05dfea56ffe267006a7700ea75bf2663c11277226a7722e2773f6a5 *71d20603e8266936277556a77556a7748666553e27254467768226055ca7788e2779fae5fe7786 *275572275482a600b4a77bbea77b02027c16007d16007c0e66799a6567ee277ff6a77ffea7655a *2568a2257ea6a75ab2677d26a882caa77b1600001800840a807db66781e6e75802288666a8866e *28664e80807a28031080888e28898e685656a854aae70eb0e78342a88bbe280230a8843e680104 *4001188000e08000a0a88582e56056009006a9900e299116a9911e299226a9922e299336a9933e *29944629920e685552290158a50010400160258f42a58ad6007b224082ae8584ca677d1a408d8a *c08d8ac08ea2678f86e58f4aa99cce299dd6a99dde299e26299552a59512007cbea7886ee95576 *e90e7ca977b6678b1a009932e88bea6800b8fe280e10ea9b6e659ce6a9a55e2aa666aaa636e99e *4ea59586e89f6669960aaa554a2a03182a7be600a4ea687bcaa72c38a8a3426a9b4e2a9c52c0a6 *de2aaee6aaae4a69a74ae5a78a2aa0b6a79672a99ba6e8814e00a2ae6a8332282dd4a80088699a *ce2aad7e65a5eeaab55e2bb6de6aaf46e5af16809f0aeb840eeba0166b54a22ab2aaeaa3b269ab *96c07b3e2a9abaaba2462ab94eab56566bb6de2bbee62b946eeb7a82e8957eeb880aeba812eb76 *1e6b7cca42bb92c09f3e2a094028c29a2abd6e27057c27c556acc55e2cc682289ffaebb7866aa0 *12ac811e67aa86eaba0240a84e1385ce6bc40e6ac6b6accbbe2ccc9ae687d64089d6ecc78e6bc1 *828aac60f6e7caf6accff62878ee67ce42e7cef2eccf1e2dd25267d176e6d07667d23e2dd4466d *5e1aaad456add55e2d572ea6130c00d776add77e2dd886add88e2dd996add99e2ddaa6addaae2d *dbb6addbbe2ddcc6addcce2dddd6add94e13dee6addeee2ddff6addffe2de006aee00e2ee116ae *e11e2ee226aee22e2ee3e26d0800003b newhex * rmfile ./docs/brubeck.gif hunk ./docs/changelog.html 5 - HaXml change log + polyparse change log hunk ./docs/changelog.html 12 -

HaXml change log

+

polyparse change log

hunk ./docs/changelog.html 15 - -

Changes in 1.17

+

Changes in polyparse-1.00

hunk ./docs/changelog.html 18 -
  • New: lazier pretty-printer - -
  • Works with ghc-6.6 (changed uses of Data.FiniteMap to Data.Map). -
  • A bunch of minor bugfixes. -
  • +
  • No changes, but released separately from HaXml hunk ./docs/changelog.html 21 -

    Changes in 1.16

    +

    Changes in HaXml-1.16

    hunk ./docs/changelog.html 31 -
  • New: lazier tools - -
  • New: API call "xmlParseWith" -
  • Bugfix: to permit percent character in attribute values. -
  • Bugfix: to parse unquoted attribute values starting '+' or '#' in HTML. -
  • Bugfix: to keep the original DTD in output of 'processXmlWith'. -
  • Bugfixes: to configuration/build systems. -
  • Bugfix: DtdToHaskell nows avoids generating types whose names clash - with existing (Prelude,HaXml) types -
  • hunk ./docs/changelog.html 33 -

    Changes in 1.15

    +

    Changes in HaXml-1.15

    hunk ./docs/changelog.html 36 -
  • New: DrIFT and DtdToHaskell have now both been fully updated to - produce instances of XmlContent. +
  • New: DrIFT has now been fully updated to + produce instances of Text.ParserCombinators.TextParser.Parse. hunk ./docs/changelog.html 46 - -

    Changes in 1.14

    -

    -

    - -

    Changes for 1.13.1

    -

    -

    - -

    Changes for 1.13

    -

    -

    - -

    Changes for 1.12

    -

    -

    - -

    Changes for 1.11

    -

    -

    - -

    Changes for 1.10

    -

    -

    - -

    Changes for 1.09

    -

    -

    - -

    Changes for 1.08a

    -

    -

    - -

    Changes for 1.08

    -

    -

    - -

    Changes for 1.07b

    -

    -

    - -

    Changes for 1.07a

    -

    -

    - -

    Changes for 1.07

    -

    -

    - -

    Changes for 1.06

    -

    -

    - -
    -

    -I didn't keep detailed changelogs for versions before 1.06, but -here are the highlights. - -

    Changes for 1.05

    - - -

    Changes for 1.04

    - - -

    Changes for 1.03

    - - -

    Changes for 1.02

    - - -

    Changes for 1.01

    - - -

    Changes for 1.00

    - - -

    Changes for 0.9

    - - -

    Changes for 0.8b

    - - -

    Changes for 0.8a

    - - -

    Changes for 0.8

    - - -

    Changes for 0.7

    - - -

    Changes for 0.6

    - - -

    Changes for 0.5

    - - -

    Changes for 0.4

    - - -

    Changes for 0.3

    - - -

    Changes for 0.2

    - - -

    Release 0.1

    - hunk ./docs/developerworks.patch 1 ---- process.hs.orig 2006-12-11 16:50:45.000000000 +0900 -+++ process.hs 2006-12-11 16:41:50.000000000 +0900 -@@ -1,5 +1,7 @@ - module Main where --import XmlLib -+import Data.Char -+import Text.XML.HaXml -+ - -- Concise XSLT-like specification of output - main = processXmlWith (hexagrams `o` tag "IChing") - hexagrams = rmfile ./docs/developerworks.patch binary ./docs/icfp99.dvi oldhex *f702018392c01c3b0000000003e81b20546558206f757470757420313939392e30362e32323a31 *3335388b0000000100000000000000000000000000000000000000000000000000000000000000 *0000000000ffffffffa00295bae28da0fd3f0000a002a300008da0fe0600008d9f8c7ff78d9115 *733df30f58ab510b000e6666000c00000005636d723132ba4861736b9a9bbc656c6c9604b32f61 *6e6493584d4c3a9347656e6572696393436f6d9862696e61746f7273936f729354987970906443 *652d4261736564935491fed33472616e736c6174696f6e3f8e9f1b79948d8d8d8d8d92008d56dc *f3104bf16079000af333000a00000005636d723130bb4d616c636f6c6d9603a6665791ff166561 *6c6c61636593616e6493436f6c696e9352756e63696d616e8e8e8e8e8e9f15ef238d9200b201b2 *556e697695b221657273697493799603a6666f66935991ff16656f726b2c93554b8e8ea001fa00 *008d8d8d8da0fe2200008d91edbae2f319740c893a00090000000900000005636d627839c44162 *7374726163748ea912e9988d91edbae2f30e6fb48bc700090000000900000004636d7239b95791 *ff3aab659602bea370726573656e9abe397493749877986f93636f6d706c656d656e9874617279 *93617070726f61639868657393746f9377726974696e6793584d4c8ea40a00008d91edbae2646f *9541c763756d656e90be39742d70726f9363657373696e67960315546170706c69636174696f6e *7393696e93619366756e6374696f6e616c936c616e67756167652e8ea18d91fb3ae2496e96031c *da746865930c72737493617070726f616390be39682c91031ebb7468659367656e657269639374 *72656593737472756374757265936f6693584d4c8ea18d91edbae2646f9041c763756d656e90be *3974739603f4ab697393757365649361739374686593626173697393666f729374686593646573 *69676e936f669361936c6962726172798ea18d91edbae26f669602d44d636f6d90be3962696e61 *746f727393666f729367656e657269639370726f9041c763657373696e673a9103fbed73656c65 *6374696f6e2c9102e14f67656e65726174696f6e2c8ea18d91edbae2616e64960315547472616e *73666f726d6174696f6e936f6693584d4c9374726565732e8ea18d91fb3ae25468659603107773 *65636f6e6493617070726f61639abe396893697393746f93757365936193749879709041c7652d *7472616e736c6174696f6e936672616d652d8ea18d91edbae2779abe396f726b96022c86666f72 *937472656174696e6793584d4c91022c4b646f9041c763756d656e987493749879709041c76593 *64650c6e6974696f6e73932844544473299361738ea18d91edbae26465636c61726174696f6e73 *9602e39e6f6693616c676562726169639364617461937490be3979709041c765732c9102ed9061 *6e64936193646572697691ff7c726174696f6e936f66937468658ea18d91edbae2636f72726573 *709a41c76f6e64696e6796032b6a66756e6374696f6e7393666f729372656164696e6793616e64 *9377726974696e6793646f9863756d656e90be3974738ea18d91edbae2617396031554749abe39 *79709041c76564937691ff7c72616c75657393696e934861736b98656c6c2e8e9f178ffc8d8d91 *edbae2c4318e91fdb46f496e90b44374726f904bbc64756374696f6e8ea68d8d91edbae2312e31 *8e9105fcf1446f904bbc63756d656e90b4437496038cca6d61726b7570936c616e677561676573 *8e9f0fcffe8d91edbae2b9584d4c91049da228457874656e7369626c6596049e084d61726b7570 *934c616e677561676529935b8d318e91049ffe5d936973936193726563656e90be39749373696d *2d8ea18d91edbae2706c690c636174696f6e9604fb956f6693746865936f6c6465729353474d4c *9104fb17285374616e64617264697365649347656e6572616c697365648ea18d91edbae24d6172 *6b75709602ad334c616e677561676529937374616e64617264937468617493697393776964656c *79937573656493696e93746865937075622d8ea18d91edbae26c697368696e67960484e4696e64 *757374727991ff3aab2e91086b1f49749369739361936d61726b7570936c616e67756167652c91 *04e0c76d65616e696e6793746861748ea18d91edbae26974960417636164647393737472756374 *7572616c93696e666f726d6174696f6e9361726f756e64937468659374657874936f6693619364 *6f9041c763752d8ea18d91edbae26d656e9abe39742e91054f3a497496037b9769739365787465 *6e7369626c652c910395286d65616e696e679374686174937468659376986f9041c7636162756c *617279936f66937468658ea18d91edbae26d61726b7570960381a76973936e6f74930c78656493 *7b936561639abe396893646f9041c763756d656e98749363616e93636f6e987461696e936f7293 *72656665722d8ea18d91edbae2656e636596029ef961936d6574612d646f9a41c763756d656e90 *be39742c9102b6a563616c6c656493619344544491029edb28446f9863756d656e9abe39749354 *9879709041c765934465662d8ea18d91edbae2696e6974696f6e292c910330b87768696390be39 *6896032b3d646573637269629041c765739374686593706172746963756c6172936d61726b7570 *936361706162696c69746965738ea18d91edbae2757365642e8ea18d91fb3ae254686596038541 *757365936f6693584d4c910385246973936e6f7493686f95be3977936576936572960385417265 *737472696374656493746f937468659374726164692d8ea18d91edbae274696f6e616c96021bd0 *69646561936f66936193646f9a41c763756d656e95be39742e9103c9444d616e937996021bd06f *7267616e69736174696f6e73936172659370726f70986f73696e678ea18d91edbae2746f960233 *be75736593584d4c91023384617393616e93696e95be39746572639368616e6765960233be666f *726d617493666f72937075726593646174619370726f9041c764756365648ea18d91edbae2629a *be39799603a9a26170706c69636174696f6e73936c696b98659367726170682d706c6f74746572 *732c9603ceb57370726561647368656574732c93616e649103a9a272656c612d8ea18d91edbae2 *74696f6e616c910315546461746162617365732e8ea18d91fb3ae248544d4c9105e98e28487970 *9041c765722d5491ff3aab6578749605ea494d61726b7570934c616e677561676529936973936f *6e65937790be39656c6c2d8ea18d91edbae26b6e6f9abe39776e9604b9836578616d706c65936f *6693616e93696e7374616e6365936f669353474d4c9104b9167b936576986572799348544d4c8e *a18d91edbae2646f9a41c763756d656e90be39749603901b697393616e9353474d4c91038ffb64 *6f9863756d656e90be397493636f6e666f726d696e6793746f936193706172746963752d8ea18d *91edbae26c617296031c6f4454442e93576865726593584d4c91031c6d696d70726f95be397693 *65739b031c6f6f93769365729853474d4c91031c6d697398696e9872656d6f9376696e678ea18d *91edbae273686f727468616e6496030750666f726d739374686174937265717569726593616e93 *6170706c69636174696f6e93746f93686195be39769365910307506b6e6f93776c2d8ea18d91ed *bae2656467659603fb486f66936193646f9041c763756d656e90be39742773934454442e934691 *ff3aab6f7293696e7374616e63652c910434c4696e9348544d4c9103fb0c736f6d658ea18d91ed *bae26d61726b757096038f54287375639abe39689361739361936e98756d98629041c765726564 *936c6973742993726571756972657393616e93656e64936d61726b9865723b8ea18d91edbae26f *746865729602e00c666f726d7393287375639abe39689361739370617261677261706873299368 *619876986593696d706c6963697493656e64936d61726b986572738ea18d91edbae2756e646572 *73746f9541c76f9364960292967768656e93746865936e6578749373696d696c617293666f726d *937374617274733b9102be2b616e64937990be396574936f746865728ea18d91edbae26d61726b *757096031b12287375639abe396893617393696e2d6c696e6593696d6167657329936973937365 *6c662d636f6e987461696e656493616e64936e656564738e91edbae29f07c0008900006666005f *ffa09f1d999a8d8d9ff740008df3117c7b590700080000000800000004636d7238bc5491ff4aaa *6f96026dc26170709a3c7265617293696e937468659350726f9863656564696e6773936f669374 *686593496e90c38e7465726e6174696f6e616c93436f6e2d8ea40900008d666572656e63659603 *06456f6e934691ff4aaa756e6374696f6e616c9350726f6772616d6d696e672c960312805090c3 *8e617269732c935365707491030645313939392e8ea18d4195c38e434d9102d558436f70937972 *69676893742e8e8e8e8e8e8d8da0fe2200008d9200f5bae2b96e6f9602dd58656e64936d61726b *9abe3965722e910409c7416e9348544d4c9102dd4a6170706c69636174696f6e936e6565647393 *746f93629041c7659361987798617265936f668ea40a00008d9200f5bae2746865960315547370 *9041c76563690c63936b696e64936f66936d61726b757093696e936f7264657293746f93646f93 *746865937269676890be3974937468696e672e8ea91697fc8d8d9200f5bae2c4312e328e92010d *fcf1584d4c96038cca646f904bbc63756d656e90b44374937374727563747572658e9f0fcffe8d *9200f5bae2b9584d4c910222db6973960223196d6f726593726567756c61722e9103cbb2416c6c *936d61726b75709368617393616e936578706c6963697493656e64936d61726b90be3965728ea1 *8d9200f5bae2776974686f7574960307c0657863657074696f6e3a910415a665769abe39657279 *93646f9041c763756d656e987493697393f31abc6a91b900090000000900000005636d746939c5 *77656c9078e46c2d666f726d6590871b64b93b91030c47697473936e6573742d8ea18d9200f5ba *e2696e679603fe577374727563747572659369739373796e9abe39746163746963616c6c799363 *6c6561722e9106d77a4f6e6593696d709041c76f7274616e987493636f6e73652d8ea18d9200f5 *bae27175656e6365960378b46973937468617493616e93584d4c9103789b6170706c6963617469 *6f6e93646f9041c76573936e6f74936e65656493746f936b6e6f90be39778ea18d9200f5bae274 *68659603e2ab6d65616e696e67936f7293696e90be39746572707265746174696f6e936f669361 *6c6c936d61726b75709365787072657373696f6e73937b8ea18d9200f5bae270617274739603a7 *f36f669374686593646f9a41c763756d656e90be39749363616e936298659373656c6563746564 *2c9603cc9b72652d617272616e6765642c937472616e732d8ea18d9200f5bae2666f726d65642c *96031554629abe39799373747275637475726593616c6f6e6593726174686572937468616e9362 *9879936d65616e696e672e8ea18d9201033ae2416e9602c2e0584d4c9102c2cb646f9041c76375 *6d656e9abe397493697393657373656e987469616c6c7993619374726565937374727563747572 *652e910400f454686572658ea18d9200f5bae26172659b034e0b7495be3977936f986261736963 *9860749379709041c7657327986f6698636f6e9374656e937498696e986198646f9041c763756d *656e93743a91048ddf74616767656498656c652d8ea18d9200f5bae26d656e9abe3974732c9103 *2f88616e6496032a4a706c61696e93746578742e91045b534191032a4574616767656493656c65 *6d656e987493636f6e7369737473936f6693619373746172748ea18d9200f5bae2746167960255 *62616e6493616e93656e64937461672c91027bc7776869639abe3968936d61987993656e636c6f *736593616e98799373657175656e6365936f66936f746865728ea18d9200f5bae2636f6e95be39 *74656e93749b033b1028656c656d656e937473986f72987465787498667261676d656e93747329 *2e91048da55491ff3aab616767656498656c656d656e9374739863616e8ea18d9200f5bae2629a *41c765960236da6e657374656493746f93616e90be39799364657074682c91026359616e649374 *686593646f9863756d656e9abe3974936973937798656c6c2d666f726d65649369669369748ea1 *8d9200f5bae2636f6e7369737473960304ea6f6693619373696e676c6593746f702d6c65769abe *39656c93656c656d656e987493636f6e987461696e696e67936f746865729370726f702d8ea18d *9200f5bae265726c799602bcba6e657374656493656c656d656e9abe3974732e9103fee7537461 *7274937461677393686198769865937468659373796e9874617893f31bdfa44e00000900000009 *00000005636d747439c63c7461673eb92c9102ce73616e648ea18d9200f5bae2656e6496041a85 *7461677393c63c2f7461673eb92c91045bd1776865726593c674616793b9697393616e93617262 *697472617279936e616d652e91072c0454686572658ea18d9200f5bae269739603ecd773709041 *c7656369616c9373796e9abe3974617893666f7293616e93656d7074987993656c656d656e9874 *3a9105cb75c63c7461672f3e93b969739365786163746c798ea18d9200f5bae2657175697691ff *7c72616c656e9abe39749602d75f746f93c63c7461673e3c2f7461673eb92e910407c954686593 *737461727493616e6493656e64937461677393666f729365616398688ea18d9200f5bae2656c65 *6d656e95be39749b02abc9636f6e937461696e986198746167986e616d652c9102c0e677686963 *9368986964656e9374690c65739873656d616e9374696398696e666f722d8ea18d9200f5bae26d *6174696f6e9602138961629041c76f757493746865937374727563747572652c91024719696e64 *69636174696e6793686f90be39779374686593656e636c6f73656493636f6e2d8ea18d9200f5ba *e274656e9abe397496034bf673686f756c6493629041c76593696e987465727072657465642e91 *04c05554686593737461727493746167936d61987993616c736f93636f6e987461696e8ea18d92 *00f5bae2617474726962757465732c9b0289c97768696390be3968960266e56172659373696d70 *6c65936e616d652f7691ff7c72616c75659362696e64696e67732c9870726f90be39766964696e *678ea18d9200f5bae26675727468657296039dde696e666f726d6174696f6e9361629041c76f75 *749374686593656c656d656e9abe39742e9105b60e46696775726593319373686f98777393616e *8ea18d9200f5bae26578616d706c6596031332584d4c93646f9a41c763756d656e90be39742c91 *03139f696c6c757374726174696e6793616c6c93746865736593636f6d70986f6e656e90be3974 *732e8ea68d8d9200f5bae2c4312e338e92010dfcf1526570726573656e9ab44374696e6796038c *ca584d4c93696e934861736b98656c6c8e9f0fcffe8d9200f5bae2b95468697396040f14706170 *9a41c76572936973936162986f75749370726f9863657373696e6793584d4c91040ed37573696e *67937468659366756e6374696f6e616c8ea18d9200f5bae26c616e67756167659603fd4b486173 *6b9abe39656c6c2e8d8d9ffc2d3df312b94161a800060000000600000004636d7236bd318e8e91 *0afefbb94d6f9041c76465726e9366756e6374696f6e616c936c616e6775616765739361726593 *7798656c6c2d8ea18d9200f5bae26571756970709a41c7656496037dbd746f936465616c937769 *746893747265652d7374727563747572656493646174612c910397d8736f936f6e659365787098 *656374738ea18d9200f5bae2746865960491d26c616e677561676593746f93629a41c765936193 *676f986f9864930c7493666f7293746865936170706c69636174696f6e2e910891ea457690be39 *656e8ea18d9200f5bae2736f2c9103d234619603ac6e6b9abe396579936973737565936973936a *75737493686f987793746f93726570726573656e987493646f9041c763756d656e9874732c9103 *d234616e6493696e8ea18d9200f5bae2706172746963756c617296044749686f9abe397793746f *937265636f6e63696c659374686593445444910446fa64617461749879709041c7659364650c6e *6974696f6e738ea18d9200f5bae2696e636c756465649602574b696e93584d4c9102571b646f90 *41c763756d656e9abe397473937769746893746865936461746193749879709a41c76573937468 *61749363616e936298658ea18d9200f5bae264650c6e6564960220ef696e934861736b9abe3965 *6c6c2e9103caf95791ff3aab659368619876986593696e98769865737469676174656493749877 *986f93636f6d706c656d656e98746172798ea18d9200f5bae2617070726f616390be396865733a *8e9f1133338d8d8d8d9200f8e9222831298e8e8e920109bae444650c6e6596038290616e93696e *9abe397465726e616c936461746193737472756374757265937468617493726570726573656e98 *747393636f6e2d8ea18d920109bae474656e9abe3974739602a98e6f6693c5616e7993b9584d4c *9102a973646f9541c763756d656e98742c9102bf1c696e64657093656e64656e98749602a98e6f *6693616c6c93445444732e8e9f1133348d8d8d8d9200f8e9222832298e8e8e920109bae4476976 *90be39656e96035c76746865934454449b035c64666f7293736f6d6593584d4c98646f9041c763 *756d656e9abe397473936f6693696e987465726573742c8ea18d920109bae473797374656d6174 *6963616c6c79960523cfc564657269766593b964650c6e6974696f6e7393666f7293696e9abe39 *7465726e616c934861736b98656c6c8e9200f5bae29f0740008900006666005fffa09f08d70b8d *8d8d8d910a727d9ffcfb72f30586039b5a00050000000500000004636d7235b0318e8e8e910e59 *9df306d993a05200070000000700000004636d7237b154686596033870584d4c9103384d746f9a *371c6f6c6b69749366726f6d937468697393706170986572936973936190c8e3769091c761696c *61626c65936f6e93746865935757579103384d61748e9f0800008df31edf43ca73000700000008 *00000005636d747438c9687474703a2f2f7777772e63732e796f726b2e61632e756b2f66702f48 *61586d6c2f8e8e8e8e8e8e8e8c8b00000002000000000000000000000000000000000000000000 *0000000000000000000000000000000000002aa00295bae28da0fd3f0000a002a300008d8d8d8d *9fe966668da0fda3999a8d91edbae2840000666600f000008e9f1133338d91edbae2c63c3f786d *6c9104b99676657273696f6e3d27312e30273f3e8ea40a00008d91edbae23c21444f4354595045 *9604b996616c62756d9353595354454d9322616c62756d2e647464223e8ea18d91edbae23c616c *62756d3e8ea18d91f72e0e3c7469746c653e54696d659104b9964f75743c2f7469746c653e8ea1 *8d91f72e0e3c6172746973743e446176659604b9964272756265636b93517561727465743c2f61 *72746973743e8ea18d91f72e0e3c636f7665726172749104b9967374796c653d27616273747261 *6374273e8ea18d9100a13a3c6c6f636174696f6e9104b9967468756d626e61696c3d277069782f *736d616c6c2f74696d656f75742e6a7067278ea18d912fe11666756c6c73697a653d277069782f *636f766572732f74696d656f75742e6a7067272f3e8ea18d91f72e0e3c2f636f7665726172743e *8ea1a18d91f72e0e3c636174616c6f676e6f9604b9966c6162656c3d27436f6c756d6269612793 *6e756d6265723d27434c9331333937278ea18d912b2780666f726d61743d274c50272f3e8ea18d *91f72e0e3c636174616c6f676e6f9604b9966c6162656c3d27436f6c756d62696127936e756d62 *65723d2743539338313932278ea18d912b2780666f726d61743d274c50272f3e8ea18d91f72e0e *3c636174616c6f676e6f9604b9966c6162656c3d27436f6c756d62696127936e756d6265723d27 *43504b9331313831278ea18d912b2780666f726d61743d274c50279104b996636f756e7472793d *274b6f726561272f3e8ea18d91f72e0e3c636174616c6f676e6f9604b9966c6162656c3d27536f *6e792f43425327936e756d6265723d274c656761637993434b933430353835278ea18d912b2780 *666f726d61743d274344272f3e8ea1a18d91f72e0e3c706572736f6e6e656c3e8ea18d9100a13a *3c706c617965729604b9966e616d653d2744617665934272756265636b2793696e737472756d65 *6e743d277069616e6f272f3e8ea18d9100a13a3c706c617965729604b9966e616d653d27506175 *6c934465736d6f6e642793696e737472756d656e743d27616c746f93736178272f3e8ea18d9100 *a13a3c706c617965729604b9966e616d653d27457567656e65935772696768742793696e737472 *756d656e743d2762617373272f3e8ea18d9100a13a3c706c617965729604b9966e616d653d274a *6f65934d6f72656c6c6f2793696e737472756d656e743d276472756d73272f3e8ea18d91f72e0e *3c2f706572736f6e6e656c3e8ea1a18d91f72e0e3c747261636b733e8ea18d9100a13a3c747261 *636b9604b9967469746c653d27426c756593526f6e646f93266167726176653b936c6193547572 *6b278ea18d9121b4546372656469743d274272756265636b279104b99674696d696e673d27366d *343273272f3e8ea18d9100a13a3c747261636b9604b9967469746c653d27537472616e6765934d *6561646f77934c61726b278ea18d9121b4546372656469743d274272756265636b279109732c74 *696d696e673d27376d323073279104b9962f3e8ea18d9100a13a3c747261636b9604b996746974 *6c653d2754616b659346697665278ea18d9121b4546372656469743d274465736d6f6e64279109 *732c74696d696e673d27356d323473279104b9962f3e8ea18d9100a13a3c747261636b9604b996 *7469746c653d27546872656593546f93476574935265616479278ea18d9121b454637265646974 *3d274272756265636b279109732c74696d696e673d27356d323173279104b9962f3e8ea18d9100 *a13a3c747261636b9604b9967469746c653d224b6174687927739357616c747a228ea18d9121b4 *546372656469743d274272756265636b279109732c74696d696e673d27346d343873279104b996 *2f3e8ea18d9100a13a3c747261636b9604b9967469746c653d224576657279626f64792773934a *756d70696e27228ea18d9121b4546372656469743d274272756265636b279109732c74696d696e *673d27346d323273279104b9962f3e8ea18d9100a13a3c747261636b9604b9967469746c653d27 *5069636b93557093537469636b73278ea18d9121b4546372656469743d274272756265636b2791 *09732c74696d696e673d27346d313673279104b9962f3e8ea18d91f72e0e3c2f747261636b733e *8ea1a18d91f72e0e3c6e6f7465739104b996617574686f723d22756e6b6e6f776e223e8ea18d91 *00a13a506f737369626c799604b996746865934442512773936d6f73749366616d6f757393616c *62756d2c8ea18d9100a13a746869739104b996636f6e7461696e738ea18d9100a13a3c74726163 *6b7265669604b9966c696e6b3d272333273e54616b6593466976653c2f747261636b7265663e2c *8ea18d9100a13a7468659604b9966d6f73749366616d6f7573936a617a7a93747261636b936f66 *937468617493706572696f642e8ea18d9100a13a54686573659604b9966578706572696d656e74 *7393696e93646966666572656e749374696d658ea18d9100a13a7369676e6174757265739604b9 *9661726593776861749344617665934272756265636b936973936d6f73748ea18d9100a13a7265 *6d656d62657265649604b996666f722e9109732c5265636f72646564934a756e2d417567933139 *35398ea18d9100a13a696e9604b9964e59432e9109732c53656593616c736f9374686593736571 *75656c2c8ea18d910a14663c616c62756d7265669104b9966c696e6b3d276362732d74696d6566 *757274686f7574273e8ea18d9113879254696d659604b99646757274686572934f75743c2f616c *62756d7265663e2e8ea18d91f72e0e3c2f6e6f7465733e8ea18d91edbae23c2f616c62756d3e8e *9f1b33338d8d91148586b946696775726596031554313a91041c70416e936578616d706c659358 *4d4c93646f9041c763756d656e90be39742e8e8ea18d91edbae2840000666600f000008e8e8e8e *8d8da0fd8000008d920109bae46461746196046d40749abe3979709041c7657393746f93726570 *726573656e9874937468656d2e9108243454686573659364650c6e6974696f6e73936172658ea4 *0a00008d920109bae4636c6f73656c79960315546261736564936f6e937468659373709041c765 *63690c63934454442e8e9f1133338d9201033ae241647691ff7c72616e90be3974616765739603 *f91b6f669328312993696e636c75646593c567656e6572696369747993b9616e6493c566756e63 *74696f6e2d6c6576656c8ea18d9200f5bae2736372697074696e67b92e910444d547656e657269 *63960322cb6170706c69636174696f6e739368616e646c659361937769646593636c617373936f *6693584d4c8ea18d9200f5bae2646f9a41c763756d656e90be3974732c910352d06e6f74960346 *846a7573749374686f73659373686172696e679361937370986563690c63934454442e934f6e65 *9365782d8ea18d9200f5bae2616d706c65960352506f66936193636f6d706c6574656c79936765 *6e65726963936170706c69636174696f6e93697393736561726390be3968696e6793646f9041c7 *632d8ea18d9200f5bae2756d656e9abe3974739604753c746f936578747261637493636f6e9874 *656e987473936d6174639868696e6793736f6d65937061747465726e2e91083c284f75728ea18d *9200f5bae2c558747290871b6163748d8d9ffc2d3dbd328e8e910702f2b969739602d84b616e93 *696e90be3974657270726574657293666f72936193726567756c617293584d4c9102d83c717565 *7279936c616e67756167652e8ea18d9201033ae2546865960286e47465726d936067656e657269 *632793616c736f936170706c69657393746f936170706c69636174696f6e739374686174936d61 *6b90be39658ea18d9200f5bae2c5736f6d659603ebb8b9617373756d7074696f6e739361629a41 *c76f7574936193646f9863756d656e90be397427739373747275637475726593627574936e6565 *648ea18d9200f5bae26e6f74960310be6b6e6f90be3977937468659366756c6c934454442c8d8d *9ffc2d3dbd338e8e91073b65b9666f72936578616d706c652c910311a96193736d616c6c937363 *7269707493746f936164648ea18d9200f5bae2619603d80e5c746f74616c2293636f6c756d6e93 *746f9374686593656e64936f669365769abe39657279937461626c6593287265636f676e697365 *64936298798ea18d9200f5bae2619603fb06706172746963756c6172936d61726b757093746167 *2993776974686f757493616c746572696e6793616e90be3979936f6693746865937375722d8ea1 *8d9200f5bae2726f756e64696e67910315547374727563747572652e8ea18d9201033ae2427996 *021c3dc566756e6374696f6e2d6c6576656c91026957736372697074696e6793b97790be396593 *6d65616e9374686174937468659370726f6772616d6d65728ea18d9200f5bae2646f9a41c76573 *960301dc6e6f7493686195be39769365960301dc746f9362986593636f6e6365726e6564937769 *74689364657461696c73936f669370726f6772616d6d696e678ea18d9200f5bae26f95be397693 *65729603e68b6461746193737472756374757265732e91069014416c6c9364657461696c73936f *66936461746193737472756374757265936d616e69702d8ea18d9200f5bae2756c6174696f6e96 *0455c463616e93629041c7659368696464656e93696e9361936c696272617279936f6693686967 *682d6c65769abe39656c93636f6d9862696e612d8ea18d9200f5bae2746f72732e910410dc496e *9602f299650b6563742c9102f98b636f6d9abe3962696e61746f72799365787072657373696f6e *739373657276986593617393616e93657874656e73692d8ea18d9200f5bae2626c659603155464 *6f6d61696e2d73709041c76563690c63936c616e67756167652e8ea18d9201033ae241647691ff *7c72616e90be3974616765739602a65b6f669328322993696e636c75646593c573747290871b6f *6e6765729b02e842747970696e6793b9616e6493c566756c9078e46c6572986390871b6f6e2d8e *a18d9200f5bae2747290871b6f6cb92e91078c294196043a46779abe39656c6c2d666f726d6564 *91043a92584d4c93646f9041c763756d656e987496043a92697393667572746865729373616964 *93746f93629041c7658ea18d9200f5bae2c576616c6964960255ccb9696693697493636f6e666f *726d7393746f936193737461746564934454442e9342799365737461626c697368696e67936193 *636f7272652d8ea18d9200f5bae273709541c76f6e64656e63659b02cab26293657495be397793 *65656e984454447398616e64984861736b93656c6c98749379709041c765732c9102d99f746865 *98636f6e63657074986f668ea18d9200f5bae27691ff7c72616c6964697490be397996025aac63 *616e93629a41c76593657874656e64656493746f93696e636c756465936170706c69636174696f *6e7393746861749370726f98636573738ea18d9200f5bae2646f9041c763756d656e9abe397473 *2e910420ac4e6f74960316bd6f6e6c799369739374686572659361937374617469639367756172 *616e987465659374686174936170706c692d8ea18d9200f5bae2636174696f6e739603be856361 *6e6e6f74936661696c93696e93726573709a41c7656374936f6693646f9863756d656e90be3974 *93737472756374757265936966937468658ea18d9200f5bae2696e707574960336d9584d4c9b03 *36d0636f6e666f726d7393746f9374686593737461746564934454443b93616e90be397993584d *4c986f75747075748ea18d9200f5bae270726f9041c764756365649602c17c7669619361934454 *442d64657269769abe39656493749879709041c7659369739367756172616e987465656493746f *93629041c765937691ff7c72616c69642e8ea18d9200f5bae25769746896037495646972656374 *9361636365737393746f93746865934454442d73709041c76563690c6393646174619373747275 *63747572652c91038c657468658ea18d9200f5bae270726f6772616d6d65729602176d68617393 *66756c6c657293636f6e9abe3974726f6c936f987698657293686f987793636f6d707574617469 *6f6e93697393646f6e652e8ea18d9200f5bae2546865799603f4a663616e937573659361936675 *6c6c937265709041c76572746f697265936f669370726f6772616d6d696e679374656390be3968 *6e69717565738ea18d9200f5bae27769746896031a107468659373616665677561726493746861 *74937495be3979709041c7652d6393686563936b9365649b031a104861736b93656c6c9877696c *6c986175746f6d61742d8ea18d9200f5bae26963616c6c799604070c70726f9a41c76475636593 *584d4c910406ce74686174936973937691ff7c72616c696493696e937265737098656374936f66 *9361937370986563690c65648ea18d9200f5bae24454442e8ea18d9201033ae2426f746896044a *c3617070726f616390be396865739372656c79936f6e936193746f9041c76f6c6b6974936f6693 *6d6f726593626173696393636f6d2d8ea18d9200f5bae2709a41c76f6e656e90be39747396039a *f6666f729370726f9863657373696e6793584d4c91039ad3646f9863756d656e9abe3974739369 *6e934861736b98656c6c3a910527b4666f7293696e2d8ea18d9200f5bae27374616e63652c9103 *2d44619603287a70617273657293616e6493707265747495be39792d7072696e937465722e9104 *55e354686573659603287a737570709041c76f7274696e6793636f6d2d8ea18d9200f5bae27090 *41c76f6e656e9abe3974739602642f61726593696d706c656d656e98746564937573696e679365 *78697374696e6793636f6d9862696e61746f72936c69627261726965738ea18d9200f5bae25b8d *378e91049ffe2c8d91031554388e9107b5525d2e8e9f1697fc8d8d9200f5bae2c4312e348e9201 *0dfcf153656374696f6e7391038cca666f6c6c6f90b44377696e678e9f0fcffe8d9200f5bae2f3 *1da9b190ca00090000000900000005636d737939c878b9329602aaac6465769abe39656c6f7073 *9374686593617070726f61639868937573696e6793619367656e6572696393726570726573656e *98746174696f6e93616e648ea18d9200f5bae2619603ed51636f6d9abe3962696e61746f72936c *69627261727991ff3aab2c9104234f696e636c7564696e6793616e93696c6c7573747261746976 *9865936170706c69636174696f6e2e8ea18d9200f5bae2c878b9339604a1a76465769abe39656c *6f70739374686593616c7465726e617469769865936261736564936f6e937472616e736c617469 *6f6e93629041c7657498779865656e8ea18d9200f5bae24454447396037bcc616e64934861736b *9abe39656c6c936461746193749879709041c765732e91054fd9c878b934936469736375737365 *7393736f6d659370726f7393616e648ea18d9200f5bae2636f6e73960357e76f66937468659374 *95be3977936f9b0357e7617070726f616393686573986261736564986f6e986f75729865787090 *41c7657269656e636598696d706c652d8ea18d9200f5bae26d656e9abe3974696e679602aef561 *6e64937573696e6793629041c76f74682e9103fa50c878b935936469736375737365739372656c *617465649377986f726b3b9102d115c878b936936f0b6572738ea18d9200f5bae2736f6d659603 *1554636f6e636c7573696f6e7393616e649373756767657374696f6e7393666f72936675727468 *6572937790be396f726b2e8e9f178ffc8d8d9200f5bae2c4328e920105b46f47656e6572696391 *038cca636f6d90b44362696e61746f72738e9f12e9988d9200f5bae2b9496e9603ce7474686973 *9373656374696f6e2c9103fcbc779abe396593629041c76567696e937769746893619367656e65 *72696393726570726573656e98746174696f6e93666f728ea18d9200f5bae27468659b03c5b163 *6f6e95be3974656e937473986f6698584d4c9103c584646f9041c763756d656e9374732c9103f1 *c86578636c7564696e6798616e9379984454442e985791ff3aab658ea18d9200f5bae2696e9abe *3974726f9041c76475636596023449c56390871b6f6e74656e7491027f700c6c7465727393b961 *739361937375697461626c6593626173696393749879709041c76593666f729366756e6374696f *6e738ea18d9200f5bae270726f9041c763657373696e6796031ba7746869739372657072657365 *6e9abe39746174696f6e2c91031d3c616e6493636f6d9862696e61746f727393666f7293707574 *74696e678ea18d9200f5bae273756390be396896047a850c6c7465727393746f6765746865722e *91084c044191047a29636f6d706c657465937461626c65936f66936261736963930c6c74657273 *9369738ea18d9200f5bae26769769abe39656e960369b5696e9346696775726593322c91037ecd *616e64936f6693636f6d9862696e61746f727393616e649374686569729364650c6e6974696f6e *738e9200f5bae29f0740008900006666005fffa09f08d70b8d8d8d8d910a727d9ffcfb72b0328e *8e8e910e599df31f747d5cca00070000000700000005636d746937ca5874729596c16163743a91 *03cfa7619b02fd29606772936570272d6c696b6598746f936f6c98666f7298584d4c98646f9363 *756d656e74732e8ea40800008d916dd797c9687474703a2f2f7777772e63732e796f726b2e6163 *2e756b2f66702f5874726163742f8e9f08a3d98d8d8d8d910a727d9ffcfb72b0338e8e8e910e59 *9db1496e9603f7a66c69676890c8e374936f6693746865935c584d4c9103f7524e616d65737061 *63657322937265636f6d6d656e646174696f6e2c9104491d696e93650b6563748ea18d6196031d *6b6d65639ac8e368616e69736d93666f72937090371c65726d697474696e67936d98756c746970 *6c6593445444732c91033853737563986893666163696c697469657393636f756c64936290371c *658ea18d706172746963756c61726c799602b1c875736566756c2e91038e3a53656593c9687474 *703a2f2f7777772e77332e6f72672f54522f5245432d786d6c2d6e616d65738e8e8e8e8e9f1e00 *008d9200e76ae3b9328e8e8c8b0000000300000000000000000000000000000000000000000000 *000000000000000000000000000000001a68a00295bae28da0fd3f0000a002a300008d8d8d8da0 *fd8000008d91edbae2b9696e9604654d46696775726593332e91080c5c416e936578616d706c65 *9370726f6772616d9369739373686f90be39776e93696e9346696775726593342e8ea40a00008d *91edbae24f6e6596028c176578709a41c765637465649370726f70986572749abe3979936f6693 *61930c7474696e6793736574936f6693636f6d9862696e61746f727393697393746861748ea18d *91edbae27468657996038a207361746973667993616c67656272616963936c619abe3977733b91 *03c48661937461626c65936f66936c619877739373617469730c656493629879936f75728ea18d *91edbae2636f6d9abe3962696e61746f72739603155469739367697698656e93696e9346696775 *726593362e8e9f1697fc8d8d91edbae2c4322e318e9105fcf1446f904bbc63756d656e90b44374 *7396038cca616e64937472616e73666f726d6174696f6e738e9f0fcffe8d91edbae24461746191 *038cca6d6f904bbc64656c6c696e678ea91133338d9100a13ac6646174619604b996456c656d65 *6e74933d93456c656d934e616d65935b4174747269627574655d935b436f6e74656e745d8ea18d *9100a13a646174619604b996436f6e74656e74933d9343456c656d93456c656d656e748ea18d91 *3e0dd87c9604b996435465787493537472696e678ea68d91edbae2b9426563617573659604043f *66756e6374696f6e616c936c616e6775616765739361726593676f9541c76f93649604043f6174 *9370726f9041c763657373696e6793747265652d8ea18d91edbae2737472756374757265649604 *9396646174612c9104f32674686572659369739361936e61747572616c930c7493629041c76574 *95be39779365656e9604939674686593584d4c8ea18d91edbae2646f9041c763756d656e9abe39 *74960303c4646f6d61696e93616e64934861736b98656c6c937472656593646174617498797090 *41c765732e91041695496e9373696d706c690c65648ea18d91edbae2666f726d2c910399497468 *6596037ee56d61696e9364617461749abe3979709041c7657393776869639868936d6f9a41c764 *656c93616e93584d4c91037eca646f9863756d656e90be39748ea18d91edbae2617265960437a0 *c6456c656d656e7493b9616e6493c6436f6e74656e74b92c9104803377686f73659364650c6e69 *74696f6e7393617265936d90be39757475616c6c798ea18d91edbae272656375727369769abe39 *652c96031554746f67657468657293666f726d696e679361936d98756c74692d6272616e639868 *9374726565937374727563747572652e8e9f1697fc8d91edbae2c454686596038cca0c6c746572 *937490b4437970904bbc658ea68d9100a13ac6747970659604b9964346696c746572933d93436f *6e74656e74932d3e935b436f6e74656e745d8ea68d91edbae2b94f757296032986626173696393 *7490be3979709a41c76593666f7293616c6c93646f9863756d656e90be39749370726f98636573 *73696e679366756e6374696f6e73936973937468658ea18d91edbae2c56390871b6f6e74656e74 *9103e1fc0c6c746572b92c9103de4f7768696395be39689b03b61d74616b936573986198667261 *676d656e9374986f669874686598636f6e9374656e9374986f6698616e8ea18d91edbae2584d4c *91033997646f9a41c763756d656e90be3974960339a02877686574686572937468617493629865 *93736f6d6593746578742c910342b36f72936193636f6d706c6574658ea18d91edbae274616767 *6564960270bb656c656d656e9abe3974292c910291a7616e649372657475726e7393736f6d6593 *73657175656e6365936f6693636f6e9874656e98742e9103e5925468658ea18d91edbae2726573 *756c749602b3796c697374936d6967689abe397493629041c76593656d7074987991ff3aab2c91 *02c70b6974936d696768987493636f6e987461696e93619373696e676c65936974656d2c9102c7 *0b6f728ea18d91edbae2697496031554636f756c6493636f6e90be397461696e9361936c617267 *6593636f6c6c656374696f6e936f66936974656d732e8ea18d91fb3ae2536f6d659603a88d0c6c *7465727393617265937573656493746f9373656c656374937061727473936f669374686593696e *70757493646f9041c763752d8ea18d91edbae26d656e90be39742c91035c78616e6496034e3d6f *746865727393617265937573656493746f93636f6e737472756374937061727473936f66937468 *65936f75747075748ea18d91edbae2646f9041c763756d656e9abe39742e9103c6545468657996 *021300616c6c937368617265937468659373616d6593626173696393749879709541c7652c9102 *46ab6293656361757365910213007768656e8ea18d91edbae26275696c64696e679603b1ef6193 *6e657793646f9041c763756d656e9abe39742c9103d91674686593696e9874656e9874696f6e93 *697393746f9372652d757365936f729365782d8ea18d91edbae274726163749603c99a696e666f *726d6174696f6e9366726f6d937061727473936f6693746865936f6c6493646f9041c763756d65 *6e90be39742e9106394157686572658ea18d91edbae27468659602f383726573756c74936f6693 *61930c6c7465729369739365697468657293656d707490be3979936f7293619373696e676c6574 *6f6e2c9102fa46746865930c6c7465728ea18d91edbae263616e96021e0b736f6d6574696d6573 *93629041c7659374686f75676890be3974936f66936173936193c5707295871b65936469639361 *7465b92c91024f816465636964696e6791021e0b776865746865728ea18d91edbae26f72960315 *546e6f7493746f936b90be396565709369747393696e7075742e8e9f1697fc8d91edbae2c45072 *6f6772616d91038cca7772617070904bbc65728ea68d9100a13ac670726f63657373584d4c7769 *74689604b9963a3a934346696c746572932d3e93494f9328298ea68d91edbae2b95791ff3aab65 *960721a4617373756d65936193746f702d6c65769abe39656c9377726170709041c76572936675 *6e6374696f6e2c910824b777686963986893676574738ea18d91edbae2636f6d6d616e642d6c69 *6e6596060427617267756d656e9abe3974732c9106bfda70617273657393616e93584d4c910603 *650c6c6593696e98746f937468658ea18d91edbae2c6436f6e74656e7496048d9fb97490be3979 *709041c7652c9b04ebb16170706c6965739361930c6c7465722c98616e6493707265747495be39 *792d7072696e93747396048d9f746865936f75742d8ea18d91edbae27075749603d2b7646f9041 *c763756d656e9abe39742e910654995468659367697698656e930c6c746572936973936170706c *69656493746f9374686593746f702d6c657698656c8ea18d91edbae2656e636c6f73696e679603 *1554656c656d656e9abe3974936f669374686593646f9041c763756d656e98742e8e9f1697fc8d *91edbae2c44261736963910303430c6c7465727391093ffcb94191029dc3636f6d706c65746596 *029de16c697374936f669370726564650c6e6564930c6c746572739369739373686f90be39776e *8ea18d91edbae2696e9603ddc046696775726593322e910675b35468659373696d706c65737493 *709041c76f737369626c65930c6c746572733a9105ad48c66e6f6e6593b974616b9abe39657393 *616e98798ea18d91edbae2636f6e95be3974656e937496043a86616e649372657475726e73936e *6f7468696e673b9104cd1fc66b65657093b974616b9abe39657393616e987993636f6e9874656e *987493616e648ea18d91edbae272657475726e739602cc286a7573749374686174936974656d2e *9104040c416c67656272616963616c6c7991ff3aab2c9102dacb74686573659361726593746865 *937a65726f93616e648ea18d91edbae2756e6974910315540c6c746572732e8e9f1333338d8d8d *8d91f81ae6c80f8e8e8e9101bae4c5507295871b65936469639361746596032689616e64937365 *6c6590871b6374696f6e930c6c74657273b92e91040e095468659602ea200c6c74657293c6656c *6d93b96973936193707265642d8ea18d9101bae469636174652c9b048f8772657475726e696e67 *960443e46a7573749374686973936974656d93696693697493697393616e93656c656d656e90be *39742c986f728ea18d9101bae46e6f7468696e679b037a0d6f74686572776973652e8d8d9ffc2d *3dbd348e8e91097543b9436f6e95be397693657273656c7991ff3aab2c9103933cc674787498b9 *72657475726e739874686973986974656d8ea18d9101bae46f6e6c799602d7ac69669369739370 *6c61696e93746578742c8d8d9ffc2d3dbd358e8e91070ea8b9616e64936e6f7468696e67936f74 *686572776973652e910407e3546865930c6c7465728ea18d9101bae4c66368696c6472656e9602 *8d9fb972657475726e739374686593696d6d65646961746593639abe3968696c6472656e936f66 *93616e93656c656d656e98748ea18d9101bae4696696038d4569749368617393616e9abe397991 *ff3aab2c9103ab416f72936e6f7468696e67936966937468697393636f6e9874656e98742d6974 *656d936973936e6f7493616e8ea18d9101bae4656c656d656e90be39742e910413d65468659602 *fb860c6c74657293c67461679104b9967493b972657475726e739374686973936974656d936f6e *6c799369669369749369738e91edbae29f0780008900006666005fffa09f08d70b8d8d8d8d910a *727d9ffcfb72b0348e8e8e910e599db15468659603967d73686f7274656e6564936e616d6593c9 *656c6d93b1779ac8e36173936398686f73656e93746f93619876986f6964936193636c61736893 *77697468937468658ea40800008d5374616e646172649602b1c85072656c7564659366756e6374 *696f6e93c9656c656db12e8e9f08a3d98d8d8d8d910a727d9ffcfb72b0358e8e8e910e599db146 *91ff5aaa6f729601ee0d74686f73659366616d696c696172937769746893746865936465746169 *6c936f6693584d4c2c93656e95c8e374697493799601ee0d7265666572656e6365739377697468 *696e8ea18d7468659602b1c8646f90371c63756d656e90c8e37493617265937472656174656493 *617393706c61696e93746578742e8e8e8e8d8da0feeccccc8da0fe89999a8d9200f5bae2840000 *666600f000008e9f1133338d8d9200f5bae2c4507265646963617465738e8ea40a00008d8d9201 *08a13ac66e6f6e652c913a241ac57a657295871b6f2f6661696c757293658e8ea18d8d920108a1 *3ac66b6565702c913a241ac56964656e746974792f73756395871b63936573738e8ea18d8d9201 *08a13ac6656c6d2c913eddb0c5746167676590871b6491034e3c656c656d656e743f8e8ea18d8d *920108a13ac674787491439746c5706c61696e91034e3c746578743f8e8ea18d8d92011e9ce6c6 *3a3a9104b9964346696c7465728e8ea18d8d920108a13a7461672c913eddb0c56e616d6590871b *6491034e3c656c656d656e743f8e8ea18d8d920108a13ac661747472913eddb0c5656c656d656e *7496034e3c686173936174747269627574653f8e8ea18d8d92011e9ce6c63a3a9604b996537472 *696e67932d3e934346696c7465728e8ea18d8d920108a13a6174747276616c9130b0eec5656c65 *6d656e7496034e3c686173936174747269627574652f76616c75653f8e8ea18d8d92011e9ce6c6 *3a3a9604b99628537472696e672c537472696e6729932d3e934346696c7465728e8ea1a18d8d92 *00f5bae2c453656c656374696f6e8e8ea18d8d920108a13ac66368696c6472656e912bf758c563 *68696c647290871b656e96034e3c6f6693656c656d656e748e8ea18d8d92011e9ce6c63a3a9104 *b9964346696c7465728e8ea18d8d920108a13a73686f77417474722c91273dc2c576616c756596 *034e3c6f66936174747269627574658e8ea18d8d920108a13ac6283f2991439746c573796e6f6e *796d96034e3c666f729373686f774190c38e7474728e8ea18d8d92011e9ce6c63a3a9604b99653 *7472696e67932d3e934346696c7465728e8ea1a18d8d9200f5bae2c4436f6e737472756374696f *6e8e8ea18d8d920108a13ac66c69746572616c2c912bf758c56275696c6496034e3c706c61696e *93746578748e8ea18d8d920108a13ac628212991439746c573796e6f6e796d96034e3c666f7293 *6c6974657290871b616c8e8ea18d8d92011e9ce6c63a3a9604b996537472696e67932d3e934346 *696c7465728e8ea18d8d920108a13a6d6b456c656d91356a84c56275696c6491034e3c656c656d *656e748e8ea18d8d92011e9ce6c63a3a9604b996537472696e67932d3e935b4346696c7465725d *932d3e934346696c7465728e8ea18d8d920108a13a6d6b456c656d4174747273911dca96c56275 *696c6496034e3c656c656d656e74937769746893617474726962757465738e8ea18d8d92011e9c *e6c63a3a9604b996537472696e67932d3e935b28537472696e672c4346696c746572295d8e8ea1 *8d8d92013fb0002d3e9604b9965b4346696c7465725d932d3e934346696c7465728e8ea18d8d92 *0108a13a7265706c6163655461679122842cc57295871b65706c6163936596034e3c656c656d65 *6e742773937461678e8ea18d8d92011e9ce6c63a3a9604b996537472696e67932d3e934346696c *7465728e8ea18d8d920108a13a7265706c616365417474727391191100c57295871b65706c6163 *936596034e3c656c656d656e74277393617474726962757465738e8ea18d8d92011e9ce6c63a3a *9604b9965b28537472696e672c4346696c746572295d932d3e934346696c7465728e8ea19f1b33 *338d8d92012e0f5bb946696775726596031554323a91041c70426173696393636f6e95be397465 *6e9374910315540c6c746572732e8e8ea18d9200f5bae2840000666600f000008e8e9f1b9a638d *920109bae4616e96036cd4656c656d656e90be39749377686f736593746167936e616d65936973 *9374686593737472696e6793c674b92e910522ef546865930c6c7465728ea40a00008d920109ba *e4c6617474729104b996619603b393b972657475726e739374686973936974656d936f6e6c7993 *696693697493697393616e93656c656d656e90be397493636f6e2d8ea18d920109bae47461696e *696e6796024b4574686593617474726962757465936e616d6593c661b92e9103d916546865930c *6c74657293c66174747276616c9104b99628612c76298ea18d920109bae4b972657475726e7396 *03c03274686973936974656d936f6e6c7993696693697393616e93656c656d656e9abe39749363 *6f6e987461696e696e67937468658ea18d920109bae461747472696275746596031554c66193b9 *7769746893746865937691ff7c72616c756593c676b92e8e9f1100668d8d8d8d9201001ae6c80f *8e8e8e920109bae4c5436f6e737472756374696f6e910386250c6c74657273b92e9104d2f85468 *659603522c66756e6374696f6e93c66c69746572616c9104b9967393b96d616b90be3965739361 *8ea18d920109bae4746578749b02eb26636f6e95be3974656e937498636f6e937461696e696e67 *986a7573749874686598737472696e6798c673b92e91040e615468659866756e6374696f6e8ea1 *8d920109bae4c66d6b456c656d9604b99674936673960369e5b96275696c6473936193636f6e95 *be3974656e93749b0369e5656c656d656e93749877697468987468659874616798c674b93b8ea1 *8d920109bae474686596046519617267756d656e9abe397493c6667393b969739361936c697374 *936f66930c6c746572732c9104b90a6561639868936f66937768696398689369738ea18d920109 *bae46170706c696564960425d7746f937468659363757272656e90be3974936974656d2c910469 *f7616e6493616c6c93746865697293726573756c7473936172658ea18d920109bae4636f6c6c65 *637465649603fb7d746f93629041c765636f6d659374686593639abe3968696c6472656e936f66 *93746865936e657793656c656d656e98742e8ea18d920109bae45468659602209e66756e637469 *6f6e93c66d6b456c656d41747472739604b99674936176739366739602209eb96973936a757374 *936c696b90be396593c66d6b456c656d8ea18d920109bae4b96578636570749602713574686174 *9369747393657874726193706172616d6574657293c661767393b969739361936c697374936f66 *936174747269627574658ea18d920109bae47691ff7c72616c7565738d8d9ffc2d3dbd368e8e91 *073ffbb9746f96031554629041c76593617474616390be3968656493746f93746865937461672e *8e9f12b42f8d9201033ae24191021a4b75736566756c96021a8b0c6c74657293776869639abe39 *6893696e9876986f6c7698657393629041c76f74689373656c656374696f6e93616e6493636f6e *73747275632d8ea18d9200f5bae274696f6e96027c65697393c673686f77417474729104b99661 *b92c91029afb7768696390be396893657874726163747393746865937691ff7c72616c7565936f *6693746865936174747269627574658ea18d9200f5bae2c6619602db59b966726f6d9374686593 *63757272656e9abe397493656c656d656e987493616e649372657475726e73936a757374937468 *617493737472696e6793617393618ea18d9200f5bae27069656365960315546f6693636f6e95be *3974656e93742e8ea18d9201033ae25768656e9605a61e636f6e737472756374696e679361936e *657793646f9041c763756d656e90be39749328652e672e93746865937363726970748ea18d9200 *f5bae2696e9605a1734669677572659334937768696390be39689367656e657261746573934854 *4d4c292c9374686593c66d6b456c656d93b966756e632d8ea18d9200f5bae274696f6e9603e0ec *6f9a41c76363757273937265709865617465646c7996ff3aab2e91067f375793659603e0ec6465 *0c6e6593616e6493757365936193736d616c6c936c6962726172798e9200f5bae29f070d328900 *006666005fffa09f08d70b8d8d8d8d910a727d9ffcfb72b0368e8e8e910e599db141637475616c *6c7991ff5aaa2c9102f8ae619602ea806c697374936f66936174747269627574652f0c6c746572 *9370616972732e9104386345616390c8e368930c6c746572936973936170706c69656493746f8e *a40800008d7468659602a34663757272656e9ac8e37493656c656d656e987493616e6493746865 *93726573756c74616e987493636f6e9874656e9874936973930d617474656e656493746f936193 *737472696e678ea18d769091c7616c75659602b1c87768696390c8e3689369739361737369676e *656493746f93746865936e616d6564936174747269627574652e8e8e8e8e8e9f1e00008d9200e7 *6ae3b9338e8e8c8b00000004000000000000000000000000000000000000000000000000000000 *000000000000000000000034c2a00295bae28da0fd3f0000a002a300008d8d8d8da0fd8000008d *91edbae2b96f66960530d466756e6374696f6e73937375639abe396893617393c6687461626c65 *b92c9605b7b4c668726f77b92c93616e64960530d4c668636f6c93b9776869639868936172658e *a40a00008d91edbae26a7573749605172a73796e6f6e90be39796d7393666f7293706172746963 *756c6172936170706c69636174696f6e73936f6693c66d6b456c656d93b9616e648ea18d91edba *e2c66d6b456c656d417474727396034028b9746f9364690b6572656e9abe3974937461676e616d *65732c91034add7265647563696e679376986572629041c76f736974987993616e648ea18d91ed *bae26d616b696e67960315547468659373796e90be3974617893726174686572936d6f72659372 *65616461626c652e8ea18d91fb3ae2416c736f9602dfb8666f7293636f6e95be397693656e6965 *6e63652c9102ea717793659602dfb864650c6e6593746865936e6577936f709041c7657261746f *727393c63f91040a91b9616e648ea18d91edbae2c6219103eeefb9617396028cd273796e6f6e9a *be39796d7393666f7293c673686f774174747293b9616e6493c66c69746572616c93b972657370 *9041c7656374697698656c793a9103d82f746865798ea18d91edbae26172659603137375736564 *93696e9361936272616395be396b936574656496031373709041c76f73740c78936e6f74617469 *6f6e2c8d8d9ffc2d3dbd378e8e91073e7ab96193737490be39796c6593736f6d659370726f2d8e *a18d91edbae26772616d6d657273910315547072656665722e8ea91617558d8d91edbae2c4322e *328e9105fcf1436f6d90b44362696e61746f72738e9f0fcffe8d91edbae2b9546865960280b163 *6f6d9abe3962696e61746f7273937573656493617393696e987465726d65646961746593636f90 *41c7646593696e93636f6d70696c6572739363616e8ea18d91edbae272656e6465729602b98170 *726f6772616d739360746f74616c6c7993756e0c7493666f72936890be39756d616e93636f6e73 *756d7074696f6e27935b8d31318e91093ffc5d218ea18d91edbae2486f95be3977936576936572 *2c9102af45746865960295c169646561936f66936193636f6d90be3962696e61746f72936c6962 *7261727993666f7293619373709041c76563690c6393636c6173738ea18d91edbae26f6696029c *cd6170706c69636174696f6e7393697393746f93616395be3968696576936596029ccd6193666f *726d936f669365787072657373696f6e9374686174936973936e61742d8ea18d91edbae2757261 *6c9602fb6f666f72937468659370726f626c656d2e910413ce419102fb68636f6d9abe3962696e *61746f72936c6962726172799373686f756c6493629041c765936c696b986593618ea18d91edba *e26c616e67756167659603a38e657874656e73696f6e937461696c6f72656493746f9374686593 *70726f626c656d93646f6d61696e935b8d348e91049ffe5d2e9105c71f496e8ea18d91edbae274 *6869739602d8bb73656e73652c9b02e4da66756e6374696f6e616c936c616e6775616765739361 *726593657874656e7369626c652c986a75737493617393584d4c8ea18d91edbae2697473656c66 *96042935697393657874656e7369626c652e9107581254686593636f6d90be3962696e61746f72 *7393617265936869676865722d6f72646572936f702d8ea18d91edbae2657261746f727396037b *bc73657276696e679361739360676c7565275b8d368e91049ffe5d93746f93617373656d9abe39 *626c659366756e6374696f6e7393696e98746f936d6f72658ea18d91edbae2709041c76f95be39 *7793657266756c9b02931e636f6d9362696e6174696f6e732e9103f1095791ff3aab659861696d *98746f986b936565709874686598749379709541c76573986f6698636f6d70936f2d8ea18d91ed *bae26e656e9abe39749603a5b066756e6374696f6e7393617393756e69666f726d936173937090 *41c76f737369626c6593736f937468617493616e98799366756e6374696f6e8ea18d91edbae263 *616e96035a33629a41c76593636f6d70986f736564937769746893616e90be3979936f74686572 *2e9104eb0c57697468696e93746865936c65786963616c936c696d6974738ea18d91edbae26f66 *9602de2a74686593686f7374936c616e67756167652c9102e932639abe39686f696365936f6693 *6e6f746174696f6e9373686f756c6493666f6c6c6f9877936170706c692d8ea18d91edbae26361 *74696f6e9b03df61636f6e95be397693656e9374696f6e733a9105b089696e984861736b93656c *6c987793659863616e2c910411e3776865726598617070726f7072696174652c8ea18d91edbae2 *64650c6e65960315546e657793696e0c78936f709a41c7657261746f729373796d90be3962986f *6c7393666f7293636f6d90be3962696e61746f72732e8ea18d91fb3ae2536f2c9b04d8f7686190 *be3976696e6796047ea364650c6e656493736f6d65936261736963930c6c7465727393616c7265 *61647991ff3aab2c98696e93776861748ea18d91edbae27795be39619379739603a93f63616e93 *74686573659375736566756c6c7993629041c76593636f6d9abe3962696e656493696e98746f93 *6d6f726593696e98746572657374696e678ea18d91edbae2616e6496031554636f6d706c657893 *0c6c746572733f91041c70285365659346696775726593332e298ea18d91fb3ae2546865960310 *f56d6f737493696d709041c76f7274616e9abe397493616e649375736566756c930c6c74657293 *636f6d9862696e61746f7293697393c6606f60b92e8ea18d91edbae25791ff3aab659603d1b163 *616c6c9374686973936f709a41c7657261746f7293497269736893636f6d70986f736974696f6e *2c910400c9666f7293726561736f6e73937768696390be39688ea18d91edbae273686f756c6496 *023566629041c765936f629abe3976696f75732e9103d1cb497493706c75677393749877986f93 *0c6c7465727393746f6765746865723a9103ac79746865936c656674930c6c7465728ea18d91ed *bae2697396033c536170706c69656493746f9374686593726573756c7473936f66937468659372 *69676890be3974930c6c7465722e9104916c536f2c91034612666f7293696e7374616e63652c8e *a18d91edbae27468659103155465787072657373696f6e8ea40e9b298d9100a13ac67465787496 *04b996606f60936368696c6472656e93606f609374616793227469746c65228ea18d91edbae2b9 *6d65616e73960332125c6f6e6c799374686593706c61696e2d7465787493639abe3968696c6472 *656e936f66937468659363757272656e987493656c656d656e98742c8ea40a00008d91edbae270 *726f9abe397669646564960315547468659363757272656e987493656c656d656e987493686173 *9374686593c67469746c6593b9746167936e616d65222e8ea18d91fb3ae2536f6d65960406cf6f *7468657293636f6d9abe3962696e61746f72739361726593617393666f6c6c6f9877732e9106f0 *e2c6669604b9967c7c7c9367960406cfb9697393616e8ea18d91edbae26170709541c7656e649b *02b57d6f7093657261746f723a9103ec846974986a6f696e739874686598726573756c7473986f *6698c66698b9616e6498c66798b973657175656e90be397469616c6c7991ff3aab2e8ea18d91ed *bae2c66361749104b9966673960350d9b9697393746865936c6973749367656e6572616c697361 *74696f6e936f6693c67c7c7cb93b91036e9c697493636f6e636174656e61746573937468658ea1 *8d91edbae2726573756c74739603f2206f669365616390be3968936f6693746865930c6c746572 *739366726f6d9374686593c6667393b96c6973742e9106b2d3c6669604b9966077697468609367 *8ea18d91edbae2b961637473960338b361739361936775617264936f6e9374686593726573756c *7473936f6693c666b92c9103418b7072756e696e6793746f93696e636c756465936f6e6c798ea1 *8d91edbae274686f7365960289e9776869639abe3968936172659370726f9041c7647563746976 *986593756e64657293c667b92e9103edf7546865936475616c2c9102a5cbc6669104b996607769 *74686f7574608ea18d91edbae267b92c910308d76578636c75646573960305b874686f73659372 *6573756c7473936f6693c66693b9776869639abe3968936172659370726f9041c7647563746976 *986593756e64657293c667b92e8ea18d91edbae2546865960299f265787072657373696f6e93c6 *709604b9963f3e9366933a3e9367960299f2b9697393619366756e6374696f6e616c936390be39 *686f696365936f709041c7657261746f723b8ea18d91edbae269669603bbac7468659328707265 *64696361746529930c6c74657293c67093b969739370726f9041c764756374697690be39652c91 *03e5427468656e93746865930c6c74657293c66693b969738ea18d91edbae26170706c6965642c *9103ec726f74686572776973659603c16cc66793b96973936170706c6965642e910620b84691ff *3aab726f6d937468697393697393646572697690be39656493619364692d8ea18d91edbae27265 *637465649603bef6639abe39686f696365936f709041c7657261746f723a91056fb3c6669604b9 *967c3e7c93679603bef6b9676976986573936569746865729374686593726573756c7473936f66 *8ea18d91edbae2c666b92c960315546f729374686f7365936f6693c66793b96f6e6c7993696693 *c66693b9697393756e70726f9041c764756374697690be39652e8ea68d91edbae2c447656e6572 *616c697365649605b7b35090b4436174689353656c6563746f727391093ffcb953656c65637469 *6f6e9604f74b6f66937375627472656573936290be39798ea18d91edbae2c57095871b61746891 *04959c709361747465726e7396047994b969739366616d696c69617293746f937573657273936f *669374686593556e6978930c6c652d73797374656d2c8ea18d91edbae27768657265960358a073 *756390be3968937061747465726e7393617265937573656493746f936163636573739364697265 *63746f7279937374727563747572652c8ea18d91edbae27573696e6796027a396193c62f93b96e *6f746174696f6e93746f93696e646963617465937468659360636f6e90be397461696e696e6727 *9372656c6174696f6e2e9103e8bc53696d2d8ea18d91edbae2696c61729604b903706174746572 *6e7393617265937573656493696e9358534c91ff3aab542c93616e93584d4c9104b8967472616e *73666f726d6174696f6e8ea18d91edbae26c616e67756167659604891a5b8d338e91049ffe5d2e *910877c1496e937468697393636f6e6e656374696f6e2c9104e60b779abe39659364650c6e6593 *749877986f93706174689373652d8ea18d91edbae26c656374696f6e96042ca5636f6d9abe3962 *696e61746f727393c62f3e93b9616e6493c63c2fb92e91076263426f746893636f6d9862696e61 *746f7273936398686f9041c76f73658ea18d91edbae2737562747265657396039c4e746f937265 *7475726e936261736564936f6e93776865746865729374686593726573756c7473936f66937468 *65936c6566748ea18d91edbae20c6c7465729603154d636f6e9abe397461696e93746865937265 *73756c7473936f669374686593726967689874930c6c74657293617393639868696c6472656e3a *91041c6dc62f3e93b969738ea18d91edbae2616e9602fd8c60696e90be39746572696f72279373 *656c6563746f722c9103024e72657475726e696e679374686593696e6e65729373747275637475 *72653b9103057ac63c2f93b9697393616e8ea18d91edbae2606578746572696f72279603155473 *656c6563746f722c9372657475726e696e6793746865936f75746572937374727563747572652e *8e91edbae29f05f3fb8900006666005fffa09f08d70b8d8d8d8d910a727d9ffcfb72b0378e8e8e *910e599db141637475616c6c79960334d361936c6566742d73656374696f6e936f669374686593 *696e0c78936f7090371c657261746f722e9105175c42656361757365930c6c7465727393617265 *8ea40800008d6869676865722d6f726465722c910426e874686569729603dc4975736593697393 *6574612d7265647563656493616e649374686593726967689ac8e3746d6f737493617267756d65 *6e98748ea18d64697361707090371c656172739602b1c866726f6d93766965772e8e8e8e8d8da0 *ff78cccc8da0fdfd999a8d9200f5bae2840000666600f000008e9f1133338d8d9200ff2e0ec66f *2c91401858c5497269736891034e3c6395871b6f6d70936f736974696f6e8e8ea40a00008d8d92 *00ff2e0ec6287c7c7c292c912d3200c561707095871b656e6491034e3c72936573756c74738e8e *a18d8d9200ff2e0ec6776974682c9131eb96c56775617290871b648e8ea18d8d9200ff2e0ec677 *6974686f75742c9123bed4c56e6595871b67617469766591034e3c6775617293648e8ea18d8d92 *00ff2e0ec6282f3e292c9131eb96c5696e746572696f7291034e3c736595871b61729363688e8e *a18d8d9200ff2e0ec6283c2f292c9131eb96c56578746572696f7291034e3c736595871b617293 *63688e8ea18d8d9200ff2e0ec6287c3e7c299131eb96c564697295871b6593637465936491034e *3c63686f696393658e8ea18d8d920108a13ac63a3a9604b9964346696c746572932d3e93434669 *6c746572932d3e934346696c7465728e8ea1a18d8d9200ff2e0e669604b996606f6093679125cc *b03d93636f6e636174932e936d61709366932e93678e8ea18d8d9200ff2e0e669604b9967c7c7c *93679125ccb03d935c632d3e93669363932b2b936793638e8ea18d8d9200ff2e0e669604b99660 *7769746860936791179fee3d9366696c74657293286e6f742e6e756c6c2e6729932e93668e8ea1 *8d8d9200ff2e0e669604b99660776974686f75746093679109732c3d9366696c74657293286e75 *6c6c2e6729932e93668e8ea18d8d9200ff2e0e669604b9962f3e9367912a86463d936793606f60 *936368696c6472656e93606f6093668e8ea18d8d9200ff2e0e669604b9963c2f9367912a86463d *93669360776974686093286793606f60936368696c6472656e298e8ea18d8d9200ff2e0e669604 *b9967c3e7c93679125ccb03d9366933f3e9366933a3e93678e8ea1a18d8d9200ff2e0e63617491 *3b5ec2c56395871b6f6e63936174656e61746591034e3c72936573756c74738e8ea18d8d920108 *a13ac63a3a9604b9965b4346696c7465725d932d3e934346696c7465728e8ea1a18d8d9200ff2e *0e6361749604b99666739112e6583d935c632d3e93636f6e6361742e936d617093285c662d3e66 *9363299366738e8ea1a18d8d9200ff2e0e657491401858c56469736a6f696e7491034e3c756e69 *6f6e8e8ea18d8d920108a13ac63a3a9604b99628537472696e672d3e4346696c74657229932d3e *934346696c746572932d3e934346696c7465728e8ea1a18d8d9200ff2e0e669604b99660657460 *93679109732c3d93286693606f6f609374616767656493656c6d298e8ea18d8d920137e1167c3e *7c9604b996286793606f6093747874298e8ea1a18d8d9200ff2e0e283f3e299136a52cc569662d *7468656e2d656c736591034e3c63686f696390871b658e8ea18d8d920108a13ac63a3a9604b996 *4346696c746572932d3e935468656e456c7365934346696c746572932d3e934346696c7465728e *8ea1a18d8d9200ff2e0e646174619604b9965468656e456c73659361933d9361933a3e93618e8e *a18d8d9200ff2e0e709604b9963f3e9366933a3e9367933d935c632d3e93696693286e6f742e6e *756c6c2e702993638e8ea18d8d920158f4307468656e9604b99666936393656c7365936793638e *8ea1a18d8d9200ff2e0e636869702c9131eb96c55c696e2d706c616395871b65229b034e3c6170 *706c6963936174696f6e98746f986368696c647293656e8e8ea18d8d9200ff2e0ec6646565702c *9131eb96c57295871b6593637572736976659b034e3c73659361729363689828746f706d6f7374 *298e8ea18d8d9200ff2e0ec6646565706573742c9123bed4c57295871b6593637572736976659b *034e3c73659361729363689828646593657093657374298e8ea18d8d9200ff2e0ec66d756c7469 *2c912d3200c57295871b6593637572736976659b034e3c73659361729363689828616c9078e46c *298e8ea18d8d9200ff2e0ec6666f6c64586d6c9128786ac57295871b6593637572736976659103 *4e3c6170706c6963936174696f6e8e8ea18d8d920108a13ac63a3a9604b9964346696c74657293 *2d3e934346696c7465728e8ea1a18d8d9200ff2e0e646565709604b996669112e6583d9366937c *3e7c932864656570936693606f60936368696c6472656e298e8ea18d8d9200ff2e0e6465657065 *73749604b99666933d932864656570657374936693606f60936368696c6472656e29937c3e7c93 *668e8ea18d8d9200ff2e0e6d756c74699604b99666910e2cc23d9366937c7c7c93286d756c7469 *936693606f60936368696c6472656e298e8ea18d8d9200ff2e0e666f6c64586d6c9604b9966693 *3d936693606f609328636869709328666f6c64586d6c936629298e8ea19f1b33338d8d92010656 *fbb946696775726596031554333a91041c7046696c74657293636f6d90be3962696e61746f7273 *93616e649374686569729364650c6e6974696f6e732e8e8ea18d9200f5bae2840000666600f000 *008e8e9f1c00008d9200f5bae2c4416e9602624965646974696e6793636f6d90b44362696e6174 *6f7291093ffcb941736964659602121066726f6d93707265646963617465732c910245eb73656c *6563746f72732c8ea40a00008d9200f5bae26395be39686f6963652c9102a624616e649b028a57 *636f6e73747275637469769365980c6c746572732c9102a6247468657265986973986f6e659876 *936572799875736566756c98636f6d2d8ea18d9200f5bae262696e61746f72960272ab77686963 *9abe3968937374616e647393696e93697473936f98776e9363617465676f7279937b93616e9365 *646974696e6793636f6d9862692d8ea18d9200f5bae26e61746f722e910400dbc6636869709104 *b996669602c294b970726f9041c76365737365739374686593639abe3968696c6472656e936f66 *93616e93656c656d656e987493696e2d706c6163653a8ea18d9200f5bae27468659603564b0c6c *74657293c66693b96973936170706c69656493746f93697473936390be3968696c6472656e3b91 *0376c674686593726573756c7473936172659372656275696c748ea18d9200f5bae26173960315 *54746865936e657793639abe3968696c6472656e936f6693746861749373616d6593656c656d65 *6e98742e8e9f1697fc8d9200f5bae2c4526563757273696f6e91093ffcb949749602d4e2697393 *6f6674656e9375736566756c93746f936578707265737393726563757273697690be3965937472 *616e73666f722d8ea18d9200f5bae26d6174696f6e739602d46b6f6e93584d4c9102d45b646f90 *41c763756d656e9abe3974733a9103fbfc7472616e73666f726d6174696f6e7393776869639868 *9363616e93629041c7658ea18d9200f5bae26170706c696564960315546174936d616e9abe3979 *9364690b6572656e9874936c657698656c73936f669374686593646f9041c763756d656e987493 *747265652e8ea18d9201033ae24f6e659603387966616d696c79936f669373756390be39689365 *787072657373696f6e739369739375736566756c937072696d6172696c7993696e9373652d8e8e *8e8e8e9f1e00008d9200e76ae3348e8e8c8b000000050000000000000000000000000000000000 *0000000000000000000000000000000000000000004fdba00295bae28da0fd3f0000a002a30000 *8d8d8d8da0fd8000008d91edbae2b96c656374696e67960291ab6193737562747265659366726f *6d93616e936172626974726172696c799364656570936c6f9041c7636174696f6e2c9102ac0061 *6c74686f7567688ea40a00008d91edbae27468657996038da863616e936f6693636f7572736593 *629041c765937573656493666f729365646974696e6793616e64930c6c746572696e6793617393 *7790be39656c6c8ea18d91edbae261739604158f73656c656374696f6e2e91071d215468659372 *656375727369769abe396593636f6d9862696e61746f7293c6646565709104b9966693c5709087 *1b6f74656e7469616c9078e46c798ea18d91edbae2b97075736865739603550474686593616374 *696f6e936f66930c6c74657293c66693b96465657093696e736964659374686593646f9041c763 *756d656e90be3974937375622d8ea18d91edbae2747265652e91074ec649749604261b0c727374 *93747269657393746865936769769abe39656e930c6c746572936f6e937468659363757272656e *9874936974656d3a91063dff69668ea18d91edbae26974960378fd69739370726f9041c7647563 *74697690be3965937468656e9369749373746f707393686572652c910391e8627574936966936e *6f93726573756c7473936172659372652d8ea18d91edbae27475726e65642c91031ea37468656e *96031cc76974936d6f95be397693657396031cc7746f93746865936390be3968696c6472656e93 *616e6493747269657393616761696e9372656375722d8ea18d91edbae27369769abe39656c7991 *ff3aab2e9105baa25768656e96039f657573656493776974689361937072656469636174652c91 *03c1e974686973937374726174656779937365617263986865738ea18d91edbae2666f729603c9 *ec74686593746f706d6f7374936d6174639abe3968696e6793656c656d656e98747393696e9374 *686593747265652e91063a395468657265936172658ea18d91edbae27691ff7c72617269617469 *6f6e733a9104ca55c66465657065737496036c46b973656172639abe3968657393666f72937468 *6593629041c76f74746f6d6d6f7374936d6174639868696e678ea18d91edbae2656c656d656e9a *be3974733b91040cd7c66d756c74699603ba56b972657475726e7393616c6c936d617463986865 *732c9103e397657698656e9374686f736593776869639868936172658ea18d91edbae27375622d *74726565739603400d6f66936f74686572936d61746395be396865732e91049c9c486f93779365 *769365722c9b034abc61739603400d616c7265616479936e6f7465642c987468658ea18d91edba *e2616374696f6e960295f86f6693746865736593636f6d90be3962696e61746f7273936973936e *6f74937265737472696374656493746f9370726564696361746573936f728ea18d91edbae27365 *6c6563746f72732e8ea18d91fb3ae2416e6f746865729b0372c0709041c76f95be397793657266 *756c98726563757273696f6e98636f6d9362696e61746f7298697398c6666f6c64586d6cb93a91 *04d7487468658ea18d91edbae265787072657373696f6e96025e69c6666f6c64586d6c9104b996 *6693b96170706c69657393746865930c6c74657293c66693b9746f9365769abe39657279936c65 *7698656c936f66937468658ea18d91edbae2747265652c910395e666726f6d96037c2f74686593 *6c656195be39769365739b037c2f75709377936172647398746f9874686598726f9041c76f7498 *286174986c6561737498636f6e6365702d8ea18d91edbae27475616c6c799602bf367b936f6693 *636f75727365936c617a7993657691ff7c72616c756174696f6e936d616b9abe39657393746869 *73936d6f726593650e6369656e9874292e8e9f1697fc8d8d91edbae2c4322e338e9105fcf14578 *616d706c658e9f0fcffe8d91edbae2b954686596032603757365936f66937468657365930c6c74 *65727393616e6493636f6d90be3962696e61746f727393697393696c6c75737472617465649369 *6e93616e8ea18d91edbae26578616d706c659604593173637269707493696e9346696775726593 *342e9107e806546869739370726f6772616d937472616e73666f726d7393616e8ea18d91edbae2 *c63c616c62756d3e96037c22b9656c656d656e9abe397493696e98746f93616e9348544d4c9103 *7c07646f9041c763756d656e987493746861749370726f98766964657393618ea18d91edbae266 *6f726d61747465649603dc3d73756d6d61727991ff3aab2e9106712a5468659348544d4c9103dc *096f75747075742c91040df772656e6465726564936290be3979937468658ea18d91edbae24e65 *74736361709041c7659604235162726f9abe39777365722c910466d0697393696c6c7573747261 *74656493696e9346696775726593352e9107466853756398689361937461736b8ea18d91edbae2 *6d69676890be397496031554629041c76593666169726c7993636f6d6d6f6e93696e93652d636f *6d6d65726365936170706c69636174696f6e732e8ea18d91fb3ae25791ff3aab6596036da76e6f *9abe397793646573637269629041c76593736f6d65936f66937468659373616c69656e98749366 *65617475726573936f66937468659365782d8ea18d91edbae2616d706c652e8ea41333338d9100 *a13ac628616c62756d669604b996606f60936465657093287461679322616c62756d2229298ea1 *8d91edbae2b95468659604dbbc736372697074930c7273749373656172639abe39686573937265 *63757273697698656c7993666f729374686593746f706d6f737493656c652d8ea40a00008d91ed *bae26d656e90be39749603aae574616767656493c63c616c62756d3eb92c9103d049629041c765 *666f7265936170706c79696e6793746865930c6c74657293c6616c62756d6693b9746f8ea18d91 *edbae269742e9104796a546895be3975732c91033c1169749b03345277936f726b739865717561 *6c6c79987793656c6c987769746898616e937998584d4c9103344a736f7572636598646f9041c7 *63752d8ea18d91edbae26d656e9abe39749602e3c97468617493636f6e987461696e7393616e93 *c63c616c62756d3e93b9656c656d656e987493616e987977686572659377697468696e9369742c *8ea18d91edbae2616e649602cdc228636f72726563746c79299370726f9a41c76475636573936e *6f936f757470757493666f7293646f9863756d656e9abe3974739377686963986893646f8ea18d *91edbae26e6f7496031554636f6e90be397461696e93616c62756d93646174612e8ea18d91fb3a *e25468659605e3bc6f757470757493646f9041c763756d656e9abe3974277393c63c484541443e *93b973656374696f6e93636f6e987461696e73937468658ea18d91edbae2617274697374960333 *0d6e616d6593616e6493616c62756d937469746c6593736570617261746564936290be39799361 *93636f6c6f6e2e9104759c5791ff3aab65936e6f74658ea18d91edbae274686174960315547468 *659365787072657373696f6e2c8ea91133338d9100a13ac67478749604b996606f60936368696c *6472656e93606f60937461679322617274697374228ea18d91138792606f609604b9966368696c *6472656e93606f60937461679322616c62756d228ea68d91edbae2b9776869639abe3968960452 *79677261627393746865937465787475616c93636f6e9874656e9874936f669374686593c63c61 *72746973743e93b9656c656d656e98748ea18d91edbae277697468696e9603857274686593c63c *616c62756d3e93b9656c656d656e9abe39742c9103a179697393736f6d657768617493756e9877 *69656c647991ff3aab2e91056cca4d6f72652d8ea18d91edbae26f95be39769365729602f4be69 *747393747261696c696e67937465737493666f729374686593c63c616c62756d3e93b974616793 *697393726564756e64616e90be39742c9102fb4273696e63658ea18d91edbae274686596044052 *63616c6c696e67930c6c7465729368617393616c726561647993709041c76572666f726d656493 *74686174936d61746390be39682e91079d695468658ea18d91edbae265787072657373696f6e96 *03155463616e93629041c7659373696d706c690c6564936290be3979937573696e679370617468 *9373656c6563746f727393746f3a8ea68d9100a13ac66b6565709604b9962f3e93746167932261 *727469737422932f3e937478748ea68d91edbae2b9616e64960405a97468697393737490be3979 *6c65936973937573656493656c7365776865726593696e93746865936578616d706c652e9106ed *6e2854686593616c2d8ea18d91edbae267656272616963960374d76c619abe39777393696e9353 *656374696f6e93322e359367756172616e98746565937468617493746869739372657772697469 *6e679369738ea18d91edbae2736166652e298ea18d91fb3ae25375639abe39689605dd99657870 *72657373696f6e73936d616b986593736f6d6593617373756d7074696f6e739361629041c76f75 *74937468658ea18d91edbae273747275637475726596026a116f66937468659364617461937769 *7468696e9374686593c63c616c62756d3e93b9656c656d656e90be39742e9103e35a496e937468 *697393696e2d8ea18d91edbae27374616e63652c9102637d74686596023707617373756d707469 *6f6e936973937468617493616e93c63c6172746973743e93b9656c656d656e90be397493697393 *616e93696d2d8ea18d91edbae26d6564696174659602dc0e639abe3968696c642c9102e783616e *64937468617493c569747393b9696d6d65646961746593639868696c6472656e93696e636c7564 *6593746578742e8ea18d91edbae249669603f14a7375639abe396893617373756d7074696f6e73 *9370726f9876986593696e636f727265637493666f72936193706172746963756c617293646f90 *41c763752d8ea18d91edbae26d656e9abe39742c96031554746865930c6c746572936973937369 *6d706c7993756e70726f9041c764756374697698653b936e6f936572726f72936973930d616767 *65642e8ea18d91fb3ae2576974689602b75861937375697461626c659364650c6e6974696f6e2c *9102ca24c668626f64799604b9963d936d6b456c656d417474729322424f4459228ea18d91edba *e2b97468659103155465787072657373696f6e8ea68d9100a13ac668626f64799109732c5b2822 *6267636f6c6f72222c28227768697465222129295d910e2cc25b2e2e2e5d8e8e8e8d8da0fd8000 *008d9200f5bae2b963616e9602a9a9629a41c76593756e64657273746f986f986493746f937365 *74937468659362616390be396b67726f756e6493636f6c6f757293617474726962757465936f66 *8ea40a00008d9200f5bae27468659603b23ac63c424f44593e93b974616793746f93746865936c *69746572616c937691ff7c72616c756593c67768697465b92e9105f3234e6f7469636593686f90 *be3977937468658ea18d9200f5bae2617474726962757465960271327691ff7c72616c75659369 *7393697473656c6693646573637269629041c76564936290be39799361930c6c7465722e9103e5 *ba496e937468697393636173652c910292067468658ea18d9200f5bae20c6c7465729603169f69 *73936e6f74937690be39657279936578636974696e672c910316f262757493746865936c617465 *729364650c6e6974696f6e936f6693c66d6b4c696e6b8ea18d9200f5bae2b9696c6c7573747261 *74657396032be07468659367656e65726174696f6e936f6693616e9348544d4c91032bda726566 *6572656e6365936290be3979936c6f9041c76f6b696e678ea18d9200f5bae2757096026c767468 *65937691ff7c72616c7565936f66936193737570706c69656493c66c696e6b93b9617474726962 *75746593287573696e679374686593c63f9103e426b90c6c746572292e8ea18d9201033ae25768 *656e96052060746865937363726970749369739375736564936f6e937468659370617274696375 *6c617293646f9041c763756d656e90be39748ea18d9200f5bae266726f6d96041b204669677572 *6593312c91045c93746865936f757470757493697393619372652d6f72646572696e67936f6693 *74686593696e90be397465726e616c8ea18d9200f5bae2636f6d709041c76f6e656e90be397473 *960448a26f669374686593696e7075743a9106830b696e9374686593c63c424f44593e93b97061 *7274936f6693746865936f75742d8ea18d9200f5bae27075742c91053c657468659604ce2fc63c *6e6f7465733e93b973656374696f6e9369739373656c656374656493616e64937472616e73666f *726d6564936290be39798ea18d9200f5bae2c66e6f746573669603d5c9b9629a41c765666f7265 *9374686593c63c636174616c6f676e6f3e93b9656c656d656e90be397473936172659370726f98 *636573736564936290be39798ea18d9200f5bae27468659602eb62c673756d6d6172796693b90c *6c7465722e91040e75416c74686f75676893696e9374686593616273656e6365936f6693619344 *54449102eb5769749369738ea18d9200f5bae2696d709a41c76f737369626c6596032d76746f93 *6298659373757265936f6693616e90be397993696e707574936f72646572696e672c9103337e74 *68659373637269707493686572658ea18d9200f5bae2656e737572657396031554746861749374 *6865936f7574707574936f72646572696e6793697393636f6e73697374656e90be39742e8ea18d *9201033ae2546865960571e464650c6e6974696f6e936f669374686593c66e6f7465736693b90c *6c74657293697393696e90be39746572657374696e6793629041c7652d8ea18d9200f5bae26361 *75736596044edb6974936d616b9abe3965739366657798657293617373756d7074696f6e739361 *629041c76f75749374686593636f6e9874656e9874936f6693618ea18d9200f5bae2c63c6e6f74 *65733e9604470db97374727563747572652c9104937b616e6493696e936164646974696f6e9369 *74937072657365727690be3965739374686593696e7075748ea18d9200f5bae26f72646572696e *672e9105845754686596038d4c639abe396861696e65649369662d7468656e2d656c7365936398 *686f6963659377697468696e937468659372656375722d8ea18d9200f5bae27369769abe396596 *02ed68c6666f6c64586d6c93b9636f6d9862696e61746f729363617573657393616c6c93696e98 *7465726e616c93737472756374757265936f66937468658ea18d9200f5bae2c63c6e6f7465733e *9603568bb9656c656d656e9abe397493746f93629041c7659372657461696e6564936578636570 *7493666f7293746865937265706c6163656d656e98748ea18d9200f5bae26f6696047b23c63c74 *7261636b7265663eb97393629abe397993656d706861736973656493746578742c9104d496616e *6493c63c616c62756d7265663eb973936298798ea18d9200f5bae248544d4c910315546c696e6b *732e8ea18d9201033ae24f6e659604260f6f6693746865936d6f737493737472696b696e679366 *65617475726573936f6693746865936578616d706c6593617393618ea18d9200f5bae277686f6c *659603a20b697393686f9abe39779373656c656374696f6e93616e649374657374696e67936f66 *936f6c6493636f6e9874656e987493616e6493636f6e2d8ea18d9200f5bae2737472756374696f *6e960311f66f66936e657793636f6e95be3974656e9374960311f661726593756e69666f726d2c *910312a3616e649363616e93629041c76593636f6d90be3962696e65648ea18d9200f5bae2616c *6d6f737491031554696e95be39746572639368616e676561626c7991ff3aab2e8ea18d9201033a *e25791ff3aab6596025dec77696c6c9372657475726e93746f937468659374726561746d656e9a *be3974936f6693c63c636174616c6f676e6f3e93b9656c656d656e9874738ea18d9200f5bae269 *6e9603342953656374696f6e93322e3493616674657293696e9abe3974726f9041c7647563696e *6793736f6d6593657874726193c56c616290871b656c9078e46c696e6793b9636f6d9862692d8e *a18d9200f5bae26e61746f72732e8e9f165d9e8d8d9200f5bae2c4322e348e92010dfcf14c6162 *904bbc656c6c696e67738e9f0fcffe8d9200f5bae2b94f6e659602366b66656174757265937468 *6174936973936f9041c763636173696f6e616c6c799375736566756c9369739374686593616269 *6c69749abe397993746f93617474616398688ea18d9200f5bae26c61629041c7656c739603255d *746f936974656d7393696e93619373657175656e63652c9b032960666f7293696e7374616e6365 *2c98746f936e95be39756d93629041c765729603255d61936c6973748ea18d9200f5bae26f6696 *03b8316974656d732c9103e0e96f7293746f93747265617493746865930c7273742f6c61737493 *6974656d936f669361936c6973749364690b6572656e90be39746c798ea18d9200f5bae266726f *6d9602dda5746865936f74686572936974656d732e910409e04691ff3aab6f7293746869739370 *7572709041c76f73652c9102e8c8746865936c6962726172799370726f90be3976696465738ea1 *8d9200f5bae273709541c7656369616c9b0275df6c616293656c6c696e6798636f6d95be396269 *6e61746f72732e9103e7495791ff3aab65986393686f9041c76f736598746f98696e9374726f90 *41c7647563659861986e65778ea18d9200f5bae27490be3979709041c7653a8ea41005f18d9200 *ff2e0ec6747970659604b9964c6162656c46696c7465729361933d93436f6e74656e74932d3e93 *5b9328612c436f6e74656e7429935d8ea18d9200f5bae2b94191036819c64c6162656c46696c74 *65729603682eb96973936c696b9abe3965936193c64346696c74657293b9657863657074936974 *936174746163986865739361936c61629041c7656c8ea40a00008d9200f5bae2746f9603cc0165 *61639abe3968936f669369747393726573756c74732e910640785791ff3aab65936d6967689874 *93686198769865936398686f73656e93746f93666f6c64936c61629041c7656c8ea18d9200f5ba *e27691ff7c72616c75657396034074696e736964659374686593c6436f6e74656e7493b97490be *3979709041c7652c91034b3c746f937969656c64936193756e69666f726d93c64346696c746572 *8ea18d9200f5bae2b97495be3979709041c7652c9103b7d46275749b0397546b93656570696e67 *98746865986c61629041c7656c7398736570617261746598616c6c6f937773987468656d98746f *98629041c765986f668ea18d9200f5bae2636f6d706c6574656c79960298b4709a41c76f6c796d *6f7270686963937490be39797098653a9103de2061936c616298656c93636f756c6493657690be *39656e9362986593616e6f746865728ea18d9200f5bae20c6c74657296031554666f7293657861 *6d706c652e8ea18d9201033ae25468657265960315546172659373657690be396572616c93636f *6d6d6f6e936c61629041c7656c6c696e679366756e6374696f6e733a8ea91005f18d9200ff2e0e *c66e756d626572656491179fee3a3a9604b9964346696c746572932d3e934c6162656c46696c74 *657293496e748ea18d9200ff2e0e696e746572737065727365649604b9963a3a9361932d3e9343 *46696c746572932d3e93618ea18d920191a7382d3e9604b9964c6162656c46696c74657293618e *a18d9200ff2e0e7461676765649121131a3a3a9604b9964346696c746572932d3e934c6162656c *46696c74657293537472696e678ea18d9200ff2e0e61747472696275746564910e2cc23a3a9604 *b9964346696c746572932d3e8ea18d9201543a9a4c6162656c46696c7465729104b9965b285374 *72696e672c537472696e67295d8ea68d9200f5bae2b954686573659602e0ba6c61629041c7656c *6c696e679366756e6374696f6e73936c696674936193c64346696c74657293b9746f9374686593 *c64c6162656c46696c7465728ea18d9200f5bae2b9749abe3979709041c7653a9106e7b8c66e75 *6d62657265649104b9966696047af8b97472616e73666f726d7393746865936f7264696e617279 *930c6c74657293c66693b9696e98746f93618ea18d9200f5bae26e6577960448b10c6c74657293 *746861749361747461639abe3968657393696e98746567657273932866726f6d93319375709877 *98617264732993746f937468658ea18d9200f5bae2726573756c747396045e8d6f6693c666b93b *91050329c6696e746572737065727365649604b996619366937a96045e8db9617474616390be39 *68657393746865936c61629041c7656c93c66193b9746f8ea18d9200f5bae2616c6c9603a9f86f *669374686593726573756c7473936f6693c66693b965786365707493746865936c6173742c9103 *cf217768696390be3968936765747393746865936c61629041c7656c8ea18d9200f5bae2c67ab9 *3b91038741c67461676765649104b9966696036148b96c61629041c7656c739365769abe396572 *799374616767656493656c656d656e987493776974689369747393746167936e616d658ea18d92 *00f5bae228616e64960457906e6f6e2d656c656d656e9abe39747393776974689374686593656d *7074987993737472696e67293b9104f8aec6617474726962757465649104b996668ea18d9200f5 *bae2b96c61629041c7656c73960426bc65769abe396572799374616767656493656c656d656e98 *74937769746893697473936174747269627574652f7691ff7c72616c75659370616972738ea18d *9200f5bae228616e64960315546e6f6e2d656c656d656e9abe3974739377697468937468659365 *6d70749879936c697374292e8e9f11baa08d9200ff2e0ec6606f6f609604b9963a3a9328612d3e *4346696c74657229932d3e934c6162656c46696c7465729361932d3e934346696c7465728e8e8e *8e8e9f1e00008d9200e76ae3b9358e8e8c8b000000060000000000000000000000000000000000 *0000000000000000000000000000000000000000006c3ba00295bae28da0fd3f0000a002a30000 *8d8d8d8d9fee66668da0fd99999a8d91edbae2840000666600f000008e9f1133338d91edbae2c6 *6d6f64756c659604b9964d61696e9377686572658ea40a00008d91edbae2696d706f72749104b9 *96586d6c8ea18d91edbae26d61696e9104b9963d8ea18d91f72e0e70726f63657373584d4c7769 *74689604b99628616c62756d6693606f60936465657093287461679322616c62756d2229298ea1 *8d91edbae2616c62756d669104b9963d8ea18d91f72e0e68746d6c8ea18d9100a13a5b9104b996 *68686561648ea18d910a14665b9104b996687469746c658ea18d911387925b9604b99674787493 *606f60936368696c6472656e93606f60937461679322617274697374228ea18d912fe116606f60 *9604b9966368696c6472656e93606f60937461679322616c62756d228ea18d911387922c9604b9 *966c69746572616c93223a93228ea18d911387922c9604b9966b656570932f3e93746167932274 *69746c6522932f3e937478748ea18d911387925d8ea18d910a14665d8ea18d9100a13a2c9604b9 *9668626f6479935b28226267636f6c6f72222c28227768697465222129295d8ea18d910a14665b *9104b9966863656e7465728ea18d911cfabe5b9604b9966831935b936b656570932f3e93746167 *93227469746c6522932f3e93747874935d935d8ea18d910a14662c9604b9966832935b9328224e *6f746573222129935d8ea18d910a14662c9604b9966870617261935b936e6f7465736693606f60 *93286b656570932f3e9374616793226e6f7465732229935d8ea18d910a14662c9104b99673756d *6d617279668ea18d910a14665d8ea18d9100a13a5d8ea18d91edbae26e6f746573669104b9963d *8ea18d91f72e0e666f6c64586d6c9604b996287478749b38b3083f3e936b656570983a3e8ea18d *9121b4547461679604b99622747261636b72656622933f3e937265706c6163655461679322454d *22933a3e8ea18d9121b4547461679604b99622616c62756d72656622933f3e936d6b4c696e6b91 *2f3fdc3a3e8ea18d9121b4546368696c6472656e298ea18d91edbae273756d6d617279669104b9 *963d8ea18d91f72e0e687461626c659104b9965b2822424f52444552222c282231222129295d8e *a18d9100a13a5b9604b99668726f77935b9368636f6c935b932822416c62756d937469746c6522 *2129935d8ea18d9121b4542c9604b99668636f6c935b936b656570932f3e937461679322746974 *6c6522932f3e93747874935d8ea18d9121b4545d8ea18d9100a13a2c9604b99668726f77935b93 *68636f6c935b932822417274697374222129935d8ea18d9121b4542c9604b99668636f6c935b93 *6b656570932f3e93746167932261727469737422932f3e93747874935d8ea18d9121b4545d8ea1 *8d9100a13a2c9604b99668726f77935b9368636f6c935b9328225265636f7264696e6793646174 *65222129935d8ea18d9121b4542c9604b99668636f6c935b936b656570932f3e8ea18d915a675c *7461679604b996227265636f7264696e676461746522932f3e93747874935d8ea18d9121b4545d *8ea18d9100a13a2c9604b99668726f77935b9368636f6c61935b93282256414c49474e222c2822 *746f7022212929935d8ea18d914781045b9604b9962822436174616c6f67936e756d6265727322 *2129935d8ea18d9121b4542c9104b99668636f6c8ea18d912b27805b9104b996686c6973748ea1 *8d91349aac5b9604b9966361746e6f93606f6f608ea18d9142c76e6e756d62657265649604b996 *286465657093287461679322636174616c6f676e6f2229298ea18d91349aac5d8ea18d912b2780 *5d8ea18d9121b4545d8ea18d9100a13a5d8ea18d91edbae26361746e6f9604b9966e933d8ea18d *91f72e0e6d6b456c656d9104b996224c49228ea18d9100a13a5b9604b996282873686f77936e2b *2b222e93222921292c9609732c28226c6162656c223f292c9328226e756d626572223f298ea18d *9100a13a2c9604b996282293282221292c9609732c2822666f726d6174223f292c932822292221 *299104b9965d8ea18d91edbae26d6b4c696e6b9104b9963d8ea18d91f72e0e6d6b456c656d4174 *74729604b996224122935b93282248524546222c28226c696e6b223f2929935d8ea18d9100a13a *5b9604b9966368696c6472656e935d8e9f1b33338d91edbae2b94669677572659602c8de343a91 *03f635416e936578616d706c6593646f9541c763756d656e90be39742d70726f9363657373696e *679602c8de736372697074937573696e67937468658ea18d91edbae267656e6572696396031554 *0c6c74657293636f6d90be3962696e61746f72732e8ea18d91edbae2840000666600f000008e8e *8e8e8d8da0fec0a8a58d9fd800008d8d9200f5bae2ef3c505366696c653d226272756265636b2e *65707322206c6c783d3134206c6c793d3134207572783d343833207572793d353832207277693d *32333931208e8e9f1400008d9200f5bae246696775726596025eae353a9103c11d546865934854 *4d4c91025e7f726573756c7473936f6693746865936578616d706c65937363726970742c910283 *3672656e64657265648ea40a00008d9200f5bae2629abe397996031554619362726f9877736572 *2e8ea18d9200f5bae2840000666600f000008e8e9f1c00008d9200f5bae25468659603da09636f *6d9abe3962696e61746f7293c6606f6f6093b969739361936e657793666f726d936f6693636f6d *709041c76f736974696f6e937768696398688ea40a00008d9200f5bae264726f707396033f5761 *93c64c6162656c46696c74657293b96261639abe396b93746f9374686593c64346696c74657293 *b9749879709041c76593629879936170706c6963612d8ea18d9200f5bae274696f6e960315546f *6693616e6f74686572930c6c746572937468617493636f6e73756d657393746865936c61629041 *c7656c2e8ea18d9201033ae254686596047bbf757365936f66937468697393666f726d936f6693 *6c61629041c7656c6c696e6793697393696c6c7573747261746564936290be3979937468658ea1 *8d9200f5bae274726561746d656e90be3974960315546f6693c63c636174616c6f676e6f3eb973 *93696e93746865936578616d706c65936f669346696775726593343a8ea41133338d9200ff2e0e *c66361746e6f9604b996606f6f60936e756d626572656493286465657093287461679322636174 *616c6f676e6f2229298ea18d9200f5bae2b946697273742c9102b7d67468659602a07664657369 *72656493656c656d656e90be39747393617265936578747261637465649366726f6d9374686569 *7293746f706d6f73748ea40a00008d9200f5bae2709041c76f736974696f6e73960447c9696e93 *74686593747265652c910494667468656e937468657993617265936769769abe39656e936e9875 *6d65726963936c61629041c7656c732c8ea18d9200f5bae2616e64960302420c6e616c6c799374 *686593c66361746e6f93b90c6c74657293696e636f72709a41c76f726174657393746865936c61 *6298656c93696e90be39746f93736f6d658ea18d9200f5bae267656e6572617465649603dde674 *6578742e91067627416e6f74686572936578616d706c659363616e93629041c765937365656e93 *696e937468659364650c2d8ea18d9200f5bae26e6974696f6e960351696f669374686593c66065 *746093b9636f6d9abe3962696e61746f7293696e9346696775726593332e9104d0af28c6606574 *6093b9636f6d9862696e65738ea18d9200f5bae261960443b20c6c74657293c66693b96f6e9365 *6c656d656e90be39747393776974689361930c6c74657293c66793b96f6e93746578742e9107a7 *89c66693b97061747465726e2d8ea18d9200f5bae26d6174639abe3968657396031d9561676169 *6e7374937461676e616d6573937b93746865937461676e616d6573936172659365787472616374 *6564936298798ea18d9200f5bae2746865960315546c61629041c7656c6c696e679366756e6374 *696f6e93c6746167676564b92e298ea18d9201033ae24691ff3aab7572746865726d6f72652c91 *044b87697496040d7d697393709a41c76f737369626c6593746f93636f6d90be3962696e65936c *616298656c6c696e67732e910704ec5468658ea18d9200f5bae2c66078609602d383b9636f6d9a *be3962696e61746f7293676c75657393749877986f936c61629041c7656c6c696e679366756e63 *74696f6e7393746f6765746865722c9102e0ad706169722d8ea18d9200f5bae2696e6796031554 *746865936c61629a41c7656c7393746865799370726f98647563652e8e9f1133338d9200ff2e0e *c66078609604b9963a3a93284346696c7465722d3e4c6162656c46696c7465729361298ea18d92 *0129b4542d3e9604b996284346696c7465722d3e4c6162656c46696c7465729362298ea18d9201 *29b4542d3e9604b996284346696c7465722d3e4c6162656c46696c7465729328612c6229298e9f *1697fc8d8d9200f5bae2c4322e358e92010dfcf1416c6765627261696396038cca6c619ab44377 *73936f6693636f6d9862696e61746f72738e9f0fcffe8d9200f5bae2b95791ff3aab659602f576 *627269650d799373686f9abe397793686f987793636f6d9862696e61746f727393617265936465 *0c6e656493696e93737563986893619377986198798ea18d9200f5bae27468617496037b2b7691 *ff7c726172696f757393616c67656272616963936c619abe39777393686f6c642e91054df45468 *6593636f6d706c65746593736574936f66936c619877738ea18d9200f5bae26973960315546769 *7690be39656e93696e9346696775726593362e8ea18d9201033ae2476976696e6796040633616c *6c93636f6e95be3974656e9374960406330c6c74657273937468659373616d65937490be397970 *9041c765936d6178696d69736573937468658ea18d9200f5bae275736566756c6e6573739602e4 *1e6f6693636f6d90be3962696e61746f727393666f7293706c756767696e6793746f6765746865 *729366756e6374696f6e73936f668e8e8e8e8e9f1e00008d9200e76ae3368e8e8c8b0000000700 *000000000000000000000000000000000000000000000000000000000000000000000000008beb *a00295bae28da0fd3f0000a002a300008d8d8d8d9ff866668da0fd85999a8d91edbae284000066 *6600f000008e9f1133338d8d91138792c4497269736891038cca636f6d70904bbc6f736974696f *6e8e8ea40a00008d8d91edbae2c6669604b996606f6093286793606f609368299609732c3d9328 *669604b996606f6093672993606f609368911ab542c56173736f90871b6369617469766974798e *8ea18d8d91edbae2c66e6f6e659604b996606f6093669121131a3d9b09732c6693606f60936e6f *6e65983d986e6f6e659107ceeac57a657290871b6f8e8ea18d8d91edbae2c66b6565709604b996 *606f6093669121131a3d9b09732c6693606f60936b656570983d98669115fbacc56964656e7469 *74798e8ea1a18d8d91138792c44775617264738e8ea18d8d91edbae2c6669604b9966077697468 *60936b6565709609732c3d936691664ea2c56964656e746974798e8ea18d8d91edbae2c6669604 *b996607769746860936e6f6e659609732c3d936e6f6e659604b9966077697468609366933d936e *6f6e65910c8880c57a657290871b6f8e8ea18d8d91edbae2c628669604b9966077697468609367 *299360776974686093679609732c3d93669604b99660776974686093679115fbacc56964656d70 *95871b6f74656e6393658e8ea18d8d91edbae2c628669604b99660776974686093672993607769 *74686093688e8ea18d8d91266dea3d9109732c28669604b9966077697468609368299360776974 *686093679115fbacc5707290871b6f6d6f74696f6e8e8ea18d8d91edbae2c628669604b996606f *609367299360776974686093688e8ea18d8d91266dea3d9109732c28669604b996607769746860 *93682993606f6093679124286ec5707290871b6f6d6f74696f6e8e8ea1a18d8d91edbae2c66696 *04b99660776974686f757460936b6565709609732c3d936e6f6e659604b99660776974686f7574 *6093668e8ea18d8d9142c76e3d9109732c6e6f6e659149f51ec57a657290871b6f8e8ea18d8d91 *edbae2c6669604b99660776974686f757460936e6f6e659609732c3d936b6565709149f51ec569 *64656e746974798e8ea18d8d91edbae2c628669604b99660776974686f75746093672993607769 *74686f75746093678e8ea18d8d911387923d9109732c669604b99660776974686f757460936791 *4eaeb4c56964656d7095871b6f74656e6393658e8ea18d8d91edbae2c628669604b99660776974 *686f7574609367299360776974686f75746093688e8ea18d8d911387923d9109732c28669604b9 *9660776974686f7574609368299360776974686f7574609367910c8880c5707290871b6f6d6f74 *696f6e8e8ea18d8d91edbae2c628669604b996606f609367299360776974686f75746093688e8e *a18d8d911387923d9109732c28669604b99660776974686f75746093682993606f6093679128e2 *04c5707290871b6f6d6f74696f6e8e8ea1a18d8d91138792c45090b44361746891038cca73656c *6563746f72738e8ea18d8d91edbae2c6669604b9962f3e932867932f3e9368299609732c3d9328 *669604b9962f3e936729932f3e9368912d9b9ac56173736f90871b6369617469766974798e8ea1 *8d8d91edbae2c66e6f6e659604b9962f3e9366911c59843d9b09732c66932f3e936e6f6e65983d *986e6f6e659115fbacc57a657290871b6f8e8ea18d8d91edbae2c66b6565709604b9962f3e9366 *911c59843d9109732c6693606f60936368696c6472656e8e8ea18d8d91edbae2669604b9962f3e *936b656570911c59843d9109732c6368696c6472656e93606f6093668e8ea18d8d91edbae26b65 *65709604b9962f3e936b656570910e2cc23d9109732c6368696c6472656e8e8ea18d8d91edbae2 *6e6f6e659604b9963c2f9366911c59843d9b09732c66933c2f936e6f6e65983d986e6f6e659115 *fbacc57a657290871b6f8e8ea18d8d91edbae2c6669604b9963c2f936b656570911c59843d9109 *732c6693607769746860936368696c6472656e8e8ea18d8d91edbae228669604b9963c2f936729 *933c2f93679609732c3d93669604b9963c2f9367914eaeb4c56964656d7095871b6f74656e6393 *658e8ea18d8d91edbae2c628669604b9963c2f936729932f3e93679609732c3d93669604b9962f *3e9367914eaeb4c56964656d7095871b6f74656e6393658e8ea1a18d8d91edbae2c628669604b9 *962f3e936729933c2f9368911c59843d9109732c66932f3e932867933c2f936829911ab542c570 *7290871b6f6d6f74696f6e8e8ea18d8d91edbae2c628669604b9963c2f936729933c2f9368911c *59843d9109732c2866933c2f936829933c2f9367911ab542c5707290871b6f6d6f74696f6e8e8e *a18d8d91edbae2c6669604b996606f60932867932f3e93682991179fee3d9109732c67932f3e93 *286693606f609368299115fbacc5707290871b6f6d6f74696f6e8e8ea18d8d91edbae2c6286696 *04b9962f3e93672993606f60936891179fee3d9109732c286693606f60936829932f3e93679115 *fbacc5707290871b6f6d6f74696f6e8e8ea18d8d91edbae2c628669604b9962f3e936729936077 *6974686093689609732c3d93669604b9962f3e932867936077697468609368299107ceeac57072 *90871b6f6d6f74696f6e8e8ea18d8d91edbae2c628669604b9963c2f9367299360776974686093 *689609732c3d9328669604b996607769746860936829933c2f93679107ceeac5707290871b6f6d *6f74696f6e8e8ea1a18d8d91138792c4446972656374656491038cca6390b443686f6963658e8e *a18d8d91edbae2c628669604b9967c3e7c936729937c3e7c93689609732c3d93669604b9967c3e *7c932867937c3e7c936829911ab542c56173736f90871b6369617469766974798e8ea18d8d91ed *bae2c66b6565709604b9967c3e7c93669121131a3d9109732c6b6565708e8ea18d8d91edbae26e *6f6e659604b9967c3e7c93669121131a3d9b09732c66937c3e7c936e6f6e65983d98669115fbac *c56964656e746974798e8ea18d8d91edbae2c6669112e6587c3e7c9104b996669121131a3d9109 *732c66915cdb76c56964656d7095871b6f74656e6393658e8ea1a18d8d91138792c45265637572 *73696f6e8e8ea18d8d91edbae2c6646565709104b9966b656570911c59843d9109732c6b656570 *915821e0c573696d706c690c6390871b6174696f6e8e8ea18d8d91edbae2c6646565709104b996 *6e6f6e65911c59843d9109732c6e6f6e65915821e0c573696d706c690c6390871b6174696f6e8e *8ea18d8d91edbae2c6646565709104b9966368696c6472656e9609732c3d936368696c6472656e *91453b88c573696d706c690c6390871b6174696f6e8e8ea18d8d91edbae2c6646565709604b996 *28646565709366299609732c3d93646565709104b99666914eaeb4c5646570746891034e3c6c61 *778e8ea1a18d8d91138792c44d6973638e8ea18d8d91edbae2c6656c6d9604b9967c3e7c937478 *74933d93747874937c3e7c93656c6d933d936b6565709128e204c56390871b6f6d706c6574656e *6573738e8ea18d8d91edbae2c6656c6d9604b996606f6093747874933d9374787493606f609365 *6c6d933d936e6f6e659128e204c56578636c2e91034e3c6d6964649078e46c658e8ea18d8d91ed *bae2c66368696c6472656e9604b996606f6093656c6d9609732c3d936368696c6472656e8e8ea1 *8d8d91edbae26368696c6472656e9604b996606f60937478749609732c3d936e6f6e658e8e9f1b *33338d8d91116e97b946696775726596031554363a91041c70416c67656272616963936c619abe *397773936f6693636f6d9862696e61746f72732e8e8ea18d91edbae2840000666600f000008e8e *8e8e8d8da0fd8000008d9200f5bae2746869739b03875d7495be3979709041c7652e9105728b48 *6f93779365769365722c9103a3df6974986973987374696c6c9868656c7066756c98746f986964 *656e9374696679987375629041c7636c61737365738ea40a00008d9200f5bae26f669b02e8bb63 *6f6e95be3974656e9374980c6c746572739874686174986f0b6572986578747261986775617261 *6e93746565732e91040d925477936f986578616d706c65738ea18d9200f5bae26f669603155473 *756390be396893636c6173736573936172653a8ea91133338d8d8d8d9200fd8920312e8e8e8e92 *0109bae4419102a74cc5707295871b6593646963936174659602a768c67093b968617393746865 *9370726f709041c76572749abe3979937468617493c6709104b9966393b9616c77986198797393 *6769769865739361738ea18d920109bae4726573756c749603155465697468657293c65b635d93 *b96f7293c65b5db92e8e9f1133348d8d8d8d9200fd8920322e8e8e8e920109bae44191032c5bc5 *73656c6590871b63746f7296032c61c67393b9686173937468659370726f709041c76572749abe *3979937468617493c6739104b9966393b9616c779861987973936769769865739361738ea18d92 *0109bae4726573756c74960386fc619373657175656e6365936f6693636f6e95be3974656e9374 *739b0386fc74616b93656e9866726f6d98c663b92e91057168526573756c74696e678ea18d9201 *09bae46974656d7396033415646f936e6f74936f95be39769365726c61702c91033bc5616e6496 *03341574686593726573756c749373657175656e636593726573709041c7656374738ea18d9201 *09bae4746865960315546f7264657293696e93776869639abe39689374686593636f6e9874656e *98747393779865726593666f756e6493696e93c663b92e8ea68d9200f5bae2536f960305aa6193 *70726564696361746593697393619373656c6563746f722c910308cc62757493619373656c6563 *746f72936973936e6f74936e65636573736172696c798ea18d9200f5bae2619103155470726564 *69636174652e8ea18d9201033ae2546865960263e5c6606f6093b9666f726d936f66930c6c7465 *7293636f6d709a41c76f736974696f6e93636f756c64936298659364650c6e6564937573696e67 *8ea18d9200f5bae261960315544861736b90be39656c6c93c56c69737491034e3c6395871b6f6d *7072936568656e73696f6e8ea68d920108a13ac628669604b996606f609367299363933d935b63 *2727937c936327933c2d936793632c93632727933c2d93669363275d8ea68d9200f5bae2b9486f *95be39779365769365722c910501c077936596049f447072656665729374686593657175697691 *ff7c72616c656e90be3974936869676865722d6f726465729364650c6e6974696f6e8ea18d9200 *fa7478c6669604b996606f609367933d93636f6e636174932e936d61709366932e93679108438c *b9629041c7656361757365960389f66974936973936d6f726593636f6e2d8ea18d9200f5bae276 *95be39656e69656e937496042c3f696e93616c676562726169639363616c63756c6174696f6e2e *8d8d9ffc2d3dbd388e8e910b8bd7b9436f6d709a41c76f736974696f6e936973936173736f9863 *69612d8ea18d9200f5bae27469769abe39652c960315547769746893c66e6f6e6593b96173937a *65726f2c93616e6493c66b65657093b96173936964656e98746974987991ff3aab2e8ea18d9201 *033ae25468659604847bc660776974686093b9666f726d936f66936775617264656493636f6d70 *9041c76f736974696f6e93697393c56e6f7493b96173736f2d8ea18d9200f5bae2636961746976 *95be39652c910537306275749b04ca0577936598646f9868619376936598736f6d65986c619377 *732c91053730706172746963756c61726c79986964656d709041c76f2d8ea18d9200f5bae27465 *6e63652e9103d6ad5791ff3aab659602440b616c736f93686195be397693659602440b61937072 *6f6d6f74696f6e936c619abe39779361629041c76f757493636f6d9862696e6564937573657393 *6f668ea18d9200f5bae2c66077697468609602da10b9616e6493c6606f60b92e910408af546865 *936475616c936f709041c7657261746f722c9102e5ebc660776974686f75746093b96861739370 *6172616c6c656c8ea18d9200f5bae26c6190be3977732e8ea18d9201033ae254686596043b6bc6 *2f3e93b9706174689373656c6563746f72936973936173736f9041c763696174697690be396593 *62757493c63c2f93b96973936e6f742c910484f1616e648ea18d9200f5bae27468657265960315 *a361726593736f6d65936964656d709a41c76f74656e6365936c6190be39777393666f72936298 *6f74682e91041d5e4d6f737493696d70986f7274616e90be39748ea18d9200f5bae2686f95be39 *779365769365722c91044c2661726596040dfd746865937691ff7c726172696f75739370726f6d *6f74696f6e936c619abe39777393666f7293639868616e67696e67937468658ea18d9200f5bae2 *6f72646572960315546f66936170706c69636174696f6e936f6693c62f3eb92c93c63c2fb92c93 *616e6493c677697468b92e8ea18d9201033ae2546865960485b1646972656374656493639abe39 *686f696365936f709041c7657261746f7293c67c3e7c93b9766965779865649362987993697473 *656c669361702d8ea18d9200f5bae2709a41c7656172739603c140746f9362986593616c676562 *72616963616c6c799373656e7369626c652c9103ec3a62757493697493646f986573936e6f7493 *7365656d93746f8ea18d9200f5bae2686195be3976936596048f7875736566756c93616c676562 *726169639370726f709041c765727469657393696e93636f6e6e656374696f6e9377697468936f *746865728ea18d9200f5bae2636f6d9abe3962696e61746f727396043b44629041c76563617573 *65936f6693697473936269617393746f9877986172647393746865936c656674936f709041c765 *72616e642e8ea18d9200f5bae25468659603c99473696d706c657293726573756c742d6170709a *41c7656e64696e6793636f6d90be3962696e61746f7293c67c7c7c93b9636f756c649362986593 *616e8ea18d9200f5bae2616c7465726e617469769abe39659602b4dc746f937468659364697265 *63746564936398686f696365936f709041c7657261746f722c9102c827616e649377986f756c64 *9370726f622d8ea18d9200f5bae261626c79960329d66c65616493746f936d6f7265936c6190be *3977732c91032ef662757493697493686173936c65737393606170706c69636174696f6e936269 *7465272e910459f5418ea18d9200f5bae2709041c76f74656e9abe397469616c6c799603b5cc73 *6572696f75739370726f626c656d93697393746861749374686593c67c7c7cb92d636f6d986269 *6e6174696f6e936f668ea18d9200f5bae27495be3977936f9603155473656c6563746f72739369 *73936e6f74936e65636573736172696c7993619373656c6563746f722e8ea18d9201033ae25468 *659603ba4b726563757273696f6e936f709041c7657261746f7293c66465657093b96861739373 *6f6d65936d696e6f72936c6190be3977732c9103e3886f6e658ea18d9200f5bae26f6696041fc9 *776869639abe39682c91046266746865936465707468936c6198772c910462666973936d6f7265 *9370726f666f756e642e91073bcf5791ff3aab6593686198769865936e6f748ea18d9200f5bae2 *799abe396574960301d666756c6c7993696e987698657374696761746564937468659370726f70 *9041c7657274696573936f6693c664656570657374b92c960305bcc66d756c7469b92c93616e64 *8ea18d9200f5bae2c6666f6c64586d6cb92e8e9f178ffc8d8d9200f5bae2c4338e920105b46f54 *91ff1ccc72616e736c6174696f6e96038cca6f66934454447393746f935490b4437970904bbc65 *738e9f12e9988d8d9200f5bae2332e318e92010dfcf1445444738e9f0fcffe8d9200f5bae2b953 *6f9603b55666617293779abe39659368619876986593636f6e7369646572656493646f9541c763 *756d656e98742d70726f9363657373696e679603b5566298799367656e657269638ea18d9200f5 *bae2747265659602b4587472616e73666f726d6174696f6e732c9102c7be7768657265936d6172 *6b7570936973936d61746390be39686564937465787475616c6c799361748ea18d9200f5bae272 *756e9abe3974696d652c91033a5e616e64960332f56e6f936163636f756e98749369739374616b *98656e936f6693616e987993646565709041c76572936d65616e696e67936f668ea18d9200f5ba *e2746167732e8ea18d9201033ae2486f95be39779365769365722c9102a7a87768656e96028c3c *7468659344544491028c19666f72936193646f9041c763756d656e9abe39749369739361987691 *ff7c7261696c61626c652c9102a7a87468658ea18d9200f5bae26d65616e696e679602fbea6974 *9364650c6e657393666f72936d61726b757093746167739363616e93629a41c765937573656493 *746f9370986f95be397793657266756c8ea18d9200f5bae2650b6563742e910600255468659603 *b6906d6f73749362617369639375736593697393746f93636f6e0c726d9373656d616e90be3974 *696393c576616c6964697479b93a8ea18d9200f5bae2619603e0f37374726f6e676572936e6f74 *696f6e937468616e936d6572659373796e9abe39746163746963937798656c6c2d666f726d6564 *6e6573732e91067f4d418ea18d9200f5bae244544491036dfd64650c6e657396036e1461936772 *616d6d617293666f7293646f9041c763756d656e9abe397493636f6e9874656e98743a9104cdef *69749373709041c76563690c65738ea18d9200f5bae26196037673769abe396f9041c763616275 *6c617279936f66936d61726b757093746167732c91038eba616e649374686593616c6c6f987798 *656493636f6e9874656e987493616e648ea18d9200f5bae261747472696275746573960437e766 *6f72936561639abe3968937461672e91078429446f9041c763756d656e9874937691ff7c72616c *69646174696f6e936973937468657265666f72658ea18d9200f5bae2619b033187737472616967 *6895be3974666f727793617264986393686563936b98746861749874686598646f9041c763756d *656e937427739873747275637475726598636f6e2d8ea18d9200f5bae2666f726d739603155474 *6f9374686593769abe396f9041c7636162756c61727993616e64936772616d6d61729367697698 *656e93696e93746865934454442e8e9200f5bae29f0740008900006666005fffa09f08d70b8d8d *8d8d910a727d9ffcfb72b0388e8e8e910e599db1497269736896031830636f6d709a371c6f7369 *74696f6e93697393696e9366616374936a75737493746865930d6970709865642d617267756d65 *6e9ac8e374937698657273696f6e936f668e9f0800008d7468659602b1c84b6c6569736993636f *6d709a371c6f736974696f6e936f7098657261746f7293696e93746865936c697374936d6f6e61 *642e8e8e8e8e8e9f1e00008d9200e76ae3b9378e8e8c8b00000008000000000000000000000000 *00000000000000000000000000000000000000000000000000009a9ba00295bae28da0fd3f0000 *a002a300008d8d8d8da0ff28cccc8da0fe4d999a8d91edbae2840000666600f000008e9f113333 *8d91edbae2c63c3f786d6c9104b99676657273696f6e3d27312e30273f3e8ea40a00008d91edba *e23c21444f43545950459604b996616c62756d9353595354454d9322616c62756d2e6474642293 *5b8ea18d91edbae23c21454c454d454e549604b996616c62756d93287469746c652c9361727469 *73742c937265636f7264696e67646174653f2c8ea18d913e0dd8636f7665726172742c9104b996 *28636174616c6f676e6f292b2c8ea18d913e0dd8706572736f6e6e656c2c9604b996747261636b *732c936e6f74657329933e8ea18d91edbae23c21454c454d454e549604b9967469746c65932350 *43444154413e8ea18d91edbae23c21454c454d454e549604b99661727469737493235043444154 *413e8ea18d91edbae23c21454c454d454e549604b9967265636f7264696e676461746593454d50 *54593e8ea18d9100a13a3c214154544c4953549604b9967265636f7264696e6764617465936461 *74659343444154419323494d504c4945448ea18d9172074a706c6163659604b996434441544193 *23494d504c4945443e8ea18d91edbae23c21454c454d454e549604b996636f7665726172749328 *6c6f636174696f6e293f933e8ea18d9100a13a3c214154544c4953549604b996636f7665726172 *74937374796c65934344415441932352455155495245443e8ea18d91edbae23c21454c454d454e *549604b9966c6f636174696f6e93454d505459933e8ea18d9100a13a3c214154544c4953549604 *b9966c6f636174696f6e937468756d626e61696c9343444154419323494d504c4945448ea18d91 *5a675c66756c6c73697a659604b99643444154419323494d504c4945443e8ea18d91edbae23c21 *454c454d454e549604b996636174616c6f676e6f93454d505459933e8ea18d9100a13a3c214154 *544c4953548ea18d911cfabe636174616c6f676e6f8ea18d912fe1166c6162656c9604b9964344 *415441932352455155495245448ea18d912fe1166e756d6265729604b996434441544193235245 *5155495245448ea18d912fe116666f726d61749604b996284344937c934c50937c934d696e6944 *697363299323494d504c4945448ea18d912fe11672656c65617365646174659604b99643444154 *419323494d504c4945448ea18d912fe116636f756e7472799604b99643444154419323494d504c *4945443e8ea18d91edbae23c21454c454d454e549604b996706572736f6e6e656c9328706c6179 *6572292b933e8ea18d91edbae23c21454c454d454e549604b996706c6179657293454d50545993 *3e8ea18d9100a13a3c214154544c4953549604b996706c61796572936e616d6593434441544193 *2352455155495245448ea18d9155adc6696e737472756d656e749604b996434441544193235245 *5155495245443e8ea18d91edbae23c21454c454d454e549604b996747261636b73932874726163 *6b292a933e8ea18d91edbae23c21454c454d454e549604b996747261636b93454d5054593e8ea1 *8d9100a13a3c214154544c4953549604b996747261636b937469746c6593434441544193235245 *5155495245448ea18d914c3a9a6372656469749604b99643444154419323494d504c4945448ea1 *8d914c3a9a74696d696e679604b99643444154419323494d504c4945443e8ea18d91edbae23c21 *454c454d454e549604b9966e6f746573932823504344415441937c93616c62756d726566937c93 *747261636b726566292a933e8ea18d9100a13a3c214154544c4953549604b9966e6f7465739361 *7574686f729343444154419323494d504c4945443e8ea18d91edbae23c21454c454d454e549604 *b996616c62756d72656693235043444154413e8ea18d9100a13a3c214154544c4953549604b996 *616c62756d726566936c696e6b934344415441932352455155495245443e8ea18d91edbae23c21 *454c454d454e549604b996747261636b72656693235043444154413e8ea18d9100a13a3c214154 *544c4953549604b996747261636b726566936c696e6b9343444154419323494d504c4945443e8e *a18d91edbae25d3e8e9f1b33338d8d912a8e1bb946696775726596031554373a91041c70416e93 *6578616d706c65934454442e8e8ea18d91edbae2840000666600f000008e8e9f1c00008d91fb3a *e2584d4c910420a7646f9041c763756d656e9abe3974960420ec7691ff7c72616c696461746f72 *73936172659372656164696c799361987691ff7c7261696c61626c652e91073f38486f98772d8e *a40a00008d91edbae2657695be3965722c91044439779365960407a5676f936675727468657293 *616e649364650c6e65937468659369646561936f6693c576616c696491042ce9646f90871b6375 *6d656e748ea18d91edbae2707295871b6f936393657373696e67b92e9104a8a041910344037691 *ff7c72616c69649603440f70726f9a41c763657373696e6793736372697074936973936f6e6593 *7768696390be39689370726f9864756365738ea18d91edbae261960221257691ff7c72616c6964 *93646f9041c763756d656e9abe3974936173936f75747075742c910251fc67697698656e936193 *7691ff7c72616c696493646f9041c763756d656e987493617393696e7075742e8ea18d91edbae2 *5791ff3aab659b025a37616395be396869657693659874686973986293799864656d6f6e737472 *6174696e67986198636f72726573709541c76f6e64656e6365986293657495be39779365656e8e *a18d91edbae27468659603400144544491033ff66f66936193646f9041c763756d656e90be3974 *93616e64937468659364650c6e6974696f6e936f66936193736574936f6693616c67652d8ea18d *91edbae262726169639603a5b8749abe3979709041c7657393696e934861736b98656c6c2c9103 *c9d0616e649374686593636f6e73657175656e987493636f72726573709041c76f6e64656e6365 *8ea18d91edbae2629a41c7657495be39779365656e960414e174686593646f9863756d656e9abe *3974277393636f6e9874656e987493616e6493619373747275637475726564934861736b98656c *6c8ea18d91edbae27691ff7c72616c75652e9108462348656e63652c9104d15e629abe39799604 *789077726974696e6793646f9041c763756d656e98749370726f9041c763657373696e67937363 *726970747393746f8ea18d91edbae26d616e6970756c6174659604699774686593749abe397970 *9041c76564934861736b98656c6c93769bff7c72616c75652c9104bea774686593736372697074 *937698616c69646174696f6e8ea18d91edbae270726f626c656d960456946973936a7573749361 *6e93696e7374616e6365936f66936e6f726d616c934861736b9abe39656c6c93749879709041c7 *6593696e6665722d8ea18d91edbae2656e63652e8d8d9ffc2d3dbd398e8e8e9f1697fc8d8d91ed *bae2c4332e328e9105fcf144544491038cca7472616e736c6174696f6e732e8e9f0fcffe8d91ed *bae2b9416e960286d46578616d706c6593445444910286af666f729374686593646f9041c76375 *6d656e9abe39749373686f98776e936561726c6965729369739367697698656e93696e8ea18d91 *edbae24669677572659602b6f3372e9103fcfa54686593696d6d65646961746593666561747572 *657393746f936e6f7465936172653a9103ed3f283129934691ff3aab6f7293657690be39657279 *8e91edbae29f07c0008900006666005fffa09f08d70b8d8d8d8d910a727d9ffcfb72b0398e8e8e *910e599db15796ff5aaa656c6c2c91025c186e6561726c792191036a865693616c696469749ac8 *e379960246ac616c736f93656e636f6d70617373657393736f6d65936f74686572936d696e6f72 *936398686563986b732c8e9f0800008d666f729602b1c8696e7374616e63659374686174934944 *5245469361747472696275746573936d90c8e3757374936290371c6593676c6f62616c6c799375 *6e697175652e8e8e8e8d8da0ff5acccc8da0fe1b999a8d9200f5bae2840000666600f000008e9f *1133338d9200f5bae2c66d6f64756c659604b996416c62756d4454449377686572658ea40a0000 *a18d9200f5bae2646174619604b996416c62756d933d8ea18d920108a13a416c62756d9604b996 *5469746c659341727469737493284d61796265935265636f7264696e6764617465298ea18d9201 *24fabe436f7665726172749604b9965b436174616c6f676e6f5d93506572736f6e6e656c8ea18d *920124fabe547261636b739104b9964e6f7465738ea18d9200f5bae26e6577747970659604b996 *5469746c65933d935469746c6593537472696e678ea18d9200f5bae26e6577747970659604b996 *417274697374933d9341727469737493537472696e678ea18d9200f5bae26e6577747970659604 *b9965265636f7264696e6764617465933d8ea18d92014154425265636f7264696e676461746591 *04b9965265636f7264696e67646174655f41747472738ea18d9200f5bae2646174619604b99652 *65636f7264696e67646174655f4174747273933d935265636f7264696e67646174655f41747472 *73937b8ea18d920108a13a646174659604b9963a3a934d6179626593537472696e672c8ea18d92 *0108a13a706c6163659604b9963a3a934d6179626593537472696e67937d8ea18d9200f5bae26e *6577747970659604b996436f766572617274933d93436f7665726172749328537472696e672c93 *4d61796265934c6f636174696f6e298ea18d9200f5bae26e6577747970659604b9964c6f636174 *696f6e933d934c6f636174696f6e934c6f636174696f6e5f41747472738ea18d9200f5bae26461 *74619604b9964c6f636174696f6e5f4174747273933d934c6f636174696f6e5f4174747273937b *8ea18d920108a13a7468756d626e61696c9604b9963a3a934d6179626593537472696e672c8ea1 *8d920108a13a66756c6c73697a659109732c3a3a9604b9964d6179626593537472696e67937d8e *a18d9200f5bae26e6577747970659604b996436174616c6f676e6f933d93436174616c6f676e6f *93436174616c6f676e6f5f41747472738ea18d9200f5bae2646174619604b996436174616c6f67 *6e6f5f4174747273933d93436174616c6f676e6f5f4174747273937b8ea18d920108a13a6c6162 *656c9604b9963a3a93537472696e672c8ea18d920108a13a6e756d6265729604b9963a3a935374 *72696e672c8ea18d920108a13a666f726d61749604b9963a3a934d6179626593466f726d61742c *8ea18d920108a13a72656c65617365646174659604b9963a3a934d6179626593537472696e672c *8ea18d920108a13a636f756e7472799604b9963a3a934d6179626593537472696e67937d8ea18d *9200f5bae2646174619604b996466f726d6174933d934344937c934c50937c934d696e69446973 *638ea18d9200f5bae26e6577747970659604b996506572736f6e6e656c933d93506572736f6e6e *656c935b506c617965725d8ea18d9200f5bae26e6577747970659604b996506c61796572933d93 *506c6179657293506c617965725f41747472738ea18d9200f5bae2646174619604b996506c6179 *65725f4174747273933d93506c617965725f4174747273937b8ea18d920108a13a6e616d659604 *b9963a3a93537472696e672c8ea18d920108a13a696e737472756d656e749604b9963a3a935374 *72696e67937d8ea18d9200f5bae26e6577747970659604b996547261636b73933d93547261636b *73935b547261636b5d8ea18d9200f5bae26e6577747970659604b996547261636b933d93547261 *636b93547261636b5f41747472738ea18d9200f5bae2646174619604b996547261636b5f417474 *7273933d93547261636b5f4174747273937b8ea18d920108a13a7469746c659604b9963a3a9353 *7472696e672c8ea18d920108a13a6372656469749604b9963a3a934d6179626593537472696e67 *2c8ea18d920108a13a74696d696e679604b9963a3a934d6179626593537472696e67937d8ea18d *9200f5bae26e6577747970659604b9964e6f746573933d934e6f74657393284d61796265935374 *72696e672c935b4e6f7465735f5d298ea18d9200f5bae2646174619604b9964e6f7465735f933d *8ea18d920108a13a4e6f7465735f5374729104b996537472696e678ea18d9200ff2e0e7c9604b9 *964e6f7465735f416c62756d72656693416c62756d7265668ea18d9200ff2e0e7c9604b9964e6f *7465735f547261636b72656693547261636b7265668ea18d9200f5bae26e6577747970659604b9 *96416c62756d726566933d93416c62756d7265669328537472696e672c537472696e67298ea18d *9200f5bae26e6577747970659604b996547261636b726566933d93547261636b72656693284d61 *79626593537472696e672c537472696e67298e9f1b33338d8d9200f8435db94669677572659603 *1554383a91041c70546865936578616d706c6593445444937472616e736c6174656493746f9348 *61736b9abe39656c6c93749879709041c765732e8e8ea18d9200f5bae2840000666600f000008e *8e9f1c00008d9200f5bae2656c656d656e9abe39742c91044bc6746865726596040db069739361 *9373709041c76563690c636174696f6e936f6693616c6c6f987798656493696e6e657293656c65 *6d656e9874738ea40a00008d9200f5bae228c6454c454d454e549103f2c5b96465636c61726174 *696f6e292c91042a68616e649603f2fe709a41c76f737369626c7993616c736f93619373709865 *63690c636174696f6e936f668ea18d9200f5bae2616c6c6f95be3977936564960376da61747472 *6962757465937691ff7c72616c7565739328c64154544c495354910376c1b96465636c61726174 *696f6e292e91054102283229934691ff3aab6f7293696e2d8ea18d9200f5bae26e65729b02b2e3 *636f6e95be3974656e93742c9102c694746865986772616d6d617298616c6c6f93777398736571 *75656e63659828636f6d6d6173292c9102c6946393686f6963658ea18d9200f5bae2287695be39 *6572746963616c9b040d14626172292c91044b036f7074696f6e616c6974937998287175657374 *696f6e986d61726b292c91044b03616e64987265709041c765746974696f6e8ea18d9200f5bae2 *2873746172960382096f7293706c7573292e910562902833299357686572659374686593696e6e *657293636f6e95be3974656e9374960382096465636c61726174696f6e93616c2d8ea18d9200f5 *bae26c6f9abe3977739602e0e66672656593746578749328c623504344415441b9292c93639868 *6f69636593629041c7657498779865656e937465787493616e64936f7468657293656c652d8ea1 *8d9200f5bae26d656e9abe397473960303d2697393709041c765726d69747465642c9103075362 *75749373657175656e63696e67936f669374686f736593656c656d656e987473936973936e6f74 *8ea18d9200f5bae2709041c765726d69747465642e9103ede7283429960289ba496e9361747472 *6962757465936c697374732c9102a5a6736f6d65937691ff7c72616c75657393617265936d616e *6461746f72798ea18d9200f5bae228c6235245515549524544b9299104695d616e64960469b573 *6f6d6593617265936f7074696f6e616c9328c623494d504c494544b9293b936174747269627574 *658ea18d9200f5bae27691ff7c72616c7565739602238363616e9365697468657293629041c765 *93756e636f6e73747261696e656493737472696e67739328c64344415441b929910223456f7293 *61936d656d2d8ea18d9200f5bae2629041c76572960315546f6693736f6d65937072652d64650c *6e656493736574936f6693737472696e67937691ff7c72616c7565732e8ea18d9201033ae25468 *657265960276a87365656d93746f93629a41c76593736f6d65936f6290be3976696f757393636f *7272657370986f6e64656e636573936298657495be39779365656e8ea18d9200f5bae274686973 *96022f8b769abe39657279937265737472696374656493666f726d936f6693749879709041c765 *936c616e677561676593616e6493746865937269639868657293749879709041c7658e8e8e8e8e *9f1e00008d9200e76ae3388e8e8c8b000000090000000000000000000000000000000000000000 *000000000000000000000000000000000000b5d5a00295bae28da0fd3f0000a002a300008d8d8d *8da0fd8000008d91edbae2b96c616e6775616765960439206f66934861736b95be39656c6c2e91 *0787d545616393689b043920656c656d656e9374986465636c61726174696f6e98697398726f75 *67686c798ea40a00008d91edbae273709a41c765616b696e679602ad3161936e65779364617461 *7490be3979709865936465636c61726174696f6e2e9103f9ba53657175656e6365936973936c69 *6b90be39659370726f98642d8ea18d91edbae27563749602e50c749abe3979709041c765739328 *692e652e9373696e676c652d636f6e7374727563746f72937691ff7c72616c756573292e91040c *5843686f696365936973936c696b98659373756d8ea18d91edbae2749abe3979709041c7657396 *03e83d28692e652e936d98756c74692d636f6e7374727563746f72937691ff7c72616c75657329 *2e9106952a4f7074696f6e616c69749879936973936a75737493618ea18d91edbae2c64d617962 *659b031554b97490be3979709541c7652e91041c705265709365746974696f6e986973986c6973 *74732e8ea18d91fb3ae2419abe39747472696275746596051dc16c6973747393616c736f936861 *987698659361937472616e736c6174696f6e3a91082d49629041c765636175736593746865798e *a18d91edbae261726596039373756e6f72646572656493616e6493616363657373656493629abe *3979936e616d652c9103b2fb4861736b98656c6c936e616d65642d0c656c64738ea18d91edbae2 *6c6f9a41c76f6b9603e5636c696b90be3965936193676f986f986493726570726573656e95be39 *746174696f6e2e91068c9d4f7074696f6e616c697493799603e56363616e93616761696e936298 *658ea18d91edbae265787072657373656496043552617393c64d6179626593b97495be39797090 *41c765732e91077c6941937474726962757465960435527691ff7c72616c756573937468617493 *61726593636f6e2d8ea18d91edbae273747261696e6564960317b0746f93619370617274696375 *6c6172937691ff7c72616c75652d7365749363616e93629a41c765936d6f9864656c6c65649362 *90be39799364650c6e2d8ea18d91edbae2696e6796047e1261936e657793656e9abe39756d6572 *6174696f6e93749879709a41c76593656e636f6d70617373696e679374686593709865726d6974 *7465648ea18d91edbae2737472696e67732e8ea91697fc8d8d91edbae2c4332e338e9105fcf149 *6d706c656d656e90b443746174696f6e8e9f0fcffe8d91edbae2b9546865736596037e3172756c *65739361726593666f726d616c6973656493696e93746865936170709041c7656e646978932846 *69677572659339292e91055707416e8ea18d91edbae2696d706c656d656e90be39746174696f6e *960289956f669374686573659372756c657393287769746893736f6d65936164646974696f6e61 *6c9372756c657393746f8ea18d91edbae2656c696d696e6174659602fd08726564756e64616e63 *7929937472616e736c6174656493746865934454449102fd01696e93466967757265933793696e *90be39746f8ea18d91edbae2746865960315544861736b9abe39656c6c93749879709041c76593 *6465636c61726174696f6e739373686f98776e93696e9346696775726593382e8ea18d91fb3ae2 *416c736f960314306e65656465642c9b03146b616c6f6e67937769746893746865937490be3979 *709041c765936465636c61726174696f6e732c986172659366756e632d8ea18d91edbae274696f *6e7396029164776869639abe3968937265616493616e64937772697465937691ff7c72616c7565 *73936f6693746865736593749879709041c7657393746f93616e649366726f6d8ea18d91edbae2 *61637475616c9602ca53584d4c9102ca40646f9041c763756d656e90be3974732e910403705468 *657365936172659367656e657261746564936175746f6d61746963616c6c798ea18d91edbae266 *726f6d96034a59746865937490be3979709041c765936465636c61726174696f6e7393616c6f6e *652e9104bb7f5573696e6793616e93617070726f707269617465937365748ea18d91edbae26f66 *960265ef7072652d64650c6e656493749abe3979709041c76593636c61737365732c9102890477 *986593646572697698659361936e657793696e7374616e636593666f729365616398688ea18d91 *edbae267656e657261746564960315547490be3979709a41c765937573696e67936193746f986f *6c936c696b90be3965934472494654935b8d31368e91093ffc5d2e8ea68d8d91edbae2c4332e34 *8e9105fcf144697363757373696f6e8e9f0fcffe8d91edbae2b9416c74686f7567689602f74374 *686973937490be3979709a41c7652d6261736564937472616e736c6174696f6e936c6f986f6b73 *937374726169676895be3974666f7277936172642c8ea18d91edbae26974960315547475726e73 *936f7574937468617493746865726593617265937365769abe396572616c9374726963986b7993 *6973737565732e8ea18d91fb3ae246697273742c9103b4d9746865960394f2749abe3979709041 *c765937472616e736c6174696f6e936d619879936f6e6c79937573659364617461749879709041 *c7657393616e648ea18d91edbae26e65777495be3979709a41c765732c910319a46e6576936572 *910318c77493797098659b0318c773796e6f6e93796d732e910426ca5468697398697398619872 *6573756c74986f66986e656564696e678ea18d91edbae2746f960408657772697465937691ff7c *72616c756573936f757493617393584d4c910408267b936193749abe3979709041c7659373796e *6f6e98796d93696e934861736b98656c6c8ea18d91edbae2697396045463696e64697374696e67 *7569736861626c659366726f6d93746865937490be3979709041c7659369749361626272657669 *617465732c9104a426627574937468658ea18d91edbae267656e6572617465649604dbe9749abe *3979709041c76573936d9875737493629a41c7659364697374696e637493696e936f7264657293 *746f936298659361626c6593746f8ea18d91edbae272652d696e90be3974726f9041c764756365 *9603e2ab656e636c6f73696e6793737461727493616e6493656e64937461677393776974689374 *686593636f72726563748ea18d91edbae26d61726b75702e8ea18d91fb3ae2419103b485736570 *61726174659603b4ae749abe3979709041c76593697393696e9874726f9041c764756365649366 *6f7293656163986893636f6c6c656374696f6e936f669361742d8ea18d91edbae2747269627574 *65732e9105f62648656e63652c9103dab5616e9603b33b656c656d656e9abe3974936973937265 *70726573656e987465649362987993619370616972696e67936f668ea18d91edbae27468659602 *f25a6174747269627574657393616e649374686593636f6e95be3974656e93742e910410c75768 *6572659602f25a619374616767656493656c656d656e90be39749364692d8ea18d91edbae27265 *63746c799602516d636f6e9abe397461696e7393616e936f7074696f6e616c93749879709041c7 *65936f7293619373657175656e6365936f6693749879709041c76573937768696398688ea18d91 *edbae26172659602c9b37468656d73656c769abe3965739373756d2d749879709041c765732c91 *02d8d46974936973936e656365737361727993746f93696e98746572709041c76f736593619373 *65702d8ea18d91edbae2617261746596041f584861736b9abe39656c6c93749879709041c7652c *910461d8652e672e93c64e6f74657393b9636f6e987461696e73936193c65b4e6f7465735f5d93 *b977686572658ea18d91edbae274686596031554617578696c6961727993749abe3979709041c7 *6593c64e6f7465735f93b968617393746872656593616c7465726e617469769865732e8ea18d91 *fb3ae24e616d696e679602cdda69739361936269679369737375652e9104049d43617365936d61 *747465727393696e93584d4c2c93736f936193c63c7461673e8ea18d91edbae2b964690b657273 *9603c5e066726f6d936193c63c5441473e93b9616e649361747472696275746593c66174747293 *b964690b6572739366726f6d93c641747472b92e8ea18d91edbae2496e96033c224861736b9abe *39656c6c93686f98779865769865722c910345d6749879709041c76573936d9875737493629a41 *c76567696e9377697468937570709865722d636173652c910345d6616e648ea18d91edbae20c65 *6c642d6e616d657396045f456d9abe3975737493629041c76567696e9377697468936c6f987798 *65722d636173652e9107fa42576865726593617578696c696172798ea18d91edbae2749abe3979 *709041c76573960422cf617265936e656365737361727991ff3aab2c9104662d77986593686198 *769865936398686f73656e93746f936170709041c7656e6493616e93756e6465722d8ea18d91ed *bae273636f726596044b5c6390be39686172616374657293746f93746865936e616d652e9107be *89416c6c936f6693746865736593666163746f727393696d709041c76f73658ea18d91edbae272 *65737472696374696f6e739602f1ff6f6e9374686593757365936f669374686973937472616e73 *6c6174696f6e2c9102f91064756593746f9374686593709041c76f74656e2d8ea18d91edbae274 *69616c960315546e616d6593636f6e0d696374732e8ea18d91fb3ae24691ff3aab757274686572 *6d6f72652c910669bd74686572659605bf4369739361936d69736d6174639abe396893629041c7 *657498779865656e934861736b98656c6c27738ea18d91edbae26e616d65649605677e0c656c64 *7393616e649374686593617474726962757465936e616d696e672f73636f70696e679372756c65 *7393696e8ea18d91edbae2584d4c2e96043079496e93584d4c2c9364690b6572656e9abe397493 *656c656d656e987473936d619879936861987698659361747472696275746573936f668ea18d91 *edbae27468659602948773616d65936e616d6593616e6493749abe3979709041c7652c9102ae4a *77686572656173934861736b98656c6c2773936e616d6564930c656c6473936172658ea18d91ed *bae2726573747269637465649603fa86746f937573659377697468696e93619373696e676c6593 *749abe3979709041c7652e9106cc05419103fa4a73797374656d936f6693749879709041c76564 *8ea18d91edbae2657874656e7369626c65960315547265636f726473935b8d358e91049ffe5d93 *779abe396f756c6493629041c7659361936d987563986893629041c76574746572930c742e8ea1 *8d91fb3ae2446573706974659603d68174686573659370726f626c656d7393696e936578707265 *7373696e6793445444739377697468696e937468658ea18d91edbae24861736b95be39656c6c9b *0472d0749379709041c76573797374656d2c9104ca2f746865986c617474657298697398769365 *7279986d9375639368986d6f726598709041c76f93779365722d8ea18d91edbae266756c9604ec *1f7468616e9344544473937b93666f7293696e7374616e63652c910561d24454447393686195be *397693659604ec1f6e6f936e6f74696f6e936f668ea18d91edbae2709a41c76f6c796d6f727068 *69736d2e91065b4c496e646565642c910404da74686572659603d4f3617265936672657175656e *90be3974936f9863636173696f6e73937768656e8ea18d91edbae24454449104616c7772697465 *7273960461c27265736f727493746f937465787475616c936d6163726f738d8d9ffc2d3dbd3130 *8e8e910c3710b9746f93696e646963617465936d6f72658e91edbae29f0580008900006666005f *ffa09f08d70b8d8d8d8d91070b5d9ffcfb72b031308e8e8e910e599db1546861749602b1c86973 *2c93706172616d6574657293656e95c8e374697493799102b1c87265666572656e6365732e8e8e *8e8d8da0fd8000008d9200f5bae2b964657461696c65649602b5f67374727563747572696e6793 *7468616e934454447393709a41c765726d69749328696e636c7564696e679370986f6c796d6f72 *2d8ea40a00008d9200f5bae2706869736d960212c3616e64937175616c690c6564937495be3979 *70696e67292c9102467a657693656e960212c374686f7567689373756390be396893696d706c69 *6369749373747275632d8ea18d9200f5bae2747572696e679603a41663616e6e6f7493629a41c7 *65937691ff7c72616c696461746564936290be397993584d4c9103a3f1746f986f6c732e9105c8 *b64974936973937369676e690c63616e90be39748ea18d9200f5bae2746f9603b1c76e6f746593 *74686593584d4c9103b19f636f6d6d95be39756e6974937927739603b1c77265636f676e697469 *6f6e936f66937468657365936c696d6974612d8ea18d9200f5bae274696f6e739602faa76f6693 *44544473937b93726563656e90be39749370726f709041c76f73616c7393666f7293c573636865 *6d61738d8d9ffc2d3dbd31318e8e910acff5b961646472657373937468658ea18d9200f5bae271 *75657374696f6e960315546f66937269639abe396865729374987970696e6793696e9361936d6f *7265936469736369706c696e6564936d616e6e65722e8ea18d9201033ae24f6e65960347db6172 *656193696e93776869639abe39689374686593749879709041c7659373797374656d936f669348 *61736b98656c6c93696e937061727469632d8ea18d9200f5bae2756c617296030523286173936f *70709041c76f73656493746f936f746865729366756e6374696f6e616c936c616e677561676573 *29936973936578706c6f697465648ea18d9200f5bae269739603e2c9749abe3979709041c76593 *636c61737365732e910684cf546869739373797374656d61746963936f98769865726c6f616469 *6e67936d65639868616e69736d9369738ea18d9200f5bae2769abe396572799603155475736566 *756c93666f7293636f9041c764696679696e679374686593492f4f93636f6e987698657273696f *6e732e8e9f178ffc8d8d9200f5bae2c4348e920105b46f50726f7396038cca616e6493636f6e73 *936f6693746865937495b44377936f91038cca73639368656d65738e9f12e9988d8d9200f5bae2 *342e318e92010dfcf1436f6d90b44362696e61746f72738e9f0fcffe8d9200f5bae2b9436f6d70 *617265649603643b7769746893746865936d61696e73747265616d93736f6c7574696f6e93666f *7293584d4c9103642770726f9041c7636573732d8ea18d9200f5bae2696e672c9104ad5f6e616d *656c7996045bc46e657793646f6d61696e2d73709041c76563690c63936c616e67756167657393 *666f729365787072657373696e678ea18d9200f5bae2616e6496028b70736372697074696e6793 *7472616e73666f726d6174696f6e732c9102a70474686593636f6d9abe3962696e61746f729361 *7070726f61639868936861738ea18d9200f5bae273657695be396572616c9103155461647691ff *7c72616e9374616765733a8ea91697fc8d9200f5bae2c4456173659604cc6b6f6693657874656e *73696f6e93616e64937691ff68896172696174696f6e91093ffcb9536372697074696e6791042a *f16c616e6775616765738ea18d9200f5bae2736f6d6574696d65739603d4d16c61639abe396b93 *75736566756c93666163696c69746965732c910404b06f729370726f9876696465937468656d93 *696e93636f6e9876986f2d8ea18d9200f5bae26c757465649b02bdac7795be39619379732e9603 *ff38457874656e64696e6798746865986c616e67756167659869739864690e63756c742e934191 *02bd96636f6d90be3962696e612d8ea18d9200f5bae2746f7291023c2e6c69627261727991ff3a *ab2c9b02679d686f95be39779365769365722c9863616e96023c2e629041c76593656e6c617267 *656493636f6d706172617469769abe39656c79937374726169676898742d8ea18d9200f5bae266 *6f727790be396172646c7996025ec07b937468659364650c6e6974696f6e739361726593616363 *65737369626c652c91028345616e64936d6f7374936172659373686f72748ea18d9200f5bae261 *6e649103155473696d706c652e8ea68d9200f5bae2c4436f6d7075746174696f6e616c910311ab *70904bbc6f95b4437793657291093ffcb9536372697074696e679602aa646c616e677561676573 *9374656e6493746f936f0b65728ea18d9200f5bae2656974686572960370b86193769abe396572 *79936c696d697465649365787072657373696f6e936c616e67756167652c910387926f72936193 *686f9041c76f6b93696e98746f93618ea18d9200f5bae270726f6772616d6d696e679603ccde73 *797374656d936174936193636f6d706c6574656c799364690b6572656e9abe3974936c65769865 *6c936f669361622d8ea18d9200f5bae2737472616374696f6e2e91060ffe4275749603bbd96966 *93584d4c9103bbae73637269707473936172659370726f6772616d7393696e9361936c616e6775 *6167658ea18d9200f5bae27375639abe39689602f16b6173934861736b98656c6c2c9102f89974 *68659366756c6c93709041c76f9877986572936f6693746865936e617469769865936c616e6775 *61676593697393696d2d8ea18d9200f5bae26d6564696174656c79910315546190be397691ff7c *7261696c61626c652e8ea68d9200f5bae2c44162737472616374696f6e2c9102c05367656e6572 *616c697490b4437996028d35616e6493726575736591093ffcb9416c6d6f737496023758616e90 *be3979937061747465726e8ea18d9200f5bae26f9a41c76363757272696e6796033597696e9361 *93636f6d90be3962696e61746f729370726f6772616d9363616e936298659369736f6c61746564 *93616e649364652d8ea18d9200f5bae20c6e656496024d63617393619373657061726174659372 *652d757361626c659369646561935b8d368e91049ffe5d2e9103d9ca5468697393616c736f9361 *70706c696573936174937468658ea18d9200f5bae26170706c69636174696f6e9602b7fa6c6576 *90be39656c2c9102caa6776865726593636f6d6d6f6e9369646561739366726f6d9373696d696c *6172936170706c6963612d8ea18d9200f5bae274696f6e73960345e66d6967689abe3974936561 *73696c7993629041c7659364650c6e656493696e9361936869676865722d6c657698656c936c69 *627261727991ff3aab2e9104ae27546869738ea18d9200f5bae2666f726d960456546f66937265 *2d757365936d616b9abe3965739370726f6772616d9364657698656c6f706d656e9874936d9875 *6398689371756963986b9865728ea18d9200f5bae2616e64960315546c657373936572726f722d *70726f6e652e8ea68d9200f5bae2c44c6190b44377739603fa58666f7293726561736f6e696e67 *936162904bbc6f7574937363726970747391093ffcb95468659603747c73656d616e90be397469 *6373936f6693618ea18d9200f5bae2736372697074696e67960411956c616e6775616765936172 *65936f6674656e9364650c6e6564936290be397993696c6c757374726174696f6e2e9107113353 *6f9369748ea18d9200f5bae2697396047d236861726493746f93726561736f6e93776974689363 *6f6e0c64656e63659361629041c76f757493746865936d65616e696e6773936f668ea18d9200f5 *bae2736372697074732e910558bd497396037ec3f31c35f99e2200090000000900000005636d6d *6939c74193b96a757374936193737490be39796c6973746963937691ff7c726172696174696f6e *936f6693c7429103f178b96f729361726593746865726593696e2d8ea18d9200f5bae270757473 *96021c1e666f7293776869639abe39689374686593749877986f93636f756c6493676976986593 *64690b6572656e987493726573756c74733f9103c95e427574937768656e8ea18d9200f5bae274 *68659602b46673656d616e90be3974696373936f6693736372697074739363616e93629041c765 *9364650c6e656493696e937465726d73936f669374686593657175612d8ea18d9200f5bae27469 *6f6e73960403e6666f729374686593636f6d9abe3962696e61746f72732c91043f8b70726f7090 *41c7657274696573937375639868936173936173736f9041c7636961746976697498798ea18d92 *00f5bae2616e6496031554646973747269627574696f6e9363616e936f6674656e93629041c765 *9364656d6f6e737472617465649373696d706c7991ff3aab2e8ea68d9200f5bae2c4496d706c65 *6d656e90b443746174696f6e96027c1a666f72936672656591093ffcb9446f9041c76573960228 *7c6193736372697074696e67936c616e677561676593686195be397693658ea18d9200f5bae261 *6e9b033611696e95be397465726163746976936598696e937465727072657465723f96047ea641 *9b033608636f6d70696c65723f9341987495be3979709041c7652d6393686563936b9365723f91 *047ea6418ea18d9200f5bae270726f0c6c65723f9103fe11416c6c9602ba367468657365937468 *696e67739361726593696d6d6564696174656c79936190be397691ff7c7261696c61626c659374 *6f93584d4c8ea18d9200f5bae273637269707473960315546469726563746c7993657870726573 *736564936173934861736b90be39656c6c9370726f6772616d732e8e9200f5bae29f0740008900 *006666005fffa09f08d70b8d8d8d8d91070b5d9ffcfb72b031318e8e8e910e599dc9687474703a *2f2f7777772e77332e6f72672f54522f786d6c736368656d612d319602b1c8b1666f7293737472 *756374757265732c8e9f0800008d616e649602b1c8c9687474703a2f2f7777772e77332e6f7267 *2f54522f786d6c736368656d612d3293b1666f7293646174617490c8e3797090371c65732e8e8e *8e8e8e9f1e00008d9200e76ae3b9398e8e8c8b0000000a00000000000000000000000000000000 *00000000000000000000000000000000000000000000cd43a00295bae28da0fd3f0000a002a300 *008d8d8d8da0fd8000008d91edbae2b94f6696031554636f757273652c93746865726593617265 *9364697361647691ff7c72616e90be39746167657393746f9041c76f2e8ea915e9278d91edbae2 *c444697374616e63659602def366726f6d93746172676574936c616e677561676591093ffcb958 *534c91ff3aab5491027e315b8d338e91049ffe5d96027e57686173937468659370726f702d8ea4 *0a00008d91edbae265727490be39799603f4047468617493619373637269707493697393616e93 *65787072657373696f6e93696e9374686593746172676574936c616e67756167653a8ea18d91ed *bae269749603f6a5757365739365786163746c799374686593584d4c9103f66b73796e9abe3974 *617893666f72936275696c64696e67936e657793636f6e9874656e98742e8ea18d91edbae2436f *6d9abe3962696e61746f722d62617365649604056973637269707473936d987573749375736593 *619364690b6572656e98749373796e98746178936475658ea18d91edbae2746f96031f46746865 *93756e6465726c79696e67936c616e67756167652e91043a45546865936c696e67756973746963 *93676170936d69676890be39749363617573658ea18d91edbae2636f6e667573696f6e96031554 *616e6493696e637265617365936c6561726e696e6793636f7374732e8ea68d91edbae2c44c6976 *696e6796049797696e93616e93756e66616d696c696172937790b4436f726c6491093ffcb9436f *6d90be3962696e61746f729103fd0f70726f6772616d738ea18d91edbae2c56c6f90871b6f6b91 *02af9e6c696b65960268b7b97363726970747393696e936193736d616c6c93646f6d61696e2d73 *709041c76563690c63936c616e67756167652e9103e2e65791ff3aab7269746572738ea18d91ed *bae26d6190be397996021105629a41c765936298656775696c656493629abe3979937468697393 *6170706172656e98749373696d706c69636974987991ff3aab2c910245156d616b986593619373 *6d616c6c9365722d8ea18d91edbae2726f722c9102880e616e64960264bc64726f7093696e9abe *39746f93616e93756e6b6e6f98776e93636f726e6572936f66934861736b98656c6c2e8d9103e1 *934572726f728e911c0c4f6d65732d8ea18d91edbae2736167657396038e5f6d619abe39799362 *9041c76593696e636f6d70726568656e7369626c652c9103aca16f729377986f7273652c9103ac *a174686593736372697074936d69676898748ea18d91edbae27790be396f726b96031554627574 *93646f93736f6d657468696e679375747465726c7993737472616e67652e8ea68d8d91edbae2c4 *342e328e9105fcf15490b4437970904bbc652d626173656491038cca7472616e736c6174696f6e *8e9f0fcffe8d91edbae2b9536f6d65960318896f66937468659361647691ff7c72616e9abe3974 *61676573936f66937468659366756c6c792d749879709041c7656493726570726573656e987461 *74696f6e936f668ea18d91edbae2584d4c96031554646f9041c763756d656e9abe397473936861 *9876986593616c726561647993629041c765656e936d656e9874696f6e65642e8ea68d91edbae2 *c45691ff1ccc616c6964697490b4437991093ffcb95468659603e7026162696c697490be397993 *666f72937468659373797374656d93746f9373709041c76f74936572726f7273936175746f2d8e *a18d91edbae26d61746963616c6c7991ff3aab2c9b02c6c26e6f749602b31d6a75737493696e93 *74686593646174612c9862757493696e937468659370726f6772616d2c98616e6493616c736f8e *a18d91edbae2746f9b0315547072657695be39656e9374987468659867656e65726174696f6e98 *6f6698696e636f727265637498646f9041c763756d656e9374986d61726b75702e8ea68d91edba *e2c44469726563749606394970726f6772616d6d696e6793737490b443796c6591093ffcb94691 *ff3aab756e6374696f6e616c960567d96c616e67756167657393656e2d8ea18d91edbae2636f75 *7261676596029cdf74686593757365936f66937061747465726e2d6d61746390be3968696e6793 *2862696e64696e6793769bff7c72616c75657393746f9376986172692d8ea18d91edbae261626c *65732996042b4d6f6e93746865936c6566742d68616e642d73696465936f66936571756174696f *6e732e91075e5b486f95be39779365769365722c910470cb7573696e678ea18d91edbae2686967 *6865722d6f7264657296047651636f6d90be3962696e61746f72732c9104ce9064617461937374 *72756374757265739374656e64936e6f7493746f93629041c7658ea18d91edbae26d656e90be39 *74696f6e656496045495696e936571756174696f6e7393617493616c6c2e9107da335468659344 *5444910454437472616e736c6174696f6e9361702d8ea18d91edbae270726f61639abe39689604 *20f56973936d9875639868936d6f726593696e936b98656570696e679377697468937468659370 *61747465726e2d62696e64696e678ea18d91edbae2737495be39796c652c910305987768696393 *68960301a9736f6d6574696d6573936c6561647393746f9373686f727465729370726f6772616d *7321910415e2576865726561738ea18d91edbae2776974689603e775636f6d9abe3962696e6174 *6f72732c91041bfd697493697393736f6d6574696d6573936e656365737361727993746f937265 *2d747261987698657273658ea18d91edbae274686596034d4773616d659373656c656374696f6e *9370617468937769746893736c69676890be3974937691ff7c726172696174696f6e732c91035b *43746865937061747465726e2d8ea18d91edbae262696e64696e679603155467697690be396573 *936469726563749361636365737393666f7293667265652e8e9f1839f38d91edbae24469736164 *7691ff7c72616e90be397461676573910315546172653a8ea68d91edbae2c44869676896047feb *7374617274757093636f737491093ffcb94265666f72659603e87f736372697074696e6793646f *9041c763756d656e90be3974937472616e73666f722d8ea18d91edbae26d6174696f6e732c9b03 *e43d69749603badc6973936e656365737361727993746f93616371756972652c986395be396865 *63936b2c98616e649603badc70726f9041c763657373937468658ea18d91edbae24454442e9604 *d406416c74686f756768937468659367656e65726174696f6e936f66934861736b9abe39656c6c *93749879709041c76573936973936175746f2d8ea18d91edbae26d617465642c9104c568666577 *96046efe709a41c7656f706c65936172659366616d696c69617293656e6f756768937769746893 *4454447393746f936298658ea18d91edbae261626c659603fd0d746f937374617274937573696e *67937468656d93696d6d6564696174656c7991ff3aab2e9106d39a546865799372657175697265 *93636172652d8ea18d91edbae266756c96040a3f737475647993616e6493756e6465727374616e *64696e6793629a41c765666f726593636f727265637493736372697074739363616e936298658e *a18d91edbae27772697474656e96031554616e649374686593696e697469616c93696e95be3976 *936573746d656e9374960315546f6693650b6f727493706190be397973936f0b2e8ea68d91edba *e2c4496e636f6d706c6574659602ed177490b44379709a4bbc65936d6f9864656c91093ffcb954 *686596028a9f6772616d6d6172936f66934454447393697393736d616c6c8ea18d91edbae2616e *649603529f726573747269637469769abe396593636f6d706172656493746f9374686593736f70 *6869737469636174656493749879709041c7659373797374656d738ea18d91edbae2619abe3976 *91ff7c7261696c61626c65960498b1696e9366756e6374696f6e616c936c616e6775616765732e *9108a687426574746572936d65616e73936f6693749879709041c7652d8ea18d91edbae2737090 *41c76563690c636174696f6e9604291d696e93584d4c910428d6617265937374696c6c93756e64 *65729364657695be39656c6f706d656e93742e910757cb496e9104291d7468658ea18d91edbae2 *6d65616e90be3974696d652c91044f0c74686572659604104e6973936c6974746c659373636f70 *9a41c76593666f72937573696e67937468659366756c6c9370986f95be39779365729104104e6f *668ea18d91edbae26665617475726573960315546c696b90be396593709041c76f6c796d6f7270 *6869736d2e8e9f16e1278d8d91edbae2c4358e91fdb46f52656c6174656491038cca5791ff1ccc *6f726b8e9f12e9988d91edbae2584d4c9103ad0c50726f904bbc63657373696e6791093ffcb954 *686572659603316061726593696e66616e90be39749370726f9041c763657373696e67936c616e *6775616765738ea18d91edbae2737572726f756e64696e6796031554584d4c2e934f66936d6f73 *7493696e90be397465726573749368657265936172653a8e9f0ecb3b8d8d8d8d91f81ae6c80f8e *8e8e9101bae4b958534c9bff3aab5491039e8d5b8d338e91049ffe5d96039eb128655874656e73 *69626c6593537490be39796c65934c616e677561676593666f7293549872616e73666f726d612d *8ea18d9101bae474696f6e299603df8469739361935733432d70726f709041c76f736564936465 *636c61726174697690be3965936c616e677561676593666f729365782d8ea18d9101bae4707265 *7373696e679602130e61936c696d6974656493666f726d936f66937472616e73666f726d617469 *6f6e73936f6e93584d4c910212cc646f9041c7632d8ea18d9101bae4756d656e95be3974732c91 *03d1ee6f726967696e616c6c799b03ac35696e9374656e64656498666f729872656e646572696e *6798746f9861986c619379936f75742d8ea18d9101bae46261736564960405be666f726d61742c *9b0441d8652e672e9106edad48544d4c2c935090be396f73745363726970742c986574632e2c98 *627574936e6f90be39778ea18d9101bae4776964656c79960315547573656493666f7293584d4c *c821b9584d4c937472616e73666f726d6174696f6e732e8e8e8e8d8da0fd8000008d8d8d8d9201 *001ae6c80f8e8e8e920109bae4b9445353534c91048ef85b8d31328e91093ffc5d96048f592844 *6f9041c763756d656e9abe397493537498796c659353656d616e987469637393616e6493537090 *41c76563690c2d8ea40a00008d920109bae4636174696f6e96044ef84c616e6775616765299369 *739361936d61747572659349534f91044ea77374616e646172649377697468936e6f8ea18d9201 *09bae4636f6d706c6574659603db0a696d706c656d656e90be39746174696f6e732e91066d9149 *749369739373696d696c617293696e93657373656e636593746f8ea18d920109bae458534c91ff *3aab542c9603c297627574936465616c7393776974689366756c6c9353474d4c9103c26a696e70 *75742c9103ede8616e649369739362617365648ea18d920109bae46f6e91031554536390be3968 *656d652e8e9f1333338d9201033ae24e6f749602a00e6d616e9abe39799366756e6374696f6e61 *6c936c616e677561676593726573656172639868657273936172659376697369626c7993656e2d *8ea18d9200f5bae267616765649602316b696e93584d4c2d72656c6174656493779abe396f726b *2c91025f0162757493749877986f936f7468657293746f9041c76f6c6b69747393666f7293584d *4c2d8ea18d9200f5bae270726f9041c763657373696e67960361df617265934368726973746961 *6e934c696e646967277393584d4c910361cb70617273657293696e934f2743616d6c8d8d9ffc2d *3dbd31328e8e8ea18d9200f5bae2b9616e6496035de9416e6472656173934e65756d616e6e2773 *937691ff7c72616c69646174696e6793584d4c91035dd670617273657293696e93534d4c8d8d9f *fc2d3dbd31338e8e9107d54eb92e8ea18d9200f5bae25491ff3aab6f9603271e6f7572936b6e6f *9abe39776c656467652c91032b906e656974686572936f669374686573659370726f9876696465 *73937472616e73666f726d6174696f6e8ea18d9200f5bae26361706162696c6974696573960237 *e5696e93656974686572936193636f6d9abe3962696e61746f7293737498796c65936f72936193 *749879709041c7652d7472616e736c6174696f6e8ea18d9200f5bae273749abe39796c652e9103 *fabc5068696c69709602b0385791ff3aab61646c657293686173937772697474656e9361937368 *6f727493666f726d616c9373656d616e9874696373936f668ea18d9200f5bae258534c96031554 *73656c656374696f6e937061747465726e73935b8d31358e91093ffc5d2e8ea91697fc8d9200f5 *bae2c44170706c69636174696f6e2d62617365649105f5b5636f6d90b44362696e61746f727391 *093ffcb95090be39617273696e6796052d27697393746865936d6f73748ea18d9200f5bae26578 *74656e7369769abe39656c799606041773747564696564936170706c69636174696f6e93666f72 *93636f6d9862696e61746f72936c69627261726965732e8ea18d9200f5bae253696e636596038e *f5746865936f726967696e616c9374726561746d656e9abe397493629879934275726765935b8d *328e91049ffe5d2c9103ad5d74686572659368619876986593629041c765656e8ea18d9200f5ba *e26d616e9abe3979960319ff7691ff7c726172696174696f6e73936f6e93746865937468656d65 *2e91042a7253776965727374726193616e64934475709041c76f6e63986865656c27738ea18d92 *00f5bae26d6574686f9541c7649b06a51f696e636f7270936f726174696e67986f6e2d7468652d *0d79986772616d6d617298616e616c7973697398616e648ea18d9200f5bae26572726f722d636f *7272656374696f6e9603804569739361936e6f7461626c6593726563656e90be3974936578616d *706c65935b8d31308e91093ffc5d2e91055d425791ff3aab6593686f709041c7658ea18d9200f5 *bae269749602cc1c6d6190be397993629a41c7659370986f737369626c6593746f93696e636f72 *70986f72617465934454442d616e616c7973697393696e936f757293636f6d2d8ea18d9200f5ba *e262696e61746f727396031554696e93619373696d696c617293737490be39796c652e8ea18d92 *01033ae2416c74686f7567689604071c6d616e9abe3979936f74686572936c6962726172696573 *936f66936170706c69636174696f6e93636f6d9862696e612d8ea18d9200f5bae2746f72739b02 *5001686195be3976936598629041c765656e98646576697365642c910277797468659867656e65 *72616c9864657369676e987072696e6369706c657398666f729873756393688ea18d9200f5bae2 *6c69627261726965739603a36a617265937363617263656c7993726566657272656493746f9369 *6e93746865936c6974657261747572652e9105c6b3487567686573278ea18d9200f5bae2657870 *9041c76f736974696f6e96032d236f6693619364657369676e93666f7293707265747495be3979 *2d7072696e9374696e679b032d23636f6d9362696e61746f7273985b8d378e91049ffe5d986973 *8ea18d9200f5bae2619602b476756e69717565937265736f7572636593696e9374686973937265 *73709041c76563742c9102c7d6616e6493779abe396593686198769865937998657493746f9365 *78706c6f69748ea18d9200f5bae269749103155466756c6c7991ff3aab2e8ea68d9200f5bae2c4 *5491ff1ccc7265652d70726f954bbc63657373696e67910282956f7093657261746f727391093f *fcb9416e96022e1d6561726c696572937690be39657273696f6e936f6693746869739370612d8e *a18d9200f5bae2709a41c765729603ad0870726f6d70746564936d6f7265937468616e936f6e65 *9370986f696e9abe3974657293746f937468659377986f726b936f669345656c636f8ea18d9200 *f5bae2566973736572960391f0616e6493636f6c6c656167756573935b8d31338e91093ffc5d2e *910592435468656972936d6f74697691ff7c726174696e67936170706c69636174696f6e936973 *8ea18d9200f5bae273709041c76563690c636174696f6e9602fc3c6f6693737472617465676965 *7393666f729370726f6772616d936f7074696d69736174696f6e2c91030141747265617465648e *a18d9200f5bae2617396033009726577726974696e67936f95be39769365729603300965787072 *657373696f6e9374726565732e91046c8e54686593726573756c74936f66936170706c79696e67 *93618ea18d9200f5bae27374726174656779960230c769739365697468657293619373696e676c *65937465726d936f72936661696c7572653a9103aa2a6e6f6e2d64657465726d696e69736d9369 *738ea18d9200f5bae2616395be39686965769365649b03649562937998626163936b7472616393 *6b696e6798627574986f6e6c7998746865980c727374987375636365737398697398636f6d2d8e *a18d9200f5bae270757465642c9104c0147768657265617396046aba7790be3965936465616c93 *696e93606c69737473936f669373756363657373657327935b8d31348e91093ffc5d2e91081ca3 *54686569728ea18d9200f5bae26f709a41c7657261746f7273960372ce666f7293636f6d90be39 *62696e696e67937374726174656769657393696e636c75646593636f6d70986f736974696f6e2c *91038a2d64692d8ea18d9200f5bae27265637465649602682e6390be39686f6963652c91028ad0 *616e6493616e936578706c6963697493c71693b96f709041c7657261746f7293666f7293726563 *757273696f6e2e9103e2b9546865798ea18d9200f5bae2686195be397693659b02b49a73657693 *6572616c986f709541c7657261746f727398666f72987370936563696679696e67987472616e73 *666f726d6174696f6e986f66986390be3968696c648ea18d9200f5bae27375627465726d733a91 *074e34736f6d659604ae36617265936e6f7493736f9372656c657691ff7c72616e90be39749374 *6f93584d4c9104adcc7768657265937375622d8ea18d9200f5bae27472656596033ca0709041c7 *6f736974696f6e93616e64936172697490be397993617265936c657373936f6674656e930c7865 *64937468616e93696e9370726f6772616d8ea18d9200f5bae273796e95be397461783b91043dfe *686f93779365769365722c91040c8c6f6e659603db1b6f6693746865936d6f7374936672657175 *656e90be39746c79936170706c696564936f709041c765722d8ea18d9200f5bae261746f727396 *04b462697393636c6f736593746f936f757293c6666f6c64586d6cb92e9108f9994d6f73749373 *69676e690c63616e90be39746c7991ff3aab2c91051c255669737365728ea18d9200f5bae26574 *2e9603f401616c2e93616395be396869657693659603f401677265617493657870726573736976 *9abe396593709041c76f987798657293629879936465636f6d709041c76f73696e67937468658e *a18d9200f5bae26d6174639abe39682f72652d6275696c64960315db737461676573936f669372 *6577726974696e672c910315fd616e6493696e9874726f9041c7647563696e6793c56578706c69 *6369748ea18d9200f5bae2656e76697290871b6f6e6d656e74739604f36fb9629abe3979937768 *696398689374686573659373746167657393636f6d6d98756e69636174652e9109b6c054686973 *8ea18d9200f5bae26d616b9abe3965739604533d697493709041c76f737369626c6593746f9364 *65616c937769746893737562746c6574696573937375639868936173937691ff7c726172696162 *6c658ea18d9200f5bae262696e64696e67739603f773696e937468659370726f6772616d937465 *726d7393756e646572937472616e73666f726d6174696f6e2e9106c2cc416c2d8ea18d9200f5ba *e274686f7567689603595074686593737472756374757265936f6693584d4c9103593f69739373 *696d706c6572937468616e93746865937374727563747572658ea18d9200f5bae26f6696037149 *619370726f6772616d6d696e67936c616e67756167652c910388466f7572936c69627261727993 *636f756c6493629041c7656e650c749366726f6d8ea18d9200f5bae27468659602846d61646469 *74696f6e936f6693737570709041c76f727493666f729362696e64696e67937691ff7c72617269 *61626c6573937768656e936d61746390be3968696e678ea18d9200f5bae273756274726565732e *8ea18d9201033ae250726f6772616d6d696e67960448ea66756e6374696f6e73936578706c6963 *69746c79936f95be3976936572960448ea74686593584d4c9104489a646174612d8ea18d9200f5 *bae27374727563747572652c9b03f7c4776974686f75749603ca7b746865936162737472616374 *696f6e936f6693636f6d95be3962696e61746f72732c984861736b93656c6c8ea18d9200f5bae2 *7061747465726e96037e766d6174639abe3968696e679370726f9876696465739362696e64696e *677393666f729373756274726565732e910557d6427574936f6e6c798ea18d9200f5bae2617496 *02a75e61930c7865649328736d616c6c299364657074689366726f6d9374686593726f9541c76f *742c9102bd5c6293656e656174689602a75e616e936578706c696369746c798ea18d9200f5bae2 *7374617465649602852b7061747465726e936f6693636f6e7374727563746f72732e9103ec624d *6f686e656e935b8d398e91049ffe5d9364650c6e657393616e93657874656e2d8ea18d9200f5ba *e273696f6e9602c2ce6f6693746865937061747465726e936c616e677561676593666f72936465 *6570936d61746390be3968696e673a9103f32d7691ff7c7261726961626c657393696e8ea18d92 *00f5bae2619603586d7061747465726e9363616e93629a41c7659362986f756e6493746f937375 *627465726d739361749361726269747261727993646570746893696e2d8ea18d9200f5bae27369 *64659603aa00746865936f726967696e616c937465726d2e9105da7354686593726573756c7493 *6f6693746865936d61746390be396893696e636c7564657393618e9200f5bae29f074000890000 *6666005fffa09f08d70b8d8d8d8d91070b5d9ffcfb72b031328e8e8e910e599dc9687474703a2f *2f7777772e63732e74752d62732e64652f736f66746563682f70656f706c652f6c696e6469672f *746f6e792e68746d6c8e9f08a3d98d8d8d8d91070b5d9ffcfb72b031338e8e8e910e599dc96874 *74703a2f2f7777772e696e666f726d6174696b2e756e692d74726965722e64652f9103b8036e65 *756d616e6e2f4678702f8e8e8e8e8e9f1e00008d9200e51ae4b931308e8e8c8b0000000b000000 *0000000000000000000000000000000000000000000000000000000000000000000000ecd0a002 *95bae28da0fd3f0000a002a300008d8d8d8da0fd8000008d91edbae2c56390871b6f6e74657874 *910314af66756e6374696f6e9602d6b3b9726570726573656e90be3974696e6793746865936f72 *6967696e616c937375629100838e6a656374937465726d93776974688ea40a00008d91edbae260 *686f6c65732796046b65617493746865937369746573936f66936d61746390be3968696e673b91 *05166e7375627465726d7393666f7293746865736593686f6c65738ea18d91edbae26172659603 *340a737570706c69656493629abe397993617267756d656e98747393746f937468659366756e63 *74696f6e2e91047893536f93636f6e987465787473936172658ea18d91edbae274686596039f7d *636f6d706c656d656e9abe397473936f6693656e987669726f6e6d656e9874732e9105baea4d6f *686e656e9373686f98777393686f9877936869738ea18d91edbae26d61746390be3968696e6796 *033e96657874656e73696f6e9373696d706c690c6573937691ff7c726172696f75739374726565 *2d70726f9041c763657373696e67937461736b732c8ea18d91edbae2616e6496047be9616c736f *93686f9abe39779369749363616e93629041c765937472616e736c6174656493696e98746f9373 *74616e64617264934861736b98656c6c2e8ea18d91edbae2546869739603f357779abe396f726b *93636f756c649370726f9876696465936f6e6593636f6d709041c76f6e656e9874936f66936193 *6898796272696493736f6c752d8ea18d91edbae274696f6e2c9102ef4e776974689602e5cc4454 *442d73709041c76563690c6393726570726573656e90be39746174696f6e93c5616e6493b96765 *6e6572696393666f726d73936f668ea18d91edbae274726195be397693657273616c9603155461 *6e64936d61746390be3968696e672e8ea18d91fb3ae256697373657296028e4365742e93616c2e *935b8d31338e91093ffc5d93616c736f9364697363757373937365769abe396572616c936f7468 *657293617070726f61639868657393746f8ea18d91edbae2746865960315547472656593747261 *6e73666f726d6174696f6e9370726f626c656d2e8e9f178ffc8d8d91edbae2c4368e91fdb46f43 *6f6e636c7573696f6e7396038cca616e6493469bff1ccc75747572659357986f726b8e9f12e998 *8d91edbae2b9496e960439296f7572936578709041c7657269656e63652c9104821e4861736b9a *be39656c6c9369739361937698657279937375697461626c65936c616e677561676593666f728e *a18d91edbae2584d4c91043ad770726f9041c763657373696e672e91078dde4691ff3aab6f7296 *043b2367656e65726963936170706c69636174696f6e732c910484976193736d616c6c93736574 *936f668ea18d91edbae2636f6d90be3962696e61746f72739602d43264657369676e6564937769 *746893616c676562726169639370726f709041c765727469657393696e936d696e649363616e8e *a18d91edbae2629541c7659b040ad370936f95be397793657266756c98656e6f75676898616e64 *980d657869626c6598656e6f75676898746f98646573637269629041c76598619866756c6c8ea1 *8d91edbae272616e67659604133a6f669373656c656374696f6e2c960452b374657374696e672c *93616e649604133a636f6e737472756374696f6e936f709041c765726174696f6e7393696e8ea1 *8d91edbae2619604f708756e69666f726d936672616d657790be396f726b2e9109c18d4691ff3a *ab6f72936170706c69636174696f6e7393776865726593746865934454448ea18d91edbae26973 *9604e9d90c7865642c91055ef96193746f9a41c76f6c936465726976696e6793636f7272657370 *986f6e64696e67937490be39797098657393616e64936173736f9863692d8ea18d91edbae26174 *65649603bb83492f4f9b03bb58726f7574696e6573937475726e7393584d4c9870726f9041c763 *657373696e6793696e9abe39746f934861736b98656c6c9370726f2d8ea18d91edbae26772616d *6d696e679b02a8366f95be397693657298749379709041c7656498646174619873747275637475 *7265732c9102be09616e6498746865984861736b93656c6c98749379709041c7652d8ea18d91ed *bae26395be39686563936b936572960315547691ff7c72616c6964617465739373637269707473 *2e8ea18d91fb3ae2486f95be39779365769365722c9b04a829746865726596045799697393706c *656e95be39749379960457996f669373636f709041c76593666f729366757274686572937790be *396f726b2c98696e8ea18d91edbae273657690be396572616c91031554646972656374696f6e73 *3a8e9f1697fc8d91edbae2c447656e6572616c69749ab44379960479936f6693636f6d9862696e *61746f727391093ffcb954686f7567689603e2fd779abe39659368619876986593686164936765 *6e2d8ea18d91edbae26572616c69749abe39799603e819617393619364657369676e9361696d93 *666f72936f75729370726573656e987493636f6d9862696e61746f72936c6962726172798ea18d *91edbae274686572659603155469739373636f709041c76593666f729367656e6572616c697369 *6e6793697493667572746865722e8e9f1333338d8d8d8d91f81ae6c80f8e8e8e9101bae4c55769 *64657291043b5c66756e6374696f6e616c6974792e91072290b94d6f73749b04175f636f6e95be *3974656e9374980c6c7465727398696e986f7572986375722d8ea18d9101bae472656e90be3974 *96030a5b6c696272617279936172659365697468657293707572659373656c6563746f72739328 *7769746893726573756c747393746861748ea18d9101bae46172659602ba9473657175656e6365 *73936f66937375622d74726565739366726f6d937468659366756c6c93646f9041c763756d656e *90be39749374726565298ea18d9101bae46f7296035a317075726593636f6e7374727563746f72 *7393286372656174696e6793646f9041c763756d656e9abe397493636f6e9874656e9874936672 *6f6d8ea18d9101bae47691ff7c72616c756573960424a36f66936f74686572937490be3979709a *41c76573292e91074a5c5468659364657369676e93636f756c649375736566756c6c7993629865 *8ea18d9101bae4657874656e64656496028d00746f93696e636c7564659361936d6f7265936765 *6e6572616c93636c617373936f6693c564656c6574696f6e93b96f702d8ea18d9101bae4657261 *74696f6e739602eeaa696e937768696390be3968937375622d74726565739363616e93629041c7 *65937468696e6e656493616e64937072756e65648ea18d9101bae4696e9602f06f7691ff7c7261 *72696f7573937795be39619379732e910410244d6f72659602f06f67656e6572616c937374696c *6c9361726593636f6d90be3962696e61746f727393666f728ea18d9101bae4c5659a871b646974 *696e6796042cf4616e6493747298616e73666f726d696e67b92c910444497768657265960407b1 *736f6d65936f669374686593696465617393696e8ea18d9101bae4566973736572277396031554 *7790be396f726b93636f756c649375736566756c6c7993629041c765937472616e736665727265 *642e8ea91133348d8d8d8d91f81ae6c80f8e8e8e9101bae4c54d756c7469706c659603b1bf696e *7075747393616e64936f7574707574732e9105614eb9416e9603819e696e90be39746572657374 *696e6793657874656e73696f6e8ea18d9101bae46f669603c32c73696e676c652d646f9041c763 *756d656e9abe397493736372697074696e67936973937468659368616e646c696e67936f66936d *98756c74692d8ea18d9101bae4706c659b033c20646f9541c763756d656e90be3974732e910490 *d450726f93647563696e67986d6f7265987468616e986f6e65986f757470757498646f93632d8e *a18d9101bae4756d656e9abe39749602ab246973936e6f9367726561749370726f626c656d2e91 *03f90b42757493697493697393666172936d6f726593639868616c6c656e672d8ea18d9101bae4 *696e679602eaa4746f9364657369676e93617070726f70726961746593636f6d90be3962696e61 *746f727393666f72936465616c696e6793776974688ea18d9101bae473657690be396572616c91 *031554696e707574732e8ea68d8d8d8d91f81ae6c80f8e8e8e9101bae4c54d6f7295871b659b03 *ef0867656e657293616c987479709365732e91062962b95468659603c44f6c61629041c7656c6c *696e679373639abe3968656d65936861739370726f98769865648ea18d9101bae475736566756c *9603a4d2666f7293736f6d65936170706c69636174696f6e732c9103c8b162757493746865936e *65656493666f72936193736570612d8ea18d9101bae4726174659602a139c64c6162656c46696c *74657293b97490be3979709a41c765936973936193626c656d6973682e9103f5bc5791ff3aab65 *93686f70986593746f9367656e65722d8ea18d9101bae4616c697365960378f474686593c64346 *696c74657293b97490be3979709a41c76593746f93696e636f7270986f7261746593c64c616265 *6c46696c74657293b961738ea18d9101bae4619603538173709a41c7656369616c93636173652e *9104d6f64279936d616b696e679374686593c64346696c74657293b97490be3979709865937061 *72616d65742d8ea18d9101bae47269639603ab0a6974936d6967689abe397493657698656e9362 *9a41c7659370986f737369626c6593746f93696e636f7270986f7261746593746865937490be39 *797098652d8ea18d9101bae47472616e736c6174696f6e96028c076f6693445444739377697468 *696e9374686593636f6d9abe3962696e61746f72936672616d6577986f726b2e8e9f1697fc8d91 *edbae2c4450e6369656e63799604ca026f6693636f6d90b44362696e61746f727391093ffcb954 *6865960428d963757272656e9abe397493636f6d9862696e61746f72936c692d8ea18d91edbae2 *62726172799603917c697393717569746593757361626c652c9103b08662757493686572659361 *726593736f6d6593709041c76f737369626c6593726f7574657393746f8ea18d91edbae2677265 *6174657291031554650e6369656e637991ff3aab2e8e9f1133338d8d8d8d91f81ae6c80f8e8e8e *9101bae4c54190c38e6c6765627290871b6169639103f0f96e6f726d616c69736174696f6e9603 *c66cb9536f9366617293779abe396593686198769865936d6572656c799365737461622d8ea18d *9101bae46c69736865649604fb7574686174936c6190be39777393686f6c642c910574fd616e64 *936f9a41c763636173696f6e616c6c79936170709865616c656493746f8ea18d9101bae4746865 *6d960248807768656e9377726974696e6793736372697074732e9103d82954686593696d706c65 *6d656e90be39746174696f6e9373696d706c798ea18d9101bae464650c6e6573960384ea746865 *93636f6d9abe3962696e61746f7273936298799374686569729373709041c76563696679696e67 *936571756174696f6e732e8e8e8e8d8da0fd8000008d920109bae4496e73746561642c9102be23 *6c619abe3977739602a857636f756c6493629041c765936578706c6f6974656493617493746865 *93696d706c656d656e98746174696f6e8ea40a00008d920109bae46c657695be39656c2e91040a *c74691ff3aab6f6c6c6f9377696e679602e059487567686573935b8d378e91049ffe5d2c9102ea *f2779abe39659368619876986593696e936d696e6493616e93696d706c652d8ea18d920109bae4 *6d656e9abe39746174696f6e9602cf9b74686174936175746f6d61746963616c6c799372656475 *63657393616c6c93636f6d9862696e6174696f6e738ea18d920109bae4746f960285a76193c56e *6f726d616c9102ca36666f726db92c9102a2647468617493697393746865936c65617374936578 *709041c7656e7369769abe396593657175697691ff7c72616c656e98748ea18d920109bae4636f *6d7075746174696f6e616c6c7991ff3aab2e8ea91133348d8d8d8d9201001ae6c80f8e8e8e9201 *09bae4c5537095871b616393652d650e6369656e749104516b666f726d756c6174696f6e96042f *60b9536f6d65936c617a799366756e6374696f6e616c9370726f2d8ea18d920109bae46772616d *739602cf8b746861749370726f9041c76365737393747265657393696e937072652d6f72646572 *936c6566742d746f2d7269676890be397493666173682d8ea18d920109bae4696f6e960486fa63 *616e93629041c76593666f726d90be39756c6174656493746f9372756e93696e936c6f67284e29 *9104869b73706163652e910871635468658ea18d920109bae470617274960316386f6693746865 *937472656593746861749369739368656c6493696e936d656d6f727993636f72726573709041c7 *6f6e647393746f8ea18d920109bae46196041f5b706174689366726f6d9374686593726f9a41c7 *6f7493746f93736f6d65936e6f98646593746861749369739363757272656e90be39746c798ea1 *8d920109bae47468659602b54f666f9041c7637573936f6693636f6d7075746174696f6e3a9103 *ec6e746f93746865936c6566749361726593606761726261676527937375622d8ea18d920109ba *e474726565739603e18d616c72656164799370726f9041c76365737365642c9104149a746f9374 *6865937269676890be397493617265937375627472656573936e6f748ea18d920109bae47995be *3965749b03297b657691ff7c72616c75617465642e910458e5486f93779365769365722c91032e *856f75729863757272656e937498636f6d9362696e61746f7273986861937693658ea18d920109 *bae46e6f749602b865629041c765656e93666f726d9abe39756c6174656493746f936775617261 *6e98746565937468697393736f7274936f6693737061636593629041c7652d8ea18d920109bae4 *686195be3976696f75722c91031818657693656e9603178a696e93666195be3976936f75726162 *6c659603178a63617365732e91042313546869739370726f626c656d936d69676890be39748ea1 *8d920109bae4629041c765960315547461639abe396b6c65649362987993746865936e6f726d61 *6c69736174696f6e93617070726f616398682e8ea68d8d8d8d9201001ae6c80f8e8e8e920109ba *e4c54454442d6177617295871b6591052b8763936f6d62696e61746f727396051cb9b954686593 *63757272656e9abe397493636f6d9862696e61746f72936c692d8ea18d920109bae46272617279 *96051c106a7573749369676e6f72657393445444732e910a30a3436f6d90be3962696e61746f72 *739374686174936d61696e2d8ea18d920109bae47461696e9603521e4454449103520e696e666f *726d6174696f6e936d69676890be39742c9b036150666f72936578616d706c652c98616395be39 *6869657693659103521e6661728ea18d920109bae46d6f726596026f44650e6369656e9abe3974 *937365617263986893696e93736f6d6593636173657393629879937072756e696e67936272616e *63986865738ea18d920109bae4629a41c76f756e6496027d24746f936661696c2e9103e9b55468 *657993636f756c6493616c736f93629865937573656493746f9370726f9864756365930c727374 *2d8ea18d920109bae4636c6173739602869f584d4c9102867b646f9041c763756d656e90be3974 *739361739374686593726573756c7473936f6693717565726965732c9102a32a6e6f74936a7573 *748ea18d920109bae472619abe3977960482806578747261637473936f6693756e6b6e6f98776e *93749879709041c7652e910863f54173937798659368619876986593616c72656164798ea18d92 *0109bae46e6f7465642c91047ee44454447396043694636f756c6493709a41c765726861707393 *62986593617474616390be39686564936173936c616298656c7393696e8ea18d920109bae47468 *6596030ede73656e7365936f6693c878b9322e343a91041935656974686572936173936578706c *69636974937691ff7c72616c756573936f7293696d706c696369746c798ea18d920109bae4696e *960315547490be3979709041c76593696e666f726d6174696f6e2e8e9f1697fc8d9200f5bae2c4 *52656c6174696f6e739b02727262904bbc657495b443779365656e984454447391093ffcb94173 *9602201a779abe396593686198769865937365656e2c91025126696e93746865934454442d8ea1 *8d9200f5bae26469726563746564960219c8617070726f61639abe39689377697468936b6e6f98 *776e930c786564934454447393666f7293696e70757493616e64936f75742d8ea18d9200f5bae2 *7075742c91043a0b7691ff7c72616c69646174696f6e9603ff807472616e736c6174657393746f *93737461746963937495be3979709041c7652d6393686563936b696e673b910474977768657265 *61738ea18d9200f5bae267656e657269639602d7f4636f6d90be3962696e61746f727393636f75 *6c6493696e937072696e6369706c65936163717569726593616e6493636f6d707574658ea18d92 *00f5bae2445444739603f0fb64796e616d6963616c6c7991ff3aab2e9106af6554686573659372 *6570726573656e90be39749365787472656d657393776974689364697361642d8ea18d9200f5ba *e27691ff7c72616e9abe3974616765739603b1956f6693696e0d65786962696c69749879936f6e *93746865936f6e659368616e6493616e6493736f6d6593696e736563752d8ea18d9200f5bae272 *69749abe39799603a06a6f6e93746865936f746865722e9105bdb2546865726593617265936d61 *6e9879936f7468657293779861987973936f669368616e646c696e678ea18d9200f5bae272656c *6174696f6e739b031554629041c7657495be39779365656e98445444732e91041c704691ff3aab *6f72986578616d706c653a8e9f1333338d8d8d8d9201001ae6c80f8e8e8e920109bae4c5506f6c *796d6f72706869639605640d616e64936869676865722d6f7290871b6465729373637269707473 *2e910aeb26b954686591055a3b67656e657269638ea18d920109bae4617070726f616395be3968 *9b05cf0c77936f756c64986761696e98736563757269749379986966986f6e6598636f756c6498 *c5696e66657298b9618ea18d920109bae4445444c821b94454449102709a66756e6374696f6e2e *9103e5954279960270c4616e616c6f677993776974689366756e6374696f6e616c9370726f2d8e *a18d920109bae46772616d7396035cbb6974936973937468656e936e61747572616c93746f9361 *737369676e937363726970747393709041c76f6c796d6f72706869638ea18d920109bae4616e64 *960275fd6869676865722d6f7264657293445444732c910295dc6d616b696e67936578706c6963 *697493746865697293646567726565936f668ea18d920109bae467656e65726963697490be3979 *91ff3aab2e8ea68d8d8d8d9201001ae6c80f8e8e8e920109bae4c5496e636c7573696f6e9b0393 *936295871b6574776593656e98445444732e9104fecfb954686973960360c968617393629041c7 *65656e93696d706c696369746c799361732d8ea18d920109bae473756d65649602aa8d616c7265 *61647991ff3aab2c9102bfe8627574936861739370726163746963616c93696d709041c76f7274 *616e636593696e93697473936f90be39776e8ea18d920109bae47269676895be39742e91085511 *41739b047d8a73746f9041c763936b9844544473986172659872650c6e65642c9104d797584d4c *91047d2d646f9041c763756d656e9374738ea18d920109bae477696c6c9602ae1e696e68616269 *749361936869657261726395be396893799602ae1e6f669373709041c7656369616c6973617469 *6f6e2e9103fa094769769abe39656e93736576986572616c8ea18d920109bae473696d696c6172 *96026166445444732c910285636f6e6593779abe396f756c64936c696b986593746f9364657269 *76986593619344544491026138666f729361937669722d8ea18d920109bae47475616c96023fac *636f6d6d6f6e93726f9041c76f749328696e9abe3974657273656374696f6e29936f7293636f6d *6d6f6e9364657363656e64656e98748ea18d920109bae428756e696f6e292e910472d854686973 *96033221676f9a41c76573937790be39656c6c93629865799abe396f6e6493746865936162696c *6974696573936f669363757272656e98748ea18d920109bae4749abe3979709041c7652d696e66 *6572656e6365960329b573797374656d732c91032ece6275749377986f756c64936d616b986593 *619375736566756c93616464692d8ea18d920109bae474696f6e96031554746f936f7572936675 *6e6374696f6e616c93746f9a41c76f6c6b697493666f7293584d4c9370726f9863657373696e67 *2e8e9f178ffc8d9200f5bae2c4416395b4436b6e6f93776c656467656d656e9374738e9f12e998 *8d9200f5bae2b943616e6f6e9603d667526573656172639abe39689343656e9874726593284575 *726f709041c76529934c74642e91065fa97375676765737465649374686973936c696e658ea18d *9200f5bae26f669602a63c7790be396f726b93616e649366756e6465649369742e9103f7685068 *696c6970935791ff3aab61646c65722c9b02bc7443687269737469616e934c696e6469672c9861 *6e648ea18d9200f5bae24a6f9041c7659603345e456e676c69736893676195be397693659b0334 *5e76936572799868656c7066756c98636f6d6d656e937473986f6e98616e986561726c69657298 *64726166748ea18d9200f5bae26f669602e46b74686973937061709041c7657293616e6493736f *667495be3977936172652e91040c22536576936572616c9b02e46b616e6f6e93796d6f75739872 *6566657265657398616c736f8ea18d9200f5bae2676195be397693659603155475736566756c93 *6164766963652e8e8e8e8e8e9f1e00008d9200e51ae431318e8e8c8b0000000c00000000000000 *000000000000000000000000000000000000000000000000000000000000010d9ea00295bae28d *a0fd3f0000a002a300008d8d8d8da0fd8000008d91edbae2c45265666572656e6365738e9f12e9 *988d8d8d91f25ae0b95b315d8e8e91011e6a54696d9603d3ac4272619abe397991ff3aab2c9104 *03414a65616e935098616f6c692c91040341616e6493432e4d2e9353709541c765726293657267 *2d4d6163717565656e2e8ea40a00008d91011e6a457874656e7369626c659602277f4d61726b75 *70934c616e67756167659328584d4c299b022742312e309328573343985265636f6d2d8ea18d91 *011e6a6d656e646174696f6e292e9104f5ddc6687474703a2f2f7777772e77332e6f72672f5452 *2f5245432d786d6cb92c910371a35757578ea18d91011e6a436f6e736f727469756d2c96031554 *4691ff3aab6562727561727993313939382e8ea9102de68d8d8d91f25ae05b325d8e8e91011e6a *5791065713489106563b42757267652e910dce5fc55295871b6593637572736976659b064c6550 *72936f93677293616d6d696e67985491ff4aaa659363686e6971756573b92e8ea18d91011e6a41 *646469736f6e2d5796ff3aab65736c6579932c91031554313937352e8ea68d8d8d91f25ae05b33 *5d8e8e91011e6a4a616d657396056dc2436c61726b93286564292e910b171758534c91056d2754 *9bff3aab72616e73666f726d6174696f6e73932857986f726b696e678ea18d91011e6a44726166 *74292e9103e10fc6687474703a2f2f7777772e77332e6f72672f54522f57442d78736c74b92c91 *02f97a5757579102f27b436f6e2d8ea18d91011e6a736f727469756d2c96031554417072696c93 *313939392e8ea68d8d8d91f25ae05b345d8e8e91011e6a4a6f6e960352aa4691ff3aab61697262 *6169726e2e9104d0954d616b696e6793666f726d93666f6c6c6f90be39779366756e6374696f6e *3a9104971b416e93657865722d8ea18d91011e6a636973659602efca696e9366756e6374696f6e *616c9370726f6772616d6d696e6793737490be39796c652e9103dc9dc5536f66747761729a871b *6596032bbd7b9350729861632d8ea18d91011e6a7469639a871b6596034e3c616e649345787098 *657269656e639865b92c9603155431372836293a3337397b3338362c934a756e6593313938372e *8ea68d8d8d91f25ae05b355d8e8e91011e6a42656e6564696374910410cc529104108b47617374 *65722e91070730c55295871b659363936f729364732c96046f175691ff4aaa617269616e74732c *93616e64910435525175616c690c6590871b648ea18d91011e6a5491ff4aaa797090871b6573b9 *2e9105f7c8446570749603b5b96f6693436f6d707574657293536369656e63652c9103ddd2556e *697695be39657273697493799603b5b96f66934e6f742d8ea18d91011e6a74696e6768616d2c96 *031554c550684491034e3c546865736973b92c93313939382e8ea68d8d8d91f25ae05b365d8e8e *91011e6a4a6f686e9603d65d4875676865732e9106590e576890be39799366756e6374696f6e61 *6c9370726f6772616d6d696e67936d6174746572732e8ea18d91011e6ac5436f6d707574657291 *034e3c4a6f75726e616cb92c9603155433322832292c93417072696c93313938392e8ea68d8d8d *91f25ae05b375d8e8e91011e6a4a6f686e96022de04875676865732e9b02a08654686593646573 *69676e936f66936193707265747495be39792d7072696e9374696e6791022de06c696272617279 *91ff3aab2e98496e8ea18d91011e6ac531737496032813496e746c2e935363686f9a871b6f6c93 *6f6e93416476616e63986598649346756e6374696f6e616c935072986f98677298616d6d696e67 *b92c8ea18d91011e6a70616765739603155435337b39362e93537072696e676572934c4e435393 *5691ff3aab6f6c2e933932352c93313939352e8ea68d8d8d91f25ae05b385d8e8e91011e6a4772 *6168616d96037e83487574746f6e93616e64934572696b934d65696a65722e910553414d6f6e61 *6469639370617273696e6793696e8ea18d91011e6a4861736b90be39656c6c2e9102cd44c54a6f *75726e616c960292c56f66934691ff4aaa756e6374696f6e616c93507295871b6f93677293616d *6d696e67b92c96027221382834292c934a756c798ea18d91011e6a313939382e8ea68d8d8d91f2 *5ae05b395d8e8e91011e6a4d61726b757396052b844d6f686e656e2e910a51af436f6e9abe3974 *657874937061747465726e7393696e934861736b98656c6c2e910a51af496e8ea18d91011e6ac5 *576f726b73686f709602ad986f6e93496d706c656d656e746174696f6e936f66934691ff4aaa75 *6e6374696f6e616c934c90871b616e677561676573b92c8ea18d91011e6a706167657396024664 *34317b35372e93537072696e676572934c4e43539102462f5691ff3aab6f6c93313236382c9102 *6fc753657074656d90be39629041c7657293313939362e8ea68d8d8d91edbae25b31305d8e8e91 *011e6a446f61697473659603679353776965727374726193616e64934c7563934475709041c76f *6e6390be396865656c2e91050ee644657465726d696e69737469638ea18d91011e6a6572726f72 *2d636f7272656374696e6796026c31636f6d90be3962696e61746f7293706172736572732e9103 *061a496e93c5326e649602b2cf496e746c2e935363686f90871b6f6c8ea18d91011e6a6f6e9b03 *4673416476616e6395871b6593649846756e6374696f6e616c985072936f93677293616d6d696e *67b92c91030e8d706167657391030cdb3138347b3230372e8ea18d91011e6a537072696e676572 *960315544c4e4353935691ff3aab6f6c93313132392c9341756775737493313939362e8ea68d8d *8d91edbae25b31315d8e8e91011e6a446190be397669649b03400b41960340005491ff3aab7572 *6e65722e9104991941936e657798696d706c656d656e95be39746174696f6e9874656393686e69 *71756598666f728ea18d91011e6a6170706c69636174697690be39659102ffa96c616e67756167 *65732e9103f67cc5536f66747761729a871b6596033a527b935072986163746963986593616e64 *93457870986572692d8ea18d91011e6a656e6390871b65b92c96031554392831293a33317b3530 *2c934a616e90be397561727993313937392e8ea68d8d8d91edbae25b31325d8e8e91011e6a556e *6b6e6f95be39776e2e911ccd19446f9041c763756d656e93749b0b5f3c537493796c659853656d *616e937469637398616e648ea18d91011e6a53709041c76563690c636174696f6e960abace4c61 *6e67756167659328445353534c29910ab8d42846696e616c934472616674292e8ea18d91011e6a *c6687474703a2f2f6f6363616d2e736a662e6e6f76656c6c2e636f6d2f647373736c2f64737373 *6c39362fb92c8ea18d91011e6a4e6f95be397693656c6c960315545075626c69636174696f6e73 *2c93313939362e8ea68d8d8d91edbae25b31335d8e8e91011e6a45656c636f9604791b56697373 *65722c9b04d20c5a696e6593656c9341626964696e659342656e61697373612c98616e6493416e *647265778ea18d91011e6a5491ff3aab6f6c6d616390be39682e9108f5cc4275696c64696e6796 *04b6c670726f6772616d936f7074696d6973657273937769746893726577726974658ea18d9101 *1e6a737472617465676965732e91061308496e9103bedec5496e7465726e6174696f6e616c9b03 *ea08436f6e66657295871b656e639365986f6e984691ff4aaa756e6374696f6e616c8ea18d9101 *1e6a507295871b6f93677293616d6d696e67b92c9b05f4ce7061676573960561b631337b32362e *934195be39434d9105611e50726573732c9853657074656d93629041c765728ea18d91011e6a31 *3939382e8ea68d8d8d91edbae25b31345d8e8e91011e6a5068696c6970960516785791ff3aab61 *646c65722e910a12f8486f9abe397793746f937265706c616365936661696c7572659362987993 *61936c697374936f668ea18d91011e6a7375636365737365732e9105cc66496e9103a72ac54691 *ff4aaa756e6374696f6e616c9b03d440507295871b6f93677293616d6d696e67984c93616e6775 *6167657398616e648ea18d91011e6a436f6d70757465729102fcbb4190c38e7295871b63686974 *6593637475729365b92c9102ce6070616765739602bca23131337b3132382e93537072696e6765 *72934c4e43538ea18d91011e6a5691ff3aab6f6c960315543230312c9353657074656d90be3962 *9041c7657293313938352e8ea68d8d8d91edbae25b31355d8e8e91011e6a5068696c6970960b21 *ff5791ff3aab61646c65722e911c169b41910b1fea666f726d616c936d6f9041c764656c936f66 *937061742d8ea18d91011e6a7465726e960b1fec6d6174639abe3968696e6793696e9358534c2e *911c106e5491ff3aab656398686e6963616c935265709041c76f72748ea18d91011e6ac6687474 *703a2f2f7777772e63732e62656c6c2d6c6162732e636f6d2f7e7761646c65722f78736c2fb92c *910d3d3f42656c6c8ea18d91011e6a4c6162732c960315544a616e90be39756172799331393939 *2e8ea68d8d8d91edbae25b31365d8e8e91011e6a4e6f9041c7656c9604500257696e7374616e6c *657991ff3aab2e9107c38d52650d656374696f6e73936f6e93696e7374616e6365936465726976 *91ff7c726174696f6e2e8ea18d91011e6a496e9103f854c53139393796041ed6476c6173676f77 *9346756e6374696f6e616c93507295871b6f93677293616d6d696e6791041ed6576f726b73686f *70b92e8ea18d91011e6a424353910258be5791ff3aab6f726b73686f7073960258ee696e93436f *6d707574657293536369656e63652c91027e9c53657074656d90be39629041c765729331393937 *2e8e8e8e8d8d9ffa25da8da0fd87f44c8d9200f5bae2c4417070904bbc656e6469783a9104bbb8 *44544496038cca7472616e736c6174696f6e9372756c65738ea001367aa68d8d8da0fedc2ef08d *8d9201471e6f5490b4437970904bbc6591038cca6465636c61726174696f6e738e8ea40a00008d *8d9200fb2149c85491024eeeb95b9bfe75565bc63c454c454d454e549604b9966e93f320dfea3c *7800090000000a00000007636d6974743130cb73706563c63eb95d985d8e8d92016019ae3d8e8d *920172183fc66e6577747970659604b996cb6d93c63d8e8ea18d8d920184fe97cb6d9604b996c6 *28cb6d8d9100912489000066660002d5c28e9b0366e6c641747472732c93cb6d8d910091248900 *0066660002d5c28e98c6298e8ea18d8d920172183f6e6577747970659604b996cb6d8d91009124 *89000066660002d5c28e9108207cc63d93c8449041c7b95b96fe75565bcb73706563b95d935d91 *04b996cb6d8e8ea18d8d92019f2c61b9776865726591031554cb6d9604b996b93d93c84db95b96 *fe75565bc66eb95d935d8e8ea18d8d9200fb2149c85491024eeeb95b91fe75565bc63c4154544c *4953549104b9966e8e8ea18d8d8d920112c137c5646590871b636c8d9f00fffff321747d5cca00 *060000000700000005636d746937cc308e8e8d92012d0acdc73a96018aaa3a933a8e8d92013960 *1dc5646590871b636c8d9f011112cc6b8e8e92014ce636c63eb95d91fe75565d8e8d92016019ae *3d8e8d920172183fc6646174619604b996cb6d8d9100912489000066660002d5c28e910366e6c6 *4174747273933d8e8ea18d8d92017b8b6bcb6d8d9100912489000066660002d5c28e910366e6c6 *41747472739604b996c86693469100e5afb95b96fe75565b8dc5646590871b636c8d9f00ffffcc *308e8e91140556b95d935d8e8ea18d8d9201a1581bc62c91031554b92e96018aaa2e932e8e8ea1 *8d8d9201a1581bc62cc8469100e5afb95b96fe75565b8dc5646590871b636c8d9f011112cc6b8e *8e91138619b95d935d9104b996c8678e8ea18d8d92019f2c61b9776865726591031554cb6d9604 *b996b93d93c84db95b96fe75565bc66eb95d935d8e8ea18d8d920172183fc841b95b96fe75565b *8dc5646590871b636c8d9f00ffffcc308e8e91140556b95d935d8e8ea18d8d920172183f2e9601 *8aaa2e932e8e8ea18d8d920172183fc841b95b96fe75565b8dc5646590871b636c8d9f011112cc *6b8e8e91138619b95d935d8e8ea1a18d8d920135cdf4c452485396038cca6f66937490b4437970 *904bbc65936465636c61726174696f6e738e8ea18d8d9200fb2149c8449041c7b95b91fe75565b *28c7788d9f00ffffbd308e96042aa7c73b9b018aaa788d9f00ffffbd318e93c73b8d983a983a98 *3a8e910ddffa3b98788d9f011113f31510cdbece00060000000600000005636d6d6936c06b8e91 *04971ab9295d91fe75565dc76d8e8d92016019aeb93d8e8d920172183fc84391008166b95b96fe *75565bc76d91031554788d9f00ffffbd308e8d9108caa5c73a96018aaa3a933a8e91183549788d *9f011113c06b8e9104971ab95d935d8e8ea40a281b8d8d92017ea0bfc8448d9041c79ffc2d3df3 *1871a1250b00060000000600000005636d737936c3308e9b02f38eb95b96fe75565bc7788d9f00 *ffffbd308e91042aa7b95d935d91031554c8448d9041c79ffc2d3dc3308e98b95b935bc7788d9f *00ffffbd318e91042aa7b95d935d8d91049ffec73a96018aaa3a933a8e91140aa2c8448d9041c7 *9ffc2d3dc3308e98b95b935bc7788d9f011113c06b8e9104971ab95d935d8e8ea18d8d9200fb21 *49c8449041c7b95b9bfe75565b28c7788d9f00ffffbd308e96042aa7c86ac7788d9f00ffffbd31 *8e93c86a8d96018aaac73a933a933a8e910ddffac86ac7788d9f011113c06b8e9104971ab9295d *985dc76d8e8d92016019aeb93d8e8d92017842e7c84391008166b95b96fe75565bc76d9b031554 *788d9f00ffffbd308e91042aa7b95d935d98c8448d9041c79ffc2d3dc3308e9102f38eb95b935b *c7788d9f00ffffbd308e91042aa7b95d935d8e8ea18d8d920172183fc67c96031554c843910081 *66b95b9bfe75565bc76d93788d9f00ffffbd318e91042aa7b95d985d93c8448d9041c79ffc2d3d *c3308e9102f38eb95b985bc7788d9f00ffffbd318e91042aa7b95d985d8e8ea90a00008d8d9201 *72183fc67c91031554b92e96018aaa2e932e8e8ea18d8d920172183fc67c96031554c843910081 *66b95b9bfe75565bc76d93788d9f011113c06b8e9104971ab95d985d93c8448d9041c79ffc2d3d *c3308e9102f38eb95b985bc7788d9f011113c06b8e9104971ab95d985d8e8ea18d8d9200fb2149 *c8449041c7b95b96fe75565b28c778b9293f5d935dc76d8e8d92016019aeb93d8e8d920172183f *c64d6179626591031554c8448d9041c79ffc2d3dc3308e9102f38eb95b96fe75565bc778b95d93 *5d8e8ea18d8d9200fb2149c8449041c7b95b96fe75565b28c778b9292b5d935dc76d8e8d920160 *19aeb93d8e8d920172183fc64c6973743191031554c8448d9041c79ffc2d3dc3308e9102f38eb9 *5b96fe75565bc778b95d935d8e8ea18d8d9200fb2149c8449041c7b95b96fe75565b28c778b929 *c803b95d935dc76d8e8d92016019aeb93d8e8d920172183fc65b9b031554c8448d9041c79ffc2d *3dc3308e9102f38eb95b96fe75565bc778b95d935d98c65d8e8ea68d8d9200fb2149c8449041c7 *b95b96fe75565bc778b95d935dc76d8e8d92016019aeb93d8e8d920172183fc84391008166b95b *96fe75565bc76d9103155478b95d935d8e8ea6a68d8d92013c0d2dc4496e6e657296038cca7490 *b4437970904bbc659365787072657373696f6e738e8ea18d8d9200fb2149c8448d9041c79ffc2d *3dc3308e9102f38eb95b91fe75565b28c7788d9f00ffffbd308e96042aa7c73b9b018aaa788d9f *00ffffbd318e93c73b8d983a983a983a8e910ddffa3b98788d9f011113c06b8e9104971ab9295d *91fe75565d8e8d92016019ae3d8e8d920172183fc6289b031554c8448d9041c79ffc2d3dc3308e *9102f38eb95b96fe75565bc7788d9f00ffffbd308e91042aa7b95d935d98c62c98c8448d9041c7 *9ffc2d3dc3308e9102f38eb95b935bc7788d9f00ffffbd318e91042aa7b95d935d8e8ea18d8d92 *017ea0bfc62c8d91031554c73a96018aaa3a933a8e91127ff8c8448d9041c79ffc2d3dc3308e91 *02f38eb95b96fe75565bc7788d9f011113c06b8e9104971ab95d935d91031554c6298e8ea18d8d *9200fb2149c8448d9041c79ffc2d3dc3308e9102f38eb95b9bfe75565b28c7788d9f00ffffbd30 *8e96042aa7c86ac7788d9f00ffffbd318e93c86a8d96018aaac73a933a933a8e910ddffac86ac7 *788d9f011113c06b8e9104971ab9295d985d8e8d92016019ae3d8e8d920172183fc6284f6e654f *668d9f00ffffc06e8e910b48dfc8448d9041c79ffc2d3dc3308e9b02f38eb95b96fe75565bc778 *8d9f00ffffbd308e91042aa7b95d935d91031554c8448d9041c79ffc2d3dc3308e98b95b935bc7 *788d9f00ffffbd318e91042aa7b95d935d8e8ea18d8d8d9201a2c92dc73a96018aaa3a933a8e92 *01b233d1c8448d9041c79ffc2d3dc3308e9102f38eb95b96fe75565bc7788d9f011113c06b8e91 *04971ab95d935d91031554c6298e8ea18d8d9200fb2149c8448d9041c79ffc2d3dc3308e9102f3 *8eb95b96fe75565b28c778b9293f5d935d8e8d92016019ae3d8e8d920172183fc6284d61796265 *9b031554c8448d9041c79ffc2d3dc3308e9102f38eb95b96fe75565bc778b95d935d98c6298e8e *a18d8d9200fb2149c8448d9041c79ffc2d3dc3308e9102f38eb95b96fe75565b28c778b9292b5d *935d8e8d92016019ae3d8e8d920172183fc6284c697374319b031554c8448d9041c79ffc2d3dc3 *308e9102f38eb95b96fe75565bc778b95d935d98c6298e8ea18d8d9200fb2149c8448d9041c79f *fc2d3dc3308e9102f38eb95b96fe75565b28c778b929c803b95d935d8e8d92016019ae3d8e8d92 *0172183fc65b9b031554c8448d9041c79ffc2d3dc3308e9102f38eb95b96fe75565bc778b95d93 *5d98c65d8e8ea18d8d9200fb2149c8448d9041c79ffc2d3dc3308e9102f38eb95b96fe75565bc7 *78b95d935d8e8d92016019ae3d8e8d920172183fc84391008166b95b96fe75565bc778b95d935d *8e8ea6a68d8d92014c1286c44e616d6591038cca6d616e676c696e678e8ea68d8d9200fb2149c8 *4391008166b95b96fe75565bc76d91031554788d9f00ffffbd308e91073ffbc7788d9f00ffffbd *318e8d9108caa5c73a96018aaa3a933a8e91183549788d9f011113c06b8e9104971ab95d935d8e *8d92016019ae3d8e8d920172183f2e96018aaa2e932e93c5756e6971756596034e3c6390871b6f *6e7374727563746f72936e616d658e8ea68d8d920197e4ef6295871b617365936496034e3c6f6e *93c66d8e8ea68d8d9200fb2149c84db95b96fe75565bc76eb95d935d8e8d92016019ae3d8e8d92 *0172183f2e96018aaa2e932e93c5656e7375729a871b6596034e3c696e697469616c9375707098 *65722d63986173658e8ea18d8d9200fb2149c84d8d9ffc2d3dc3308e9102b1c7b95b96fe75565b *c76eb95d935d8e8d92016019ae3d8e8d920172183f2e96018aaa2e932e93c5656e7375729a871b *6596034e3c696e697469616c936c6f7765722d63986173658e8ea6a68d8d920152667cc44e616d *656491038cca0c656c64738e8ea68d8d9200fb2149c8469100e5afb95b91fe75565b9b031554c6 *6e9604b99643444154419323524551554952454498b95d91fe75565d8e8ea18d8d92016019ae3d *8e8d920172183fc84d8d9ffc2d3dc3308e9102b1c7b95b96fe75565bc76eb95d935d91062aa8c6 *3a3a9109732c537472696e678e8ea68d8d9200fb2149c8469100e5afb95b91fe75565b9b031554 *c66e9604b99643444154419323494d504c49454498b95d91fe75565d8e8ea18d8d92016019ae3d *8e8d920172183fc84d8d9ffc2d3dc3308e9102b1c7b95b96fe75565bc76eb95d935d91062aa8c6 *3a3a9109732c4d617962659104b996537472696e678e8ea68d8d9200fb2149c8469100e5afb95b *91fe75565b91031554c66e9b04b99628c7738d9f00ffffbd308e96042aa7c86ac7738d9f00ffff *bd318e93c86a8d96018aaac73a933a933a8e910ddffac86ac7738d9f011113c06b8e9104971ac6 *299823524551554952454491031554b95d91fe75565d8e8ea18d8d92016019ae3d8e8d92017218 *3fc84d8d9ffc2d3dc3308e9102b1c7b95b96fe75565bc76eb95d935d91062aa8c63a3a91041c70 *c84db95b935bc76eb95d935d8e8ea68d8d9200fb2149c8469100e5afb95b91fe75565b91031554 *c66e9b04b99628c7738d9f00ffffbd308e96042aa7c86ac7738d9f00ffffbd318e93c86a8d9601 *8aaac73a933a933a8e910ddffac86ac7738d9f011113c06b8e9104971ac6299823494d504c4945 *4491031554b95d91fe75565d8e8ea18d8d92016019ae3d8e8d920172183fc84d8d9ffc2d3dc330 *8e9102b1c7b95b96fe75565bc76eb95d935d91062aa8c63a3a9109732c4d617962659107ceeac8 *4db95b935bc76eb95d935d8e8ea6a68d8d92013bba75c4436f6e73747261696e656491038cca61 *7474726962757465738e8ea68d8d9200fb2149c841b95b9bfe75565b91031554c66e9604b99643 *44415441932e2e2e91041c70b95d985d8e8d92016019ae3d8e8d920172183fc71e8e8ea68d8d92 *00fb2149c841b95b91fe75565b91031554c66e9b04b99628c7738d9f00ffffbd308e96042aa7c8 *6ac7738d9f00ffffbd318e93c86a8d96018aaac73a933a933a8e910ddffac86ac7738d9f011113 *c06b8e9104971ac629982e2e2e91041c70b95d91fe75565d8e8ea68d8d92016019ae3d8e8d9201 *72183fc6646174619107ceeac84db95b96fe75565bc76eb95d935d91062aa8c63d8e8ea68d8d92 *018813ebc84db95b96fe75565bc7738d9f00ffffbd308e9b042aa7b95d935d96031554c67c93c8 *4db95b96fe75565bc7738d9f00ffffbd318e98b95d935d8e8ea68d8d92018813ebc67c9b031554 *b92e96018aaa2e932e93c67c98c84db95b96fe75565bc7738d9f011113c06b8e9104971ab95d93 *5d8e8e8e8e8ea00137910e8d8d9201293be646696775726596031554393a91041c704454449374 *72616e736c6174696f6e9372756c65732e8e8e9f0a00008d9200f5bae2840000666600f000008e *8e8e8e8e8e9f1e00008d9200e51ae431328e8e8cf800012d4a018392c01c3b0000000003e80295 *bae201e5bae2000d000cf321747d5cca00060000000700000005636d746937f320dfea3c780009 *0000000a00000007636d6974743130f31f747d5cca00070000000700000005636d746937f31edf *43ca7300070000000800000005636d747438f31da9b190ca00090000000900000005636d737939 *f31c35f99e2200090000000900000005636d6d6939f31bdfa44e0000090000000900000005636d *747439f31abc6a91b900090000000900000005636d746939f319740c893a000900000009000000 *05636d627839f31871a1250b00060000000600000005636d737936f31510cdbece000600000006 *00000005636d6d6936f312b94161a800060000000600000004636d7236f3117c7b590700080000 *000800000004636d7238f3104bf16079000af333000a00000005636d723130f30f58ab510b000e *6666000c00000005636d723132f30e6fb48bc700090000000900000004636d7239f306d993a052 *00070000000700000004636d7237f30586039b5a00050000000500000004636d7235f900014d1a *02dfdfdfdf newhex * rmfile ./docs/icfp99.dvi hunk ./docs/icfp99.html 1 - - -Haskell and XML: Generic Combinators or Type-Based Translation? - - - - - -

    Haskell and XML: Generic Combinators or Type-Based Translation?

    -

    Malcolm Wallace and Colin Runciman
    -
    - -





    -
    -
    Abstract: We present two complementary approaches to writing XML -document-processing applications in a functional language.
    -
    -In the first approach, the generic tree structure of XML documents is -used as the basis for the design of a library of combinators for generic -processing: selection, generation, and transformation of XML trees.
    -
    -The second approach is to use a type-translation framework for -treating XML document type definitions (DTDs) as declarations of algebraic -data types, and a derivation of the corresponding functions for reading -and writing documents as typed values in Haskell.
    -
    -Published in the Proceedings of the International Conference -on Functional Programming, Paris, Sept 1999. ACM Copyright.
    - - -

    1  Introduction

    - -

    1.1  Document markup languages

    -XML (Extensible Markup Language) [1] is a recent simplification -of the older SGML (Standardised Generalised Markup Language) standard -that is widely used in the publishing industry. It is a markup -language, meaning that it adds structural information around the text -of a document. It is extensible, meaning that the vocabulary of the -markup is not fixed -- each document can contain or reference a -meta-document, called a DTD (Document Type Definition), which describes -the particular markup capabilities used.
    -
    -The use of XML is not however restricted to the traditional idea of a -document. Many organisations are proposing to use XML as an interchange -format for pure data produced by applications like graph-plotters, -spreadsheets, and relational databases.
    -
    -HTML (Hyper-Text Markup Language) is one well-known example of an -instance of SGML -- every HTML document is an SGML document conforming -to a particular DTD. Where XML improves over SGML is in removing -shorthand forms that require an application to have knowledge of a -document's DTD. For instance, in HTML some markup (such as a numbered -list) requires an end marker; other forms (such as paragraphs) have -implicit end markers understood when the next similar form starts; and -yet other markup (such as in-line images) is self-contained and needs -no end marker. An HTML application needs to be aware of the specific -kind of markup in order to do the right thing.
    -
    - - -

    1.2  XML document structure

    XML is more regular. All markup has an explicit end marker -without exception: every document is well-formed; its nesting -structure is syntactically clear. One important consequence is that -an XML application does not need to know the meaning or interpretation -of all markup expressions -- parts of the document can be selected, -re-arranged, transformed, by structure alone rather than by meaning.
    -
    -An XML document is essentially a tree structure. -There are two basic `types' of content in a document: tagged elements, -and plain text. A tagged element consists of a start tag and an end -tag, which may enclose any sequence of other content (elements or text -fragments). Tagged elements can be nested to any depth, and the -document is well-formed if it consists of a single top-level element -containing other properly nested elements. -Start tags have the syntax <tag>, and end tags </tag>, -where tag is an arbitrary name. There is special syntax for an -empty element: <tag/> is exactly equivalent to -<tag></tag>. -The start and end tags for each element contain a tag name, which -identifies semantic information about the structure, indicating how the -enclosed content should be interpreted. The start tag may also contain -attributes, which are simple name/value bindings, providing further -information about the element. -Figure 1 shows an example XML document, illustrating -all these components.
    -
    -

    -<?xml version='1.0'?>
    -<!DOCTYPE album SYSTEM "album.dtd">
    -<album>
    -  <title>Time Out</title>
    -  <artist>Dave Brubeck Quartet</artist>
    -  <coverart style='abstract'>
    -    <location thumbnail='pix/small/timeout.jpg'
    -              fullsize='pix/covers/timeout.jpg'/>
    -  </coverart>
    -
    -  <catalogno label='Columbia' number='CL 1397'
    -             format='LP'/>
    -  <catalogno label='Columbia' number='CS 8192'
    -             format='LP'/>
    -  <catalogno label='Columbia' number='CPK 1181'
    -             format='LP' country='Korea'/>
    -  <catalogno label='Sony/CBS' number='Legacy CK 40585'
    -             format='CD'/>
    -
    -  <personnel>
    -    <player name='Dave Brubeck' instrument='piano'/>
    -    <player name='Paul Desmond' instrument='alto sax'/>
    -    <player name='Eugene Wright' instrument='bass'/>
    -    <player name='Joe Morello' instrument='drums'/>
    -  </personnel>
    -
    -  <tracks>
    -    <track title='Blue Rondo &agrave; la Turk'
    -           credit='Brubeck' timing='6m42s'/>
    -    <track title='Strange Meadow Lark'
    -           credit='Brubeck'  timing='7m20s' />
    -    <track title='Take Five'
    -           credit='Desmond'  timing='5m24s' />
    -    <track title='Three To Get Ready'
    -           credit='Brubeck'  timing='5m21s' />
    -    <track title="Kathy's Waltz"
    -           credit='Brubeck'  timing='4m48s' />
    -    <track title="Everybody's Jumpin'"
    -           credit='Brubeck'  timing='4m22s' />
    -    <track title='Pick Up Sticks'
    -           credit='Brubeck'  timing='4m16s' />
    -  </tracks>
    -
    -  <notes author="unknown">
    -    Possibly the DBQ's most famous album,
    -    this contains
    -    <trackref link='#3'>Take Five</trackref>,
    -    the most famous jazz track of that period.
    -    These experiments in different time
    -    signatures are what Dave Brubeck is most
    -    remembered for.  Recorded Jun-Aug 1959
    -    in NYC.  See also the sequel,
    -      <albumref link='cbs-timefurthout'>
    -        Time Further Out</albumref>.
    -  </notes>
    -</album>
    -
    -
    Figure 1: An example XML document. -
    -
    - -

    1.3  Representing XML in Haskell

    This paper is about processing XML using the functional -language Haskell.1 - -Modern functional languages are well-equipped to deal -with tree-structured data, so one expects the -language to be a good fit for the application. -Even so, a key issue is just how to represent documents, and in -particular how to reconcile the DTD datatype definitions -included in XML documents with the data types that can be -defined in Haskell. -We have investigated two complementary approaches: -Advantages of (1) include genericity and function-level scripting. -Generic applications handle a wide class of XML documents, not just -those sharing a specific DTD. -One example of a completely generic application is searching documents -to extract contents matching some pattern. -Our Xtract2 - is -an interpreter for a regular XML query language.
    -
    -The term `generic' also applies to applications that make some -assumptions about a document's structure but need not know the full -DTD,3 - -for example, a small script to add a ``total'' column to the end of every -table (recognised by a particular markup tag) without altering any of -the surrounding structure.
    -
    -By function-level scripting we mean that the programmer does not have -to be concerned with details of programming over data structures. -All details of data structure manipulation can be hidden in a library of -high-level combinators. In effect, combinatory expressions serve as -an extensible domain-specific language.
    -
    -Advantages of (2) include stronger typing and fuller control. -A well-formed XML document is further said to be valid if it -conforms to a stated DTD. By establishing a correspondence between -DTDs and Haskell types, the concept of validity can be extended to -include applications that process documents. -Not only is there a static guarantee that applications cannot fail -in respect of -document structure if the input XML conforms to the stated DTD; -any XML output produced via a DTD-derived type is guaranteed to be valid. -With direct access to the DTD-specific data structure, the programmer has -fuller control over how computation is done. -They can use a full repertoire of programming techniques with the safeguard -that type-checked Haskell will automatically produce XML that is valid -in respect of a specified DTD.
    -
    -Both approaches rely on a toolkit of more basic components for processing -XML documents in Haskell: for instance, a parser and pretty-printer. -These supporting components are implemented using existing combinator -libraries [7, 8].
    -
    - - -

    1.4  Sections following

    §2 develops the approach using a generic representation -and a combinator library, including an illustrative application. -§3 develops the alternative based on translation between -DTDs and Haskell data types. -§4 discusses some pros and cons of the two approaches -based on our experience implementing and using both. -§5 discusses related work; §6 offers some -conclusions and suggestions for further work. - - - - -

    2  Generic combinators

    -In this section, we begin with a generic representation for the contents -of XML documents, excluding any DTD. We introduce content filters -as a suitable basic type for functions processing this representation, -and combinators for putting such filters together. -A complete table of basic -filters is given in Figure 2, and of combinators and -their definitions in Figure 3. An example program -is shown in Figure 4. -One expected property of a fitting set of combinators is that they -satisfy algebraic laws; a table of laws satisfied by our combinators -is given in Figure 6.
    -
    - - -

    2.1  Documents and transformations

    - -
    Data modelling
    -
    -    data Element = Elem Name [Attribute] [Content]
    -    data Content = CElem Element
    -                 | CText String
    -
    Because functional languages are good at processing tree-structured data, -there is a natural fit between the XML document domain and Haskell tree -datatypes. In simplified form, the main datatypes which model an XML -document are Element and Content, whose definitions are -mutually recursive, together forming a multi-branch tree structure.
    -
    - -
    The filter type
    -
    -    type CFilter = Content -> [Content]
    -
    Our basic type for all document processing functions is the content -filter, which takes a fragment of the content of an XML document -(whether that be some text, or a complete tagged element), and -returns some sequence of content. The result list might be empty, it -might contain a single item, or it could contain a large collection of -items.
    -
    -Some filters are used to select parts of the input document, and others -are used to construct parts of the output document. They all share the -same basic type, because when building a new document, the intention is -to re-use or extract information from parts of the old document. Where -the result of a filter is either empty or a singleton, the filter can -sometimes be thought of as a predicate, deciding whether or not to -keep its input.
    -
    - -
    Program wrapper
    -
    -    processXmlWith :: CFilter -> IO ()
    -
    We assume a top-level wrapper function, which gets command-line -arguments, parses an XML file into the Content type, applies a -filter, and pretty-prints the output document. The given filter is -applied to the top-level enclosing element of the document.
    -
    - -
    Basic filters
    -A complete list of predefined filters is shown in Figure 2. -The simplest possible filters: none takes -any content and returns nothing; keep takes any content and -returns just that item. Algebraically, these are the zero and unit filters.
    -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Predicates
     none,  zero/failure
     keep,  identity/success
     elm,  tagged element?
     txt  plain text?
      :: CFilter
     tag,  named element?
     attr  element has attribute?
      :: String -> CFilter
     attrval  element has attribute/value?
      :: (String,String) -> CFilter
     
    Selection
     children  children of element
      :: CFilter
     showAttr, value of attribute
     (?)  synonym for showAttr
      :: String -> CFilter
     
    Construction
     literal, build plain text
     (!)  synonym for literal
      :: String -> CFilter
     mkElem  build element
      :: String -> [CFilter] -> CFilter
     mkElemAttrs build element with attributes
      :: String -> [(String,CFilter)]
       -> [CFilter] -> CFilter
     replaceTag replace element's tag
      :: String -> CFilter
     replaceAttrs replace element's attributes
      :: [(String,CFilter)] -> CFilter
    - - -
    -
    Figure 2: Basic content filters. -
    -
    A useful filter which involves both selection and construction is showAttr a, which extracts the value of the attribute a from the -current element and returns just that string as a piece of content.
    -
    -When constructing a new document (e.g. the script in Figure -4 which generates HTML), the mkElem function -occurs repeatedly. We define and use a small library of functions such -as htable, hrow, and hcol which are just synonyms for -particular applications of mkElem and mkElemAttrs to -different tagnames, reducing verbosity and making the syntax rather more -readable.
    -
    -Also for convenience, we define the new operators ? and ! as -synonyms for showAttr and literal respectively: they are -used in a bracketed postfix notation,7 - -a style some programmers prefer.
    -
    - - -

    2.2  Combinators

    -The combinators used as intermediate code in compilers -can render programs `totally unfit for human consumption' [11]! -However, the idea of a combinator library for a specific class of applications -is to achieve a form of expression that is natural for the problem. -A combinator library should be like a language extension -tailored to the problem domain [4]. -In this -sense, functional languages are extensible, just as XML itself is -extensible. -The combinators are higher-order operators serving as `glue'[6] -to assemble functions into more powerful combinations. -We aim to keep the types of component functions as uniform as possible -so that any function can be composed with any other. -Within the lexical limits of the host language, choice of notation -should follow application conventions: -in Haskell we can, where appropriate, define new infix operator symbols -for combinators.
    -
    -So, having defined some basic filters already, in what ways can these usefully -be combined into more interesting and complex filters? -(See Figure 3.)
    -
    - -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     o,  Irish composition
     (|||),  append results
     with,  guard
     without,  negative guard
     (/>),  interior search
     (</),  exterior search
     (|>|)  directed choice
      :: CFilter -> CFilter -> CFilter
     
     f `o` g = concat . map f . g
     f ||| g = \c-> f c ++ g c
     f `with` g = filter (not.null.g) . f
     f `without` g = filter (null.g) . f
     f /> g = g `o` children `o` f
     f </ g = f `with` (g `o` children)
     f |>| g = f ?> f :> g
     
     cat  concatenate results
      :: [CFilter] -> CFilter
     
     cat fs = \c-> concat. map (\f->f c) fs
     
     et  disjoint union
      :: (String->CFilter) -> CFilter -> CFilter
     
     f `et` g = (f `oo` tagged elm)
      |>| (g `o` txt)
     
     (?>)  if-then-else choice
      :: CFilter -> ThenElse CFilter -> CFilter
     
     data ThenElse a = a :> a
     p ?> f :> g = \c-> if (not.null.p) c
      then f c else g c
     
     chip,  ``in-place'' application to children
     deep,  recursive search (topmost)
     deepest,  recursive search (deepest)
     multi,  recursive search (all)
     foldXml  recursive application
      :: CFilter -> CFilter
     
     deep f = f |>| (deep f `o` children)
     deepest f = (deepest f `o` children) |>| f
     multi f = f ||| (multi f `o` children)
     foldXml f = f `o` (chip (foldXml f))
    - - -
    -
    Figure 3: Filter combinators and their definitions. -
    -
    The most important and useful filter combinator is `o`. -We call this operator Irish composition, for reasons which should be -obvious. It plugs two filters together: the left filter is applied to -the results of the right filter. So, for instance, the expression -
    -    text `o` children `o` tag "title"
    -
    means ``only the plain-text children of the current element, provided the -current element has the title tag name''.
    -
    -Some other combinators are as follows. -f ||| g is an append operator: it joins the results of f and -g sequentially. -cat fs is the list generalisation of |||; it concatenates -the results of each of the filters from the fs list. -f `with` g acts as a guard on the results of f, pruning to -include only those which are productive under g. -The dual, f `without` g, excludes those results of f which -are productive under g. -The expression p ?> f :> g is a functional choice operator; if -the (predicate) filter p is productive, then the filter f -is applied, otherwise g is applied. -From this is derived a directed choice operator: f |>| g gives -either the results of f, or those of g only if f is -unproductive.
    -
    - -
    Generalised Path Selectors
    -Selection of subtrees by path patterns is familiar to users of -the Unix file-system, where such patterns are used to access directory -structure, using a / notation to indicate the `containing' -relation. Similar patterns are used in XSLT, an XML transformation -language [3]. In this connection, we define two path selection -combinators /> and </. Both combinators choose subtrees -to return based on whether the results of the left filter contain the -results of the right filter as children: /> is an `interior' -selector, returning the inner structure; </ is an `exterior' -selector, returning the outer structure.
    -
    - -
    An editing combinator
    -Aside from predicates, selectors, choice, and constructive filters, -there is one very useful combinator which stands in its own category -- -an editing combinator. chip f processes the children of an -element in-place: the filter f is applied to its -children; the results are rebuilt as the new children of that -same element.
    -
    - -
    Recursion
    -It is often useful to express recursive transformations on XML -documents: transformations which can be applied at many different -levels of the document tree.
    -
    -One family of such expressions is useful primarily in selecting a -subtree from an arbitrarily deep location, although they can of course -be used for editing and filtering as well as selection. The recursive -combinator deep f potentially pushes the action of filter -f deep inside the document sub-tree. It first tries the given -filter on the current item: if it is productive then it stops here, but -if no results are returned, then it moves to the children and tries -again recursively. When used with a predicate, this strategy searches -for the topmost matching elements in the tree. There are variations: -deepest searches for the bottommost matching elements; multi returns all matches, even those which are sub-trees of other -matches. However, as already noted, the action of these combinators is -not restricted to predicates or selectors.
    -
    -Another powerful recursion combinator is foldXml: the expression -foldXml f applies the filter f to every level of the tree, -from the leaves upwards to the root (at least conceptually -- of course -lazy evaluation makes this more efficient).
    -
    - - -

    2.3  Example

    -The use of these filters and combinators is illustrated in an example -script in Figure 4. This program transforms an -<album> element into an HTML document that provides a formatted -summary. The HTML output, rendered by the Netscape browser, is -illustrated in Figure 5. Such a task might be fairly -common in e-commerce applications.
    -
    -We now describe some of the salient features of the example.
    -
    -
    -    (albumf `o` deep (tag "album"))
    -
    The script first searches recursively for the topmost element tagged -<album>, before applying the filter albumf to it. Thus, it works -equally well with any XML source document that contains an <album> -element anywhere within it, and (correctly) produces no output for -documents which do not contain album data.
    -
    -The output document's <HEAD> section contains the artist name and -album title separated by a colon. We note that the expression, -
    -    txt `o` children `o` tag "artist"
    -        `o` children `o` tag "album"
    -
    which grabs the textual content of the <artist> element within the -<album> element, is somewhat unwieldy. Moreover its trailing test -for the <album> tag is redundant, since the calling filter has -already performed that match. The expression can be simplified by -using path selectors to: -
    -    keep /> tag "artist" /> txt
    -
    and this style is used elsewhere in the example. (The -algebraic laws in Section 2.5 guarantee that this rewriting -is safe.)
    -
    -Such expressions make some assumptions about the structure of the data -within the <album> element. In this instance, the assumption is -that an <artist> element is an immediate child, -and that its immediate children include text. If such -assumptions prove incorrect for a particular document, the filter -is simply unproductive; no error is flagged.
    -
    -With a suitable definition, hbody = mkElemAttr "BODY" -the expression -
    -    hbody  [("bgcolor",("white"!))]   [...]
    -
    can be understood to set the background colour attribute of -the <BODY> tag to the literal value white. Notice how the -attribute value is itself described by a filter. In this case, the -filter is not very exciting, but the later definition of -mkLink illustrates the generation of an HTML reference -by looking up the value of a supplied link attribute (using the -? filter).
    -
    -When the script is used on the particular document from Figure -1, the output is a re-ordering of the internal -components of the input: in the <BODY> part of the output, the -<notes> section is selected and transformed by notesf before -the <catalogno> elements are processed by the summaryf filter. -Although in the absence of a DTD it is impossible to be sure of any -input ordering, the script here ensures that the output ordering is -consistent.
    -
    -The definition of the notesf filter is interesting because it -makes fewer assumptions about the content of a <notes> structure, and -in addition it preserves the input ordering. -The chained if-then-else choice within the recursive foldXml -combinator causes all internal structure of the <notes> element to be -retained except for the replacement of <trackref>s by emphasised -text, and <albumref>s by HTML links.
    -
    -One of the most striking features of the example as a whole is how -selection and testing of old content and construction of new content are -uniform, and can be combined almost interchangeably.
    -
    -We will return to the treatment of <catalogno> elements in Section -2.4 after introducing some extra labelling combinators.
    -
    -

    -
    -module Main where
    -import Xml
    -main =
    -  processXmlWith (albumf `o` deep (tag "album"))
    -albumf =
    -  html
    -    [ hhead
    -      [ htitle
    -        [ txt `o` children `o` tag "artist"
    -              `o` children `o` tag "album"
    -        , literal ": "
    -        , keep /> tag "title" /> txt
    -        ]
    -      ]
    -    , hbody [("bgcolor",("white"!))]
    -      [ hcenter
    -          [ h1 [ keep /> tag "title" /> txt ] ]
    -      , h2 [ ("Notes"!) ]
    -      , hpara [ notesf `o` (keep /> tag "notes") ]
    -      , summaryf
    -      ]
    -    ]
    -notesf =
    -  foldXml (txt            ?> keep            :>
    -           tag "trackref" ?> replaceTag "EM" :>
    -           tag "albumref" ?> mkLink          :>
    -           children)
    -summaryf =
    -  htable [("BORDER",("1"!))]
    -    [ hrow [ hcol [ ("Album title"!) ]
    -           , hcol [ keep /> tag "title" /> txt ]
    -           ]
    -    , hrow [ hcol [ ("Artist"!) ]
    -           , hcol [ keep /> tag "artist" /> txt ]
    -           ]
    -    , hrow [ hcol [ ("Recording date"!) ]
    -           , hcol [ keep />
    -                       tag "recordingdate" /> txt ]
    -           ]
    -    , hrow [ hcola [ ("VALIGN",("top"!)) ]
    -                   [ ("Catalog numbers"!) ]
    -           , hcol
    -             [ hlist
    -               [ catno `oo`
    -                  numbered (deep (tag "catalogno"))
    -               ]
    -             ]
    -           ]
    -    ]
    -catno n =
    -  mkElem "LI"
    -    [ ((show n++". ")!),  ("label"?),  ("number"?)
    -    , (" ("!),  ("format"?),  (")"!) ]
    -mkLink =
    -  mkElemAttr "A" [ ("HREF",("link"?)) ]
    -    [ children ]
    -
    - -
    Figure 4: An example document-processing script using the generic filter - combinators. -
    -

    - -picture of browser - - -
    -
    -
    Figure 5: The HTML results of the example script, rendered by a browser. -
    -
    - -

    2.4  Labellings

    - -One feature that is occasionally useful is the ability to attach labels -to items in a sequence, for instance, to number a list of items, or to -treat the first/last item of a list differently from the other items. -For this purpose, the library provides special labelling combinators. -We choose to introduce a new type: -
    -  type LabelFilter a = Content -> [ (a,Content) ]
    -
    A LabelFilter is like a CFilter except it attaches a label -to each of its results. We might have chosen to fold label -values inside the Content type, to yield a uniform CFilter -type, but keeping the labels separate allows them to be of -completely polymorphic type: a label could even be another filter -for example.
    -
    -There are several common labelling functions: -
    -  numbered     :: CFilter -> LabelFilter Int
    -  interspersed :: a -> CFilter -> a
    -                                 -> LabelFilter a
    -  tagged       :: CFilter -> LabelFilter String
    -  attributed   :: CFilter ->
    -                    LabelFilter [(String,String)]
    -
    These labelling functions lift a CFilter to the LabelFilter type: -numbered f transforms the ordinary filter f -into a new filter that attaches integers (from 1 upwards) -to the results of f; -interspersed a f z attaches the label a to all of the -results of f except the last, which gets the label z; -tagged f labels every tagged element with its tag name (and -non-elements with the empty string); attributed f -labels every tagged element with its attribute/value pairs (and -non-elements with the empty list).
    -
    -
    -  `oo` :: (a->CFilter) -> LabelFilter a -> CFilter
    -
    The combinator `oo` is a new form of composition which drops a -LabelFilter back to the CFilter type by application of -another filter that consumes the label.
    -
    -The use of this form of labelling is illustrated by the treatment of -<catalogno>s in the example of Figure 4: -
    -  catno `oo` numbered (deep (tag "catalogno"))
    -
    First, the desired elements are extracted from their topmost positions -in the tree, then they are given numeric labels, and finally the -catno filter incorporates the label into some generated text. -Another example can be seen in the definition of the `et` -combinator in Figure 3. -(`et` combines a filter f on elements with a filter g -on text. f pattern-matches against tagnames -- -the tagnames are extracted by the labelling function tagged.)
    -
    -Furthermore, it is possible to combine labellings. The `x` -combinator glues two labelling functions together, pairing the -labels they produce. -
    -  `x` :: (CFilter->LabelFilter a)
    -           -> (CFilter->LabelFilter b)
    -           -> (CFilter->LabelFilter (a,b))
    -
    - -

    2.5  Algebraic laws of combinators

    - -We briefly show how combinators are defined in such a way that -various algebraic laws hold. The complete set of laws is given in -Figure 6.
    -
    -

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
     Irish composition
    f `o` (g `o` h) = (f `o` g) `o` h  associativity
    none `o` f = f `o` none = none  zero
    keep `o` f = f `o` keep = f  identity
     
     Guards
    f `with` keep = f  identity
    f `with` none = none `with` f = none  zero
    (f `with` g) `with` g = f `with` g  idempotence
    (f `with` g) `with` h
    = (f `with` h) `with` g  promotion
    (f `o` g) `with` h
    = (f `with` h) `o` g  promotion
     
    f `without` keep = none `without` f
    = none  zero
    f `without` none = keep  identity
    (f `without` g) `without` g
    = f `without` g  idempotence
    (f `without` g) `without` h
    = (f `without` h) `without` g  promotion
    (f `o` g) `without` h
    = (f `without` h) `o` g  promotion
     
     Path selectors
    f /> (g /> h) = (f /> g) /> h  associativity
    none /> f = f /> none = none  zero
    keep /> f = f `o` children   
    f /> keep = children `o` f   
    keep /> keep = children   
    none </ f = f </ none = none  zero
    f </ keep = f `with` children   
    (f </ g) </ g = f </ g  idempotence
    (f </ g) /> g = f /> g  idempotence
     
    (f /> g) </ h = f /> (g </ h)  promotion
    (f </ g) </ h = (f </ h) </ g  promotion
    f `o` (g /> h) = g /> (f `o` h)  promotion
    (f /> g) `o` h = (f `o` h) /> g  promotion
    (f /> g) `with` h = f /> (g `with` h) promotion
    (f </ g) `with` h = (f `with` h) </ g promotion
     
     Directed choice
    (f |>| g) |>| h = f |>| (g |>| h)  associativity
    keep |>| f = keep   
    none |>| f = f |>| none = f  identity
    f |>| f = f  idempotence
     
     Recursion
    deep keep = keep  simplification
    deep none = none  simplification
    deep children = children  simplification
    deep (deep f) = deep f  depth law
     
     Misc
    elm |>| txt = txt |>| elm = keep  completeness
    elm `o` txt = txt `o` elm = none  excl. middle
    children `o` elm = children   
    children `o` txt = none   -
    - - -
    -
    Figure 6: Algebraic laws of combinators. -
    -
    Giving all content filters the same type maximises the usefulness of -combinators for plugging together functions of this type. However, it -is still helpful to identify subclasses of content filters that offer -extra guarantees. Two examples of such classes are: -
      -
    1. -A predicate p has the property that p c -always gives as result either [c] or []. - -
    2. -A selector s has the property that s c -always gives as result a sequence of contents taken from -c. -Resulting items do not overlap, and -the result sequence respects the order in which the contents -were found in c. -
    -So a predicate is a selector, but a selector is not necessarily -a predicate.
    -
    -The `o` form of filter composition -could be defined using a Haskell list comprehension -
    -    (f `o` g) c = [c'' | c' <- g c, c'' <- f c']
    -
    However, we prefer the equivalent higher-order definition - f `o` g = concat . map f . g -because it is more convenient in algebraic -calculation.8 - -Composition is associative, with none as zero, and keep as -identity.
    -
    -The `with` form of guarded composition is not associative, -but we do have some laws, particularly idempotence. We also have a -promotion law about combined uses of `with` and `o`. -The dual operator, `without` has parallel laws.
    -
    -The /> path selector is associative but </ is not, and there -are some idempotence laws for both. Most important however, are the -various promotion laws for changing the order of application of />, -</, and with.
    -
    -The directed choice operator |>| viewed by itself appears to be -algebraically sensible, but it does not seem to have useful algebraic -properties in connection with other combinators because of its bias -towards the left operand. The simpler result-appending combinator ||| could be an alternative to the directed choice operator, and would -probably lead to more laws, but it has less `application bite'. A -potentially serious problem is that the |||-combination of two -selectors is not necessarily a selector.
    -
    -The recursion operator deep has some minor laws, one of which, -the depth law, is more profound. We have not yet fully investigated -the properties of deepest, multi, and foldXml.
    -
    - -
    -
    - - -

    3  Translation of DTDs to Types

    - - -

    3.1  DTDs

    -So far we have considered document-processing by generic tree -transformations, where markup is matched textually at runtime, and -no account is taken of any deeper meaning of tags.
    -
    -However, when the DTD for a document is available, the meaning it -defines for markup tags can be used to powerful effect. The most basic -use is to confirm semantic validity: a stronger notion than mere -syntactic well-formedness. A DTD defines a grammar for document -content: it specifies a vocabulary of markup tags, and the allowed -content and attributes for each tag. Document validation is therefore a -straightforward check that the document's structure conforms to the -vocabulary and grammar given in the DTD.
    -
    -XML document validators are readily available. However, we go further -and define the idea of valid document processing. A valid -processing script is one which produces a valid document as output, -given a valid document as input. We achieve this by demonstrating a -correspondence -between the DTD of a document and the -definition of a set of algebraic types in Haskell, and the consequent -correspondence between the document's content and a structured Haskell -value. Hence, by writing document processing scripts to manipulate the -typed Haskell value, the script validation problem is just an instance -of normal Haskell type inference.9 -
    -
    -

    -
    -<?xml version='1.0'?>
    -<!DOCTYPE album SYSTEM "album.dtd" [
    -<!ELEMENT album (title, artist, recordingdate?,
    -                 coverart, (catalogno)+,
    -                 personnel, tracks, notes) >
    -<!ELEMENT title #PCDATA>
    -<!ELEMENT artist #PCDATA>
    -<!ELEMENT recordingdate EMPTY>
    -    <!ATTLIST recordingdate date CDATA #IMPLIED
    -                            place CDATA #IMPLIED>
    -<!ELEMENT coverart (location)? >
    -    <!ATTLIST coverart style CDATA #REQUIRED>
    -<!ELEMENT location EMPTY >
    -    <!ATTLIST location thumbnail CDATA #IMPLIED
    -                       fullsize CDATA #IMPLIED>
    -<!ELEMENT catalogno EMPTY >
    -    <!ATTLIST
    -          catalogno
    -              label CDATA #REQUIRED
    -              number CDATA #REQUIRED
    -              format (CD | LP | MiniDisc) #IMPLIED
    -              releasedate CDATA #IMPLIED
    -              country CDATA #IMPLIED>
    -<!ELEMENT personnel (player)+ >
    -<!ELEMENT player EMPTY >
    -    <!ATTLIST player name CDATA #REQUIRED
    -                      instrument CDATA #REQUIRED>
    -<!ELEMENT tracks (track)* >
    -<!ELEMENT track EMPTY>
    -    <!ATTLIST track title CDATA #REQUIRED
    -                    credit CDATA #IMPLIED
    -                    timing CDATA #IMPLIED>
    -<!ELEMENT notes (#PCDATA | albumref | trackref)* >
    -    <!ATTLIST notes author CDATA #IMPLIED>
    -<!ELEMENT albumref #PCDATA>
    -    <!ATTLIST albumref link CDATA #REQUIRED>
    -<!ELEMENT trackref #PCDATA>
    -    <!ATTLIST trackref link CDATA #IMPLIED>
    -]>
    -
    - -
    Figure 7: An example DTD. -
    -

    -
    -module AlbumDTD where
    -
    -data Album = 
    -    Album Title Artist (Maybe Recordingdate)
    -          Coverart [Catalogno] Personnel
    -          Tracks Notes
    -newtype Title = Title String
    -newtype Artist = Artist String
    -newtype Recordingdate =
    -                Recordingdate Recordingdate_Attrs
    -data Recordingdate_Attrs = Recordingdate_Attrs {
    -    date :: Maybe String,
    -    place :: Maybe String }
    -newtype Coverart = Coverart (String, Maybe Location)
    -newtype Location = Location Location_Attrs
    -data Location_Attrs = Location_Attrs {
    -    thumbnail :: Maybe String,
    -    fullsize  :: Maybe String }
    -newtype Catalogno = Catalogno Catalogno_Attrs
    -data Catalogno_Attrs = Catalogno_Attrs {
    -    label :: String,
    -    number :: String,
    -    format :: Maybe Format,
    -    releasedate :: Maybe String,
    -    country :: Maybe String }
    -data Format = CD | LP | MiniDisc
    -newtype Personnel = Personnel [Player]
    -newtype Player = Player Player_Attrs
    -data Player_Attrs = Player_Attrs {
    -    name :: String,
    -    instrument :: String }
    -newtype Tracks = Tracks [Track]
    -newtype Track = Track Track_Attrs
    -data Track_Attrs = Track_Attrs {
    -    title :: String,
    -    credit :: Maybe String,
    -    timing :: Maybe String }
    -newtype Notes = Notes (Maybe String, [Notes_])
    -data Notes_ = 
    -    Notes_Str String
    -  | Notes_Albumref Albumref
    -  | Notes_Trackref Trackref
    -newtype Albumref = Albumref (String,String)
    -newtype Trackref = Trackref (Maybe String,String)
    -
    - -
    Figure 8: The example DTD translated to Haskell types. -
    -
    - -

    3.2  DTD translations.

    An example DTD for the document shown earlier is given in -Figure 7. The immediate features to note are: -(1) For every element, there is a specification of allowed inner elements - (ELEMENT declaration), and possibly also a specification of allowed - attribute values (ATTLIST declaration). -(2) For inner content, the grammar allows sequence (commas), choice - (vertical bar), optionality (question mark), and repetition (star or plus). -(3) Where the inner content declaration allows free text (#PCDATA), - choice between text and other elements is permitted, but sequencing of - those elements is not permitted. -(4) In attribute lists, some values are mandatory (#REQUIRED) and - some are optional (#IMPLIED); attribute values can either be - unconstrained strings (CDATA) or a member of some pre-defined - set of string values.
    -
    -There seem to be some obvious correspondences between this very -restricted form of type language and the richer type language of -Haskell. Each element declaration is roughly speaking a new datatype -declaration. Sequence is like product types (i.e. single-constructor -values). Choice is like sum types (i.e. multi-constructor values). -Optionality is just a Maybe type. Repetition is lists.
    -
    -Attribute lists also have a translation: because they are unordered and -accessed by name, Haskell named-fields look like a good -representation. Optionality can again be expressed as Maybe -types. Attribute values that are constrained to a particular value-set -can be modelled by defining a new enumeration type encompassing the -permitted strings.
    -
    - - -

    3.3  Implementation

    -These rules are formalised in the appendix (Figure 9). -An implementation of these rules (with some additional rules to -eliminate redundancy) translated the DTD in Figure 7 -into the Haskell type declarations shown in Figure 8.
    -
    -Also needed, along with the type declarations, are functions which read -and write values of these types to and from actual XML documents. -These are generated automatically from the type declarations alone. -Using an appropriate set of pre-defined type classes, we derive a new -instance for each generated type using a tool like DrIFT [16].
    -
    - - -

    3.4  Discussion

    -Although this type-based translation looks straightforward, it turns -out that there are several tricky issues.
    -
    -First, the type translation may only use datatypes and newtypes, never -type synonyms. This is a result of needing to write values out as XML --- a type synonym in Haskell is indistinguishable from the type it -abbreviates, but the generated types must be distinct in order to be -able to re-introduce enclosing start and end tags with the correct -markup.
    -
    -A separate type is introduced for each collection of attributes. -Hence, an element is represented by a pairing of the attributes -and the content. Where a tagged element directly contains an optional -type or a sequence of types which are themselves sum-types, it is -necessary to interpose a separate Haskell type, e.g. Notes -contains a [Notes_] where the auxiliary type Notes_ has -three alternatives.
    -
    -Naming is a big issue. Case matters in XML, so a <tag> differs -from a <TAG> and attribute attr differs from Attr. -In Haskell however, types must begin with upper-case, and field-names -must begin with lower-case. Where auxiliary types are necessary, -we have chosen to append an underscore character to the name. All -of these factors impose restrictions on the use of this -translation, due to the potential name conflicts.
    -
    -Furthermore, there is a mismatch between Haskell's named fields and the -attribute naming/scoping rules in XML. In XML, different elements may -have attributes of the same name and type, whereas Haskell's named -fields are restricted to use within a single type. A system of typed -extensible records [5] would be a much better fit.
    -
    -Despite these problems in expressing DTDs within the Haskell -typesystem, the latter is very much more powerful than DTDs -- for -instance, DTDs have no notion of polymorphism. Indeed, there are -frequent occasions when DTD writers resort to textual -macros10 - to indicate more -detailed structuring than DTDs permit (including polymorphism and -qualified typing), even though such implicit structuring cannot be -validated by XML tools. It is significant to note the XML community's -recognition of these limitations of DTDs -- recent proposals for schemas11 - -address the question of richer -typing in a more disciplined manner.
    -
    -One area in which the type system of Haskell in particular (as opposed -to other functional languages) is exploited is type classes. This -systematic overloading mechanism is very useful for codifying the I/O -conversions.
    -
    - - - -

    4  Pros and cons of the two schemes

    - - -

    4.1  Combinators

    - -Compared with the mainstream solution for XML processing, -namely new domain-specific languages for expressing and scripting -transformations, the combinator approach has several advantages:
    -
    - -
    Ease of extension and variation
    - Scripting languages sometimes lack useful facilities, or provide - them in convoluted ways. Extending the language is difficult. A - combinator library, however, can be enlarged comparatively - straightforwardly -- the definitions are accessible, and most are - short and simple.
    -
    - -
    Computational power
    - Scripting languages tend to offer either a - very limited expression language, or a hook into a programming - system at a completely different level of abstraction. But if XML - scripts are programs in a language such as Haskell, the full power - of the native language is immediately available.
    -
    - -
    Abstraction, generality and reuse
    - Almost any pattern occurring in a combinator program can be isolated - and defined as a separate re-usable idea [6]. This also - applies at the application level, where common ideas from similar - applications might easily be defined in a higher-level library. - This form of re-use makes program development much quicker and less - error-prone.
    -
    - -
    Laws for reasoning about scripts
    - The semantics of a scripting language are often defined by - illustration. So it is hard to reason with confidence about the - meanings of scripts. Is A just a stylistic variation of B or - are there inputs for which the two could give different results? - But when the semantics of scripts can be defined in terms of the - equations for the combinators, properties such as associativity and - distribution can often be demonstrated simply.
    -
    - -
    Implementation for free
    - Does a scripting language have an interactive interpreter? A - compiler? A type-checker? A profiler? All these things are - immediately available to XML scripts directly expressed as Haskell - programs.
    -
    - -Of course, there are disadvantages too.
    -
    - -
    Distance from target language
    - XSLT [3] has the property that a script is an expression in - the target language: it uses exactly the XML syntax for - building new content. Combinator-based scripts must - use a different syntax due to the underlying language. - The linguistic gap might cause confusion and increase learning costs.
    -
    - -
    Living in an unfamiliar world
    - Combinator programs look like scripts in a small - domain-specific language. Writers may be beguiled by this apparent - simplicity, make a small error, and drop into an unknown corner of - Haskell. Error messages may be incomprehensible, or worse, - the script might work but do something utterly strange.
    -
    - - -

    4.2  Type-based translation

    -Some of the advantages of the fully-typed representation of XML -documents have already been mentioned.
    -
    - -
    Validity
    - The ability for the system to spot errors automatically, not just - in the data, but in the program, and also to prevent the generation - of incorrect document markup.
    -
    - -
    Direct programming style
    - Functional languages encourage the use of pattern-matching (binding - values to variables) on the left-hand-side of equations. However, - using higher-order combinators, data structures tend not to be - mentioned in equations at all. The DTD translation approach is - much more in keeping with the pattern-binding style, which - sometimes leads to shorter programs! Whereas with combinators, it - is sometimes necessary to re-traverse the same selection path with - slight variations, the pattern-binding gives direct access for - free.
    -
    -
    - -Disadvantages are:
    -
    - -
    High startup cost
    - Before scripting document transformations, it is necessary to - acquire, check, and process the DTD. Although the generation of - Haskell types is automated, few people are familiar enough with - DTDs to be able to start using them immediately. They require - careful study and understanding before correct scripts can be written - and the initial investment of effort pays off.
    -
    - -
    Incomplete type model
    - The grammar of DTDs is small and restrictive compared to the - sophisticated type systems available in functional languages. - Better means of type-specification in XML are still under - development. In the meantime, there is little scope for using - the full power of features like polymorphism.
    -
    - - - -

    5  Related Work

    - -
    XML Processing
    -There are infant processing languages surrounding XML. Of most -interest here are:
    -
    -Not many functional language researchers are visibly engaged in -XML-related work, but -two other toolkits for XML-processing are Christian Lindig's XML -parser in -O'Caml12 - -and Andreas Neumann's validating XML parser in -SML13 -. -To our knowledge, neither of these provides transformation capabilities -in either a combinator style or a type-translation style. Philip -Wadler has written a short formal semantics of XSL selection patterns -[15].
    -
    - -
    Application-based combinators
    -Parsing is the most extensively studied application for combinator -libraries. Since the original treatment by Burge [2], there -have been many variations on the theme. Swierstra and Duponcheel's -method incorporating on-the-fly grammar analysis and error-correction -is a notable recent example [10]. We hope it -may be possible to incorporate DTD-analysis in our combinators in a -similar style.
    -
    -Although many other libraries of application combinators have been -devised, the general design principles for such libraries are scarcely -referred to in the literature. Hughes' exposition of a design for -pretty-printing combinators [7] is a unique resource in -this respect, and we have yet to exploit it fully.
    -
    - -
    Tree-processing operators
    An earlier version of this paper prompted more than one -pointer to the work of Eelco Visser and colleagues [13]. -Their motivating application is specification of strategies for program -optimisation, treated as rewriting over expression trees. -The result of applying a strategy is either a single term or failure: -non-determinism is achieved by backtracking but only the first success -is computed, whereas we deal in `lists of successes' [14]. -Their operators for combining strategies include composition, -directed choice, and an explicit µ operator for recursion. -They have several operators for specifying transformation of -child subterms: some are not so relevant to XML where -subtree position and arity are less often fixed than in program -syntax; however, one of the most frequently -applied operators is close to our foldXml. -Most significantly, Visser et. al. achieve great expressive -power by decomposing the match/re-build stages of rewriting, -and introducing explicit environments by which these stages -communicate. This makes it possible to -deal with subtleties such as variable bindings -in the program terms under transformation. -Although the structure of XML is simpler than the structure of -a programming language, our library could benefit from the addition -of support for binding variables when matching subtrees.
    -
    -Programming functions explicitly over the XML data-structure, -without the abstraction of combinators, Haskell pattern matching -provides bindings for subtrees. But only at a fixed (small) depth -from the root, beneath an explicitly stated pattern of constructors. -Mohnen [9] defines an extension of the pattern language -for deep matching: variables in a pattern can be bound to subterms -at arbitrary depth inside the original term. -The result of the match includes a context function representing -the original subject term with `holes' at the sites of matching; -subterms for these holes are supplied by arguments to the function. -So contexts are the complements of environments. -Mohnen shows how his matching extension simplifies various -tree-processing tasks, and also how it can be translated into -standard Haskell. -This work could provide one component of a hybrid solution, -with DTD-specific representation and generic forms of -traversal and matching.
    -
    -Visser et. al. [13] also discuss several other approaches -to the tree transformation problem.
    -
    - - - -

    6  Conclusions and Future Work

    -In our experience, Haskell is a very suitable language for -XML processing. -For generic applications, a small set of combinators -designed with algebraic properties in mind can be powerful enough and -flexible enough to describe a full range of selection, testing, and -construction operations in a uniform framework. -For applications where the DTD is fixed, a tool deriving corresponding -types and associated I/O routines turns XML processing into Haskell -programming over typed data structures, and the Haskell typechecker -validates scripts.
    -
    -However, there is plenty of scope for further work, in several directions:
    -
    - -
    Generality of combinators
    Though we have had generality as a design aim for our present combinator -library there is scope for generalising it further.
    -
    - -
    Efficiency of combinators
    The current combinator library is quite usable, but here -are some possible routes to greater efficiency. - - -
    Relations between DTDs
    As we have seen, in the DTD-directed approach with known fixed DTDs for -input and output, validation translates to static type-checking; -whereas generic combinators could in principle acquire -and compute DTDs dynamically. -These represent extremes with disadvantages of inflexibility -on the one hand and some insecurity on the other. -There are many other ways of handling -relations between DTDs. -For example:
    -
    - - - -

    Acknowledgements

    -Canon Research Centre (Europe) Ltd. suggested this line of work and -funded it. Philip Wadler, Christian Lindig, and Joe English gave very -helpful comments on an earlier draft of this paper and software. -Several anonymous referees also gave useful advice.
    -
    - - -

    References

    -
    [1]
    -Tim Bray, Jean Paoli, and C.M. Sperberg-Macqueen. - Extensible Markup Language (XML) 1.0 (W3C - Recommendation). - http://www.w3.org/TR/REC-xml, WWW Consortium, - February 1998.
    -
    - -
    [2]
    -W H Burge. - Recursive Programming Techniques. - Addison-Wesley, 1975.
    -
    - -
    [3]
    -James Clark (ed). - XSL Transformations (Working Draft). - http://www.w3.org/TR/WD-xslt, WWW Consortium, - April 1999.
    -
    - -
    [4]
    -Jon Fairbairn. - Making form follow function: An exercise in functional programming - style. - Software -- Practice and Experience, 17(6):379--386, June 1987.
    -
    - -
    [5]
    -Benedict R Gaster. - Records, Variants, and Qualified Types. - Dept of Computer Science, University of Nottingham, - PhD Thesis, 1998.
    -
    - -
    [6]
    -John Hughes. - Why functional programming matters. - Computer Journal, 32(2), April 1989.
    -
    - -
    [7]
    -John Hughes. - The design of a pretty-printing library. - In 1st Intl. School on Advanced Functional - Programming, pages 53--96. Springer LNCS Vol. 925, 1995.
    -
    - -
    [8]
    -Graham Hutton and Erik Meijer. - Monadic parsing in Haskell. - Journal of Functional Programming, 8(4), July 1998.
    -
    - -
    [9]
    -Markus Mohnen. - Context patterns in Haskell. - In Workshop on Implementation of Functional Languages, - pages 41--57. Springer LNCS Vol 1268, September 1996.
    -
    - -
    [10]
    -Doaitse Swierstra and Luc Duponcheel. - Deterministic error-correcting combinator parsers. - In 2nd Intl. School on Advanced Functional - Programming, pages 184--207. Springer LNCS Vol 1129, August 1996.
    -
    - -
    [11]
    -David A Turner. - A new implementation technique for applicative languages. - Software -- Practice and Experience, 9(1):31--50, January 1979.
    -
    - -
    [12]
    -Unknown. - Document Style Semantics and Specification Language - (DSSSL) (Final Draft). - http://occam.sjf.novell.com/dsssl/dsssl96/, - Novell Publications, 1996.
    -
    - -
    [13]
    -Eelco Visser, Zine el Abidine Benaissa, and Andrew Tolmach. - Building program optimisers with rewrite strategies. - In International Conference on Functional Programming, - pages 13--26. ACM Press, September 1998.
    -
    - -
    [14]
    -Philip Wadler. - How to replace failure by a list of successes. - In Functional Programming Languages and Computer - Architecture, pages 113--128. Springer LNCS Vol 201, September 1985.
    -
    - -
    [15]
    -Philip Wadler. - A formal model of pattern matching in XSL. - Technical Report http://www.cs.bell-labs.com/~wadler/xsl/, - Bell Labs, January 1999.
    -
    - -
    [16]
    -Noel Winstanley. - Reflections on instance derivation. - In 1997 Glasgow Functional Programming Workshop. BCS - Workshops in Computer Science, September 1997.
    - - -

    - -

    Appendix: DTD translation rules

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Type declarations
    T[[<ELEMENT n spec>]]=newtype m =
       m (m_Attrs, m_)
      newtype m_ = D[[spec]] m
      where m = M[[n]]
    T[[<ATTLIST n
    decl0 ... declk>]]=data m_Attrs =
       m_Attrs {F[[decl0]]
       , ...
       ,F[[ declk]] }
      where m = M[[n]]
      A[[decl0]]
      ...
      A[[ declk]]
     
    RHS of type declarations
    D[[ ( x0, x1, ..., xk ) ]] m=C[[ m x0 ... xk ]]
       D'[[ x0 ]] - D'[[ x1 ]] - ... D'[[ xk ]]
    D[[ ( x0 | x1 | ... | xk ) ]] m= C[[ m x0 ]] D'[[ x0 ]]
      | C[[ m x1 ]] D'[[ x1 ]]
      | ...
      | C[[ m xk ]] D'[[ xk ]]
    D[[ (x)? ]] m=Maybe D'[[ x ]]
    D[[ (x)+ ]] m=List1 D'[[ x ]]
    D[[ (x)* ]] m=[ D'[[ x ]] ]
    D[[ x ]] m=C[[ m x ]]
     
    Inner type expressions
    D'[[ ( x0, x1, ..., xk ) ]]=( D'[[ x0 ]] - , D'[[ x1 ]]
       - , ... D'[[ xk ]] - )
    D'[[ ( x0 | x1 | ... | xk ) ]]=(OneOfn - D'[[ x0 ]] - D'[[ x1 ]]
       - ... - D'[[ xk ]] )
    D'[[ (x)? ]]=(Maybe D'[[ x ]] )
    D'[[ (x)+ ]]=(List1 D'[[ x ]] )
    D'[[ (x)* ]]=[ D'[[ x ]] ]
    D'[[ x ]]=C[[ x ]]
     
    Name mangling
    C[[ m x0 x1 ... xk ]]=... unique constructor name
       based on m
    M[[ n ]]=... ensure initial upper-case
    M'[[ n ]]=... ensure initial lower-case
     
    Named fields
    F[[ n CDATA #REQUIRED ]]
     =M'[[ n ]] :: String
    F[[ n CDATA #IMPLIED ]]
     =M'[[ n ]] :: Maybe String
    F[[ n (s0|s1|...|sk) #REQUIRED ]]
     =M'[[ n ]] :: M[[ n ]]
    F[[ n (s0|s1|...|sk) #IMPLIED ]]
     =M'[[ n ]] :: Maybe M[[ n ]]
     
    Constrained attributes
    A[[ n CDATA ... ]]=0
    A[[ n (s0|s1|...|sk) ... ]]
     =data M[[ n ]] =
       - M[[ s0 ]] | - M[[ s1 ]]
       | ... | - M[[ sk ]]
    - - -
    -
    Figure 9: DTD translation rules. -
    -
    -
    -
    -
    1 -
    The XML toolkit from this paper is available -on the WWW at http://www.cs.york.ac.uk/fp/HaXml/ - -
    2 -
    Xtract: a `grep'-like tool -for XML documents. -http://www.cs.york.ac.uk/fp/Xtract/ - -
    3 -
    In light of the ``XML Namespaces'' recommendation, -in effect a mechanism for permitting multiple DTDs, such -facilities could be particularly useful. See -http://www.w3.org/TR/REC-xml-names - -
    4 -
    The shortened name elm was chosen to avoid a -clash with the Standard Prelude function elem. - -
    5 -
    For those familiar with the detail of XML, entity -references within the document are treated as plain text. - -
    6 -
    Actually, a list of -attribute/filter pairs. Each filter is applied to the current element -and the resultant content is flattened to a string value which is -assigned to the named attribute. - -
    7 -
    Actually a left-section -of the infix operator. Because filters are higher-order, their use is -eta-reduced and the rightmost argument disappears from view. - -
    8 -
    Irish composition is in fact just the flipped-argument -version of the Kleisi composition operator in the list monad. - -
    9 -
    Well, nearly! -Validity also encompasses some other minor checks, for -instance that IDREF attributes must be globally unique. - -
    10 -
    That is, parameter entity references. - -
    11 -
    http://www.w3.org/TR/xmlschema-1 for structures, - -and http://www.w3.org/TR/xmlschema-2 for datatypes. - -
    12 -
    http://www.cs.tu-bs.de/softech/people/lindig/tony.html - -
    13 -
    http://www.informatik.uni-trier.de/ neumann/Fxp/ -
    - - - -
    - -
    This document was translated from LATEX by HEVEA. -
    - - rmfile ./docs/icfp99.html binary ./docs/icfp99.ps.gz oldhex *1f8b0808a4866f3700036963667039392e7073009439fd6fdbb892bff3afe0e16e817dc04b4c4a *b625177b4513453a14789bebab7b450ec5e2a0da72e2ab6379653b4d9ecefffbcd1729ca76bafb *d25a9ca186e470be3843fdf42f1fa61757f3fa6b75115d1af5d34f595395bbba79a3e74fcbcdf6 *9b1e5d8ed285ceeacd4bb3bc7fd8693b49c77f85e764a83f96f3e5ac5ce9fca5d2d37ab1fb5e36 *15ccf069b95b556ff472b6d84c2697300df47d28efabed1b6d2381ffb39957b0c6d57656ade7d0 *775defd7f3e5fafeba7e7ea30dfc1b4dc63a1d22f94d3ddb3f56ebdd87725335d3e53f709eab21 *bcc8d7f3ac7ec4575bf5d3cde7f71fa68896ebf9df96eb4af8d717b563049090251af0a16ccac7 *6a573530e77cb3fcf7b1317fd533995437d563fd54cd85765aef9b19ccab3f5577badeef367b14 *064c67c69751f4c6c6a3143752dd2fd71f9a7a36ad766ff4ae7abedc34b51ac0989be56ca7a391 *d17304e6d542bbceaf38460f6e5be83ce08bc175fb75b99e23d1e1560fa66df53c7b38dcaac15d *3bd5b7876b3df8f4b1dd35e57abb2a7715922cb7abad5e94ab6da5017bda8298b4b53a89f4e37e *855d0fd4955e8ea04f49df0a64b559edb713d3d2505efb1de879b96e71c6f68bd10191d517f6d0 *5e586d0f6ab9a870315495f96d56af67e5eeb05ce0821fab6dbddaef96f51a76fa843d9f8fbad6 *d5bdde82e1548a1609560829612012f35e9063a3490c6d4073c144eaa1233a08679f3e223f016d *38374f2aa3b5d5e57c8ea3d5a78f5f1ecb5db37cd6b37dd3801130d6cef71b8dbf06cd546ff75f *75f975abcda5813fab57bb965ec08207b5a89b72b5124a6438007fdb563223eaec1d6e1ce4b0a9 *5ad6dfaed957a85e35780766bc2f578baa9ab7db5db9db6fc968065d3713830da235bc9bd59b65 *b56d07ffca80bec3498a5fcbdd174b2abaa0e63758b4b8befe62446d80aed70041fb3ee776b66b *18982f2e76e572d52a2449d9666f35c062ac45bdde7d7ad9543a466ac47e65c12dd6bbe6d9f55d *833f6b5852dfaa2dbc5ddfebc1d7129473a7cba6295fc0d097300e3cf30ec0fd7235cf1ecaa6c5 *0761558372cad7b31a638306266f55857eb1dfb483455d6b90e702963944321f6c1f1e4fb8feaa *2ee7b015e0181dd56dec0b8a6bbe806d6d17a077989df945590126bb66a26d8bc681847742f605 *60141d3468c32843d51b94b79b7a836b92c1540b0844c89fe71348660f17df97f3dd430bc0bcdc *9548aa56d5fa7ef7a047645af795237ca830e486945a28874794cff5023665a3549f218e1d31b6 *32e005079ca18d904621ad8d92807efe7c8eda1eb1b17c84d8ee081512eed04606ac7c82d7f01e *74812b9052f0c70e788bfe03f32ce76c82cd776cd5a099317ebf111b95f63fb8219d401b584dbb *2d9fd0322df81ef8e29464cc9687eb461a826bf54cf0b4b341469931d9ea9d467d7aaf203928a3 *45e05ae4a8bdaa481cc15bd2346d4e481558c2ac9c3d54f3ea6939ab3a9a6e0a74ecce6d2f2ead *9f5026a7792e49f4bfb54ee8077a3e96706237d5160ef00a4579d30e6633d8c56b9af80d0339da *6b271ca0c7eda2d3607f5f38f866aac97560b44445d53306ec7402666902393a12c62a58cc7b63 *a87860f57dab6069eeb8c18eaff5a6dd6fab86231f60170f75fd4d7f5bd7dfd7ad4371c6c1f4bd *2685df6a3ebb14ca0e8fee5dad079ff5b9884e6c5a620f213c3928569bb04b212f97930906f8c1 *df3f1fdac1c7cfee78a1f082e7251a08fc305055c031f022f2d78e79852f42e6ab80f9ed43fd7d *83fac30301427db30b364d38912a1ed9759028d136c3630de2540fb3703c91ec0790c1807de83b *85913e1a8d255edec2862de0a316baa7a8418ed22800030ec46a4495cd9e28901ee07853e35192 *dacb64cc53f3597aa7fbbd7c22dfe1b6362d6e12a18ffd1349d111747d53834b8e8d5b1b3d7fbf *82658d035f187c6a05bb731477fa335aca67d562f3f1b30ece4a39a720fb9aef01fdfe50351545 *67d71384b104b4de1a9d60dc5bae211d7c82ac16deff7cb3dc6e56e5cb5faadf9d790c7540f3f3 *6d75f7095fd6cd81e6e6344a92a383645562317070b5ed3d19eaa78fe4d7f01f208b62c76c48f3 *a6788f3454a1c05a1450e0def7cebf0f67a70b27e1696101c5a9e18fa7133e41927fff2c33af2b *304e1010e59aa0fa477536afd14b4fe0fccea9b059c11908b81196e0dc54ae8f69f824757d8b25 *04ecfb2084952dcf486772b582a04cc68027aea20824bd77384947fa2b64ca7804e32b74637742 *7fa57e87cdda8ba1fef5a070eef6220610a0aabd88185a60b24bd03d9807010fadf42c5b21fadf *56c67d6bd590a1ef6d8f9755bbd1b0ce77841f118e195e231c315c236c19febd55189c086e5a0c *a7046e0194913b0065c267586b1aaef602fc447cf06d54c9911452c3e95482246d117aa0a31333 *5761505149e97252c96c37d56c59aea89a39aa5ba65cd918e3b2c469f8f6dd9447de548b72bfda *01270f5b3db6119eec4f5b9d4c222a4f6af171691fb6334ecf9e1c50aeefe59cffdbfb0f2e4158 *4eab6aad7cddd33c50475708adaa1d786a8bb1675def2a02ca2135abeabe5c0144e93639ca7ebd *dc61c8c481ef1ea8ab0dde48589b61720d044fc7044aa2a123a00848bbbd13a62d0bffdd13bf79 *3a7d335b2d37909b525f247d0f70dc43d6d0a28c6469d7f3e47a4038c00bc9883b4034900e4af0 *078462268bcb971948f6b06c3dd503533df4a9403aabd5733b8087ccbd5abd20fa22e8be81b7f0 *f0e80ba2f216c20c577a341d9e9798bf0fdefd5aa259fd5778c23fcee578ec75e1718cd98a1a60 *17e52dd5ef1d091b19d0b91cc4702d07ffcb67e983d88e333dcec3642562429a84aa06acb597cc *1e508af19eb31f311c48fc07f5bcdd3d6fea2dc658c83876cf380b5ab94b32bab038d5904fae07 *1b0c541255156a9bc2eb63d97c6b3d6d7b124d21d49f7dcb31f3a00eed180309f97cf7f64ff6b5 *6a19be97d77fb60fb22ae110f2b7158802377438e0532a617786cce0b8d8ed6adcab641f25e749 *83fb997e9e733a03da882790bfd1e58ad18b7f805c175b58ac18fcdfffd05f56ef9b65d5609d09 *e9c953d5ec16abf2befd50c2a17cbd2a679819e155092ba6dd3c6ff5e6652b47e166d3e8925237 *4edb9a765d2f400b5b3abda774164df1144514af3b148d43c378463afd424fa8db8f07d814427e *0de94745e382f562b4618510e79b74fb018932b6d81b512f42e6e43d5f62044b2b30c373cb13bf *1d0b7e5d7d7e5da37866de0ecfef67ee8de8f345a30e5e689f3e2a497f75949cd9ff39b909b3f8 *9b7443d4a9c85e61fd0f44a64e44e6377676e55796535e52fa7549051306dbef31a84e756a4863 *284749b868df5f5f26e3b66f9e4394233919442ac55755bea6c5e0c55d11c72f60e67232a6ac96 *05c9b6e12c84bc026b67d53a9e5de9a1378f3e13b8c500c8bc71d06b1ee12ca593ae77354787dd *99db3a7fb5a75de46fa5f4f08ca1340dde88dc430ca030bad92e202f98f62b885b5c9fea9d4fd5 *73b1bc6f91ecdfa690c2cca7246729f97c95d505fc30ff776c687f00057b7235e1a686e0014252 *b4061e5ec49216f43944f1e0eba1bdb7f28e27726f7aabd09b191531043d3b684be43c0817556e *7aaaaa512242476bf04a8e57e2aaa30ba6dbbe28f12b5e4c5e51411ecc2f4cc9fcee2dce8e6f51 *32ce5ae80cac9a1223bd60687f1ec11c15c5ec8f78ec9cd79cd90412738274f2a5c57a92f2678c *3b41866ce9431d29ea975263ecfd642a27e219c09f4d7a462e2c47b09cafb8a5f55c0c0d538023 *5bebdc63f08e0c4bd2e196525de51261eec471ce3aa58cfa81c91de7c77c4e426ec12d18c79c21 *7aa2698353ccbeb17fbc03371256542b9924a4474e60c13d08a4a1613106b9a743e04daf04537d *51a1bb42e609a92644184c7f31c3e5ad60ba29414f72cb16534d54282859397b948cb2c5041395 *1cd8ea012bb85e1cc491c40f52f19103e9cd0fa60822dee9d02eca2ac9a903e92039928a8498ed *17673088d2528c2231a0eaac39d12dd49f74106779a43e30356749ac64d13aec0dc3f4a1a93655 *79a2fa794784d7e18eca55cd3ab443d78774b822b866cf76394e52187eb7a83c37488e95ebb295 *1c134bd155db04d8ac6d5cf287b52cd62db8e2dd51b8c3beff0633bec56b8e6a8713cc4aef801c *e4dbedaea9bf01e3385ef188ce3317cb554bd7023cfdf1eb6a85b908e4f8c033d54178cb450787 *6050123770a442fb2c2d3aa5a4e8672f076fd1d69158d148b62e437765c1c47ebdb299e960caf0 *23cf495dddaf9de3891da511e46da3519c9a099cdf74653796dfcfdd07cbbf28be1dd483a20436 *86133d5ffc626c6e4c5cf47f492ebfcc98c2fd52fa5978adf081e3682cfe32fe2569f0032e80cc *c06b33c68f5c99bd4af2c9b58dde0e5375a37360e32b7893b596f8a005704c617aad396a714ddf *aae30ec38cfca805e68814daa4a0d666b122204e99eb312d5600cbd4da94db8476630b5ea86b8b *8cd74791295aa89005694fd0c21aae4d71e1c2c4a6df46cc108a0a1590668a80186718cbeeed24 *1a26d95514d9b7d624fae617ecc5c56d91c528afd866094e33b67966626c8b54e1bab4915e7ba4 *b5732d0bc7b7ca013076282d090a5ada31cecbad4db98d53b21260ca3ac16528221c5cd824b999 *8ca2f15b0b551adbc30cedc1a46c0f648186f645aa41e1db8cfee78650454696cb33ef9e6c9b16 *2593c7274fde5ff854dcf04a274f3186dc3d2dad02b3fb674cfb0536149b4892916c0b523f5987 *4da228995cc158b07ed41c49568c5c4c3d785a9577261d3ed9884f9f341b5910fe077b2091817a *14e8282753cec9907332e3cc3257f2443e412e640f6c1962278519d2739ca40ad59ca4fc0411a7 *68b6162594a0c3601c804dc6689ff69aed53e76a50ccf5087c7c2c3ae51571cb85f80e7524d0e6 *dc5d90a514a47db47ec41385869efb1fcd422d079b5862836b93fca875ae8f5e157614afb4c971 *db9b102caea0c8531087c86d5cd01f6d88b6402d1b815332b9701699643c29a2e4ed64a2d00ed8 *c569cf3479d2d1935a649ea4c879d7e2f2058767ea4b54c6b314198b00d52fe24b72d6aff0677a *fca55ee286df2a1f86ffb80d45066e40b3c439c5d4b800fb8d65a9d889c22de9942d3bb6d72092 *1189c482e1a34c7234bf84025b5264285f92439e142cee222f1cc473c31a18861384881e350d20 *8a2bce9c1d61002e4864490f62434ad2001249e238d581299d760513216d0f6285e40e8a731ee7 *218560c653a4e1c23d16321e1f42c20c1031a4907961a683e045429a401ea231083513a14e28e0 *d8c2d92fcb08233a9a55c22e5814a129881b5ea35049fa133272846cc15b442823b66355b01fa0 *27c69228c4399b2260190f4cc58142c8399940ca83ec3ba710ef80cc886d287526e8121582142f *620bf10c78b2691ab6159183841f8652e77e85f83abe54cca18f2c62f59dfdf7a0f404b20e521d *285bec43f13948c20e71e5d223d581a7908b1ec644a3188e61b6001b71a8b1eea4f10ec8a76b10 *0bb895b896994eaf9cfa81aa53d1be303fecf668bbdcad13a613afebc8658fca49d4e57505e648 *d426acc55498e416a4d26b0b6e130c352e0c24b283b83b470ad13e5bc60d78c54464329224b4c2 *5b621b59977598ee8f06c5129ee99cca3a58b23ef6a30e7170ccd1fb0cdc59450827147ee30ef1 *70ded944089314923330a75879b7038685eb3370c7b48753595e2165d6edc0661dd736edc38ee9 *98607ec446609550aecb485170794001b14829bf45ff04b721d5de10265276a6274c2b672edeeb *02c7eac3f1abb0e926eabcadb3c513383f0fb3005588984eec6eb56e61135dc551525c99287f1b *894fe29fa7b6e7a0f4148a7b90db49b764c7ed19687c0662de5507f6d8fa2183d6c51ed3854e38 *105289c5600e14c6406eb10fd7313d2d27cd7c562284e94366249bc4f1632ca70a1a45ee1c4b45 *291067087908b181161d94b1dc540732c456eaa11cd72003f5509115ae8e7510d65385705804bc *2294fb9df0018f1c66c61d7d9c910185cdd8442192da4c6cc60b2e10e6918e7fa062f54fe9f807 *2a76aef503238cd2e130b9b98ec18063a8da7e810a2a972c0cc41f63e048932b952676f4769412 *01bb0ce79ef84be9877120be4979e6f0178bf463b7b5b1309c894a4527b4af09149157b4d87be7 *4ba168bc4c3a1115bd973d2c0c1dc7980b1fae7ee8bdec63c5eb98bdf6184e14874109b1206a8c *fb5818ee5cf52613d9b4170b7b58dc8b93490f1bf7b08c437d87da2e9ed934c450010166428c22 *b9eaa31ecb42ccf6b134c4488145d18b6bfe3a2871958ce1ee5731db9da4aa8fba393d363e8ba5 *9e6b8f29415dcd968698d89d3bb67bd8b887e5b23546fdc515e7c53e2fca7c60e042e714cb39ad *24341ec663f0cc517cf5763ca284df89a34bca7c8adf6185db82a25cc7a767592074c1922260d3 *4924ee35096743dd88f4dcf833587106f3d99030951c61a401bf9d1e162439d0a8206beb183ee5 *c2fadda7dd72aeb477d78d49283626f279af2b30b200333d0ea553f551d35bb88fd99e4a8e3195 *f5d0108b5fc1d26e21d9632c5a13d46d9c59f4581ef06b7bd891d69c9e0a13365271e5dd7039eb *8a9e617676a94254981fc731d8780436fe9e6faec3cc37e1cc3f7537b23926117086e4781786c7 *7016e7741960b9dac65049677a2c156b6ab968a0231f70de18338ba56072d4310e137bc14d9044 *0bee89a4028d95a31a06097d57159fe041355004b8f1854750167478d2e145ee3aed094eb32adf *1b5403f01832ee7798073be6caa0e395b21cd5efb059208298ca8424c0318076bcc323f6b8dcaf *25e1662c5dbf061a2f6c16ee982d8fb225ce5cd04220f18ba224bf32c3a1bb0ae90c27309ace60 *480cce568c113b515c84782341d8d903a5241deced4260d38325ace59d1a7b7670a6e0eb15795d *5dd72ff28a103e5ba676015198733c2ad654a825af91108e1dec6b392379bdf0a512be8c4fe42e *30efe0eebcb779dc159c723fc021197ba22bd496a212e9fd991be33867ba844b02cae0c6c67f8d *f25fa4725a5919977f4a07bf4cbd7c4dec4f9eeeaa82636910900c5f95152eb0f9e8c9acf9c4a9 *f059be282b3d6955215cb37238bfb05c3430b3b2b938733761fe8e8a63e7350828bb322a1ae225 *865ceda52e5e50e18c84397dace01bc16292718033c94d4ab7c25c9c03942b562795280c91f324 *b9d37ec29f5d7cd617a7dea8bc1af14f79d00650fa03283e0bf9645d5cc3195a77e2d0472029fb *d0e2b8d8c3ebd19c72b282a1582148ee9a20f3f6dad566f1443649570e246d2f37e365198d3870 *44997a6b23f78d6aa123fca0c11fa98a4ef631dd96f18f3dcc1534867f63b42257c8481123a831 *57364aa22b2c64620c519c61744f67867c7f66ad3223a87b723b793b1cb92a0cff654596d0b692 *341d7355448e2dc6ef3ea12452470575d11ffef942cefd24f4529e7badec244927a9abfa8cbfe4 *0fa1e0aec5df6c0650e252acf092a5bb70fd27af5ed56bd6674ea01f5ebdc201d2e7f0cf326873 *0f91ab534223a06179ca4d808bc3e4f77213ee19f48784f51073e46e5504f2c7a02f1c8a228060 *e6288ea036bf4aa2ebb7c95889929c2c78b88b6cd6c79c5e8513e48d4e5ea9ea75f473478fdb1b *9157c29f2b8ff178e24aa242be673aa17b5c849b3390bf82e3375e9673d275908c13d9197de03c *c113f9822a1f40317a4a4edc75c896e59b761fe72fc0c4a9e0d6e3f811d624becc4b0c7f2ceee3 *b9c7d1d971fef8ffd9fbd7ee3a72234114fd8e5fa1d3779d5bd25df50036363772bb6dcd229389 *19cf4ccff8b43db77bd678d63a2c89925845896a52b25d7dee8fbf40bc81ccfd22d57eb559a58d *003213cf4020221008f4f1511574b0164b17d478f25ebaa0169a041f313e792f2d2ea0db8e6d82 *89c34cbf186426699c5b4ce3cda23510505e8c3da2629c648665d4f37ade05c0f820f1785ef1d2 *9da778094b3ea60755dd9b18ebe1054f8549869206b22ed07aa88a07b6999a09cc1d4804522808 *6cdb296d0cd96acc8857e23f54774b6c6cb70fe033ce2865f35da734b25ae83e66b690f0a1fdb0 *d73d992270475ff21c9566557c1c94ac013e65f39da18dc887481949d1a27ee6bca1c14af0e83b *3332a91d27dbc88068240cd964dbcc62a361bc82a29189c55090683c4f2eae5e0eb80499f5b7aa *5fc6d972ccc9fe7234eb1afd73b2486ecbda1c616dde6e642715fb9ea58c89b837e6f212cd06b0 *08827db39e371d695e2dfccbc3f23f2711aa422691682104861b2a5039230e8742774b935c1c0b *c18da8b8c8c4b0c27a74112eca32be5d45e4bd69c30dcb8db8b90db63761025e3672593099a08d *03d16bf34b8337ff155c7036e2c1ea2618039d3420331c50d18e9c3a8a58892aecc59c4286c770 *f616b334dc6925e2949d6fc3a109798b9939efcb8cc880d5abb607441c9958f29637234323972c *210223c3e816312208320cc722839b63c34e64185785a72bec0223037108d01687eb0f64438b61 *00a3215c4fc388725642261bd974e666478b066e174e3032004f44c810f72043e5f736820db41d *20763e840a449e11ad6a5eb909f340641ff724cd48fba3c206c348333b7a090dea8dc785b2e3d9 *a1deae707f05dd8e9aee09972be64c0d5174d78ea4540e319f4c0b6fa2a553b653c478f3329e0d *e17ce09d9cdd24362d90583097fb122436bb4512db8491435b1196f00b8ea292c3e5cc3470e7e0 *2e8c61a47212ed7983fde6840f13b2334c6e58958a3d152e569b342aee779d11c6c3a25e440500 *58f90d600c3b44e024f3803bf3e55fc8a4088b5d4f6bafc2fb557557c90ffc9baaf561b594ac5c *724696c2af06972eceab901a3c6a3122cb8b6db83c294ce816e9b20d7d135a6b41625d81ab8cd5 *686d407abcf11802354b6318b09d11adb7c68d47cd23d6205f5866a56ae5694c648c58954f1625 *59747c2cc981b28cc32461d55f851129b284681056896155354c893a7e42a911d8dc8b42ba2f0a *e9f6d5101345bd119843a1beb47ce03f5a96f89f5996921d5e67d7a453beaf0b01fe43f4700928 *6c954ad2c0b68b1569b1da61557138f1023752df263426ac1d395482525031e3000e55855f955c *30e701c7aac082ea34b412f21c1bcd7a8b766455aeaad1498a4b23d920ca0b7e5f4c641d94864d *74674c2ddf545032b12a0d7314f5a86d8c8b4e6090b32b1699a221298ca622b0124a0c852a9483 *f98558d6d28bed360e34164e37a748433a6611a67364ed38b0cf9e7bda4003f7374c8e891107fb *193b600962645a80b8af95d7b4501c9828b510964b5b3c08390289ce566b69ee1c50e2412ba036 *345bbd5f05ec9ed5c630474e994d36629b50e313f5cc8167c939b3c4a4c233f0ce55f190082092 *4f83b423a41e8f7d38525f4ba183c27c0882d50881f51b6aa087246c8b2c95232e50cac675ae70 *8e0918ca30814490028afa30bc184245a6486ca863c0ae1f56376f094ecf0b5b9e588521e58103 *871386ac624305ef48aab4091b3ed1dea79b10a976db8c63b843181041353b2ba4d607abb334b1 *2c250ccb04bb9e65eec4cac796f99240b733907932f0fa69c4a9c2611c881a7909f7b39e5ee6c7 *f12ce71eced22d15c82a91708e33215cbe0c614df2b115155040a88d75239e818186c92fda55f3 *ea99d82275f06c9e2556c99ed91d47bb512113420366781c7a9c57a80f4b8ce1595663dc49dc60 *a55d1851e5346857ec155a953c35bfcca4655c63336bc0da3c8fc8dfed2840295f1cf417957cf8 *8bf306087dc0150df5ca5a8bb02a2ce2f9f93aa4da66c10ba4d170aac3d7bd3f2695687fee2219 *a227099958e60157230c55b23521af5a69a42e3209c2326298964228c78465d881272ab5c67340 *1350e8822db8f50b62e1ca136d2eb2046cd9bc7d16a2530b5f46dc23853a51c8032dafb31cd8b3 *0c4d07691ff6984a0526dcfb9926924965bf9049ea6042270f226bb2f043ce88339682a860aec9 *82547728c4a6c3818b8bf3820d2fa3d3f92aa4cb1ecac984d5994f5b8cbe3dd73191414c65c5c8 *da88771c1e17baf903ce98c3be065cb3e68409591064de6766aa0c1d775975a3e7a11e3e235b29 *f9b30a5cfc634b75f3b79032f4296996e2e64956438b7f719e32cd320ab30acc5396aad4e7ed54 *27abc52de43dcb297739e12e328f90fc8d3ef77f0b29f62b9773ee336f6cb197cb9fd7d12d3464 *ded879ffcfda7a5467cfc7683e8e6e5ed80242ccbb7a8e47c72024e2f17a0d6af1cdfaf2658cae *c1f41ed1bb2cfadeb363e0fa84a578de1f0f6456d1263415e8e25d01a9afd1a67b61eae2631b0f *7d7c486d8de2d0be10bb26a62e3e359b31ae4f006569131fda781cdabd9de4d532cf2698029bb8 *98f0ec883bb47bd184d4c77d1b9fda78e038d708451b7d01b828134f17b999cd29b5719cec9aa0 *e7f928bf1153253eb4f124f152a3956714469e277adeedc37892491a649766b4f12948d398e1e4 *e1956550e3131fa2c2f8c548dc2ac5abd82dbbe9a4cb32089dd48e105b36697be42f5ec4f334b9 *8bb3782926bd98fbc0b98851a735eb25a6820d8612596f3b32989ab867b91bbcd928857a4d0c41 *b582d17a0cace3301a8d5654476669b24da2237bde525b516c1b527ec858c8ef849ca53e8b461a *02e5bd90dbff7811ca3d9468e7c7834c8289516841122a003b43c89d108690330696deeb4115da *1a0bc0f76047666666f4aca26c8f7bd9655ea558e6dbc57ab57db94944f9433648cbb38d2b6fe6 *5ed4b5d9a3ccca528dc3dde1d193023ae13141ac1f4a59c43a0e2c8dc343dc1c647e78ac9a4d8e *d623a84aa90ad266254b9527f62686782622370c599416e0c3a5181b08ef894dae8d2ec67000da *d8d8c79c26374a83d0c5ac026131e678623532fe728c644baa1af52cc71aa32aa28a4c3a461b23 *0ac4f280a912127b336a8dfa83ab944d961463bc8c427ca06978268827774bf60d5a5a24e71725 *1287c2d3a4e962152ff4fc0f21ee643f971963307bb46f8bf6266442af2ccd8c46fe96fd1f5e8b *264b8e48ebd29c1c1c5bae33f7f1a1892359c5386a5d463f67760fc44317773d6f7c28deb37e86 *cc2ebfd0f3d5b378332495ccb68c80b7432471db2d3b2adc988aee6bc1a10aba435d7ca807195a *38557a54056c79756ad8fd3a723fa02fe7b602446c4d7c34e5a1e972238ea4a6b345c5669ad3b5 *df9866527362e1b6cbc44b2f9357cea411297409b7390f9c51d3436243950ea7264db5e283e1b5 *0c0b6cc888a6c6596a27d0d89735b5455085a4abca6ae51692a376eea56186175365204a46a365 *8c65d51e058c93a60e3b53c5e389e6a62fe7c130d77a12df5871a9a9a79bc242721a9752b33985 *b8d1e51b49936b93a3c56649258f18f83749aa35461b1d93ba6c25a791953cd908238153a3159a *c2c035321c88575b77c3897839e9881b5d7d2a6ee4ba2639fbe62c07da9bd52ee25de02635083b *ed855907237def0d1692c8c5e75d9a541a621947986b315f329f659203afa332bc943ab5a9f09b *79d464d02979685e6e4f51e2e916d6b61a7e0a8c47d80e64342fab383398d48e54412a085f83eb *922f463e246253f3e03bea46734f531b03cdd893fe968d69fece62dc16fe637d36be4ca9d5ae78 *6b336adbaaaa2ee5e195d70eac02e3e5b17bde7f1e2d2be98938dac3cab995c999a16ca52a4bf9 *ba3834c2192238b62f10ff276d2536a96bbba16a7ee9859e653918775d42ecc6e7e8b88e7d5be3 *53e3e6d433259c16d7162e38b838263e6fa13bad4b76b7d0ed78e1500b673c553b63e72d3a5461 *01dbad4da9505760af4b6d5e07edcaa52b02f2f9cb61cd3c4ce2ad9a068ffb630fdcd2cc0aa491 *f7481ba9e851e19f2623dd9bf2b61f449e95f3ddac66a2d7f464cfd0748964a0c6567faaa67dc1 *8cacfcee8d22800f0b682f48eb5557102ed617e9e222d54d27bfaa87bc389b3c76f984851266bd *b9bfaaeee99df36f9d51d79b3dc604ed16aba785d5a8510c2fe1ac79fc17dc47b359d9d21f6e21 *9f0f669d06f3d806e37ef9f3eaaaf3f4ffdc633e3a21a34ddda2ba48c3450243503c5fd11c3b60 *877a7472d7e12903b468438320786ff6ab36ddfa6b0d30e8581f39d7246658792ad269b1db2fe0 *44c96a0acd3403599d0cb0ad970634508292e1374ebb7ed10602354368a08c16118e2cba32794f *c5f3cc69941166236a534baa38fd52239db6520de64068c792a7a5df84472d46905cc852ce053c *849c496c820240064aebb38259ebd5ca9c8c7df72c6e9e85d5cabd7ef373605ba73cfbc3f42282 *9ca5cb6d0cd99c5fe537d88bd059f5229459b16786c92a45aded56322a57a8292953ddecfd63be *5a28c49df87e8f72f2913bee2b53088f2df445185697e9f2bcf48e43eb2583164d9506cf3484fc *b1c1f4c0df4951554ca89ffefb848c50d18ba20d0a4168f8e1c3d9aa20dbf9ba620bfa6f20432e *32f92043907a9c3d6638e5869270c1a911e6395991c96fa05f3d6edb8cc36c3490dc3aa3b6d76d *2eef67c9b89343323e763e27e31e237a2f0bb9b796d0e9511a7c090dae07b8d922aecec5cce62f *43e5efa5b9686a6da7344e7538f066f1cad6582ae83279589df897a56ef6ec623eb69d541ae2b5 *3b81bf0fb9efed34e1913ad0658c5879f2ae90f84bc0e98db4d9cd08c2ec6f4e32c2369d6d4bce *2fcf06b66a8ad8fb7012830fe1b0d3cfea381510488fec0713e2290f47c770b33a76407aac2176 *e3b0eb9018cf8b5d0f16c29e2fa202b040a735891c667c1bb767b90903350d66166963b2fafda4 *4542f60f0125cecb184c30069bea5e9cdd69b23a8243d9c687cc1d033b4232baded566c4c82164 *5257e054647dc7ce90df939033f2471c989afc7e8b6a0ee7466d12f296461857eb94cfeb52b6d9 *4a9f715fb16b5237c907d8270742b6e39fd5bc6b1a9bebe3c2cc61cefbc38136f1cd876956d2b1 *e14267b3e14356e3bbd1a6870be9b35fd60e03555c25425beae12df5b0e70e637383634277fc07 *844d3bc213327a628db8a9bbba8091acac1c2fd38ab08ca7c3646a9e748cc9fb0fdb9d0f728c2c *1edbb498db0f2923ca180b7276664e5e1fc08b8c6d631ba685d02d3f481422aada3061ff0cb816 *4a58a5c32ca2226c185c96d514b16d58c90c9d66335ac281c811037d983a72f38819f2c5a6daa3 *33caadad6f67286ba81ae8c6529e227aa1992269d42174fcc067726b9a46b2979ed82888ed1448 *de427fad5eb61831841a31f5e0106bdcda3bcc85617539224db339d7122914318842aa29d798ae *ebc8180a42060a33794dcf7086633421a697d5735d564fe833e0405af36ecf7e70d8a021d1ae56 *e2e387c88c78aa0b366d642f78237dd97232200127aee0e4dba332cd624cbee2ec3fe00b982562 *f612b746f2055aac017f132e0a6f7509bcd5b66e73688f371d2d8a9a83674d120df9c203da80b8 *6cef8560ba06b70160cdc594a23af86bce2ac2b94e13862343f0cb07dc733619324cf42ba1436a *1d45ae21d5380ee0760c66d0e0698df3a828452bad24fc01b425836f7962e1076b53c483bf5f72 *329222d47da0239719e72496e1a464e1f06b83c2a60cec0803fb4bbc8a8207726a4251638a2fa4 *d3c28453aee0d9058da693656b424e3d53bf673b98f40f70d4868653727b5929f3e12c532c3060 *3844c723c492097456ad32d237388b01747132a3ea9992259e380e56c8801bb734ac249fa9501a *517699ff8e3aaace0e2b1a2bd73b150620ad74f484b9713c9dc1a39a64bad64aca2e3973fbad67 *9d1a12e99e98847b2688cde4746d42223264888676ddb894c18e8c1e1f1e9911dfeec035e390d3 *c3d6198614bb08578228af690301479078a7baa480a52dfa9f0baea5b93b42326d88e4750732f2 *2a9ed590bcf19215236deccf6eb49215d1dce7602a9c001d851a0ecdfa26c31c17427e4e21b9b1 *417bf544d82633d85695d682c2e10ff5f02371f876b9300bf469eb451fe2fa411a96b13db2a421 *e274226e346519020ddd3163764cb827a3aae9202e152e5ce190d3c364960b7017e6452adff1bb *7052a9ff73a2f11bf9373573f3d85f77ea07f88b132d9b5f8749615378f291b43db2abd130725e *adb0d23c74bb1e7421a9a006b656e690d349ab974858496c6ec30636641f95b658977491a96a14 *57c916f7ff53e6154f994bcc98fce7b01e87c42ab22f4da0ec048a3e3a12466a8fc903c390e3d5 *6f5c7256b18b2af0c4b57a1efed966c48b340a6e83849c0ef7e55db29e6144461f671ebeec549b *054c78ceb0b153063fd0068f0d27f4edb714ba5d0f4e0d21a30435a8c4a2d6a8fe60c8e9610adb *c1d3024f7e5c3dbcc4cb7176da3bc711c147d0b49389e3612268dae5d976aee1ae325c53101bee *ca6ca8e1165bc8077e613974f633cc4898e698d9ef2a964cf70701273618eeaa8e884395d165c3 *0cb1ea745962591658dce912cbb2c0e24e9258d268f79c9ad0f509c7844b94c9d90785966d0cfa *d2356919f5f1b9627a067569920d09749c56fb7a423300f4ec80d4e0f03ebf9f876ed783dd6173 *1c5a42a70f404cced02ef28410855f449e8cf7b8a0c9c046916329d0c74e2ccc092b237a19e5b6 *5093309a5b6946541ed02ff8731e4105864b2e9ea2665901f75a5ab16f5a6cae3baa3f0cca37a8 *3f9e90d1b1619b117bc8c5292d61c070a0902e6ea311a2d98c7e5a88d900c679bb2a8fb659d855 *5c5558df836102ecb464edd0cec7d1e11119050a596594644ae741143874b002277d9a2d14e842 *89b041fe713a3ba801a7f9e220c686a40f361e6c328601fdbdc15ad5860e2f558de80a35c56d1b *5e6c2f9bd0dcf136b621edbe4ee8237934330d775d26bee532da90d355d871c4988589f5916297 *db729dbdda516f69c1d08958c387a6c82263a29b5a5901cad234faa1696b0a4e2211e007e1bcb4 *6da231531d2352450d31bd711ac47ef1394c2cbd0d580d0ea9fd7dc8e7c2e8ee59f1d997c9563b *5db461e4503aaca7bb62c9da857d8f7288ac347910cde437af5239d4836d59c264fa3351c8f49f *b2ad9ef0a8035db54bb97976b6aa762972052d1f2d40ea88eb68bccce828d9c326356dcb0ce851 *a45e683690b7b624ae272b268cb21efbe32077e8c54c7f938196de73a796bc0b725f269b51e8f3 *fe1749df86ec806844095a0dab32b1ddf90037349251ae39769d19e5c4160ae780f7b490125a05 *9eeccb35f10dc37304e4161fb3704dac9e42f8de12e4f63f3e1e725f261bc6a3dd2f928296d837 *192f8456a18e5719aecd4bf74b1aac4106eb72e0c12269594eef64261781b1c1cb01e143153a1a *72f3c4d3068b21f7256af34719fd6307eb973faffe9d0ab39827feafcac7fd7f7198ff17bcfe55 *b765f85fc9a89aa880ffc621c4973156b3be81ec56d2e85963adffa3554abca8ff571336fcdf09 *b431ff4ff0ff0887bbeac54d9eb2f6f5ff15fc1fd6a1ded69156015ae76af3ea08a75c8b80ff36 *f05f75e639a4fac950beb81836a5baeb355dba61ff4a4bd785180d53d00ec39e82a2137d4b068a *7c43a21c5ee290fa4aae69646ad6ad82ec549e4351f2cef2e3e318cbf9edcab7cf2fce94688fcf *cf2d57f4f4fc5c5bc1c5fc76e4dbe6e78ee9c863ea5933dac68b74797e0198d5bcd2c1cc812cc1 *e6ecf4e00fc11b568c77f0a4e739ab3b1b2ddac061d07332bb60b888d5d9081726d2344cbb45b8 *5297c9c2cce601d9e1c29451b670340d8d42801926eb77384748c55918b50913172cd530304e42 *bc608d23c80a103c082c7a5986e57ec09105ed7a4935f261036fb2ac2e56e785ca6c6340972cc2 *a1f18202bc77e67249fa64dd8e176d8d37de524256683804b99d8f639e672dc5056273a572b025 *3c4ad74f5ae361f6b1c95a8b43eb42cffb949498a6c7434eb31168a979bc2d8fe609f4675774b7 *4a75fba9ac0513c85099c57f7e8705074109ce7954987875aed0a0701a158ed3321c74f43d2a51 *25b2036689622fec2613790a7c54463b6a91c7c34db3edb7b0ed23db8fe43959e6831deb66a4ec *08da915d5de090c7957bb919ec6aee15f27abc55c7956b23501c04b1a32486bd105f84b85984a4 *691b69d83487d84e8a5b67217aea767e6cb26ea04d0f615d5d5bed65288cf386c60e724dd7e116 *3175f1d200c8c4bcd489494a10a69ea92557964e2a6e2e417827b753b085e20c1a0de467901330 *2c404c2988883690a5236194d10f4ba5ec877c03b9a5c44740491de60b2d5468b5a621baa02112 *87b6c910419a2026f294df3f61468985416e6658d5f6bbf314869729122101ed8168d111664d61 *3264cf923454b7394153416333bed12e3e3a4cc4cb024c6c2b6624974a7b613c15b588500c0af3 *90c7acfc68cd48bd576435c228b0b80e897a377d81d3a0b698e28aa366340abb58139bf398d934 *41ae09f64cc55bd8c994e7bec8a6bf525e86a341473acc429d9dcd22235651306a83e232ed8c30 *bcbaa4f523be4c670e47bd9f1a6a9170ec5cfb525336ba2f934d77b9e62168dc0339f22f59d394 *c55f82e2029404520e4271c5b0730db45a116dda226da2dae2cc64aad64c4eda2554dd34e009a9 *f130ec6291e4990d476d8c66d17838061a794f2755316a62c707b8ee6f9aa8c4022e1747c460b7 *912f169028c7d248bf0bb1582f4399c5dcd2c30017272cc77cde0e4b31b7f010bdc12cc7f8d093 *d75b0751fd55d76bf13187949c0fccb5b15817b8cb32d34745a2a4729e932d7f952bc9fe156f92 *cc2a69924b5a8449a139202e8c38fa1c6198f61b1146560761bcce6c0e073c5537d0b04d0ad7af *97e088634b63300a0c2e4a3492154e06a6eb9f3d1eec1b05f6706a97606723292b1c6120110ea8 *ff9dc1a422c68c98a9f0f8f5321c0cec8dd86e9c973a8c081366e05a3b910e82f09dcb32bb4a21 *8b1c685648e5e09944ecc1747b21712fb424f00be5d73a48bde8871bd08a0bdecfa09328ff3ec8 *9dfe09fcc9eac955760a9621da8868307891df06f940c83dae1086d588d9d668973cdf9c5eb5b0 *fd75f3a4fdbfd37201c999921b8e476b2a4dd0a6b5b0a7c9cf1fec62a34203db822dec763d3815 *762a3701fa2ec169a22bc611def03847f2dd85c3cf43cf99afea8d8375967a3ca98539acb05f60 *a119e0ce28607d27ba04a11eb740c7d3681b40977f78bdb2b70f371a0e36b4f6e43208ccc6aae9 *3c36d6ce3a4e1808a0fd42611bed90622ed468991003969b66a163805456ec4e4d363d310b321d *aa77ac01a60c7e4217157e243ae8c068bbbe73b93a2fcbdf506fc7f8b99e40f7be8189dcd47fc2 *aa55186d67a006a06840646c61d5250e5ee4a1d0c36ed703856d9fed86dd312ffd556764c59225 *62b2da3aa2ad99963fd2a40d16e66c8ceec57b43b4eab83ad92b003686e0d10be141495417de16 *2612892dd388e8e54ccb36040f02636963073b2a82b7df1a78f2baeb337159a4ff33fdb8a1bed6 *0815cddb1cb5b85160765e08a571590aa34a6ce2023a38abd57ecc1b03eb660ecbd1ce46b088e1 *306c4f0510ec8a705b777e2bfb336c686df5641417e9e8918d7bc68a817a8bc6a7e74588fd554e *09e3c33c6e7d9144c523e5f2fa38e20d6e7e6d16e32009a159182a89eb2f6e848d8bf1ece90e08 *a3d01bf057a69a26102306c6d5ca8646fa5d8a839708b04f6624426877bc546ee4df599c1c6e36 *2fc48c9d2b9bcdb3f816e28cf5215f60675f7893d0c4b3fc7ae9d699a37bfc75d2adc6b71f2e99 *bddd8cc649c535d8b8eb13e43723a2ae232d4e7cf3bb85c9f22bf19e012c192894213c68cd6964 *60ec370616dd165c4ea6534da6735574993e905995b25088fab53433d4eb2799370ecbae8295af *e8e1e6da8eac1979eb8dd4780c6eee36198d7bcfc1b8f61c8cb7dd64c674c383e8710397b99251 *eb81578711834a7562cdbae4a45b33a4b054431e8659ba66911c46d04d2632b5b2995ffbfaff44 *775c05b1f7807a24e63b36b8adb2219b90e6ffcbb1febfd3de049d7761d6d564249d27b70a2fb7 *2b753de6d5861d5b03ee38a869cc0ef18e58e4b02e8f7ce5aef7bbc2a847f51089c9f06914b20a *1925ca884358938bd0bd14a612a2f53f869719a8561cc03c3d634fc0805403accb5068e2f6bc36 *b99e23e2b5a33f7c253601143adf253c36ac19b16f0ae44fc071ef88c8c26d658b6e2fe1ecf4a2 *13e32716331e17f619710979d09a8c88e2196f15f4139d915487c3e8472964146056788b354e5e *a05911af771c3dde97572f8d073a3de92f1c7298502746f4331ffd9b74c9239515a011692551c2 *41b521281c503fc29ad130204e84890d5c228b3d183aebc7720f721f0cddf2838aad300b325865 *d7cebaa0a906a4030b0e3405a96513357422e5a086f984d0d9843e232e20528896f05413a81949 *55e5994b110f7b4c114f41c0073d42786ca527f3f04c2e453c9e4dabae29eada38112e409f24a4 *94f6d7feed4408b35a2b461042e04dbc78b5e2c892f30e84709201eea5e04591e017027a0efb4f *2ef68cbe6101ccafdbf500a510924576bc735446a7feb6191141a6332cb5ef3768304997d2a789 *687575ce533fc2630ed9a3734b3984c28bc4448bc491219cbb60977442fb704471b65c92cf16b2 *f6ea2d06259c78d5efb515745229906a8d579ef6a0407b30c02d9c14d01305237e887af7c18b9f *34b9fb32915e62951c5c860b6bfc914bce72f8382738dd8ab31d71dfa9f2c1b5116c639f47bbdc *9a70d813ba432f1c1b2e64c46707337a379a382c846550c242cb3bff730cf42ee8677ff55872c6 *7fe831aefde7fa8453fe059cd3e098c979da5e657b59cb2feef85daabc9b27993f987de6a4a758 *9bcf7fddae07a7fe3e3123bcfd38233a663ca04cbf401788cd4472008c6388eb219e27a4490b33 *a97169fd1466cd1d7a014f5a6908b89a8dffb091324ac44ea1e438908e6888d409a4caa423f6f9 *82c2cc3c50e4ef50fd601d8b51c806f04c8722d540719a2c156897cf453c7d0c6e00c244532952 *8fee9b11ed3ff7f8d971524674ff1a4ca576261165230fa3259f8c674d7159ad646e4824c320ad *1bbd1ec3499703c74888a11e157b558eda1811a82363eef857f7c7dc97c9860f61340fa50f1149 *88c67a664b4c2c86705e17b298e0c00b757fa685857a9cfbda1fb7aefc5bae1fbbc2ddeb4a6d9f *c3cbb37f2ea498f732220b4d3cbb91db00be386b8772e89841e843e446a6a343c7c02cc3091194 *4be49a04fa27b5a19a3b2f37dfd07efd85c8c34be389a269e03d119e0a3061f5d471279baa8c4a *e11e11d4ed7da11749472dd088a630ae8e7412a5ca44b888d72195503e96f2bb36a1bb1c5cc2c2 *819c014ba788b221e106d89132f874277dd812de5d92e4c426dfc988709d28b753443b14f6a29b *88709932e21a6027e198860b943a939542593743786fc31d62ec42287bb662d33b49c745242130 *ca3980922a0e1503130cf0068799069b869a87a5fb75bb1e9cf24b4abe6cbc0585332477e1bc0e *7219e335908291987f240309440fd0aecbaf8360805f14b15800417e86a49041546decbe662203 *33446fac10de5b4bbfa8bd45c293417b3b8140328277339cbf614df22b549bb5e988c7e637cc7e *a3150747c1fe9cf93ceef485854f6b6eb5e737829d15fea25d155bd154b40e6bf2707ace3c61c4 *2d9c9835440702fb5606f725d6a06333b2ce6758cf5369c545a69998c19d9a68530698bae14248 *0e6d0b4c1ccadd6cacac03997ac4e50395db93ee4d45a2dfa8dcf6b4e534907e9bc292c3d88493 *233499e86cd1c43b45bc23c43b41d37228f6057cdf6473d80d16dfbc1d8013257e8f5d36081c88 *9745fac59e2368191438114ccb24a03151c670c1366113103e841deadce872b8c2e74c6cb9052a *2382876a3b41b7bf01bc517840b82cd5a3da2b5478c4b6a64b854140c5e3c122b57a4267965d9c *ace1deace75eb90df89b7c7b620fe0d50575247853abbd1788e1276f0a5efc4c664208d4cc7532 *4a1a695b6a4a9eb60827aa0e8d1f8732b03ce058bf4077ef45f62386aef4e0464360ca891d8f34 *5cc42baaac821a450e0b826c0d82b823670020febe09001961c365b37571061c427c273b893b31 *7f09f1bdd7fd780c1c1d63a11da7c40343f5e03d78de732fe40173275ce06d33e383a29248ec39 *b8ace48767c13f3b1bc02784dc595d73024f27a81685b984bf69808528e118c22ff011c3e9bf4e *23363bd4aada32b1165823aa5da045f9325d6e2f0a317ab91e60db0a3a89ee6d87d981bf74b9cd *a15f77cc4b8fce28d90ddc5016e68b6de1b9919fa0c5152640064e22625f07f4fc42bf83fe964e *1bbcbdeb44dd3fc836e44828039b4d903e2aaa4d948087c80372ad60de5177cdb23a6932bfe1ac *f475ed72acb7300503b902899e804097022169a1943870c526757a4c1e402783accdbd3e93b68a *b03b43cbb92f9ce91872ce83bd476a5964fea3c517ac7cc7ea38e57588e301b72e119dc8c02fdc *bf11c6885d547fe1e30dfc022b58278b830983ec60f99d704c8167c25f2973ef6f42d7c055011f *12707158ef5ae989b64dd12956602e72f46cb0d1fc3a1b81972ef003daf508b0dae1af45226189 *c1c7d60056067920910a5e05091ff066a2d6d27e2077fa30eb74bafe0ed95fe89d04c5813c1218 *4d68ea332ae0429b70bd422ddb064e94e535ed239201e06e6294ec2fbc19e5b760a39098b84c62 *a0f67caf6bce74230fddcb838ee4eab83a24cbf04b7309bec12fc77e6c9856eb2f76fc7e4a148f *f805d4ae9577696c676ba2d91a85ae7b437b3d53605ca013c86d556874239e1bb0fb6399b3f319 *bcd78df58c4982938f092636ea2280f6c16f1c26347981089546341e7dd9e51d5d3f5f9a9c5d9b *12fe7a968b92fddd810d4c46aad16c4895d189b00b30410b068b793c2a5418149ca0ec04fc421c *60ab29180b7a5b7b58677f34ebaca7e981741c36d4ebffb86116eb8665442a035b8c619affa2f6 *e3d0af3be6a5fadb14000c12168fbf61c25305c81d628545b55a7179b54a97e7e5535e850db226 *b30a6fffad57d8a76584aadddc9c800ce91c1ad64d9f918dbc5910dd784b1c8179d5dfe64639bb *cc589583cc5d67d7ed6639371829931c67c0a88b7780632bd5fe496f0e33ae0f73ddcc0d69e456 *5954c49d7a00f0de1dd4d03adc98c55f4056a06ffbda405a399ccba4f9218f1d18a3d935ea1731 *e3a91b342b22ed88fee22d6d135c113e3abc4a2988c74c2ecda0221a70ec209e640d800edec0e3 *5e80dfb8855f787503bfe80d0eaf2044c487df04d96de0b7208a9b9a8534f28a18605908eac28c *36a277e2a3b355a591c9f84b6d0bd0b6ea7c28428179c60bd445199df88393e62596c0fed29bb8 *9647c311543418e4beae647f5928f48adcb9ff454f88200c67b0970f137180b471cecb6c45d74d *699be2a457628ffc40043615b46cc0c9221ee2ede971b0bc531a6d65c155e516745617957ea121 *34fc8e0ea543fadd47189b5fe00191139ca0f8118ddd063c1640e4d12c050d4ed2992eac306003 *fea287fa095d866e606ec34902e8be049cc344ac85f70d1b8ff46063a982ebdf89f311ec258646 *7ae05f67238bbf68fe5ea4c9327a81462f2945c1ce80e503056f244ea04de87e91b506811c4d31 *e06e873abbb713b319550f3670e7a25fd84ad560ed864beeca37c0544ce81455e5406bff838ab0 *7a94151a005d414c7da0256e7171fba5b99195dbe6908305f51a8a04c038e0c21d61221072d9df *05447348f7f0172e43cde4472857e549add2b66e684e3bf9419a0c48ad07dc348f282cb020df1a *37356d030791b7cf86edb3b04a9549b1f70a2effd57b16e7ff390cfaab0ae7d714ae720ae7d32a *a18bb44ad056a4ad43e59ec3e0e45f589a3023fc7536b2ff176582b009290d5037105946f2c9c5 *db34a786a49182dd0bc808013a6774a0979942a0e6baf5eaebfa84c78694119774a8465c73b0a0 *c4d94e1b598e6e587c6c57515fafbc5b4d05352f6908d489987869d05365c142f462cce22b394e *ac48e5dd442ffb8927406e946c46ae4eb57c23b7ba532447b4d566517896516f010dec3ccb0d7c *c4230b299d046afc3d111b3088f79f91b7642ae4466e3ceef9d53b8528677b930d79fb2c10fa8d *adc8772150ed3a745c4556f5008df5b061c60b41f3e049cbde42133f4de44e196e41ab43b05554 *22de052ef1f3e43964a206d081056413aa4f8322114e30eb0a7f0716d9dc21a3477f1b13755a26 *dadcfd63a371dea086139a193df1b0aa1bb50495e297391e05c178b9d41583fd25e0cc87dea474 *d15a797babad3d0e625eb1f7e1d2f95c7b4a76fedb08083b7fdde1977615d01ede3556526c2436 *cf23331eeaaba374141d9773915a6d165dd1458418cf53bc88d0dbbc6da2eff1e908938fe46d2b *6b8b9eb5b13969959bbba567ed3aa69f1a5ee1e04bbb0bd04ab81e1d1673b01726dbd3650bf8a8 *e9cca443d7426f9f536f7b66edb81f4ce8fa041bc255305574a9f4132c64e0260e5f6f78b860ed *304e49bc3f84e44b9cf144a688abccd460e6ab8430d87b476ac6ee229b92a864aec9ae9aee691a *abbd0b6b7171bee10e61e68437a9f684eed8177787d83e77c2b2fa6f5d239b11f4c5ca032798b0 *83b2179a4b978b7abc7e072f188dd62e10a404380634c1dce7cb01646bb1967119d6290e5b9cfd *d8c881da3c6ae8da047eb10cfc268d5bfc1ac4be8c47745151a3ff381de4317fee4b73a84c6cb2 *9c80a5d1cf6dd85f9f11d98f0e1ffb957b36a90b65676fc7f712ca11b627e6c343bffffb23f2a1 *038c8fae8786eee9f9e0e7ee607bc4308bfdd61629fc3c8d4ae6e07b27aa49cf3740115502637f *60c1f036bbc41cc14430306a9e1963c7003b75901009365f1633cd42e2243209f98e81a786b38c *76d680c259cdb145a3348d4eb80f6ace477dc17dc37dc57d270729ecfd21a38efeaa6af52f4572 *da71a3ca6c2638bdf98cde239da11496cd409af022db9602f3d096f0d8f0cf362376169c9a70ec *e270096f4e5b9561712a04f60ec63725f2db940b927c726d0730743fc966209903e2d43187a3eb *cc12b3ecd087c6826c1e1265505f0afb49845006f5af47a847af3b419f69f1f9a1c792bbd3f484 *4b19d81fa20c4f9bf5bc3e99056cbe7ea1c9cd54866294a1e033d1592fb984dec611a09d629802 *014cd8474fb76e3039c2494cc6ac128afdfa7a774fd3bd9ca687bb8917693cd5a7cbd085fcdcc9 *4ce50cdb92d4de85c3195ee37a5cf03a315d9b9642b95a7062d1823da32621e7b5af4087919136 *301fc59dcb9d4df5edc99474472d8d2dd21a5503416101e2fa2bed2788ce8d8cc26f0c4956c2c4 *18ec67509a186271df29085384216665a240b067db4180402858f01d7638d19288df6c2b4c5012 *08da988467cf7c3cd121b272a28592bc88ade13e5c86dcfec73348fc0ee9d022e48636915e5cad *cadc9b68a4f95263d24d2c868ed45a3c288f0eddfe1782484ab8f6627599bab3685431db4552b5 *f8cc5a36b2c78e649e37977e16e9adb30479916007090716428946797647890c36696352e6bbd2 *998079eff95a3dbe5d998f3e221514858bcf99c92c89bd59bb84b383956908b4326188a780f890 *0aec5e9142b54e31eb8775a9e77b6635918f976a5f0b77c62101e73b3419b3e50c8ca763b103e9 *ed476245382422e5985aa51d548db9b78590d679ac71618d584f40a7bd26b48ea026e38928118a *8260d1445dca93d70da6743f2783cc55d3f4dd29ac3a79819415822923762f1ea26d79f92519e0 *4bc8204964906eb5d9c9712ceb0b305fb77f46cf0a5e281743b7ebc1ee105512ddc2e4785d4e3a *a570cdcbca2bc0723720bf80a8a92c02363de14ccb3b0585dd820366a472821301016faa17c1c0 *e039ab7e2c8123952d6714e9dc9056b1abc1f1b211d1d95953683a6a13b06f909ec8fc46724544 *a46b0a767ecf2be8882c51ada4bab001d5fad861511a8e5c9cb0303d19665667242cb20926ccb3 *90a80d6b6cf920242d4515809233d528e370881e4f57416852c49e412f5139efc6ebdd4a07baed *60a03bce44a688ba82c01d731e6faf602184fa94859339d5b223e28ed3089111e99ebf85f3d447 *677cbeaaf73d654010a7ca33dc51b1ff385d6cf64faa50f6d263a9cb9c7747c4989f8f5a967f6e *e70e48bdc12552bdb108d690758399081bbd4e3b5ad8795838d99be4a0ec5993ecba74f64e2b99 *36c9de1ee9b6e9692682f013ce581e703d773d70f2c4e42e9ff4c5f6720e8b0145ceabde05c7f3 *73abe73c7e77d7fced3fdd4f7fc76cd6024de39aac7c58a54b1a70b9eca913d7e6eda525f6e9dd *5c1fb813bb3909167498e71e837a4b98e78e40bd8ed671dfc181791e6f3c30c8623272cb9978f8 *4c173967a4b7c0340f6c97deab505ccf92939cd6d429b42d339388fa7364dd6c27e7efe7af9643 *b7fb85634899fe2de13565a09cd8b837941ab165e46ab2524594faa82f5085d4cf6e1691689e58 *21de210a990fb0ee879c82ccb9ef80a6308392b150700ace2116738e819caa0ba6dd5056bd88bd *6dc7a81ac91fa82672272b94261e97bd905bba953113043f5368a2a379cf08f20e2e1c4b52a54c *138da14920e2c8988f4813e3116e15e84e9bf9c90cc5a321374f5cfa9192b50ec2706622b37267 *b8268a4a972169405eac756db323299e1215426dd0f190b389c14043535e5387206cb55e878e9b *173a2a3a52daba32c4856db773190ebbe1793fc4c18bec44ea61651f9eed45cd44ccd933cb4a78 *c06794081925147d3a872c77b7f278980e6d4bb91db2e6f121d39065d9304ca9ab29876c4ca04d *43d470d4f649b4244958eda961b53d8f026fcdb74e215cab2158c04d9d7ba91b51a10c996e699d *981227a6023d161f9e8fae47ba251cb7d02ecc768f990c4b905b7ebcbf5ed140dc3c678887400b *7da33d17a5372da10321ada3833a3e327aa86eb0334e15b73c63f37e0defb11de5f63e4e429a2c *ea2f4238fa64c03cf1045a845a54ed21b794b83fc3a660a99753700714b5a1d31ec8ed7f5c7fb9 *dbed7de873c84d667c5671cff8ee1f5e77fcf8ee1f5e77fcf8ee1f5e77fcf8ee1f5e77fcf8ee87 *0e8ffe9190e3bab210a412c81cd2f760fa4eba6056eb5bbed39535fdda0342098240910d544941 *002be50419013812af12cccfe0458b27909797196234707e8e110d4208cb7d0072c7be88b50465 *c788ebdad0408e416255f2213c8ea4aa6ba101b6ad9b1e09d25fde40b0ecb55dacdd1e70aab5e3 *03da3c84601c1b096e15da1579f27c655376a8745dfad11767ebebc28f3be29da37edc296f1321 *5b84dcf2e3d37fdc176a99a842f7feb4e3b3fce3daf159ad67245b88fb2cd4ae3860cb794af857 *9a1199631ceecc309611b830470f72b3e71279c672826c81fcc577d18919a5b10d51bae7d00d64 *41c634d0e3f6cbe465cb65d683edce0b6e195f389d0cc09c0c9e21d419184d41f3539719a6cf3e *a1274702596fa16bd2288c805ce599466e6dd25bbd47cfd7bca7517ce48bde25993322b2533826 *85268658ab5a68b96a492dc46bfd24107f9dd804d127364eace4d19336294d52edcadd7003b479 *c6f596369e8c1a5dd337d27506322621e6070715f49a3800e05e70c2f18944dc464cd31767eca9 *32388c068e414dd4178db6ef20e48e7df110e44eff641972a77fb20cedbb5bd55c2fba83533390 *dbf758a50a85f2421a9bbda1cece8e2f2edea8ac0176a785502b8133178f7481ad22aab4ebf1dd *7a0cd2c32509710f34d52955a16d81b604390505ca3ef7d050a03083b6067204a6ed741414b723 *43b9815c97c81ba616225feae674fd02e4f63f3e16a2ed34b17409eda834e343eff5ac0a6dd482 *cd23a0816f20440d9cfe310b5f8c6667f5f47d0f3905ab7bf97dd0c050526814c80918159ae650 *50282f428e6de4d035c22e282934cea138e2cdba50414914282894c5246f27844e18d305272e41 *e43830a3fa8f6932430121a7c60a99568b667cbdcf468fc41ac44942b61e706ca986d6b364e950 *56de846cea2c24e167ec43b7ebc1a9e11f31236cd2b8aba9dc158efb862eca90ceeb3b953b9b3b *bfe086174be28464d67b3fdff750481583bc5047a3542445a3f3b31d04aab2403b84e30e72fb1f *1fb981e0b36ca94423f209f6093f6ff4999340de7336de8bc6b84d7c0ce44efd4498592fb52231 *bd4bd417bb1d90fd33cea9d92a62d1d1338e86e22f73a6a5c986136e7b240c6b13633d7ecca14b *38a906b4fcc219978f9d7122eb8c7a2f1a8eddd486c2e153a8668a9c439dbadb3a759d0af68206 *b4e19f6dd1fda60af2f5b2a9423710e214e16d00bbdfcab3dd1f82dc2c311868981522a79d4337 *fb669b97c30234cac70c19ff1c248eb8c96e2c3f01726d62668837c077420951e2024f29a26920 *4d580b894a8df10238a9d559915a7512d78713cab8706f03d3ad060175173312cb2bf6d6441933 *8730368e80b8230cd39ef31723857558d0fa0507c85256a4cc061f477a6362aca519c098df1f2c *0966f2e09ba4c83c34fb9db141e790081aad663e93ad2b2f7b3c5f78ed836123a73368a6ddae9b *3cd308c8cbfb200c3974f69561869c0e25bc85230d7f1c81ef24c87d996cbeb4742df8b6649fa2 *90bcd7ec83e0dc05212433a51f97a0c4747f98733b0ab9a5c4c740eecb64b3c7b6e354c89dfa09 *4d431a2afd71519e905d73c337d2f2a6441f96638498f6a0cd9c5cd6453423c931223ab3b7daac *4a8a55084621c3ac679f707fd7245a915378dffd3fd0225c1c09dc09d17d3fd0ea40f2f40c7226 *9189c341284d4cbd15724b890af1027008aa0a08a1d0db3d10a946f6406e96a8f7b3ee87f44e57 *b1579485a3089ff978dd1141f89e43eff058a9e109105f46f404e54a161d0dab75e0b63c563dec *87b60ca52d29059c82024580c65dd054203adf57468821a7a0efa100d07018c2a9266007c9f9e1 *0652e426eb791e68648cc9531232e253b450b669fa9ee71d069c8bc6ee91d790516e6e11f53c9d *0ba9d590b3e37c66a2e65367131d2c616c5d3afae9853e19482f2426a85df7ede3f9c70b85a87b *2bc746695045a9b634c0344a1a6a1a2f1d3290819867a617bb8e21e1a0159a84bce7c66e936d84 *f61b6e368bf322c976a21b5c20d930950c51f67ba82ea3e3c88ca8a1ab8284c7104e12f84e268d *333a87a3df103acf7d7f12e44eff641972fb1e8b34e0c58bcf220467c0eb8bf30d6be49c87d9af *6746bfff75bb1e9cfafbd790d18e1e74d8b5e1ac5e79083e4fb6a15a41332a723876e14c0aec9c *d1ec91d776e5401f3ac9e18939b9e373d89f93fb02adca98d117cac99dd22abd11a4f16c831b6a *0b2821dc7338fed79dfac15f45466999200d664e4dd2dbcebc91f7bbf7a8efa17baa54750bdb33 *47decf71470dd523990fae234e80a26bc451cf43f72f232f004a073ce4c7ee0feb534f5e0b2f56 *a85b12df3baa4c9623df2851b1c341c614e09004e2155470706df059319a85452c87164e86f8ac *b9574da6e852b182a4c11a2943b768dd3c1e09e967d9b154882ec744639555598e5b5902d5c781 *4f8ae001cec29dd4cb19f9509c349efb73194a02fd5b6b53c41a3f36c3aad02010f2456462e361 *e3c4f1193391db079a15fbad37099a84ff7b8a4a56b3c96a84235552a349aae1488c31ed5052a3 *a219df113bbb6d7ddb4ba2ff6c4c4c740cc98624b08109e7a1cad9014d6a90ffc4fa915b243fa8 *bedfd07ec76de54e3c29ec336a57932c2347e6b838c83c9b6dcd8def07a77b085808e471595d21 *9a53bfd162f5b00409c7f054f6d31d7c31b3e092aa3348a4deed385728e9e0677247e8691bbb43 *21fe51d555abd8229e3a4ba2c8142742aecd8674482dd4aacfb48652ff409d8d1acac1f3a832ed *92912d7dc3fba25ba6b99317932a90b61c23fc408327447aa0dc462f9b3728ad79c62a366c1633 *6742437157403b35ece384cf20ef0d1dac9e47f15f71e4fd26de8b222b2068a4a3a511db30f33f *23324ac2de2af87e69f03dc86c708260443a65af79c241c8b4f8603ea3b1846b43d72768480328 *bbf17dc8cf0f66745af8c7c8888931ef51f6213f2f2350ddc21bcf3f3ccce8bb86ba29aa29a821 *c9b2253bd172506d27925cfe18f90ac8763a46613176436ed7633bbf356b310be58d7641384720 *695418fb424ec293e9316b4f7f166222e804850d33a5dbc2b3aec9b284669e48a0c621f7759935 *6080c258c8616fe7f24545763452f3eaff591d5e4732edb2f532d619b16d0abbf9e2736731c642 *a5fcc94cd71fc78a53ee2a0ec274f1223a63bfe874f42873c2b3ffe649907114685880b0bb5978 *6d131f03b92f934d26b77330a872f13bca3d8b90bed7198eb9c79df1f7be772e70945b0cfd8b59 *17d1b1099d92fc5319b536748ffdf0891975cb8a595e903592170abb97d385f574884b239196e5 *5fe242fb2b3cf6fe05a5f9cd6f1023b5f8c45ff7f42cbe6046698a039c0102597eca7c0349240d *c1a0e3303126224332acad2d0288c4de5b99b225793db4631181c0ed7f7c0c847302ee1d254e68 *07449327f02a243a0f846839744c0ff1938120b3324e04e9e44fc2661865b39317b37ccc3b1f41 *c406f68a8734849764c677a8ab932a06a9b655844c0c25623d46f19235461ed8ba0be5907bc344 *81aaf9cf64b7a8494c61b5431b26bb363e35fc6bcf88356e44ecf668e48c4f98c497cf7a60f9b7 *3993b916bcbb6dac66d11cd6c01e730d34863e3227558f5983f44dba0cd883dc0b0f72e17b0bbb *5d0f4e85ffad334ab0cc80af5d8fa33045da08acbd980896f4844a6bfc60b55df921182d1bbba7 *537d1cb358b391f81b8b951759ac1213b1d6311d4dbc236014a2dc9583e0309be5a86b3e4f8c2f *6d58b020c4214ec4530c79e9821a22a77393782cb1750e481a3752e578767d9d5565619a264a2a *6c7a99f4bed1e3f204669da053c42268b0fa15dfa94e776b4e1d822373028bd031ba51b7ff7193 *8d544421d59cbad354a7dc783fd39c92a502e1d21384ac275928f2a209049b5900aebd85f4c522 *5006331d007b46cc14bd9e92dba0a45da1f22aae00644e422adf49fa7792ee9ebc174faac24237 *10abc378e5da07b93d8f259ba542c8c44eeae510e4ca6a033c6074d7506d7c900e016b0b3ed7ca *36c79eeb703ae49ef2b1e7aa0d629d9c598569cd420785569b32fa93ccfdcc5e3689a0e2dc9fc8 *0104ae5519f45613679972665563661fd229f3e20dbdb9aae53935f55ef22f3733fdd9d94eb7ff *f1f1d0117dad5a19a57673c8d917ebb698f4285251a696ac711d85a42409ab82c8b12bee51b8a0 *264ca296f2ea9c30f36415124f07136c0a2bddf0eb6854c809a9196bed34043c7759cc873231f6 *7cf08d1bcf0b022f11f5822b20a72478e105524e3ae4840ba41642718a72bc76f840464f0d7764 *14062543fbfef13a45de5506a24659f5963474130d335372d0cf6fd3743ec8ba8d16fb60c11b79 *ff7606256002ff14acdad3594827605880f852c49174a5aa5de52d6dcf73d6d10a3f49ff0ea967 *0d1b833db5d26b20d71aecd131ff817100598589f50406cabc6883603d89fa81aefdcb6c52083a *e471273457453b9bb8e431d34062feb8c32da7d12e8f7ba025724e39a38d80595f1a5b739ebff2 *4369fa9eb508760a2a24a8d1ddc3b10f72e65c321e378e6585235fb10720b5082e90239bdf9a38 *ec827281720f652f34d9b36e3e8b6ec7406a7849c7af1b148dac62f168deeb8ca52fee3190f5af *bed8e096d9b460c5719ad0eabac30fc35e2802ec1c76eeecb901efd07f6c8d75c50dac1a160bb2 *3ac5eaacf6c98de52d716b5390c6075999a2f02dae7fdc2cd8c74c7accc9e9a49f1827e3d2a4cf *0c0533e9f9865a5f657401051acd049f4393ce6f0b89ff19dd340833c81b682bf3fb822138face *978bf0482fd9e0eab53fcb460938680afa05e46820c37c511942e5eaa17f915b84e065455935e8 *6692a5f65dd1a29afa9de376ac568601e6158377097787d8b289a47ff458c33e65ea02cbd284e9 *b3e5abb45cfffc941bb8c2c452abe7258de5705e0c931157f7fd11bf34d5eba32dffaa35e02ecd *ed0e906e154db69e9edd8cffc955a1ea8a9fef7111869e9a337521cddb2c98363419fd396879b9 *6f19f19da085ea27ec68e984a8c7b91b1bd9a1ea9cf83f67234ff96f6f466565dc942a78311c65 *14e7f54fea9ec5bf230d01d3bb6e70ff1c34f322338a682688c4eca80dc10e6f342f7697e9fda9 *f60a34a1bb2c30e89e30bca4218f96b41f6d5f9a4b4661f5235d1b6cfc21f711487d108106d575 *f902328285162f95425633d36d8289168d506fa93dc7ad8a67d3b3eff2fb679bf02cacd6cf5ebf *215319a5fdac0d9174af66ff83c8a478ed0a4d24e0260ccce41a597c7ca05ebd98c5140e45fe76 *c02e9888ae91a7c32e9a882ea72cf24c3b606125642d74ea946ca1652a66089c2d3ce8f24f5a5e *6f1ecc60b2a4d5d650cd1bd8f50f783c84e1b7ecbdc08119b0cad6e24c430e0d8699b83518296a *8d859385b5c57871054e10e2af7015192681d35661bed11d997caf3035c6d863ec1a581dcb8661 *1a2ccb1447a30dd32bfff294a430f1820a55d3fcd356f3afb5d51a993aacf2fa6c585dac57172f *c3ead9a5ce2b6432841b449a86aa2655ab45945eb85eb08b8248a0631a911fa58647d086d00d7d *ce24216e8a2854e5af2e25e00e4a323393044536ead224e90edf8e8b912c17538c49df7cd4e629 *719ec2c2f53c493f980ffc7c5ad39f103693d4a7181a66e460d1a3518ad35e4bf37eec290321fc *528a930f447929b0ec8c9a9e9da710e8da24315330297def37299153540a21c4ea07241ab2d2a6 *4c36058fb44fd277e547df25e219e629da9b92e2babea6976c5f2b4d62ddef3c250dec425fba3f *757d1d47a555dc759349c1011cd85cf148bc9e76a7b845bcd6e663bc10b1da644d29a40c8429a5 *55ae5237bb5003591bd55b2776560293562dab92b8389a9c4b468546c7d1cefc488c87d6d0a3f4 *6448c17a40d2b75ebf0ceb7a38a9f63f310278020885af43a14f1b1f2e6bc69bbaa455602246a1 *d231af21f48847d5f1c67b2930e123f85e3e77fa7eff5e9f7dd8c2c9a7ca8745690969f1fb7fb5 *b658fa8439f81173ad25c346063fa60a701abfee2f42dae48b188697712b2bc6869085a5731a9d *441823979d8fdd73e6d1767cdebe668c258f7a5f59c0ee33965ce3aeef77e5d3e7e776d46757b8 *ab1c5ee5b9c09d05b7155808dda1178e0d7764c4f77bf5358d7d484de3c559869e514142ce91bf *0c248c5faccfd3d9450a99d4142e762fca07bb72de516737aff4b83fe412787c03eb3ebb8483e1 *0ec470330ce9c339c6344d62c470bb517547b8a3626e57c187f2eff373474ecd5d33455e73cd7b *b3997f80906000980119095f5bb16c622c3b896eba5d847337dd4ce7432a74735d8934b0d27efe *8bd27708fe2c6db7215c54ad259bef01b757322effa50459393e35c2ade3769d2473787bd9b8aa *0b003e2cc4b6791ac1c7acd10ddce4b99c7f9c8cbcd254f4f43c25a39d8d3f9c27c09c5153d11d *1db1374f6723f33c77756e9ae5cf447a590571429ee2b77d299f53f274b3021e8958ca8b2f54fa *14247047ce808379baae5314b433cfafc6f5452529aa5f0fed72e364dde988a1eedb52b2e84429 *402e9b3673d24497a2add42ea127d67dd89747a1eb2ad05744c28e4acfec227a6a7f6c0566e5cf *3c711c5981a63c502f836a9114621c866de195d3452843b4161e56a405dd50ca22278edea92cc5 *f2173704561bdc2a16314f85b9348c2c4f563cc1c375b92e1590383114141a0d3461cd4a0d466c *57c919a18a47411203f92c88558e44ed5bd56fa1f9e33089b8cc95c1ea0b15d1f962767305ad8d *1e68e1a17ce9f67d60d45a43f31094c69340b0b6e24d48f05ef23cd7b22cec9979b2c00d233512 *c863b589707504e8aad2c01652d9b34e1bdfc5ee67b5f7248d5ac5b84ee7801ebf049f15900f48 *619146204c78fc12bd294c1e6fa006d329c8bb6a0e6a8daa8038e14567b9b207e837ad46f128e5 *009fb176639216422e13a11edb6b8ed2250348bddcf9d23b48878242d2e5a6f3c70e12cd403b98 *b3bd5e6f5163695bd72de08b4584a59ce74817cd1eee02b29932f697367ad1c2cdab100f40be83 *9cca00abb3821c1b408eb333a11d5c44735269e43c54d7e6d41440952f469f92a58daa5b6b2152 *a8390507aea740a185668e272d24d74672c14bc659a985748bc440c00f4b22699047cf565b3019 *804616886e6ec9f5668a81fa4dfc1cb871075e701f2f2083518d2b72e176f0c01d9c644e7596c9 *230d216bf3072e2cd36b4445061e6259a674dcb926ab50d06340f448e0f2c62ce73c8d99fe26ea *0ea67b91440951148d3891831b712e978440eb0cf932c485a6fc240ea13a1466c6195a25263e54 *41cda67d37c4086d856c0f0e4dd7db646bf7239fcd8430b295a270c44a9510511f94a9a01d2239 *4d367f2d3f75ec9f3d01cb6c820cd9a1906acccb61388f9b142ececa286ea26e8ba8aac1ab6cd9 *c38a8aceb71cafc2a181b5b571192e73d4f0fed9c093c2615c86e36048b48d244b4c0d3c291cc6 *65383a75f452914ecf27f8657852385878b4eec486651854a00bf0a470c87ae103ef8e603e161e *f40344c43cf4f0e4c5f52fafc4997057e068e141e1e415aea54846933e08068e0696ea8e6ca702 *a74911763682f02a1704bdb8388bdb971b5985485260d4c22d3b5624a1ad05232adaef279edf40 *7f98fe02a14143462f8e1d06af9dc7f734c8b92af3a6578708fa45cbbe331645ecec6ca23a3168 *278725a7711653f483986ba2cacb0f7d4ca75e1be3ee77363af8e362a98bd55fd7468f89351b16 *7af775f7b06be1bcbd693906d7cd9aa8b7b1dcc4265b37c45919c3b1f10198cc0468a780ac0379 *d45cb80ce13d8973a172edbcf084a5caaf1a030f9ce53a76ce92cbb88a299d5dac63a1de092787 *39cce6bd9c696d634cfcf54813b67b307dc1c7b99b8551193dd3892e3551f19b6113db18f1d9d9 *90851a6b3c43b52b73130b7b638315f37a67354bb1980db96c636eb1535a37457ac0661e13432a *d74627d326f68c6e057a6d531b1b94d4f62d64fab3144b0d5ed3f0b7d1944d9ecb63d806bc193e *35ce81f4d0da8eb664e182cd8e3ec2ae4353a681673196056015cfe97e636b1fa087b635e68ca9 *0075918d294a22a56f10b489c9ae07774e1b1b6d772cc618c15d1b1db573a6c5187ade9a64fd1d *910f1e14b1853d433a22847e1e1315045a6f53ccf968fbd81cfad298e7d86425e324c21b54dbb5 *d1c91b1521b5a98b25db423628026713a388f5d842cb967093e3628c8f7962d388576909374f5a *42e936d69025c60fd2f1e416ed5becd701d2c94a3482ff063e76aa58dd226d5c17041f0b82af3b *0447baa03167a34c89915ad9986f636c51468d236d01e3bb6565fa98251ecb31b1d5b5b35f6263 *1f0ba3b091a8ebe13575742ad1b14a0f07a88bf5283d78d9f1f274aeca46ed798d06a5e7b146d4 *369b325964698ea968446d5a8a710bad6a66479b165a287f36e66c7ba4c1f2b797f96ad82dd746 *9779316d93fc352c24382d31fa28c374f4b11809c157e2fa0d4832ef16d06591b25700a3917891 *032b19bbfe2676b38e8a974bb37239de421056bd9db5936d069f43b4882ddea8c9a68917ecd176 *4db2cb1a29c1799cd2d0c69cc9141fb631e9eee4fb9876778db939036f63c7f3ef6ecec09f1e43 *61cdf3696c39d2d9c70623f564dbde68182241ec7dac54bb01d2c578d4b864ad64cff6181741b3 *18bd12d9f09377a106538ddc4892629c8aee48d86e03f9f7e865f25b06bee1df03f1ef17e29856 *4f385b4876899ab57d06f919d41f4677b6f72c9497a071060916ba4575f321c5f34205dd525d1f *534131519ad5f5c40abaae868faea05beab89d630c4f5701b9dd30bd4c11b5aa5e2fbb8a2d241a *8f436dea36190fb564f7d68331896da0fd5dbdd0e9877c831c5dc1859db8c75550fa6817b682ad *8bd02215f054bf8e10502115ea48afc48ed6711f6e204895742c5d896384383add2536db2e04ac *523c4bdb8bd56a305ca34531855d36644309915d185ad82fc2c99afadbe5a0b1d63070de058fce *46040c3be1611116427d7c0b7636c0d9c8112d98c19367398604455e6246adb585ada22f1aa681 *bd58a06320a38bc8a6d606d61d1fdf681d75ffc735fc0beb39b178e16482f584a49e941bd82191 *5a5d103be75fa68d289d144149ce97942c29dc837c5c4c974266db6ccad4a528c0677c93e32d08 *4d12cb104e99f23c85d933564c8fae4f8a03a7f029e3b8ed539248c593a4b83e498e7d0782c218 *e729dce8910d05c4c2809392b118e494d4a54cb22513c92bdda4962a9414d4a23c614a34be5834 *85fb034817046e9ec41d82e0a4b3135302fbdc839a488a6b92a25cb506f3268d769b8552f8a49c *c739946063512cf06c127788a7a308699ea2fd418713c428192395dbb6469c9862baa814035a0f *ed0f49712609b15e3b84d5adf3146a06a620c407d7074ae2850225a5c98b032c9ca1918e2c694a *a01418fef506b98af559a362b0cb05b322ad9258aa3835cb63ab2c6d55907ad412b36b740acca6 *e9957010dba769d929c10977d5b2efa10b2c872fbe47ad82888dc25abd60ab336cdad42a598d98 *e2cc02ab5e7b34c62bd441f9db9c601b9b873bc5f1598c14346dd4db36ed88f9c5981d356ec51e *15c3ee16ba5983f7aa18b48cdcc59c8d8a8a61fd72f06697504ab232583dcf2773ae327e3cba93 *d6dca0b93d3b14cdd364b00e1268a1e5f99c0c414a934194491b1db33619e081fa2866edfc98b5 *afa3d9bf8e59bbb285394f6723b5432dac03bf1b16c9ba8e9a0ef81e982b11c8ed6307c35d1ba6 *a6c3620b9285f5166b7022231965dda6379e60048ec45e23b1e47bbdeb7a3a90dd0e1a18f219df *58ef5542a6be9a13d29a9cc74db53d406d5085798378da0822a3ab4a39d982a385477791e94145 *57cae3e455d15761af30ab3143e5454dc46b27aa951bfbd044b83dbcaa324dd63bfe7c3b777402 *2633e108c5fd7a6d751209a7daa4192d2c1df4901c780e2616ec42e2cc826cf95921acd2850b31 *aba773fdd616ad5d0b3151f58f4b31de73b40a3ecb2233ed5cd865949250f12c51339f0de54513 *3345704bcdacec46666aadd9a1d26fc841596ba058121bbdf62fbb4b9659b12f36ec8cd1a81d56 *e2f5317550a931d1172723899818c84722a5c436265d0bdb056ad20077b20cb25864e016b97b33 *1c6ce5589aac59135fb4633bbaeea89fc16ee32036edb562a2e6cb3c81c117466224ac83a6bc45 *102317f806e1c90bf6d903df8841137fea34225ff1ec30721d6d78ed80134a7dd6cb7f1c966133 *3c0b7054bd8891bfb0f58b4bab6fd89c963239fd24b5e4c8702016b69c89650cdc92fcbd039e96 *61a4a48e8fd5e38365b83585f23d4ce4c88c8ddd3a4886e8109769587ebd0faf3c054fe2bc53ec *953cc0c501d4ae51d0a97ad38e299d834303bc05d030eec9b5518d317dce23f52f0aff23b55329 *36c468bdc6286935803a500f46898d3646ba0d6c09c59c4407e991c9db2d115e04b1439663b80b *2a1bc7481d1afab7880b8bbcb2d3e8d03c3c95579e6957bd6fa7d1b1bc326a57f7090747b6d0cd *1afcc816baa6de8f6da1f156e6adcda2f7715f6c5578fa7521c5f57002af904e1cf892066b1ef3 *add1abb0180d3740c7355b1b016b7ba9b1dcc4261baba8e7daa8c664a130251885af89619e6c6c *2447c82d416ac890c4061b13a6d1b551520499586863a38d996de9d1b551cd13712f37b1c9c6cc *3a5b63ae89c661774c4ba8b1a98f091ae566294f5dcce45962a98d4128ae5d2ca276b1660af531 *cef3a060dc9a7877b166cedaaea85b8367c917ecdfbe1caa9615719c9c23cb152492923865c029 *c2499e8fd48d52ed24cc06d7a74d11d6d0cd932465e8530cb18e7d4a8bd9bc67bb9c12ccea990d *ce5346d9203ef28d9706db77a444bcba60d214374f4ad68083ac9c4c0a4cd589cfa5714a75b0d0 *27a12b5233c349c19a672986714ea8cd0a36a9994935656a26cc620ad8999b7904497d4a1c9ad9 *55750af314d4afc9bc2a49287acc538ced0a72f0636a52202363a643acfcb42f059147e71ca4b8 *2ec922d2728ae0bd6f525c97d433c4ad25984d31d23222e42cc97b436f189d24617d86d37a7da9 *9ad8096c68335755ae3b5c8cb370617c815a69b573a3037fb4172975c059627500be21451077a6 *1528c778131fecf728f334929521eb8e120c65ef693b90f38e276aef1dab44dc3509b921b28d70 *82f1b18b6b731a8b555be77df1be8094eda6614d68791e3fb5cb4018bb656130dc14eef5b5bc57 *6eab18a6b64a71ece283d141417d7ccb3d2aa1a7fab4f1f6a801bb0e31756cb4305e6ce507fbbd *a972a2b82cfdadae9e2732772bc9266c34b41077cd05303e9e93c6778bbef83d1e072179639743 *a14d35a4227ea8397f36b48e8a38bbde6191755c04fb6197453c03e24937d51c0ce9be1d2e289c *87e436e85a724b7ee984f1e4253a54c563ed51d469e089a49071bcf0bca1c74dec389168a7211f *82c4106fa39a85757e72de1309c6b8060ea280024d66668951c20d8a9238a0112f20ae21ecbb56 *5343d09e160e8d2ec90bd50179a8eb48842b3a62d5b4a68bc2b395ccea5b83c7bbdcb194f2d2ca *af56851cc14da15b3ce6c04233ef0749385a645b08998a109e8659e89b30f6e12421edd051825a *0ab21280f0f61213e042118fe23b6b0233da843839982821ed9b661d1d09a736c4c1c1101c7126 *12e56d08aa051c25393a6bc334b521ba1220e540e25393b44f9bc8b737bb26637f64bc9bcda73f *6bee4869cfcb9237140c8fa452a3e7895953223564ef4e3c4f2d338ecc1c8d5eb64dd2e8c5ae26 *d351d66455b2cb2327e66fb311a39069e52114227f24d4fa30b561e4a1c15ee243cfe48693ddf9 *515e649d112e562b40ef28f6b14689bc08a95426cbecb25d939f418b7657ca791db894669c43b9 *876216273255286122c607a0f9ba6726644aca949879deaea9afb9916bc8a44d889a8598a0cda0 *cc4b9b332af23ccc20d274293472bf31a9a31a6447cc393455aac5080a10133d42587612189081 *66d287ea5ea07e5002d23f2f14506820b877c76944de566497836d712771e69a06fa6ec0ee42bb *06e611bc57bf1932b5b1cbf85850f6b20991e48238b9255186625f287b4f7bc330b0734709c995 *886ca582832e984b449dc45989defd86acc5799946a99946e6d88a614454c12232d91467501a0d *24d43db09da9c1fae128683e2bddf204dde785424d412d64f6e7f64fd503d35759ec47b78920b7 *94b8a34d7b2177429b6684c856d59d54ff3d95165b21dddbd78ba0e4d4b15a868b30ac2e8bd340 *b26323a74819ab35faeb0cbc0735670827c310ba3d1c212ef1fb18c2491941b7c8118e0d236819 *42610c5b86900836ad7a120a4d648a48f410e98c5e02819990b637d16d9221f7f4e368ce0de89f *136226ff881b673ea7e16d12f334ac8d2695c2aa50a39046a531272fd3c630e769cb3443eed1cb *748544e62c735fc8c9c5c4c7f2f220fd406a8d40e34698ab875f74b975dd1a9c262ed32cb7e31c *ca63b7f0b2bf1eb6ca202830eb4ad0c4fd9614aa3ea4a806d5a082303a0873d64054adc8101c45 *836af13a845ed351bccebccefb2c2b522226948a5f45d84496a53a18fd12eb31271d1dabf63df1 *cf6a2098b994aa79603fd0f948c4df011812205d6850cabf8046704b72f5dd347287f3324dbfb6 *18f89df4b7643002ab0ebd025c4e1eec6fa58da47b447d2339bc9aa4be498b09d115f9fefc2208 *11d47edae9738dc9f0ce2e7ad29f6e84b3a440ec07517d5e1112e946d85e6722141d596e2227a8 *71901015d014466de101ef72ee646238176331a3b9187b54054ef7af671b9e262110ec5d89a63f *d90867eed181268a9c10a752a6f56a888a23ac6262d552e6cb6c7776d3f1dde56c7f3da6bbc89d *1edcd40aabe7801abe09347d68165ecdd00634fd4b1e43c01ef0310e08c43b1f895923ac41bac4 *92f4fe190e4926dff29c66c229a414b8be9095c09690bc9587894260806d889a82c8218c4fc988 *8134a0e62091066122750369814b64e58944e2420afa23b07af078578a5da9d3d849fdaa2ac17f *24edf03f955cdc13bf97cf5dbd8ba312b52ab4d506e3bf54ff0121cb701fc4047751a0a2af64ea *e1884e0c70b01bc41887a2148d8df7780529b238856504437e72bd5ff56419b946b40c1fe365ad *cd160835ec16d265cfd4a4d2f998fb40088705b15e4fe293c627363723730f5c3b781d9e6cdcc3 *c23078bb243771f54d20ebb38d4f32c1b0358b71e41fa2541313949520fa210c858d0f7c4fa9ac *e7ac35624695c560162d97e2b6c589e38e38e7649b4cf2b676c12447bb68939dd5581c07715f9b *4c02fe243fd8982ac59e9f974633d2247e1911a5e289431c4114410d01204716acc803e303901a *51ee2a13af8ade2c433ec9606f4ee2bc502ad281d41134aa1819351daf96f3822172663414d211 *6139413a3d9beed78e479f78b0349bce966e5e6db09757173b75925453ba716724323108a96824 *226262117b06e66239c4c9e018a030e491fd15b226ab09d9383ad2bc94d06561a7394c84b65c91 *56fbabf48cc5c09095c1e6a9c74b062ea213e9249185653d169017de812c48870bb39be2944947 *036ec491ede44e1b23771b343c1096620d916bc205113cc606414e782c4df10642d59b428ca502 *3983a633a7907e06a99ad0405003f4ac384915262e84056d12b54786886b665daf6c003820e522 *6d11e7f008a5adf17031cda1bdd2a01a5755c8f589abb3d2db59c6bc160a924b46d25999103c0f *8527e832691d6a858e553bc405b583840e817d6a079864341a33b583846e5e01e103a64efd50df *a1abe2a3aa1ff0d060aa57ff9148b28be3ed58c74586d77bbdf7609975e42bdd6c589b79594644 *7606e2481a6cbc011b56824a13cbb0d46dc8ba9356d5c6631c70c32702d9878b65003171562598 *5dc85fd364273ac20bfc522b7732ca6ea9b98f61949d2df8500544853b111df782b28e25001479 *eb92e1d1052944c97814101137d1f9b7a4af1b3e846862948bb7bdf76c61487b0ac8544fda44e4 *d0e38415c05fa71160e948ff07da675cd4225feb433b99787262c0b6f1bd20d1f690f90dcdaff6 *52b4bfca60f0e0933a02188cccd7cc0f6c247c5cfe6e47016dfefc9bed2fe7bf819c1dcb42356b *f80df82b0334a1336a323d86a1b03a03a0e7857eb9d26353d8f2358df8873a9124df002b8017db *7ad28fe0f224d0e0d879272a4b5455d243a24e14316323db941e85ab242d265de6203deb1721b2 *eeccd2d31391595e8aea4e54c40a26115868198ab2fd8410b090535088b7d368270aec4a227255 *31f34654928da84936a2704376b5a629b7758097c0f40d24f48ca4141bb17f6b1118460e510335 *920e6a4cc83bc691fa74c41ead977de18ed58677ac48c6f12c4cebc6afe7d069023369344e7d48 *2df7b417a7ff068f64360dd45fd4e79309112f61c0d8b7985dcd852645b8b444d0903b89f487d0 *51b6b3a2e9b0683a0db40fd2734def710fd27877306bb9b9336bed1cf7a8ed4d0307d3bba667e7 *b0a34834bd6d7bdcf6760f070b3bd3fd3c1c498742e189566d0b7b42e009aff1026271c98a3794 *cfd9375c36eaa391a6e28a862aa21602365046b2e81d91cd0db0254be890136349c63533798690 *dfa8100d6f216aa41f262322247941bc6f8b68e2831e815f64fa947b7804d3473409daedb0a2d4 *05f82e4afa74e61f2727dbf3a10413151a50781960f43ddafc0011066100f9e72998ed7d286255 *fecca689f00e23681f84261345667accd418f13e6626c44c7c350441364d4c8195fee641c33c0a *e165626b43681e73b391970113369aa1b10d23319682ae9317ab05f1e5c8226c26b2caabea4116 *cb9982ed3f2a541aa91354fc2588b77438d98a06192ce842b0f23100ad62c7000319df4c647c43 *5a924cda90ca21805d78291227326ee019f2999898503b0823972ec42326b4794f38c3a1495eba *fe8a2f9d821a318921029b0621aee41c61407e3f822eb27608ee6951e8c98e22134731314f3121 *ee0213a647aa145aad8abcb4ddaeabd0e4eae5cd1f9ec57a79f3aa5edecc8881aa3e90a4f02c72 *adc225f078fa0f889c877f6ed71d5b308fb7e10ceed75abf5cafe564c0fc37acfcdaa5bcf5a01e *afba5aae35ec53d7abb5301718f9517b59b7f7d0e8b848104414c7a7fffeb96584da6630a6c0df *905663991217855ad195396a69c32c185fad4c9a2ca220b83b2889b8c7c19b3b6cd832b6ba9bb8 *14125bdd6a7de62166480e014c8815c85c23147f780b375e6015332edca48b8a7201d0b2e8e6a4 *bfcc0ca5e30a4439990910553a134d269615cde17442fd7812e5092d8bb4f93cae2ed32574fe59 *623f0ee227d22b1d40d1635c7860aadec3d6665c60d73e0817a288f161bb0c47b385ae30709f6a *71bd31455b7834ca9c65d8214340c559388a173124154bf0461bed6ca48109837a38c821d11646 *9b69e65be055d2bfef8091dfc0d22c4c5e8d70f5c10ac71ea69502f545064e0c5792445ab008e2 *094d0826c90447bf2a94ee7c8a677a7380bd3700542c41cf0132ab985971cc754bb249e079191f *a426629b23bb0d5ed76686659c8cd17e1ccd188f4264a0468215613436f9bbe1653f659dab95c7 *c34766b47c8adcd6d4f5083f086cfb42fa280cda77b2bd53fec0f65e3ad8eb28545ce39c90be8c *94a7bc945805ebd1d7063f91299ddbb3ed10aece0b2e8de79745500047fbbc92e69181aae4516f *cc5487a4ccbe38c70a93a9e11cda380517a0245044280c8b90a7bd789db80a45819240c48df28c *b7d0e0ac22282d64b354c812d49091a740ee844fc4c24ec999216caba12c38d3f9b89a5e26cf03 *cb0e23d83fde70f8d71df3d25f4046ccf6492784b5c31e0adb9729620f71d7266236cdcc194d87 *b7674fd5ea29b0233e02667176f01ce372dcf5092c446d76c569ed18bbb89384534352ccf13eb6 *eb13c8706e737c1caac4b6419aa07190468763e38eb6dcbcbed0c751fdba279eaa199deb13f6c4 *e384bf8b71bcc80d241c79e1509c7c7cb7715b23b3b74c47d8348e3e5f8849f6b4d115f1224340 *5cd726c473603ec77578990c9147a6201b76c87ac141c266ed1d2cb5b42a5f6f0e2c78b32bc96c *0f66e4ad97c0c7c3cee6da96666b616bd75001d334636fdeb0868635a3bfbdb03be6a53fab8cac *6d76cef6be43e384a51247773e46cf8ee7ea1844ec23f0eb3b828e16f71c483399b2b848a1e594 *b81297c978914f26a41d6124fd8809593a433e5b39303e6119cdc18189db819323ebde238ebe3a *9976f231654ffd23fd24a148876313460a5d948469314c641e9f887827de29222f2f13fa5eaf56 *3d689606de4da1a623cdf5302197b64a2f87ba5459bf372dec59419707369d007db1b42436f046 *e0d0c0d88f2042046c063ec0a662fd4f805116199bfe7c14bcf38ef37f7719a90b48245a93c064 *efbe9a90bda12d00b1f767e40b2c9202cb9b7d63525343278a8eec3d6f2062217b4332354a3cf9 *2674f79db048369e61d31939df4105d061dc0d69959bd0053d95bbc958bb0da88c6b98c10172d5 *e7c7118f99652a6544d964e5d3e576aabb5774d896fb903a251015c3fd4f1572b235a7246d7a0d *27d28bedb205c847876eff0bb3022064917394a124dbb0c1cbd662a2a684e5a365e1bcde3cbe9d *427eb9dd3af62eca942fe43964d7915d90dbfff878c82d3e666b6a680bafed74db210c5d66f689 *d899811dbe74b67e6ced48505a80f2d8426e29f13150b37bbe54721466466b4d551ff865e2d026 *f6050e1605b2f679c66a3cf3b35a81d6e8920ddfb83749f7eb1694bf3425656b340ff2ac31ec6f *74c08e812ecccc9c5278eca4e8913fee407eddec1d5165079b55f599cbacffdf85fcbf54ef0474 *ca1ff70b497b86f6ebd9610019b3f8f2a85fbac88dc8f653327acac7bb3322f36adcd0019fdb43 *c19d7c3e850d1bb5233257253b18f1e78c5704a3fd6e06196f9ced341af850e86c42ff502c53d3 *c0970de1da43c8cf9ee8d98b99fa1ae3907049b6a499436416981d9766d21580709654914ae611 *74e12a1a3f79b047d811d27b692483499ade5e4c8b131bf91a1e155ea9abf8f612b7988dc1a35c *0b637d540a944e81dce99f2c433cf569551dd9f4966d390a743951a7a73c08e489b60b646cf70f *9cad3b00b9d33f5986dca33f46860671690a78670982b8cbba9a942a93613e981a9b7fb8efaff2 *1bf7f5fc0f082dfe13638103ffdc312f2dfea32d0a68c7b49a5c6d07eeba3ea21afacf3db23a8f *ce08db819733671c8ed28ce087ca11a5d19e36a9040ff4e138a0d55e298383a3fa708429cc86c0 *f5e052de8ec47fe08905e6003447d950e185b48f8ddefc203e6bf4f131f765b2e143b14fce2631 *dfd03d44d70cf4c3aba61d2ffe89d5b0af10ca383ac64052063019aac3c5ecde3164484ee83f95 *0cb9d33f59869e42cd1a32e442eec910f69e30872218911a07ad6e46e4a8c058bea232ed55f322 *c68b1a8750ba274d840989091e35747dc271619fb11cd7e997575966616af2bc1f16052354ca38 *640e65dd156c4a824d59b06934d8441c6f269ca1a52cf284966301c482ef84847012e496124f81 *4296a9bf549e39d0c47517c30b9e90668a8c6cb85beda5d8243ac9822f77c963b01f72c7bed840 *a20011ed8737fe42cac27aa1185dcda106509015b23154355b21cd95745f0001bf008d25f07964 *15d2987a4f5af089bfee840fd80b4de6df30e0a40ce34b1742b588aad8198029bf1870bb15a6e4 *80131270dcfc06fe05a50028520627ca198ffa50e43847291319e120b2238cfb046841bf343f30 *c8f677605697ce040c78c7e904cb25793e4b24748d406836c8c7a02585fd9dfadf30135c48ddcf *bde67477f369d290dbff1877a28ef975780354445a58ab093a56d25bd785e76c755ec4aa215c08 *734f6215695c10c20d4f54843d690d714ff9d8428f5dd1420fb92691cc0c2622a48d666308aad9 *18183b27d26c943e92b99ea9fb680337e8cdad2d67457499cb412b1f721503089719191582e2c6 *1e125fb6492e54a84751d875eec4d7a12884071d7a681082368c0a31a39f2e8719644ecf2d40ea *79945dbad63fa19f0aa91d9a42eabb83ea9c0686aa450855ba81468658cc4e8378b6305e7aa556 *7a632f10eb429157672fc32a3cbb7c56ed4def9e0dab6761b5aef6a6f2a56ef50cc4d6d5d3f095 *f64446a59ce5a41e60080ad7685145b2141c27e3937b067635c2b7b4cdf6304f80dd533e5ec848 *f778c69df01fb7467f0519251e7eecdf213a5d7d87388757399ea57cb15e5dbe0c41ecee0c1782 *685f8f8fd1d413b91dd9ac812b9099fed09514e30c225d90d2478cf38439197247bd98ad01f812 *c4c657ba183d1a724ff9d842eecb64e36d67ef80c84812b667e11c4dce4b905b0d84297c0a5f37 *5032e3899ae665360cc45d2666c1835e74b48426a7b4d07d89ee91d13f064dfe1a47ffe8ce6ed0 *648a8c1c3db48025c8ccf294459a9244a6a91b11532d87de00f2c2e77398c8009e0a86d15d502a *c804be3e4aaa3ded8a0799ea145746d4088f46eb7c74dc9dfac1aeb8dbfd021e4f317f7be32c39 *9a0cfa783a2aee4efd6057dc3d3583bf9e1ac97cc2c921847672b83e6bc2723c5ee2445bfbeebc *908c7e9a96fe8b13f81e98fd570473f9cf377f6e7e1a296ed2f9c559387b19abe50eaad070b307 *5da7f36fe13226fcad9e485ca11185cdcf1bf2e03eff4547ebe8cf1d7ff138267a729f3c5e0259 *6a44bee0f17dfb4e48a1508f8bb8da40b7f094e17fed892ed71ce9ea8e75d9535db5d085935df5 *4aaf587ac1c52db14e48b39052413722559b4c32fc26f310b7f5509a89f61dfba6be6f4ff5cf15 *08f8eb9a1c76fce6e1f0af3be6a55dbfb630372fbfb90acffc86a96f2677d4e0e5ae83368f51bf *b39dca37459951f1f212a84406f3a41ec25b9fa7ed450a53411efb3add31b5331f5bcececa50a7 *cc6b4f6d77cb8d9f77c1a10e77470cfe51bff38c0e0cfb72ddc364fcf119ebdf5d18ee2d6eb793 *c6c93bf329a5c924b5c3708e349c90c282bdec337bfbf798983bfed5fd31f765b2c153b15f209b *dceec6f243639999c786f798ba98bee9cca18327d5cd1dffeafed85fdcf033dec618eb09e78b38 *be5cf3d2dbae706ecfa1e59356b8da3458e28614cef83cb5dff51bd6beb023db55389f1d5f76e6 *fcf299fa87a516a9c3ed2ec4c0d861929b72961bfa90502cf5e13c7fb7a38093f36d6cf97657fc *70bd174fec3e265ff7a80e59c8df1dacf891f9ba4775c842feee40c5658e84cbf54525fbab0d39 *9aa5359ca8902343a57ee7949dc8d434de5de5ddd69045c9262179e522e770793c1492383acd43 *b7ebc1a9e18919edaeb16b13666da7b0ef23ee3bed533657e1cef6e225d85eab52be8deb747911 *78c858b12e28c376939987129e660e2f30945bba7687eed00bc7867f7519b1af13babc0b976f0d *c3b6ac3ce732447cdc8686002ed8f630c6b0235a71a02e45b0a4e4916e009fe45e600c699f28b1 *8b4c3a3d92408cd4b03ae2a5bd5d0969177fa09bd006d304411309c595101d90d1fbe147ea82a1 *ed0a2245f2da4021f598dc27d592ead91262282318b07b1451270c91f247d6a113b647be54d3f3 *e5bb7cd12e3154be65b7382c4d0b979539902162357ee69d451cab4477c4646c7f20d558a01120 *87be78cc007a182675464fb5d1c631a48310b31170ed10f45ddaf67ce2814139a621d9ce0e8d9c *4fe50c5383be762cdb92029147e9964004305415c5512192f092b1a35d8f912ebe1cf89a6cbc13 *8b0f854c5e6f90535a85f5c15ab89ef08978d940ea2e63d16644748f7ac7a0427a2e4e6fe3dc08 *3432141042a19813cd4135812681c4de3d0844ce7f3de2358149a049a09121751a1015f20c6d58 *174ebe8346fa16a1201ab5a89067488f7ee12a868666f4372c425e3ed907b9fd8f77434171168a *730a2ab40a31a6e9628518c10dcefc8f5ecf844f40011c01dc40ef15cf46d2e6c980ef0bdd512f *52c6641745eeea6a2a6e03c2724dd4aebeca0307f465d210db8ce17c4da249ec66b31ad59371e6 *767957484b8acb6207896bce24571ef3d9415ca346cf9beeb888795cd4261aa1018df1e49866cd *b3d0ddb5a1bb96e31cf06dae0b5a1a569e88b6aff01f6604c709f2401bfb7c09a0b8ced555a85d *acdc7c21a77092902cf7d86e046e6fac0c20b50d3936c797419223554f56530391bf41c8206298 *861d5fe90e309cbb43cc906ef52a749601623047dabd19d8cc91fa88fa74223e7324e6148842c6 *5b977cdccd70b228ca64969dd3f461821d15f63da5215d974c274f0b0922273a62f6c5340f291e *9ed3f77a430a15cff20b0d9b9ceba0d7fad7e56af469f9bbb8236431aa13a75c2f57f55c4fd839 *57dbd0cdf0f091a163005bb4f2ed2cebc43a227c91268ad8c3ca69326c82dcf6821f0dac599c85 *5317663ee48268c5fb37b8f708768b99bc2f663c7506a7d5a046d5321bc900ea38c9f8cdf321ef *c8343bd10cc4076940ee3a2325c1936b243f25f4020bdbb2648c415797a5297388c3d285611ea2 *26834e1b5667a41c767d811860c5bcecc96a22b309a6b3ec4dcfddb474916d5c23c96dec1f3193 *e088e328164d886068d30ad8c9db6a1c52914c8e28747dc23e49bc0d993de40dbe894a9ea20dc1 *8926d4102df72af35a7b6e82536495b142efd550bf8a148ecdd68595ed39d55eece8c40b360177 *7cdb2387e4d4286358bf8b19276620fa1868c4844f907b77c4ff8b258cfdc6df81bf859dc2954f *e7db0c7abfe3736349b67e3031edad1840ff55ca5aff2b94355407ea486aeb793e2e0b29b323fa *7ca49eda9c3a5baed0d3ffbe64468f51c5c3419f180a21dd1602f27213e080b4dec144c40d4f56 *d0da1a69cdc533d7a3f04b6c50807bd88e817998e845ef778bde2a27b627adf7c9d436a4d7ec62 *8819897cd385c3f1a15b7af0983fd7b48025e25e49d185a96979b88867697417ebd5fae526b2d3 *4569f6c1989c0ec558bb59d4de69bf2f969aa9929abbecbb8797d95660dc1d0b035efbdb449763 *b1a94e1b4b24f252461b230bf7b14945328f62d6520c38fe4107046369470cf656a43a4dcc750f *d1ffddb818a3a587623c9129e66c94d444cc2b912cb914433e5714255e3d18c9438e6d28ebf160 *8cc47dee2c5ed220c6938d9616467c5c78ac081804e91d49b7cc31e5696f2cc6b829cbd5593c7f *b93973eaea4f3b4d2e42c63f52dc785cafa5192cda608ddc201162f34669b2c093f641036703bb *bce3c131f0640a73d3622dc885d4683a7294ee67abcb91bbabf68bd3c8a4c398e8a5fee3a6005b *b0b7356aaa9d1a585da0c60656b791d1d9c8c9b0669a9c8d18d8d4ce8e5a34301a18527f6567f0 *656a71c7320aab29c6827bab28ba3b4429594b49ff4d5a1a846396234e8874c866533de0604862 *7d909020d7341a741486771482928df74e39ddd7c0707983d10d1a388cb1810781931257819d8d *20ec055ef4dcbb0376c7bcf4a88c5a07a7f326f470b44d33dec49a3e32f0a01d6ce13870c90e88 *aaf46432ba5833773c314998bfd6951c76e24a96b5a981354faa4c156d203e306c2c1d4c29989a *8ae8bc763119c7e8837e2bdf5bbcf72ac609738699bad144bb80ef4bb40ab28ef993bd00deb0a4 *0e9a9a58b631ebc4af8f0594606c7457cc1cbdde1173bb1ee61363eeb11ff631b7f4f05033b4f9 *1a73fbfb26ece9e2d80c866bc786c5658ad9210ecdf0b7a89169178d91aad11b88ee4e91b159c2 *3ba5bd8b6bd49ac70b83e0070e1629e5d745cd44a299a46107dc4f64f59eba319183f0c6e381ca *05d8ed7a20e3372dc3c1c069f266e1e707bbe0d16cc7751979c9a82f79d3c1e361d805e320fd54 *d83a57773692fc326cd89260e068d915b84e84f1221b7c9976c2c204ac0de239bbadd4c35c426e *58abc1544391d0d16604d5d5c06107ec9761b7eb81c1c2f11898f750e98120c90e381a587a1f66 *a0b39105d87ed065d416b6a34627c3de66e49f023f2e237b8894a6a3b3911e5e5d10e6ad16d84f *56e604ae107e1846799199d0860d6d19d19615d5458d450adb7b9621f50d4bea1ba69497d9360a *b95aa4ec626c466263c2ad816ed330728762dec494619cf18f8f8db927671371b078ff83a2cc17 *36311a7489e15ce962ec85b311e096623d67906d4c4c3a4233c4edf007420de6fec6a6598253b8 *f3dd205c32c818c6a888eaeb3179ee9f5c9f1b0cb70e466502c588ec6e1c99264fb4a737ec8a39 *9c2d54d3e6aac88e873d10738ffdb08fb92f938d72b44fcc46b4e92dffb5183b90a9fb02b511b9 *f80b642366064fefa9d386bfc1b716355d1b6d63f18cb8dd734170fbcbf9525f5bfefcf1bf7fa9 *19053ef1def65148d885d50f4d5d3e13d1963e54b2d2ae774ba13bf4c2b1e15f54467c969bd56c *fbc208c71326c47ff41b83860c89f699ea33b95386b67cbd9a6e4074e5e359ba7417ab5552fa4e *cf9761cb5bf5fc97dbf5e054f8df6d4661381a26fed13c88fe3438d91a25f3c068bf838163a3d8 *5718102292675fe032f86f0fbcda12cbed5fa60dee36084f4a545a316e216ef090761f2e64c70b *6d32c30533843be272b1d9388fe34695f438be70304eb27ef41a774d02d9f36c8e8d93d287fd26 *37098bf183211e48608bd2401e9af7c4a14a9ba5386de64115467de150bc0262aa0a80eb13ba78 *9ad48e75291ed110516aa4093be2013d28ed8ebb2ec167f0a9b43b4e6abc59dc2dbc8057604c12 *47a11117589a259e2431e657aa86a74bd078bc2c5369bc58ad3748c321e7605eb5313748d47b55 *5ce32fd1080878af19f73d7923426366279f75ff1463fde3528caf3b64acc539cb51bad37c3116 *b573fd4862511b731c25c98763908fc470177239867b5ac879f2c8c8c32e06db62128b79343170 *cc3bb0aa48a2246e55a3768d2532c35d8a955c31e688184fe661c967772ce5ad89454457329634 *51cc359b986f636957cc081ef4302cc4c4c5581ebc11ade94add4c194513ed63307d2d8f4e15d1 *b5136681f519622fde43b7acfc326e59b3689b4dad594dcb19f11239d9779885b22d6c6349da3b *9a8d7c5a22a51aeab207abdfc78ccd032c74ce46937938ce62dcee308b65591e011f8d05c62362 *eecb64431b29d3ace2fb9a6863da530ebb4abbb18ff51d2e43d3ed06396f6c3ef2388b19f379df *a3468336ce2295bea3268836ef0e519be1738ce2f227e83f57cf743b3ca3815de66edb63a56019 *bb5d160b6eb7c58685f341d89d6abd61e1ae46e362b577587224d61988684a304eb527f2f83468 *7f5119f52af361370c19adc6f966cd68decbca5b985ee68997903e7a19149634216c0fbaf18463 *be666c6234d328832ec827c6dc31afee0eb46e6e5ed5b619c93658c60197099ef7386775f132bd *d84e0afa5008060964838905d794e1bb58dbfd7b0623f1d1d8e587fb62431773fb1eee8d8d1a1b *711fcd46b5c347d47f08d90bacfb238e4cc865f989833af94a594e8678a00caaf1a0257913cf80 *21d9be1c564eae8a8a58893c92345d878b343221c35d1fb86709b40dda94991d01734df2e79269 *3b075e3210f583677bdeb40b12899e179e069a3ac80c9565ac6216b725d1cc5e01151bf93214da *50c9fa78e044c63eb961cf66eaa3416b59d0ed42cf50309b14d938949d4369199a04720a728306 *0b6967cb00105a4d3c45d159089e85ac5817982191ab7bc02a96cef609895dad70cd06b77ed6b3 *cb646ccb3b7810ae451dadc729896019a624e3e8bc89f869a3f0c6cccbb40b1e4d465123a7c3de *64e435f214f86f19cd607b071bcc4367232d1c3dadd956d9abaa8136e634ead56a0dc9164fe1d1 *c650fc9cc7dcbe87a7c4dc97c94614054fcd26345b544faa9bfb32d9189bbba73691493f447bab *f7a5181ddc2474641b265ae6278a22422ab5f6be3bc3c16750c84ace7bfdd0a9bff22c7419df35 *7c11ac3c465412d48d67b4669f3bf1c0e455b9bc33e6d983823796cd90b15a6f55a0e163c3e199 *c1d51a48c05bead3a583047d0ccbc7bc1d5767d46ef3aad999b4f8592cdb58728684b7049d2bb0 *d9111b4d8c3617ac506b6393a202f1b383c4b28d2173e46dd4c606c3adf166d8522c643e2e6ca2 *1a9b82411bd6b42dc512dcd56d28b656a6c62e4ccc6e96ed8ccd05b33e26e789f7c7d012c83e53 *b7fa82fd8afcec2f016236cd2d25721a736b51e466adaedc0b44ca056713c90abb919ba29d19ca *999a3412cca28dd1f4484d0483cd9eb4c1a3c601caa4b2d8e6a251962ea5418bb6188cde580073 *a2d5eaf469208f915866a75f2442cb08d4bcc869199a806e07282d9934c66f9cb37d228a4bc495 *7a6ddfc8c1429a93c491ed44839dc39c36ec4d2b2295f3245a796d5fd4604f1aeed7a44c698e1a *bdd1403a62210df66e621e1a4200694eafced0c436ed12d174b4a481d22e75deb9a5c420b28fa5 *1dd906b334dd0fe6b9635f24513c4d87d258b3df1098d1067bd2084d298dc8d16003bf1ec145f2 *6a9d5968193d69e977c51c797a271547264e02275733d512eb50517cc0128952300349dda3ca10 *5339cc55d00c0f704beb6aae1b691964abbd94b359837467867335949d5d14514625aae85573b5 *3dda9e7e6ed0c1c8b59e4f233585985868d68bd0a0506c63aec976d3e433d958186dae61b08859 *cfdb9853aca9a9eca6a9dd689728349ae65c717f340b15c1466b9e2657d1d3709e9a4f9098a3aa *79af0b00293b1a6462a76bc8d788c101d626b31d9846db58b3c7c45e4ae06ec019e4f8661972e4 *451057903c2f5782266d8803b734c934484cd6987f81a556fa40a18df45207418b2be4cc280aa4 *23a2e3d66e89741f98417bccb7cda74e36577d0be916227d6121de1d3690cc90207b3f0a4541df *ea8687e8a240323cd5b10569f6530507680d31fa2afe76d06a83dbeaabfc72ebd142c537ffbc7f *c43ff7988ffe2232a21bd6e49f1fd717e0011c1cd55a17f4138c5745062016adaf7a70e7c42ee8 *3b67f5d12ffc5e962f9338cbb76ef25d4585baa38eee45f2086ea806f06bbf26bff6fda8fe4574 *f51f31a359ffd451cd76542ba19ae8ec40a075d87a44365e919b7f97a448b53709c034857344f5 *8bea32f9026e05d86ec03d83b1d4178d14bbc983930ca24027179eecbb8598823cce21f24ce32d *47d5406e2911fe6467402ee5ae0d49b2aad129cc4c5fa074cebed63cdf9ea910679d09a2b3c633 *c83589b98332d260dc408e1713f1f5296464d2eb1531a850aeba6bd5e8d5d56a5595d397e7e465 *886d1bbcea579620cb34c4a741eef44f96213e5dc32c26b860a381290d259448321c137d473e0a *06e64d41bdcfaed318e2ebe34815d141d14083426e29f131909b252ed4669a4358ff41a0d1714b *276e195c480fc27b1c22d91646bb01867cdc0a9509912e2672b21c134e54d41f69524d9e9cf161 *c62963f1897d8b8973549ab2518d4124a4d2f3d1a13beec5be2032d020bf64d5b8129886da13d0 *274436186ba859c0a966c1292bc685cb329da6329d564e9db51f3ba91651db2d253e0672a77fe2 *6998304eaeace1b6c74ca6c195de3015a38ba4a07332611a6d620dbe9d255223c012496442ca03 *762ce44effa42d8eabe06c6db4b27d5352d3506efc40795de09e4c753a17e9b434dd120f85d777 *56753bf952e6936a02706523e102c823af162062e36a427398a916d331cf634226308d8f37f098 *4982b9862d0b3c1c33df508439389f30a491a7ddd5763a393af4edc9f12f6dcbee9a4fd85162c9 *cebac8b21441d6e45997ef99ce23d9070d4d1849f48a4d7dcd0ab2f8e0d4904e8c029274e1c919 *7db11a7df98ce47c2bdb50b46138c73bb642124ac8f7da8c9eb41719eede1e096b4772441ad117 *74062f86601c4aff10e351d30a136f641ac2abfaa91067e3e9ce509e7f9eafd4214f8a5c2f6c30 *fb8f9e326b7ac4b749d0f31e4bcea8bb1b784dafc05f366ca55802d9d354a46ba3349a3f648b32 *51e5f87e24811c3b7dc5a61d0db1282d26298e4b895cb2b82f36443e490b32abc331abc26ae264 *deb89398cdddab935b4a7c0ce41ef7b19e9321825478b530b1ac11a9e73ab6536fb023c2add0a0 *9013f0893feecb6443ccdac9df91290bba7118c1acd529a8505912d7ca62a681e6ded4fcc31590 *7551aa49dffd97268f5e27f09fe70168feb9a5c4c7fce38cb2f57f9173f0745e926ef021ab1911 *1667bf4e1e1ff61bbaf74fc64c9621f9359cce11bfeef857ff7419e145dde0c915382df0a299f0 *1724669453aa2035a01f133033205663bd8ec3ba0c527a2471fa3396893d7255bb20e4dc114f98 *8a07618ec3287dcd5a6dd4152109e48d1db9de5e6c2963a6d72a2dc4b5a0d259b638ac7a3b8646 *3e4897d95565b4927cc85a3052dcdad94b9cbc6244d4a608c494d97b36a01d1ceba348e3bf08ad *d6449cb6409c9668ca17a721ffa619cd0914b48f747cd9db8b872bb9f6094f6092d0531739b0a3 *8cf85a5deae2045a7c0fdd0afedaa2aae200d15cd2b1900d241a913e3e30afbf14a7d5dadc0afb *c8b87b6a06c35f508df4767b397538eaddd33be38e13e25868e374eed7419084b081b81fc40bda *1966e62731f3e3fc09dccf3eaec29dcc83ecf8f923b0580bdccf32f3835deb582120cb8a88c39e *2e7040c65baf40453a2dda37bae715e74bfb24b5ea4c61e48d1a64068999621d93a7404ec17de5 *353514c8b64427884a1dda46cd4bfbcbf421f7eb2aaca24351847039b23ceac5e72d698d0bc4ec *7b5ad21a3ba14d5861036923f23e8834bb4ec1a741ce2426032dd4619ad755b4c68154e11cb753 *350bd111ad710ea26ff7ba86e3df23c5ab39b4c463c91e110bc7cbd0ea2cfa3ac7608af199bf88 *5965e3989d8e72541e3153178581398670996521ca828e49d88d7653202d40aa066a55926e29f1 *3190db55b2d56ccef599da289a58998510d4f0420e8421a0d9a49e133b8869e7d83d4ef3bc00b9 *36f1f0c017a1d2a7cb32e6c0b745f4a65faf7b23c7365319e34a9ba7443b75134ee4696c4352f6 *b72741bdbd61c93f2d744fcda0cf882d65b2baf0b661382f0b4e3ef774bbb398dfe591c8ade30d *425821065c6740f29e88f9e77063c2a10b27710d3750ad586192897c649679d9c2466fa499781c *b1454e0ca8f34087ec07cfea3a5c04e7616e42ac19780486528877af224c2e2fd5e64d44c5c419 *c11615d0d451649f8d15b21132e39efd66fdb5b77a2b21ae3424f73ea8a279e9845f77e4abf1d0 *afeb921274f6867e6be701df8066603870f578ddaac876e797d855ca18e5bcef8776c199c4ecf8 *799cee69e1c77d996cf670a1692f44c6d30a0d8ebbb02e391799f678521463cac82a5f20b58555 *5cc93296a51f415dcca0e9614fd42a49b991672f412a5f8d5c21b4e843bfaaac06672b6d8526c1 *f4c99a61f33105f661012029c7d9d745038d62213d8a09b44069daf00292263572667e6ec9588d *d9be05088991e73f8530e7d5bab2e1db0ccb05c8c5952c05ee548db936eac5dd80f435769ef4b2 *f42fc646ee6d5840807d951e37b1911660190320ca7e1eab3e7e6049dbf080846d171b7460a267 *cab910737aa6325483ea34ea9035b1b1c4261dbab15ebde54dcc49b42a7c62b616eaa18be9707a *d6f068cc2d3e84be1555f0be1862388e7eac239cb7590ec479f63d35833cfacf14ee1e452e10ad *f9b2306f4e244c5447f6b7495b57f84d83cdf4c9a4fab939e69ac34ed239d6e292a1882eac8055 *13f3dc8d7cc3164915db884510a58c71f02c1d8b57daa8ee873463232ed84b502147be76284c19 *b8e31154454e41857049d5794217110e581782f4e651a89a5390976ae6c95b0817ab1e624b5b60 *d4d5cdb688d40be788e5e48f81320f659177141df9dc8fb184368335ee83d2206cb1e2a9da9e2b *b45980a40cb93fc6ab9d3cdbb3277656544b8d7e0e6d04a2fc12ba9cc28fb9c1c6065d6a0f9214 *8f395fb0ac215927e3aefea437837a1d902421b62b4fea269bcdce375ef96b5687740609e2e3ae *7b8d253b2290782e2952be7cad4464d683b24b347a7ccb11dd0be7c93c29a20b1b70f193894de3 *308c6512d47563651de85bcbe233bf1afc765dd50d6e7af65dfef8ec6cfd2cac56cf5ebf61ff46 *dacfc2fb9aad5fdcab90fdc6fadc31a72cba5336429964e0108ec468d914f3ebe64994c52830ce *237b9e6d0176cb0f223324f4771876a6aae129f0bfa78c92cec3e11878556fdecd17d1c5f032ac *f836b4647045707014ab0ec4a6ccf7ba32c682db0307c1e8a5a6592dc2587706441c734256972c *a42805b82750aa48c33069e03a85192eef4ac1cb889a247b76d1a6f0d90b93e29b14374f3a2ea5 *c77d3747fb5352da1ab58d7ae4efdf32fa53648453f0f1bf8e23eb339cc5ebf397615d2771c675 *2ee1fac4ff06fb2f612685b78b606732201702ff6832d4fad6a9ca5aa0111f674d02eee2325ca4 *f3e1226c5fba752d1dd0743cfe376c7ca9cd3686cbaa3380aabb59dd9b7f09d42323d6b0706d54 *3c9a98d96b99599dee998a78baa2134a5e0a477acfb7a1eb131e1bfe1565d45de23db93e21e418 *d2f9855f8d2fd7db67e830891948ea6f9a041327618de0f05c161921e3cae689c0d31e268825f0 *4ad5cce29a62a00974bcdeeb167d07255276338f870b9827886b8990a3958a1aaf90880406a26f *93c985b966beb8da2e158b27ec54985041981f82bc839e8c326ffe195583fca0dd19347220c86e *02e2e403cb170279ad01f7590445819240bc140d0de4e689ab58106004044013676e4dca8a4919 *7b2266c14754d04f54f184033a52df32e51c30cad0c28fdbf9240f920d7536710e831d36819c5f *1ef26e78f57892f85bf7f632b99075e72a9b4157c587a284419306ed780921fa17109115e3f349 *d088761d66e2e0361875f6c05bd7d94ec4da73c15e0a0ac8e5641aebd496da173c58593cf08c89 *34f0d2152a109b9e92ee33dd235fe820741092351e904b8692404578cd9431671d2686eac58e08 *a57a9e10c1cc10df5aefd1021f21713a97c47512a32bb49699f5891371c73a7bda5b415ce48606 *6158a332f7c4b23acf96d0d9f087d37e688e622aabcd3bf6382872d64ec139b44a850a4c3cfa88 *ce803dfaa3f9082d32c89585486853e4352f0fedc69f93a13788a18ab5e32127204fd47cd1944c *f51a697f0b2711346a140233c8e8d3f80ea4c0b17e1e97a07e1df2b8a8e932c526f476395b5aec *e610ccfd51ea3ed26c25f55c1e04db7849112a90587ea3e99d9c21e23a04d2f14c33675420592a *e9111d2583da89a8b844f5b05426d34396144761470682b2633010c1b2506c218f2c053471ecc9 *bf5370c5031118292b9f43bd4a989ab330a6b88a422d6be9bc313378d6a7fa161a1b68f7b0b95d *cccca9908b0232c407f08903a01a7ae92f2f1d49ea7cd11cb1636121fd49863fe80a487ddbe281 *882aee487effe01fa0d1a200b4478858154ef5dc1721e26c7097b2460d4dc67dbcf5db318f3b45 *a6a60376c69556b57175d0909b2a1c8a5bee03e2ae4b301a1d8c8ffbe320b2d91a811c692b3024 *5b85900d2f031532bc518de39e954d68e370d2cd54415943ae10f7129ffe1c2c57308bd3f153a9 *12ed864a3c9245a0b2ddb4faee8a33573ccde3e4c186ffb8426d3cc87c619689ea61e2ce264479 *61d40a992a25894fd263582e91339bc05d4815931ea32a7175bdc80b14777dc2ee781ce3ba1e73 *5cc7f682792bf331d1d7581e9a98592c91a953812c3139669de3b82b66963e8d89ab656eee6363 *6ee9e15289876a6a465bf80cd3fe2889168f6c2f72cc3135909eb23c475b84dfd7536ed6e24163 *717f6cb431d7461f1d1bdcae12dbba655befd0342ab6c39fad5c8bbddaa25ff3c8c440f8d9c4e8 *c0c56a16f9863860157227d64cf17799d55119980a62741d94c55c18111b4bb4b885c2d00f3af7 *99aba92f22333518e28726c8d3622c826c332ec5e0d4b0a18881f48612b3147f5fcc758b45b7dc *1d1f738ffdb08fb9dd0f531f1b9663099ae8341a9b8776b54bb68b7d6e6334a4ce4455f0b5d541 *bf0aa28598ec6a945804a0e11f4c652349ae440444549f940f675d8f76483617843216f7fd054e *262f0a81f776e373b479987c5a123f27f23273a41e6251ccd448f50c6d988416ca1238d878474e *41d89c9a17d22c9e9b789cc7075b232ed2c6c713e26ee985e91171f7d40c9a1a9d9ac15213dd29 *7dd2f4616ce3ae4f988d4a3f8afd28131a488d7a3c891d1e7561d4d505c9b3b35a0ac5e4dd98de *cd0416822f1c3aea5edb9bd073bffa1c880159b3eda520b49dd4c652138b12234faef661a7213f *2e06da6a1d3431233e31164520e7a889251bb317fd58b2a531b7efe152367d115cbcb3d16c2bbe *2f16a659cc2d3c841edf138b4b3173c9819d154dac9972a1894589511f9987a9679386a362e483 *b1c800e889febc45f0f118585a468a709e8c93417185bd859381f1220767239374ec5e38e2c946 *86718d7636b2074e8664585868016bf4050f4f81edb7cee6baa7e47808767b5ea2bfe36077ea07 *073312043b12962b1006725d25cb163b770d8c634d09b24bc1bb65517812785918519226846949 *5a89a61de2b246392e089cd93131eff99e50cfe364d3adcc7a97c0fa52abe198c77b8d48d28d4a *4e302a9436ce1db223ee0ebd706cdc3d2a03d9e7d438ba9ee026c80bd4077d5c1adbc7a3f61127 *b471c3972fc675145d9f903a34d0ba0e36ae4a1f5614eafabe8c883da2d607c443787e0128f624 *db723c8f541cc16fc43e55b7d97c3c2759e08c28bcc365d492f3e3e376851243474e786cdc3d35 *833fbf1af19feb138e8dff3be8a33f6e8d4ec174b7f4429c4816381356696e72cc61c3adf1fc7f *7cf8b78c6cb8dce9ce187e5fe050ad8272b54773264e8bb3459f0efffbce280dc7c02623ab43cd *fe201c5a58338ae681859381b3c2c1c0296b465131cb62d97e7875495cedd94b97366478a97d83 *f7b7c0bba6bff6a6891e537672b3650c197fcd7581973bd2dcce17f56440daee4b0bbad1984397 *d8a479e19da77d692eab9e73d41797d2a260cc529ad344ae0e9bae9d92c6b680616a1217d2b08a *71dc99c6271ab18e69b02f2ea51116fa599aeb12a13aa091389006e600a3a6b9a5c45d6960e931 *2ca7399b58eb48e1deb452c5edd4a5b9a5443a7970388d186fdbd94da2a40561cc0fa6394de409 *99279e7a3a4997d2c8728cd2480ac5335698b826d270c6aa44445e34cfd1e96fe283974d5d32cb *d617a0823443a3b0907d7c90b883a92f130b5e885d3c489d249e6ddc0b39e204f11b40f1c86497 *e29c03c79976718d44189217a84e363ed938e528719f71ce6a029d5c9138e6a071cc41e35ee24e *b16db02f408e260e399a38e468e2b01936d8849a838dd71c6c3c74f15a275b2348b8b02fa84306 *cf3936f1d0c6d1f5ad7d41c64ee4c42e1e16e35aa39a63f302d36d89c72e1e840df7acec350990 *43178f0bf18e0d2713e75e9fdf6affa72666b71652273c087f402c83d501b49b1c6dccec98b836 *ea45b1756aacdfe839101b77c5a2db53f1b6894da07d437f5643df6d994c8c12caecec8bb9e35f *dd1f735f269b4623fab4ba398d988e3921162322b88be3cbc13f53f39cf675dbe98b4322f3463a *5bde50d6b71d37516eb5a8a208d925a8b66b777c5a88bb432f1c1b77076bd0d738764da49d4967 *faa4e92359453bbcd7b86fe2a236f622468cbecd706ae2f6d0c2642abcb3467d5c735c8ebb432f *2cc4f352dc1d7aa18d23f15e8a3bec55f3429ac747b0742434c7331083c42b1a04f2f7a1e4ddaa *5f7a3b4becd7b278ac61f158f17df1b88ae1a17752a902c736918947f9bb20210034b48149232d *6f75f89cdc54e9c5f93a1f9748d6eb5ae6e57e07e40855bd20ad17746e10c768b555dd4c60caa4 *e315cdb172a1cab8662f183c180dbb79913362a6890799bf21506b324a4713140ceebb3c0aeb32 *8762030d7ba0c14983f95e84249d98a4e7325b6207c48a09d9937cc90d215f18f501f2a9f5bb49 *ea0c37415c5cc418ec2d74f05a1f73fb1e662ff660831e92ab2d22df433838237be2c4a57924ff *e4104b7d6cd0585c8cb9e587d9c6a6465eda11734b0fbd89797f5ccc1dffeafe987bec877dcc3d *f6c33ee61efb611f73c7beca3338ef88b9e58731c555a17d214ea2141df8957129eef6bd609807 *f1982e71661bb9654298288189246b8496e351e3d4053cf7a3b48ee213c7275321ad92da571309 *630b3ab14f532a362cc4e59481e8177854c8585576e6a84a6207435512331566ad478d0325d6eb *29c8b07730f1611637c71e88bc70b42e4679d40a5195cc7db45025ad1056298d369eab64a673b6 *56c9e262ad4217df76b8bad5f2f9249a26000a4d7be28653b57173b1406bfd79381e9bf25d9fe0 *7d7bc5eb3ceedb0a511cb5211378e95eade3cb6123fc3a9bda902e69dc9fea8e7959105e109fcf *60692aaab02c77af6a9d669a4aeab89ccab21e772786cd4496b099beb99943b2252fc93c1ecba9 *a4e7a3d09bd6063e29139ad91e09774233e7e3c8e142aa33c9a8bbe3d09b76a581c39da94e9acd *876a5a4221a95e52c1628943cf0d29f428d0319b6048c772ea4447722633ab2136923c1c1bea42 *4a15935a5b004e25285c4ab5f408267b3be96bbbb20977a7e25cbb248cbc6ce892a436d489a59c *dcd028a2d92d65e0d831a962adef724fcc6c282d69c2c554b7f765b940b923750ba9ce8b53818e *0e8e6db82f557c97f1909ee1d52dabb30bbe2a3c4fc4e90f7e7fdccd5f303d3549b3475be5c823 *a7ec3f3956518918b143aa0c39ea5a8442847601e6a89416b1de2c7ea87a35bd9eb3dc542139da *b50e7808db6f915b67726c968e6ee9aa39627e4e137a41b319c3d0c57d97a1775d89fdea1716e2 *3647595da546539b231c8bb5f1b1a9339e1ed11cab5bd7602b097745daf86465504ff7484a8e74 *ff9daed8e4b65c355caa8797fc1a4d0baf32ccfec909ac510b301dadec6036f9096f856b276376 *ee120ec7e3481ae708a68a89d6107a81f51599d5aaa45208a432202808e4591ec417693b2da12e *dc13447eed6b3e034334162aefab76166648b615e70c337ea285442924652e0433400884350697 *a12c9f805a865a4b1946221a85797117d29d3451f1cb4c6ab7d286d580372cac2e5e6e53f547a3 *de55cc3470ed9cd8057b0ba725d8ed7a702afc25324a3c43125e3741cbd06583555e7a1f67190e *1492511c3e5a2d4d8d14a17a58b2202c5b82dd64224f818fca68b916b981ddac39d4e6595fd83e *12ef35d56328f629f411bacdc1ce1eb87b0b02e2553ba0f0f186faa8ec22332da2473d9e3d91c8 *8c4e776205d8cba285c453037cea987842b6de62f069903bfca2a521d30c6277928e7d30180305 *265a9eec8c272ffe27f83a42a17fc28f3b199c7aad470077ff7ae5e4f23c5f82ddfcc1e179be04 *bb533f786a46b5a30806ca974c575146316759ded9c50fd2d581e59ec01b74a30e520fb35783dd *937a944edb0bbb635e3a2aa3dd137cb909e26a529acc1bce59d909ce8204bf49576008e5013081 *9a39c00e66f8a5cef0b86786879c85a640893c26b11223ae1f3be70037ba547ff6e7e175f00d24 *fafc9c4d5fb3223eef82f6cf7f390eba34c3e30cb2b64fa438c7bd0e90f9f02c2b74e9480c4be2 *0528f3db321989054307ed7c9f078a7c1377ede0597d51a34cfa222d6d3403bc0d696495ce4613 *56bac44d393a748c5d882ebbc2a3333abd067fec8c1211e45de18aaf96a39bad680561f68ef9b3 *ea914b4ca013729540ca3c2e6b05a2f56e4a38b6a15e4c36455ce6721819a29a9d00395a2843fb *844bf6de5be69499a62cabbbcc1ca7ead1654835eba3408cee66432cb75aba9cb993f055defb19 *246d14fdfb1859773eb24bb57acf220b2e13cfd283907c81b3b22e2163644232880b5f61a126a9 *17cf43260334758758efad080e5dff1cbd2ccf61dfe868ff68abeca333626d0d22912c51b21a24 *5014307a5d4e70900bb1ceb299b82a10fbe997e1a9859d5d5b9e02ffd96684689664213b04af46 *bb3647ba6957a811290ff6ff8a143b78a363327b0647fcb189dac2af33253ce9d73d3d0bc908d7 *d5f96f58c5b3d29feb301c31a9ddae0714397aceb9635efa37ce086566869d8d2cc341663e29aa *f89d4933e5ed39241b83c0ac680212320a2c7e61136df313ac3be1bc0a0b3c1a5832ad6e0d0516 *7635c1b222351a6484e0f6863c09ac044e4dcd09e6f542d9c7a482b56743058183ac79283c8f8b *b0eb1facce7156aff2cbe055bbb33cbfbc4c2ff72526c75f6c468801f3df10b133614af3559286 *67ad0885a26490eec48b0590c8929434a0c754f69b5a399a2d106cfc458a7b31eaaf6afef917ab *9acdef88a79c75b1e3978e49e97edde9bdfab78c76a3cdfe5f374f5ac722cb8de77e7d8e4b87d0 *914c1bd28c5acc2855d865e294089d12bd75311a84398651727e996b1a4f85dd533efee365743a *a3b40aaeead2665a8cc07cab32f921b3ac8f2b1ae28947898a5c5fe33b2c35e8851f2a532486c6 *2508b63070b864597934044464b93caad7a835d45a8bbe489534936db3f6831180ccc61ff5e12a *91164324a1a4c7b745439fb36ae821b766756cc863c7f2cb4098dd9816f6268b1db0a30ca56f1e *0b1f99d131355a6a0e4e5ebb48d06c1f958dcee28a14763dd8963f35db212c8249c987e17f4bd1 *d1306847c1ab8b7abdb1e3095b2f5844320a7624b020e3bfed14c1eee762240fb903ea8fd12b2e *858e22f88fdde90666fc365ad503a13bf6c54767947579580c43a6d9b67e19c21a6cb1abd5f588 *88c14b5a1e89d321669bc3440c3787f552704039c780e24dce5a234242c2deccc6e559953afcc0 *4de6132fc4558c1873e6d3617c2a8cdd476a0835abe7d2a158bca90c2eb3cea32734807cab96ad *becc7e9fc3481b26b8e31ca9a7c5846757987684b909d5da442f6a6b862e5087e41de11f0f89f6 *86719c856ed70313e2295673c2558e01f2ba40331fd1f47c950b9a4e70871c7718addc882a7b61 *a711217b8fe21fdca91ffc89335ae2fa47e80481d980cff124f4bc885f1852410f60078d60227e *c40e0937e474fab21cba1ff6cc560c52793a981ca9329eab440678b8ba91311ef21ae3023cd2d4 *234b0ab6c882e284e798bc39bc29ea68e05526810734f123cfb162c297e988004d0531e2ab9c14 *c355bfec0526b265fc6c71110237aa9e56ed33cc60b47c35864c16e606acce89c66732391f2291 *74123706727f6e1276c7196b00690c1621b977dcc1b4312f08491cb08c316dd7933a9eb93f1d6a *979a84b2b45e64b1d6d438e3c058d1550cac815f81ad2a32c54d555b43093442011682c4a497e3 *c28bc611161561eb235cbd352882241b47b92caa0de5429cc759944f6a34bc10e75d9661677c54 *f52c560967b9df11a70966104d90a42e6a178824e2ac166f381afc31308fa6e3856b9019866656 *dc44358107cacf0b6756cbf60056ebccf2c982ef857ef3173231423613a3858df97c6a6698e924 *d3a393c289c59efa7a15771cbf3f887da99ab67832c623caa334cd1b1d1e59893ba2a9137238e3 *51f06c0ad3f5544fa3b05833f7740a8b43eb9e4e61b104f7740a8bb9ea71e2475358ccd5ec5f2c *51d81e5623ef164e7cc0a4b6562ddaa5b3a07b95a20cc1c0b6839220b699391e8cada496cdea62 *daa5d55c9d935054b1ea59bd78f75f9eadcef8e25df0300bf31c75dbf86f927f20f2c08dddf8cf *318037f88cfaaf4a13d57eb2fae1a8d655095fe993fd4518d376d8bab07d09d7254a4bbcf7723f *3bb68b1113666f98e4bd34c9f90a50f253b7f16efc48069d030e185154eec9495e2414661220db *69035769d2ef488d23dd9a27cdc51bab13c8284d16b140169158ec624151d9dcbf8531179ba829 *b08bf929ed8db9366a70b599198763eef857f7c7dcf1aff25fea62d826d746e1af6b7fdc1bb39b *97fb4663b4e3368b99f17671b4758d83c51430f4d398371826de85a874e168a90883b77c8e48f2 *f48aef9848af0a47abc685f8345b9e8165717968da2d3b5b31ad572e5d5ce4f5eae526c9d12be4 *3e2a70286ea8331f77945eb39b6106d0f8e4db38af478e49ead0bca0bc08ad4f531bd7d347c4bf *0cae4910924c7121cb5cb1b18d1bea8ce7780d3fd3f26364e035b671432d700fd01bcc1e1a7e0e *370fbb25ac5bde4213770d067adcbacc4d3cb7f16078a41a8fa355d1553df560301cf8638be375 *5b225896ee626ce30e3540da69aaaec5f8d4c51beca73eab39ba3ec1c6b50441a771571cf1c82c *0c8406796fdca84b39947b700c9364e2b18b738e82d9a28b757d82b465ece2fdd4c96ddcb1812b *4f3e661c657b49fe76c7d7f5aeaa747971b94e2fd319cd7e4532a419c7a6b99651d35361368dfa *c94836d32ccd2d259a34bd34368cfbd282933a46f174108e4cd3335405744b8992c6559c342ded *48737d22d73b8ca7a5d55544958f83beb894b60f72fb1f275951a603698eea58d7347df1d834ac *766527b5b36de2de34d20efb2ecdcd13a1ded3a9690e136bbd61c5362f2ea58131f3b094e60ebf *085ca73f9446194dfd8ba5de47a5c5bc4566c32d251e486399a449730b893c35f6a43149d734d1 *ad1377c084306b5ad4bd069268d9d8d4a6b9a5444e5b8f71aa84ef2cbe4cc9788852e155131a9f *5dcaca31219daf5f363e5f8e8453d4e5a68ff7cb4fbffa74cb51bffccce37947dc1d7ae1d8b8eb *13da1af40be6bc49d2b4e53e982dd9fd9adff004b58b1b26a2e14a9ac58be25ee383b562e61ad9 *13b783ad8070253d2f3943838e198d6d9565076957130dda2ce3d13cbe9fcda1136f7b5f188e8c *bb5d2f9436acbbf8b433eed194ae49989a382a2e94d180b89149404bc5ae5746aa521ccc985736 *d79bbf8667e17189853302b628be74c3aa918a90041c8a9b6c897239415131976494ec5098e8e4 *aeb83bf4c2b171f7d40cfe56a3bfca1a292bcd4a072675d362dc4982b815b1ea0d439828aeee0e *38ce3b6b56adaa15d22aa9da6e34e5498e9c9fe31ca4259e0ed07bf9835d5233f37b2f06a0c26f *4cdf75658f97441ed62f07969a50e74899f0e9154975cbc99a2abb224238988c706d46eeec6941 *62e56347fb53b9bb212335ddb2c9a94f9ddad46996eafa64fe945371d4f7a72696fa0375c224c9 *f0da703875e27594d6597a8993933f981ae41810a5922ff3b175c39bdad466d18d6c5d27a9b02a *3932b5638425c7879c3adad44476c55d2a56d24972609907f7f687c3a9bc8c461a357a89936555 *dc9d5acb86ea482aacfc923c69f2ae54f4e73d35a92804b9806bbbd766f3cbdc664c659b139bca *f25166b74bdc6c491e6c2a1287ca19d854466a4e250b164e366cc3ae54416a939af2d671f2d424 *2fa65e3052b7b409535da33b97e43e95abb33b95fbc8d01743fb76a576728bc78c34d99bbf1da9 *82d43635b1906514a294bc90ca48dda40aaaf3f09f0d85464f45c0bb7c3924e352cc0ba93f9422 *1ab6c64c009ac4452bf9e294d053cabae1c38f64f99afa14b3693ab40d52b2ad1ea55a4ade1467 *e64feeba894b0b66c3875bab98c2293ac4a9218aa6b4ac78e45bb2a7c585798addefc94c90acab *bcd15b4d38a798846663da34977435a6b81649bc3500d294a149e1adea66db786a8af7cdbeb594 *36cd52a02ccb44b47b5f58dc706c8a3be6a5bf65f4b48ce6a3d6290c0ea7ac432cfc05b2875b76 *913c9857957c08bd40bf71f400260593e089888aa309c4bc2f5aed4c87e164946b72727ad007d4 *0fa7c04814d9359550c890d57558ed5882039ab148f2528dacc11372fb7378f157f4dc157636b2 *04e7bd30df320919a177e18b8c5bbdb5d601567ba8e914d0dd72ca68263d51a70c4c2d6165c04b *9556dbd579ba3c1f5697e4a0c9127ec1863adeb4bc8c9edd4fb2cc82c779938c26ea3f27814682 *c202a43d88904303715d5e14f252a9632077ec8b8720b75c1b8648f80b232fb761e44910151a44 *999d04c392e779a4dd89c32d4b4c54ab269dc0813c42ac563472c3cbed568c5aac76d092812578 *7e0c371a381c0fbb533ff8636704e66122cc4d42a5866a9a8f0cc454256712a546a1b4d111822a *0120d848939cdb68e8df289d49302b2115bf1760bf08e70676bb1e9c0a1f91515ba3e55a374d8b *e681ed0b6f080feb434c3fb2244aa28fa12fb4b352cbdc66b208f521b37565456586d15caabcb9 *ba74a00299229eaf50e140a74114bf9279a4752e08b5c20b7a2750fa4c1ccf08f13b41e818ba07 *1a282f859281b08baac827ab8b427911625d8c858cbb2cef4f83520791f57247c70c34c9941108 *2ee6662ac753c0099ee0b90b982fd470a26830b974ca0d540d332a50a3552c146d028a863e6bcc *9ca5018a84337c5888780e32f446e5848b741c306988473a26c4242ef750e88e7d717f481edb99 *0fd3f0f40cbf508dfe8c320a6c3a427dc46ea8385c79909473c0439bacd8905fded7905fe7d900 *4c5fea04ade3fe767b162112d8ff321513a240bfce469ef2fb47c8480e2de7e637ac71433a9cbf *0cfeccedf2e3b91b5ee6329c946b3af631f09f7146a4b4d90bc7ac4310593aa2d5d469444b203d *0122e2a070d65aa81a6794c34a1061420f6453ab6dae3450a726019d9a104c178ad219a34b6e2a *1cac304a23856591c35a64ae291ef8a48cd47410e149606545542c237810b8e6c41929cbc18a5c *825987be00d75f624b604b05113ee9d2bb00af2e622e44698abe3a3e71bb1d9fec2209cbbfee98 *97fe3d6714758406fb1bceca78147e2f884f0be328cd7b127d69a6a160eaaac5291eae21f6aeaa *0706e00b99212c6886fa0db0d3c20a54bd7840ad38b2a92e6f11f146494235392300a678413691 *e3bb1467ab4c2fcd5300bf4575b098e28e79e96f19fdf1328aac81c1d12455fe8026eae8e21479 *c42ea94f59a7d55024feb41e67682e088edee60373c882d4dea0b337880c15db0e0a23ee4ec824 *5c484b826158b9d4393c2ec16ed78353e1bf868c0c2ed801763662e1d58463cea2ac4a74223f91 *cf899a54c92379db67ed1caef1b05222468e9ef6ae6a1c6ba6aa5ec9abb66c50695e215ed1ab23 *977d9028e25403fb34c829b8bfe4a55a2b14445d3168eb0d440a898919ae3cd29ca1356152dd4f *dd381fbb7ad2f8ac0612652f79aa2674fa1170d1aaa719ea380f5340af1fdb111de06e0754635c *70e839444545957365d6f5e1dcf3c323c33f4146eae66cd175af0bb94c84e93ca13f11d07756b6 *6a039309285b422fcd81943578849c0e66473a135cbd75241209b30dbd09470a270a3387a2b818 *c88c47ecfa643796d88b4c9b1be601bf49c823bcad13b41ee8511b063a0acea137e1604397d959 *3b6ba888fc5013d8654a697f8ed84f13f1a9e2e9fab2ea945dc1db35901bb1e738326c1d962c78 *34d9efb9c420c3485d8d19a161b41e21e1f02f00af219c7686eed00b127a092731ea8710b7791c *ea34494fc6c67346980a17715b8496844e67cc9a945987312199351185bd3d10c5f2ccde45cfed *7a702afc979c51d80f5b1f2b7e06aba779ef372405547862a9d5a339f10833842ed0c50f33cf6c *6238cb678593d80a27a1d495fd0222ec6cc45b375f6c66361a78306df6d22af2b122f453da2087 *abbd67f50472cce30c86f59a6dc134c2165e46e541b60f1686d2a61e268329d1052663a465e168 *8c2e5a98bc04902c2b46172d6c4c2fac999485f5f4b789f4b02ae45bd89a8932ecfa07dcfad505 *2c9a9be8f78cb9c26e71ccc3b163aec3ec6c045be617c7196dfefa3157985ab63cce50b4f05d4b *63ee65689d8d70d1f1d0982f0c33ef9a9d30cecb303b6cd831ce87c61cfe04b125422f59580b6e *dd470c3dcc072e58e137e88c02b6976036665a808320b63581acccd8a019a97de6602cc246ad9b *ba9570de377e252ee239a17358856797e05ae2fed92ab16b09e40b487636a1dbf580c3d2aba932 *e1abf4725d8da67d468c275f7df2cfd908fbe86b8dbd8efbdbbdbb70cc9fa95d53a39db5ab579c *6d2e56abf0f26c405b01e3e806d953396e434c2bcf356258893b875750d884efb1e968f74dcc06 *fafb62c62e2ba68196c2c213173918e65add1c388c8ce6c16970b219e905a28af83be0c6098381 *e5320e6dffc2b7fa4a6c26bd2dca3ab5d0f783793f34b4405fb7b71da6e6165f33b7cdb77e07ed *e83dccb8a507bbdccdeca3236ed78353e12f9251fd7bda5cfb1219198bd1904d675b672bc920d1 *d1b05b78d07870c9165de895d5f9d93a9d5f1692f072139d1e2f65e1d47b934228695348eccced *77aea98700521b3104b78750a72ea5beeddaa420d4489aa5a7517c9b539bd265c455d99b12d8d4 *c0a6b879d2787a8a275ffc6dd2c194c5acfb8c16abdda5c4a594c37d34efdabc90321e1c35b1f9 *36aab26ef883a0b43943a4cf38619494166b4d0a89204dd2d466a46cc63e84ac2ff57d3447bf38 *eb9145cceaf16861f8eddd87bb52a2baf66e8beb5286d94a364b710b2f8d8f49718ffbecb88c86 *434d5b4a99f5519af5519e75ed2c6561aecde7519aa5e47ef8234f11a5ce4c482dcdccbe23acc8 *64357fc45ff7247a4eb3d79bb355a1f3e12cbedc6cd44254297134276df804b2568edaa01351aa *23df0cc8e085cce2958887e24f93e4bf899818e3cfdeb33da5081043a20ba5d5186d2441540764 *22d5aa91b9a8db2cb385b78b193e0846df2e8d9e3c52593e0853c626c5b559a368d39ec64cb941 *224c896d4a75f5d714066cdd3ca53b841116525c98257515f27e2125ce52dc3ca9abb5af62d1e1 *1477c44b7d5bbd6287feb979d2e352fe22329af7c852aff529f3ce9ebf94e6e3381beb341ffe34 *c39ae59406fb0a1ef5380a1b0b7d4adfda594a3d8cd6d53b8cfdcc8a633ffbaa30d2b9ed1b5c37 *8fc9eede16d7d115cfc71aacde6522ada151cb2195b47220bc6f7312fa286a24658f452d4559ea *10c8dbf6d005bdcc2c777dc00a28a2be0d85b3cc106625ec3a57455f314751f9a3f570b6a992c1 *d999dee4abcbc5467b41b2556126c892a112a42e1a92861507b9c478b8c33d67b00c53366de49e *6299571de48a932a33d1c4f24cdcfdd4afb7d29bba805ff2aaa49d257d60073b3be1eb6c374f5d *7e92d62018bb06b5ca3e2f061bcd1a33433ccfc6020deaa394d52592e3d1e9a83453ae1e69ed66 *6a4deba738a53584204c863bb6893d55a1347f28cde1b9ee8e6e3d22ada9d19cc62e11e7e5b405 *927dfcc736cd1dfbe2a1b49906e2b119ba5d2f2ef597e96c96a726dbd9b3c44369edd0a3abef7e *3522b7b91da33547c4599a338963ff62bf52ec4c4bad830d7bb3599bd6b66531cd2dcc70bdf268 *969616d394f6efa5414d298b448d95352d0b3da39242114d370ae5f466114992681733236ecb72 *26ba4b16e2f324f41e1c34a2c27998af20356e6935af3fdd9264fba82dbdfcad332d6ee3cb148c *57352d855d25619a5b4adc97e679af9ceb43807a7ab47d2aa364f46207d2dcb12f1e4a734ff9d8 *a6b92f511bef49a4fd12cd735fa2367fad9d4d7f7c934a93f898b4bf75f6e1b4bf61f6e1b43f65 *67b71ba12c18b89e901fbb08f4696ed78bebcbb355bab80c6703d966d43f91656671b7ff05d11e *ca9fbdc9c4b6ddf5098f8dbba766f0b71afdad465fbc46616c5f784cbca911faf97a5cdc1df341 *3a22ded428772f64bf371e6c1cfcab742ff4f1d4c5731b0fb8bba609b17b21b3ce7ee0c744f846 *8eeaa976226c36e1b8789c907caeb72fd38637b11b828729a7a53b7a60c5bcc0afa6793ab4b048 *458d385baf75475c9c3d20ee7f57fad860768a2cf12f3dd89fdec89093c968fe607f7a7303cc68 *329a3f4028d85db8615fbadbff81556e26bf2fdd1df8c0b46dda9bee0e7c601ca78d7bd339236d *9bb993e59474a169d2b6e4ed0747a74b46d2b6a9fde0d874c9c8be740ccc6d836b996c46fd8343 *e9dc36f4a06332ea1f1c4ca7b64db38cba0792cef7b71e4877073fc0b681a5d2be7477f0036c1b *b9c3df9dee0e7f006d9e0ea59b8ce0b4cd38ffe0b87493516d1b1a6db51f1c976e32aa6d633fc1 *f683e3d26d46893d5f761fec4a8f2a4eb419350f8e480fba6cb619350ff6a5b3464d364b382339 *22671e502734e9729d0b2588e7b70cda7e925ff8016b06464d8fe3e174b7fb83b309ed16361745 *328ab9ffc3bb211bf6a14f3c90469a576e25a4b51b7498c843ce233e4a178aee344fc68c9555a2 *6932b73db16e7447dad0a5054d734b8907d37c9756cdf197121f93e63831cf5eccc6e25ea09d69 *fd6ee8491fdb34e78df3cde5bd8be3d2dc533eb669eed8170fa5cdf67a1e9ba13bf6c543690737 *d6fed6d97febec23d28eeaecdcaab3ea5fec4536d738ad97cc4e4f831aadc7b390c64b7f76f672 *a8278c79f5e0ea60e9fb53dd312f5b030a5cf6b44a5c3f67da6f5479f69647b32f67f4172615f2 *1225edd424f79ddcdc26ab1532d2a5d9a0b50e87b51a76bca41aadef2dd97c6c1c2d4b355acb7d *ae46e36f59f40aa99d225c8d1691a81abd0330ec0c6db2f491f0d8b36aa42e95ae796a13a18fc6 *be12548db91732d0638cf354f4f1dafdd56af495c06acce60974069566fba854e3723ed17c3fab *24b555d34935669598edd39b6acc5367e68b52e042dd96c880a731991fc7e8eb2ca9f3f2824935 *195583d37935e0929e792586de0a05ad2a167b635aea0d94f8fb5438cd3daf0678919d9bfe793b *5ff94f147033eb9c793558bc6c53f9be57a14754dc80c96d817cdcbc4de5fdefa63382636eba29 *5085199baaa7c86c67d02ce8fb4819555b0d435ab51a3215db3e12a2d454239a54b37aa8bad5f6 *9165467b8bc0ae1ae63496e9239030d4a48ecbce0d859fe433bb1a487f6bc9b2d36bd61ed93c9a *4e4875bb5e3e8b45589b601b6ba0a385be19445de9a072ceaec1b5a246afec5526edef1b9eb06f *062fa113018d644823bad5cc6ccccb0abc10736d942f5f690239ae6e51b98fb97d0f8f8b912994 *748fe9bbdaf7f26a424b75e1209ace1925e65887c6d7cfec69222fb610d3db6cb06b5d1b1d4dac *19942696646c3926ec3147e7b17c64cca1e243ca081710e386720cdb1b21c6be15eaf904be2d38 *4c0ea3984ff59132a1d6133da420c607e21c69f6261c16bd4790f0a8a6ade3265d5cace305fb53 *6f07bb990d3be26edf0bf3c5a58f6b81ae4f786cdc3d35837fa7356a6fac66bce1386315c71352 *43ad517d59ce04c315d7de6ae92eec6496954567a763437446d3563168eefeece3962ef87aec79 *6c1366f1863c7389f3b89384dcbdd0c6fda1787f99bb7f6cdc3d3583136ab4b7c912dfdd47fb3b *793628fda8c9b0f6c32c4b3a25ab6a936ac478448835f1910742bc890f4550be239da460bde848 *ece8a83c64b2b7b5a70109acc8b81e49acb77fbadbbc3d5bbb7479b95a073ea460388aa4532a98 *e5138c4af1019bdb57d8511bd2a0f5477669922e0d2cb14fa68f27d37d75ed70a6ef4c3fdaa9c7 *30dc1d267dacf3159f398dec771fc2b0529ddcc06ed78353e113334a0d6c6bbaa3696dfb55d31b *1a9891216b677b59b53d3268c9c072a3df68364606dd53c45b94e8ebacf5080647926cf9783e8b *135b92cda53bed84d5581880b130006b738446a9365630e7e5b83bf482fcf5b25668e3ae2bb1af *c1d17177e88563e3ffee6a84fa21892341937860514b1e8f70ff05273006ea5e5d45c6286e3599 *58096bcc84469863d966a47068e2adec602ad6c6a58fec151a4b719dc5cb7197ba84c3f176e134 *53ad4d786cdc3d358383353accce1ce8a3439d1a770ccace5133e8c56880f1f99de98447f60e54 *9ba3221e1634d995161177a20f6a060e6d6007ee26f486ca0c2b40ba5867f1fc6971946a5497ff *34b6abbfac38864cc646593178a9ffa8ac484206dbb0d528131ace2af2ea3fc81c22b748945d5d *d5ec2434dc93f47ece861bca3a8c0dec72c39ab5f0308763ed520bf39fb3911e3e653177a7b30b *cbab7f771a371e5cfdf9f2d91e76490612d844b9a8209ba2cdea8f671469f5473518c2cef0e6f0 *cbaeeea845fc3eb36e8288fdeaaf27b2e0f5d56559fd2f65f5174785a2f3e44f872e747d4213c6 *6ef62d6c04f0df5c29fec8bf2333e26b58f2ced0711378765b42714ae81efbe15f6b46c1b81b26 *0aea18b061d89e158a3ce655a8d7b78056aa9dc0f398dbf750fe6647366d0c2be9dae8e3638b8a *9ac7c4dcf1afee8fb92f938db7770c3e261b9673098d347a2816b3555204a300779645c0876313 *b3e5c7c9c6d4ca0986df2c5d66cb03d7d6c9c684a441ccf0cd83f54f57a3ba655a638d8a2d3431 *63a20c2ba772eb29db1dbdaa5ab39ab90b630d5d4970b43159a61c2f0e9687b71cfd6066045d8f *69356e523bd746ed0521bcc429d1d4aed59828fcbcc927351c20c71ab64f56196f72e55b585977 *cef2c3d4c4721b1b2cfac816121eea56f6c31f8ec5e12c56e54e9cf86a9d235698c30b8ceb131e *1bfe2da37f2f19358b2bbb9c77731ff4e1bc606c1148562890649ce82dc3478289d81c64f12c81 *0f1206c62c0812e08e0a202a236709e9acd40a93eef04159c9e38c8f3833b86ccf124e6adbc9f6 *dd03d25795f52251822d093f87d2d986bae6ec2cd1d934ddd0ef44ccd3596951e36ed78363d207 *af3574bb1e9c9afeb78cfe96d19f6946c110147a11f90f245268eb38f1923b4b77bb1e1c4a3f1b *e33a8d177183f713b9dcf03948d698cde438e62071dc6657aa57a95b629f194cd574c724fb7677 *29f3a9168ec7c1c60b73157dfb025b2b3119dc74f1a98b8f9c519bb03bbe3f74c7bef8b78cfe82 *32e209b8c836d8d0ed7ad086f11c2796d573aaaacca76cf4d7ad620a6ac4b5c38922b385ae67e6 *a900a98ed55b943f069cc8975d7163bdf9becd8dee4ad7edd7b18fa9748695b231abdb766d54fb *ba6bdbc198750497edf9d05363eecb6433a8183b1e688636bf8f09e9c7be697baaef62e9fec9cf *8686b778e826f66650db01977bcea6798c5ee16be03ba468d1af6b292e22decb43ec2f357fa3b6 *c415eda95ea056b5bed5ac31d6b406e230219c2e326c5b23f10aeada8aa6354139e68b917b1bba *48f5b1ed6e88cadacc7ff2e22b956be24e45eec1db273be3bd690dc5ddce170e99d674f1de4250 *5a7d6adc3d3503add1a919ec68a23bba4f7674b2d6e8d028a5163d7c872e8c164ef1a4d9aeb5bb *6c0d7a2441442e0711d529f733748aa5a135ada1a9a0fa2b9c2a14a53e322b8976f269f11d6ade *d3e3eea9197ce91a85ce0b242fd0a7c7a94671bbbe4897b2b223d51e5413c05c31edddf938053c *2beb1368346365b2c97574ce81dce8021f4c501c04f20c25c232647711691cbbcf33272c0daaec *879a757629f131907bcac716725f269b061f8f87a897ac5096e94057cebce82d41ab54b8be821b *ab496eb9c4c1c115baae6c6e647e0f0425600848478445f30dbf6cb554976b52b567f1a55baf8e *61fba69139bfb817aa0e36a60588cebca9ff8dc68186394b267447d55cc6460fbb68e23733b542 *385be9234a1ce44d911485cb75cd36ad97d1e083590a25ba655348a9c7dd74c988c1c0d76cee84 *98d67b03b19e4b0e1944b1f94972a368e65b8b800c5ca222b0ee4b67ba9713ef9daf2f4f781766 *cd7614fdd9ea0cd9a38234202ae8d9ba3d903bf8623c0e72e6e6a12528cfa1b00019d347cbeeea *4c625ed0f87223e4c81de4da44cb229f06b9d33f5986dc97c9060c561ff7711c5ac82d253e0672 *fb1ed7ce47775600790be13c50ab1b273c5798b8de9144517175a0f2427326d6d7495056d569dc *ae2627fef4bc909a53e335149b5ea64f4c675addb308ca3aed9b11e0cb315449ddc8640b71c579 *fc4e6603d5480ea8f2ce57b704e9057bb3387293c21b511d85bda12a4a9c6ca5c79d71674d65b0 *4ab64254451347d9cdcfe2865b1bbd3d560b559c6c7c6aaf3acc537398d8f50981548ab68acd11 *df6c2e7ca42ae9458f26c1c4c76ce3510edb4a156ddc19ea2555da1bb70cb9891b8b9cd454e070 *3c3615747d82efce63cfe3fd31e5e6c64828b1ad7173447c29de56d0cdce4cf7a7a5f75410da12 *0dd79f9690d05460313eb571179a04df1d906f1b9c5a9cadcbb77430faf0c9dd10f7c7a843fb18 *6484e902b6c157c1d59b2eaf3fbc76ffe7ff397d78fdabfbbbdbbbb705beb87e7bf3e1d7d79f3e *7f2c917c7df5e9f3fdf5cf9efd7ffef1fae1eef6f3a79bbb0fcf0a7ffffae38dfbcdf53f5fdebc *faf4ecfbfa4179f757571fafef7f7df3afe5edf3b5c35c399f5f5dbd2dc9e15970e1997ff6fddd *c767210dcf86b36757cff2fdf3ff74f5f0e38bf7cfaf6f6f5fc4f4ecfbe7571f5ebfb879fecfff *f05f7ff6e2cdf3ff78fde1fafee6d58bb7cfc7bbf72fdebbe7dfdf7cb8fa7477fff0e2f5f3bbfb *173f3cff4df9f4a78f2f1e9e5f7f7371f570fdbabcf99b17df8452ccf3fbab0f0fb757b5d2ffe1 *450829ba18e2b39f9ee57f79fe0f57b7afee6edfbf88a1bcf64f2fbe196ab1b7b757afae31a956 *e14d29f1f6e6c38bebe7fff8f9c3ab9bf7571f5e84751adc7a7bf6eca7e7ffe3c3cdef6aa5ef1f *6e3ed51abc78f7fcee4da9f6ffc4cceeee7ffc1ab3fa1fffa5d4e66ce5c22a6d6ae11f9f9f7fff *f0e9feead527487f16d6112a7557ebb1291f5cbf58c5127cbcbf7eb8fef0e2c3f34fa5269f4af8 *fbf2efee85bb79feeaeefdc7dbebf7f8f0eafea7d213571f3fdedf5dbd2a09efae1f4a2d3edd95 *6ef8fdfdcda79b0f6f4bcd4a5f5225ce42a9c4f3d7772fee9fbffa4c597c53beadf1eb8787fafa *4dcdedf6e61574dc43f91afae0eac53bf7fc4de9889a7a755b926faf3ebcfd5c06f6db17dfacfd *b370b6dd969c7ff9a1d6f6dd75f9fdad0febfb874fe54d53bbaf5fbc75f0fcedf3b734b2ef9e7f *babfae1f945ef9fcaae25b81a12fb9dacfc26658b9beda0f2fe2aaf4d34dade2671cf8ab0ad7dc *af9f7f7ff570537be24d4192b798e69ebfbe7eb879fba1a496ecdfd4263dbfbdf9febe76211693 *367568cbc3d559c9b9f4732947f0ed1af2ba7152f137cf9b8efbd98b58bf7ab8bebd864efa1a73 *81b7af3001c760580fa5948a62b5e905474bbeefe18d52d352388ed73574cb03f5ee3686d201bf *29cd78574a7875f7019aabfd5a62a5b96febc0bfa9bd517bbd46cbb33239ee5d991d9f743a9477 *dedc5fbdbffe06dbbd2a23556a040876ffe38bb02dd5a67ebb2f14a022c51ba85319bb760c0835 *6b11cfeb98bebeaea3fee18651e7b7cf2f7f73f9f0db173836d0fc95dfa68a82d7af6eafee09c7 *5615ef714c6edf5e971101b4787df5e9aa768314f0f075cda736dd41eb5e9761f8dd8bdbe74ddf *d5a1c656852194825edddd979954bf2f9d569bf283a0f1c30b4783fabcb4f335b613a7bece9d1e *e9b011ab4dedb1ab07d3c7cf0b0abe7e0ef5b9fd0cb3f0a6763450b70f95ba7d4bdfaecfb64808 *c28ba176f52f216740a5d79fa162d4800d4cd6f06d28a55cb6fdbedabaef9fbfbfbafff1f34733 *151fe8c3b44e4852eaa0c55ac66f9f4f7ff874fde1e1e6fbdb3abdfe01bf2cfdf85fe9d33246ef *9effaff0e25f9eff6fc6a5abf2e2fdf52b2ab1e0ddcdfb6fa80943f4a566854ad4e1464a51fa55 *fafffaf9dd6d199c12fbf57f2c3528b4e0f9af3f958ebdba7f7d0333d5215dbfba8528567a5b89 *33d76c55a77653b707ca0066f355c5bc524957a8dccdebebdb9f9806bca99dfe9628ccc7cfdf33 *866f01e94a71efeaa8c6da7b371f5e7f2e24e727a4badfbed8c0587cc23508a84ac531eae36be9 *e3af5fac57b5efafaf3e4056f56da8101414fd507ba6ac098528bf7e5dbb91c91a10cd9b0f3ad9 *df142cbebffbfce1b554f8d3f51f3e31f1abbd4fb8478d8861537b8850e0db17ebe8a0c2ab2d56 *f8edf36b19e3af4b0e5cc5d758bf7744977f07eb48c9f7eafbcfb795f615c2dece9cb85a57c493 *a643677cb8fb544aa8e3fd07a0b5ff4f2d4f884fada96be8c2abb25ebe2bb30f57a99b1a2933ad *62d49beb7b6e512c78fcd3f3eb0f65dd8511871ebffe74f54d3bebbe86fc6e6faf5f53c714aa02 *58656685c3627fa3e4e8e6f9e5f51b2e691d56755c9034fdf64521ce7599fefdbb1b6cc1755d1b *5edddf7cffc25542239df5f1eafed3cdabda4f25493ae4d5d5c7abef6f6e4b5e34e55c44aea0e2 *2052ec78962a95af143b565ea4d2e4374add618abd814e7df7fcdd1d2eef854ad7c1b9c66e2a78 *53f8ab6b5825ee6855ad14b9102a6ed46653291cadc80190faf5f51596f3164964d38fdf625dfe *e1aac67e7a119053795bd0e48128f14dc5c93a81cbca02341358022c2dad2bcd2b757947adc186 *c0a27b5567dd0d14727dffaa36e55d992ff525c4f7f20aae281f717d07dafe9616d042f5880ab8 *38acea44fd1eea07956d98919b3285819a961abebdbffaf8ee9b8fb7779f4a916569f8c13d7ff8 *58e9f8c3bbebeb4f0f5f132dbf2e5d797bc53db60d5e7bec3554a3700ab4ccbab8ddd619f69f7e *531a76e6816cfe2744a6fb6f7e43dc5999a1eb049d08c870d352a93a0dcb74fa50dbf87b24fb54 *f4da57feeff98f1f60b03f2059befec355e5e578edbafa0004ac92ba3223dc3b1c47a2a1ff4f79 *81f0e3a7d22aa824e61cea82d2afccabc10155f8a1e67a8d99f4ab5945e53ba048c8f801db08e3 *82684fe47ebd5ad7c95327c1eb3af5be2db5f9a777d7f7b5deff0c75bb795f47f203d096eb4a89 *24228b40e9961be126efafdfc31b825cebb8aaf3e7e1dddd7d215640126bb51e98dabf2d9ffccb *e79b5aa47b0e94c5e005f33defaeb8d492421d7dcb6d58fb3a1faf5f17a48c6b6437de5a224b5d *f2d50392976f4b77e432e4aece9017b172e43c305fcbd2fe1b68fcc3dd7b229cebf53628e18411 *f8edf387cf4862ded14c29c5d6923e037309b8755db1b4ac4d9f0a0add704361058645e21abaa3 *660a1dfaf754d659aad3f1ae9085fb17ab35b26cd0615a244cced2616538af60ba3c00929a7eba *ae4357faf1a6ced0ae20226debcd599d92659d2a499f6a67c19c2d9ffefeddf507214c1feacc78 *5b99841ba496b53ac0d5175c7af8fb17ee07988eafcbbc2e99d757b1ead898b4f6da713f9826dc *209375f3e19b228bc1e81749ac703ac05302421586fbcd37bace00138018f4e1fabaacc01f9f61 *3306bf7e960a1bb07ef6bb6758e836a52a817e784e73fbeec52a20c5a9c372758f240d1bf8eef9 *afee718d2b9916b47dc039cb0f7f49a4efc395c847e3dd079afa67feac8a2f65dd8395eec7e780 *b2190b55910ab8e0524a19a9f775427e5d3aeb5725dbabfb9b42cdca34bafef8a97663d86eb7df *52ce01c8e579796bfc8717af4a991f2be5bcbf79fb0ee9fdca57e9a1889e0ef8c10f7734cc6f74 *98bf45ec3eff80722720753bbdde514f165c040af13d71fb572495d6150368159616811c215600 *e37dfd0af9c4f2d28f37b570872c0e0df7ebe7c41d20cb0845bcbe23a6a8ac84d41858934bb760 *a38a288b4c6e61a3bf5dbd18ea5206dc6e25db1d957b6b444bfc765317676690611904fee9fd1d *2c4ef7d76feb8acf1d737b8bafc8f2ffee0a17ca0fc072d1f479db4f1fea8d046bf4ef6f3ebdbb *fb5ca8722528d77f785586b2f4eccf9014095587693cab7c95635d7efffcf7d7b72f3e3dbffda6 *4eaceb2266bc2ea85d9af0f795fe7e0216adf00cdf50b1032cd6c0a1ae4b9156b686a63efc8413 *a6205fe5ac2a03fdeaf6ba36faacb6f5bf97b9162b7f59c8439df1f79fae84b12b0bf13517b305 *fcfb97cf80d8afa0aa48b0af914a93d4d86213b4f09af91f9ca748c3856ce33815c1d4132afd20 *ececdb4a90df09b35196fc4f2cd4e2227a7babbcda2b5747e8be4ae8957ff8a1aca250f12285d6 *95beae7355b287c500d16d26e00223eb08e9df917c7ffdbacec8fbeb6faeeeef2ba3035190b0a9 *6756a1ce392082f521cc6de46aaecd6014ea765b9985b2bc5d013584e5ae3605df2d5d47cd2e58 *0f82cc0a265799acafa16f672bfa1b248aa5c1987083838b0273af68210cff0dace558ed084b7d *9dd1b07ca9e2e92da854aa22eeff3612f9574806df32a3afb580351afbd3990afe8c24a6abb7a5 *d390092f1dca9db6062e8065edaf018b2a6a7cbcad12844309a9d4baf6e639762ae5f4ae666306 *ad8c7659501f5ebc535e1856a2170e4b3a0376a07c5c4a16851fa02c92c7f2a4aef32220548289 *c35717e457b7770f307ac848972ebda639f016491b2dcb58d416f510b683800efcd6d4f901e523 *9101df94159b1ffdf6456972eda9df2043d2f69d64700da88a656e8039409c05e2556983ca1257 *202ffd043a948f9fde7d0dbce76b59cb9770ea46f859c4e94a98dec07afc89ca4cc02748cfb352 *873abfe03030ba9fee3e7e738b14efb6e4cc0d703c6cb48c23438add088ab68f8c2303b00ad7f7 *b7752a51b39a7c1e08ad7f0de30d8b5a19cd879ef1a1058ae8e01f4a53f2edf39f97375f225dfd *fa05722c58ea76553bb4e206906cccf059fde23bfcc4d127bf87c9f4aa3eaad8f5ae6675c3cc5c *9958dfdf7c028d63217b57efcb0c3cab629b9981d5baa652ee076c042fa0c0526865596f05bcfd *f5fbc2189496ff64faa1ceb47519f867d4a8ef5e427e549b7755f278f5a97421d0d9e8b7d0a785 *f144fd156329f4dd1d35b4b6935b5bf3a9f310eb8e0b17ceafb78449b81a423fa116f68da80bb0 *cc902a0536b3f6b5d516dc20c1baaa2ab9da511545cd642c722e0e367016c02c3f5cbfc7350a88 *14285a08658a6c81fa0c582642aa53a84e8dba20b3ea45682272f7af61b502852049e7bc3ed0e4 *7f5d69eaabcae261113102d3c31d57695c11663edfbe167ea95db2aa9e206eb9fb06e9be378835 *4c6daa46f4e1ae55a460f7ad5740a83f7dbabff9fef3a7aa1b050d8ad1685c8180f670431266ed *c5ef583d5979b0ef6f40215a45e7e724bedd8012145b54b8d652c09bcff7300781afb2daab77d0 *870e3a9155fe3a98dfa2909c6fded6650e3642aa16f3013b93a60336e46c00c18c2461d099a362 *a1d7019541bdbdad2a3b1c991b58e9a1e8428bdd5bd81701352f1144e27e634a67cc28466414ff *f15a77578045f2ee7b96642beaa9ce96b2d87a52a8fee65d993d3f16be01b502a81cbb517472d7 *eda640e9da9aefebe79f1f509d8cd8663652b013b6300159c758deb36ae3d526d63a9c01cffa63 *e9c8555a555dc6d62357ff0f209015e1a39285a52d1a903bef1b9d0414bbf63807cbbcff481a6c *4045d0f1bcbe863c2ae75a7bb9b00edfc824794d2a1cd4badc550eeac3355015245795fcd78e5b *079879b5d1b0809906c23aa49244994d6f55b64445e3272173a854365ce4b72f52a54d131073c2 *a4f50ae6e0c3ddd7483aebe601f4e14f304c0f9f2b17096ab71f0a16e9cc4691c3156eceecb9f5 *e827fa2498c6d8b8b8aa629d5111025fa2f4e20ed41665e6bebab9bd16d578d55de2e686d93a71 *6fbabd132c610d73f0a6909ccfaf4ba7c3cecc0df3d53daf0a021a0cd70df3b255cbf6ceeea0c0 *7c017d0aea677100b0fbd63011a91ab09901ba748b89d0afb24f0994b451ba00854325d0a79bb7 *57c471181e72b67789459fa5ca2235bb983f2b8f36455a4fb037f5dbe7a148fceb4a472ea982b8 *07d2281e2bd6bfe5565b9187760cec08d7690bf4dbad4a41a51cd821f8c40f81985679e25991bc *ae3e94f59ac5c5bedbbfaedd5e48e935f4f087d78240a8c6bfad55aabb60df5283b680a5bf7dbe *82069526fcc71bc662987b307288246f40d201fdd29b45a248b2cb0f4ebaa0747c5d094a8bce3c *ac100f3f150ea9d26c14f3d6c004bcc7bdb38294956d6931ef0d696adb4e3524f1e33318b4c241 *c767ffdf22e894c5ee2c14127ff52cff50895355479ec1c47f966f707d4bcf98bea202e9f6c72a *31bbc2e5debd8795153824a1aa6f79ffe503eea7dddc5ee1bed59d6eeefcd33ffd537d8519fab3 *556dedb35c98bc4f9f3efeecbbef7efffbdf7ffbeae1db9feeee7ffcf6ead5b79f7ffceecdc7ef *fed3d53fbfbffdaeb4e0fa4eed128a54e556cf02d8259096b808b6453e144d511856b5758507fa *0f7f787f8b68f8bbbaf57ff7e1175f856ffd57ffe1256d8cc106f2cfff8fcbff3efee67ffe6a02 *69f4fbcfefabfef57ffefa37d33f9484bf83946f5f7f7afd772f79efa0cebb9f437a492a846d1d *eb74f8f9a79b4fb7d72f7f73f3be128ffffef95361be20a5bee3ce605efcbc129f874f2f2faf7e *573be5e2fef3f7d7af7e2c3df57f7d2e4faecb27f402e47bb64d8560fdfcd55da93cf26a0f9f7e *babdfec557576492f0d5cb1767cf36b085f5f3db3b16d8eb8efde7f7df7f28e3f08baf3edefce1 *bb87f705974a65de5f9735efdb1f3ebef897e76fbf2aecccf02cd52daa6a28707bfb70f3afd7f8 *3a94f7d0bfff1dd66980bda69f7fc795c2d6050ffb353f2f552812f2db0f75b12848705d2a30de *dd96cadc5c7d5566d787025ddf97b48a5a216e53a9c5d950be86dd1864567ef1d57ffd15171602 *ecca1cc8d669bebf2e2f0c61bb827c9f8515287316f28debb53ba1babffa2fb5be610854df35a8 *514cbe402a3f7ff874ffd32fbefa2f77f7d75752d219a8446c498e8bfaf5dd879fbe1b2f7e6d8b *faafd76faf5e556963fc2f2f5e3d2febc97046659e810684cb1c2fa584042a869f7f2c6376f7e1 *c3f56dc58930ac2324de5efd740d5610959dfcc5578077ef18efbea2ed8bfb4a9f3ed5c1bffa70 *57f33dab9aa2aa0fe10cded2f7bfbafa5c998ccbeb87f7771f5ef7df5fdd0227f270f507c8a4cc *74bf35b57843994c9fab914579f19faaaef0539fcbf7570f0ffcfd76f56c5e89ff7c57e7ce3f94 *6ebebdbdfb0a489f7efdba000fd4376e15124cf0ef4ce7d43e5bc535ced832897e7ca8ed5dad41 *60c4944ab4eaccfdc5571795f72e13ea1f4b6b2bdbf4ffae7af9df5dff3d306b75fbf2f37de9c5 *d5001a0a10a70bb37553aa213dfc43157aaa7af8175f6ddeaf57d8b2aa64f05adc3517f7eb4fa0 *9d2ab9ffc3f5d5ebbbdf9712feeb1595508815707fb31286baf47119e9fdca3f7cf5625dd3b00f *13b07454d21b2ee937573fd662725954a8fe03ac739cbb8cf05077cf39f7b3f7abb5cdbdcad9ab *a5dcdf55cdd5bbe7bfb92b5cc97fbcfe045d585af413965564e6b3832d29650528cb5159d103c3 *d395f577ffe5ead3bb9fbeaaebcf3f15fcfbd7bfc31242aa0638fb4b58bf5f0f4d6b8ae00964a1 *2b612a94eea7efef5ed7526e9effe7cfef3fde7cf88aca897171d49b5e5bbf5fadda72d62bbfd0 *6bbfba29b177cfff4755b1ffba30003f968f1c9472e60f8ffcfa7dd898522afa17ba81c49af1bc *e27e4c6730641fee8a145ab9f4cf9fdeddddffe2ef3e7ff8f1c3ddef3ffc5d459a38c43a40bfba *7ba8d6093fc9f6fae5c5ff053dfdfe0e18f23757efef3e837058d7c2afeb87db007a3a64100abf *5625e087d2e4b5f73ae3eeafdfc0d6f0871f7ff1d5ff2b7ef51290b1b017151ba9b2e595975fc3 *77c39a24926b2cf62d17fbeef90f57fffaaf20ebe09cbd7b83d66ac02f97197f735784f69245d8 *24dcda7f2099a73caac4e281378c5edfbc81cd1ed8b3a8cbf759114eceea1055fb33b0a96491ac *eea241fedd0a0e5bc954c3f275ac468275dbf4ba92f5c256ff5029779182b620cebeaa9b27af91 *31f9cf9f3f7c73feb9eac9c3f66c5b3f5e831d11d4ecbffdcf913efa7599506b507d560583a841 *aa1ef3f6eb17c3ba7c06167dc897d41e7e473dfceafb876f6aab40355016f4c234844ddd900423 *3d6057de3ccfa43720c6853379f92d32381b6494be03a4213e689d9011fa8e38a1907cdda35ba3 *e44daa04602503d9dad53dabb5d36df4778b3af16f690bb0eec3a5cab116eed87db3d93ebb4251 *0115d2ad8c7407dafd461e2ccd79ffed8b4d429d4d197af8aee59ddfa2e6bcb2dfc09e81aaa86a *d9ea57df5fa185d29dee29b6db636f71e31914fd0194a9e7af81ff4569a9caf10e2430d8e74091 *e80d4b87554079cfb689379f7e42cd23e8e2eae611eb05aaeef5fa96d5ed8092afee6f3e821a84 *b47a3f8ad12d54bb31c0785bed3a5e032f7e05ca81d7157c755b965836abac43804a8d559c9925 *80091feefa80105ebbf50ea6d1c3bbab7bdcdeb9a27d43a73d435bf2ef605feaba8c37a9ddd6be *62360fbed84da194f9a9f6fc1b670c4ddb6d2850053c5c5fdd83c469adfd583d32d40960ec4d37 *ac1bb9fe035af076fb1eb08778f549f27be350787b57449b6aa5f2a1e00fecae7da6bd81b30442 *cbfbe7fffce9be0e74c972b55a6fdd596527aaae67f562150bcf43ef81ee1674ad8dd80bfac47b *3499c0fe73bc87f9828d49cbb406a5b35aed029a6dcecec84ae9bae65437ecff6fea2f60358038 *bcc18ebb1603d3ce268736fcde5fa1690ef45d8a03b60c3a8055cf054dca6a277385b566884c73 *430c6784f8b7cfbfff2c9b85d079c3aaae0015994069c83b87bcb65419a4f2090573aab55799ad *a9f248b557638917711f32a8d542399ba8c8d768edfc1c841ca8034c10de99be7a4dc56f3d9880 *a215f26f7ffbe9ae30e47f074a85c2f0d7fd39c01420ab8e369500418d0dcf27106b6fca54ae6a *a2b71fd03892f6fea01bb7438242de5935d31bdedd0465319874f0fe721538cb38d244fac03b56 *503076cbc367568b079feafc07134450fb6e9e7d6ff7065760ad1cceea2cbe406bb167734af283 *2120af6b67fe9e744175e352d44d8e08de47326f90edf1551483f46bda33aa23da18f3103d0675 *f335ceb9576532415f81beab6e6315c6e056b6fb3eaa1505edf8c750e7b2314b8261eb55450f65 *7d3fa33d7fd8fee67c699793ccd6ac6ae9fdd5871bde9b0a6b5f97c0cf64650d0bc42bdace4545 *e7bb9bd7afaf3fe8fee85bb140a79abf2b120cec8f39da20532b74290498b06a935e0db17ef901 *29425d87e2f5ab4f5fc366c1fbba3942a6ebb02d6436c1eb1ef63df7ac5aef91f1e8376c5eb1a9 *1df63d10d6d777ef0bdbf54dbb5abde96949d88099cb6ccd7acdebd56abe5e3d00ddbb2b32ca7d *59773efdf411d0c8f1ca85f806660fc04bbc8297b92312309598c32deec01502bb86bd61d8a5eb *762c6f16f577bcbdc93b1d75c65fdd904182d5901621381051fbddd5ed0daa638128d7e6ddd06a *4056588e282560172842dfb2e9dcc54fb0415f273fd923e39a0796eadcfd5b606fd96e1db6967f *c0bab03af5fafa03691665f7d628e9c02edda9e13c5345983b1f493d49361cc011e3ced04d1108 *8068bc5205b1034401f4787d2dfdc2c3b8bc1ad8b3116ccb015c73c70e7c8b03f5df9888df7d00 *e900cf32c0a6a8f6615dc2cb6afef9ea1e91eb5a34bb6fb10e627a01ac36d72856d1a93406c9ca *9b329dd17eaf5a2112467fe2d9d761c66b6baae1709c6b3762312be0c96f3e7c04bb1ed270be33 *38800b06915d44025c8ffe5e89f31bfaaa106fc8078d308061b7c6b1abda88dfdd5ca9fdf33778 *fae1c373e0299b5318a03cb5fd24d635424279b4bfe51281d7ffa74a4cc19cfcf5cd7ded96d2f9 *af60087fa8dfbf46220e4d9811839e947eddf4d51a640343fd43a58defc0b6af2ed455a7c4bcd4 *fd5da57b8654eb4e8d03d6ee3319fcd0e6dbebbb0fd7dc8eb30df1333fe15ec52b206dd55c19e7 *183305f7a8adbfff7477c3e78dde35ab466587808ffb70f32ff53407e2f00624145873d0f80485 *a6ab37d7b5bb61b30379211d8f6f703fa3fefe48a3e5ec44bd29d981c552919b0b996503ae5502 *1d3069ed41da517c280554ac71621c0bfdc0635afbe5036c3db5e8fd0e76c4ecb81127e5560348 *2b2a7d007b5456fdbbd2d01fbad36535e3dbca4a8232fe0a51ab6e04a3521f4b024bba6b321982 *236bdcae2d68979b8d5adc7f4526acdd3d7dbb6ba30bd74fedc69fe169889a076c36dfc8c6bc87 *43136cb9fb8acd9b1f806146b259f96718b06f3ededfe04902308b5c3f63510ff7f33f7f245b38 *ac9a362a8675556eb68d42bb22e05c6fcca61718fb7ea69376d77fb879d0dccc9a2d8cc10de1de *b3b85ad529fabfd28b7f794ef664c3fffe968d0182d842ae718bfbd7d774c409bae3cddded2d4c *21b3bdbf1eeaeef1dbe77f40b96f85d61eafc934e7eee3839803b5e7cc7827fbaa95adacb4cc56 *d9623e133780cd573429edc13ad05ff329bcdaaaaf11db717dc1a988d28e6cfef36e63b31fec68 *b33f80be409a15d1d0de368b493270ca1f24bf6ae3a7123a59f3ddb2b0385b7aa938d851814518 *e8269aab35eb30f18c46c1f0ed8bf5da7d6f2ab926b3d59b87579f1f1ed09a0537fd4ac73f988e *747180e9f30a37eacc812bdd64bde9e6eb1b6a164dd8bb227bbe75bc535ff00badd60045199db7 *f6a011a00c1f8a7d27c38fc61f9fde7d4bc29d34e68c10c934a69ec0401688ce18fe7ddd78942f *36b529c0bedef3c6b7875d21e8841f80672963cf52231e007cf8fcf66ddd65468e16255f66e1ae *b91c5a16f000439d1fab1743dd35660507747b77ce93f6f6b75b940d7f09b8f08e4ccde964e70d *1dd7a924ae76e35b20b8248bd4d1de372f708395f7dc57a48d7c33572598d3420b5a94eb3ff004 *79e3989b201ef3ad394b0cadc165f1a63968580d031d4874c8557faafa4a18baba34d4b9f18002 *ddd50330615574bc4189f59dd8821256d74353d4ae77e67825168e8b664bd857786c0e5430da43 *8eba48ed11bbb17943f6208505f824b2dd1a974a3e3100529736a12e4f6faf2b5a7cfb2279940d *128e3ae888ea0bd028471dce4db359dc705b70a17cab3bf68e0c32483df9f6f98a2b7f8dd9cd5a *70c507fe6eee2bcd691588b8b75eca497a580176d8d775630476d857b0c3eed65bb47f7f03baa3 *f75577f4b3ba56231ffd7fbfad69d71fbffae6f6e64792a0df572989a70aacab709cf73de215d8 *4b6d414b8a2474ff4efa3f8302ecbb17b572eecc6f40b3f243d5acc0f6bf1fce70fbbf4c1fa0f9 *b76cc56fa8d69be7bffd2d70bfeef97fbb7a5fb895ab821e7f078c79e9b552a7d7820dd0c72ce2 *92ee2c80b879856be17be4d6ea51b6f76436f4ee3992b8f7379fc894af8ec4e7db4f37681057a9 *361a307d6693b93757aff8585fc5bd6abed74880672bd88e505d4c61845eb9ca5f16c6f25bc4ea *aa58afd6235d0ffe3e7e7b77fff6bbdffce377ff388ddffce1fded3775f3f1a10891abe0ceca68 *22b95975c609f15974f1d94a8d1340710d5227291804f3226917cfcb83b3462b4e8c2d338a6485 *f701194583bb6b3aa20c485e55ad40f7c5a80b28381d0c2cac33c92fa47525932deae9876b50fa *2ccf809b076694a14568785359765842eb51c4873768b32ea7c16feaf668b51cfc7be03c5e3d67 *420425d0b35a6efd98585b56a4b937b0e89125072e9f4d8d5ea3bc29b39a7671a85b6e9e6fa85b *e266a055e45b3aba7dd9f1a5c203f427fbf92c15885997c811bc47b3bddbdbda6567cf36b846dd *22c3005b3313708d957dff45a94f8dd54ead73a57cfebfced9f6f37f973afeaf1129f8ff2e3925 *b0a2a7e3f3944e798c9c09675d66d1b3016ce1ff7f25cff137788aebd79feee568def68cb4a417 *d7afaeaa2405c865ec0cdf2cd8191a5b3e30d2e9cd228b340d1685342a3eae814917f3c21fd8bc *90b400afd922a8eef9d3616a27468233e68ced2cd583440873ed036e1ea1728b180b2b53bc10cf *14adb11e282ddcf7a279030b5b96a7b0b495f7645bf135f21848eea8209b9dc30d2731dbbd11b4 *688ed0f43527972243a4c31a756ba2e28e600c6ffebcaea98c0364d7beaee2d6ef61dfe5d5ccf8 *0b2516a0949f3e83f0894d8a9b2ae214cafcf9fe01270a4921bcbce2d242c273550530b5fda64c *e10f446171d82b0d523d33e67f76b6c6c9f51b38edc3ab6f5528a96ee3cc85cd7683d3e4d34f1f *690773cc37f02aa13835f6edf36f5ed669221383bc6f4462ec6013068ee5c0826fcd24859541eb *bdfed0ac9bd9f82acb73cdd48d8e8486ed8ab6780c970533485a48a3726d6db73fe15eca03ab2d *f43408aba26963a13f7783d4983d48a05d04ecc8a5f9d1b2d290dfd6f30a307a37ac4bf89e7a80 *76aeea7994ca6ef2d692324ee4ce63a08334702625346752ea397b16b28b8cfdf9fe8388366fcd *911959274c53f468127bf30013d1c22816944236b59e98ada82a9c8513353b9e88782e1225d4eb *e6539d5dca871893fab7a864c4332aefea9996ebf77544ee68d958adcee038dda7173f125bf0b6 *ffbc6eadddbfbd461dd52df980e1c1aaf9912b97155a78fc1a451b6532dfd1cc43371674d2120f *9b5586570faab135342a1e3b27116e85a620629bca27a8e0244d5f0a6a72ab3009b31135236847 *6c0a22d52476045a8ef41bec3fa2ca0d8f5600e5acdbb9d7aafdc4256b3ed3be6684c3a5e52d9e *297654166c747cfff9e616c41cf4ccf4a26e01fe7e362bbf96b26e048bdc73dde91573ec6fc813 *c33da85fd83fc806763b7853d79e73602bd537d437efccf4ab6e4e66daa96fcb9a5aada461ddc2 *31410b19d08656e69c90d838fa105ac0c7f76ee834a02072ddc4bba7b7114f3f55ce18d6c7b23a *4a06d81c34b7a9cacf2ae3c18cab161b0fb2135529d4dde79625bf226a5389d5c7baa902874c6f *5e81879d221f119dfab1faeec18322af847ab00b974a0beeee751f8f4f75c2bafc112ca53fa117 *808252dfb25f134f9eb1e8f0338ef4efefe920f67db5035aadb748f60be9ad74b7d03410b7ab3d *f3f39ffdac9e7da655e0a6d2fd37cf7ff9df2b4bfafcb72f88778bdb55e766eb0c98b5ba234d47 *10fab369a606c6f9d5d7c8650bb1866cca12f8c09e46c044b00a3065e6e1a9f53558aadfbf35f2 *3b6c33821ef2a12a253fbc60036f1849b1a5971d046cc4199e01d115bdae7fb551ed8ce2edfa37 *0d72f181b6d7aed7789225396ed196e92efe45c0aab14efe185cbf7c143c5f118586bd54619f0d *3abf23b60deaa3640d276ad3dbe462844ed955bb194430733ecc503f773dab0cfbf708884a1744 *6a94c026d076dcd573a3a195ff6121b9e19de36b7b02423fbf216f03457672203c51815b3c678d *7d4022c3bb2221e0084befe0312c58b080eb434bb86b5b433db0f7e1ee83da4c082bf086b53c28 *4af844c72dcdfaff03517b5d6ccb24ac5b8c7f0f98524f38fe58e7e1abe58ce7c7786b76585cd8 *80b100650c0b3058f0bc13774c9faa7d141d9927b90df9c77a4a90bca1e161ad6b72198078f0af *d7f777a43341bf0c2bb035fefc019c5248f77c5b9685cda69e8989a8e12d4f1298275682f5ab39 *c182e314c87cd475b4a4be628aaec32a27199f99938c82bf6feb685cdfbeb7c7380949be7951c5 *e4356ec6572d749979a06ac62e42c74b74d088d487b5876a47c976317a8b81c9af785eb58b8584 *d6cc710f9e8610854b58c77f7ff350f8e64d6123d76731a14dcbfa452aa21c7e522b3bdec9599c *7bb04163e5ba7780639faaa0575fe421bd6eaa598bdfc0b2055bb22029ddbc79419b8b781efb9a *98c34d35d4dbacc8b8e6ec452a35c58f79235ff0b0d2176d413c5becf5b0ae3abd33a474afde95 *e5ffbe9295beb2a8b67e7ffdfaa68e76e1e72a39a6975131c03e1a9486d466c12e7e6d4c24ae10 *3d3abc93e985f80a721b70bd5c7718ba1beca6eb76aa7cc3635b09052e7cf58c752d0e77f2edd1 *c81fb1cd67334cab473f4138c3dd70dbe01e8978a31cb94b1c978f8efc9a6ca27a3ad99c558d1e *e90ed72fbe2913b4f070490fe7c0e61b38deb9fe009b53552f5511fe1d60fedbfa1e78f9801353 *b58fefaab2f69abd052192ddddbcae0e8b4040b8bd7aa84706617d36a2d05900de913dc12119fe *d5fd355a83c8fa5aed15f1347f9d9c376572421b6053bfb6e10cdb10126918f38b6fce70a4421d *38b42704a3de9bdb9b2bd80c68cec481458fd1aed7837db4d381ac166c0f93b396aa1caa9fdf10 *bd3f5bc19208acdc6a41a202c286ca8d2b3c980edd66e7cbb7ace4fd26147a2f078d40955de6e8 *153242d77002b96efe85329229e164a80b4391df873512bd4239ab50f95d356af88c04b0beee02 *aa6391d87f8d1c5d3d315d5af8d37755db790bd228d866d4ec57d559884352575893159d1103a1 *0e1c8d00e94114fef41ff09bb8a23a554272b659e156023614b5fba5ade5dd38d463a0549fc2a8 *018d645e0d6abb868328e070418a061c84928759c967d59156ad6d3dfcac9fd04bf8055a16c8e9 *68aac7e66ceb9a7a909e0b58c6eba656cfd29acf57ffeeeab6ccca8d3b58ca77bfab47aba9ac61 *7566da0cde1eb0b4af31288ce98fb5d8d75a2c58156e8981f935fb11a521f568086d0862dc246c *39a6d401a5338460872b358dd5f130d813ef1a8267814c81dfddfdbe6a150bf1abf938b474fa7c *6d7295c6d28760e45bf3fdedf3ff509a2488f0f053c1d59fdee397b8e500b9d76952460dba28ac *fda6eda31de301664a6403fbb1ae6c28af6ae780196bcde8b690c7fbabdbafb573407c448c44e4 *24171bf82199a9d6eaff1f58fd67bbaa0f598389057529998f1e854d01ad45dfff08fad7f5facc *f595b3c3556db2d2bebcff1765febfab3fa81689603ea36527965607b4ccf3ff7f7b7fdaddc671 *2d0ac3dfeb5720beeb2e03ef116974374625718ee221f179ecc4d7d249ce7d4caf6b1068002d81 *0083c1924e72dfdffed49e6ae8ae0640129420b98a4b140976ef9af6547baa6edb5f0f65bb9c1b *cfa5a92640c34831f8b37618aaf9a3416aeeffaaf5933efc753b101d058a917e6cee8c764e6733 *8ffc530acd5ce7b7507ff9055464190c69ac88d3f031b1368709619936acde025ba1b1373d7a2b *d20ef8a6a43f5e9d2451c7f45859a06e6fe07394e08a7440bdd123f109afdb1ea874d0effbf90d *a0a5a59cdf40879894dc95ae629ebb6af12d97b4196aae4fd90dfa483d80f406ad82bcf24f5064 *f57de914d6e0282aa9cabca185237544b4e38e98e270418cce8289145a0ef0da233ba6941254ad *5cf5c5e4f8baeacb8cf4a9024d775223c553d7a65c6203e79461acba148749ad59ddf2a4a932da *8b1e8f51eee59c8aef585b8b0c9a183cb2e8d1935f341ba0fe3a1917099349a0bee8ce63e6cc63 *1ed6e65bd5a236a43c400f5d8c6077586a8f74f31129bb8e0225117b50b9039ef845e69626faa5 *acd74b0367228f515298ba3df750b42c660c99122446059b39bc949ed9201ac24b37ae699ae6d1 *efe0ce005b9d943075569abe5e21736ce45a54782c800eed69ace39e0bcca808df0629b36c61a6 *b82be0bc25ff1b804026b7e1d8d1d29956f9bbe329875cb1c7a0fe6f7982c304b2ffb08c45afe1 *997268a9a69bd209916dd36852308b8ece66298233a13f1a33120519506f685310a3496ecbbfea *b9ecd66b299794b399fa15175624c32b0516ccd8c8e8a52481c9009218c93c2d066031c0ae6e72 *6303728f5233d7618fa657e59d6608748299d1b0674915935c4184f997581ef9170cdcd9706201 *2f1e6705499957e775dafe0eeaaaf03855d1b37e0b322c62660e196b352330272bec4cd5ed9043 *813819d46d9d52de5abe0c75cfc32e9d707bfa037dcceeb00abc8255e4026f5cce64bbe5f02b63 *6467778d46300eb1e4d09f6714094b11048eb9c3458da9adabb15afc8281471b8e4b5861711653 *731e7d3f133a9c22e95fd8002045756f35bac01a20bdb1ba4724341247945f47682ac94e1238a7 *a6961779c67067156ddc0fb1b397b0f4a6d8031ed6199191453804296e587bee75ad4c33650494 *98aba92f0a01ba2df2714e96bc8a3b29a522a018daf0777032747a2456994552452141f16a8ec0 *5533bfd47bc7823297ac200ed7c118865230854fdd7c0f00ec9cc2229be41c43600e9217988fa4 *a947768ee265898543882b8e0b9cb048e354a954d3f2c2d431ef02cf34466e945962d1642bdb4c *99886893e6646230f970da6d6b65c58b40d2ea4a5fa115a127353e92948ee0cfc6e22aee92bb8d *caefcc5d2253ce39c92079aee9b4001d06d59dafa43e981b8426262761870a098a2380fa0393cb *eb20d434845084a3c41547cc41cbf64eee4a77dd857cbda570df82eb07ae4dcc593745916708c1 *a7562c09b5815c5fcb64b94aeee886ece066312e3102a8612380b2520450a7d1519d46168800d2 *cbda7105243a5777320a2cfdab116b4ea1324cdc740cd09fae57afade71996882ac3e8bf8c214c *0c08d699d2682dfe6ca01f66d278480293c90d9849e094f4ca4b5353e5dc51c00307d74d908209 *032a0b0b3256ae28f96052508ca8cdc81dcd3086ea096eec643726c64036cf6baa5e4e261dd4cb *24386340a5865f71983f25e23a95f5b8146761cbc18e26b0846080c6da8a60ae784659d374341c *5b5beb12036ac1a624797086f8a6923e411c86c3a8280409958e3fa0e2e32d4ad6e113f26fc02c *86b198c89e034bef71f49989ff508e26f792b459490b2087cde2ed53b2da6308165be0a12cff48 *8e237cbb0a064501556b4661d219488da052f15bbc1d800ca61cb9a7127d166d406518949cfd96 *565707009f709d3246601ee8f2b241cfeccdee621518ce19d990e57d0a919c384c0e058178ac94 *e2b1bef003bb10c62035b5db72e3fa719f9a39d7c7d8a45ac7ae8ce90d935cca7e83e7a858d078 *c6126a4185e5d790228501aae4c984477ec6ccd00522e16e49214b125f02fed7dd0d16710449c4 *b9b19fc29939c1bb387e4373e0baf47c4f80a4904a8a4d4e65ff9d52a7b511f65253aa9c0902ae *32cae2e6802cac5e4b6e619f868b8d7034e2d6456ec2f1891e6e0cc3b749872d93184377498cc4 *c59850ed7a0ce87ac565228953ea15d4347773c929efcfe82ce04fccdedf332b575b9c1a151226 *cbe1525cc69e6bd0e18988b31e319b080cc3ab35260a6e57c6c5c003a168d91bbac9e2c70e6cce *253aec200e8c43a430ee0e0f881418a621631e94132c37534eb4dc8ca3e5dc7b3be6e234426cb4 *373751fd7aade4e68b299d427027ecab97ad9ef1c706ae2f221eaee698619aaf2fa8dc36b021d9 *0a2a5e2f1c09dd1f90286ab42d480dd7b2eed31f7b400f3fb5a496ec6693634f0bd78a6f490950 *053929df4085956991610836af41f54d4b992100c32938a730981df5d402b54850aa25ac40b8b8 *5bc481ebaf49514866280915b3e7241d9aa41d32c740ec9605e271cec67b646ee2aedd60c525f6 *791abfa939eff045529d36c75fe4e6502023d9d8bc65e5a401ae28441dcbadfc9d3c0e1c240fbd *2ef237e04d458cbf29e41aa264802516f444c7cc08e62b7465dbcb6a66ecb229a436b1e5ce98e9 *2a54633284e4fe2fc18a219658e0a2099cbe63a59d04d9b0f3da38c2bd0c98d74c877a3da88c2b *e775429acaedba40d7a9e2deb0e4821199e8230371091123245da6aee08440c2b77291c26ab101 *9b2431381ffb39f48aca5d3e5f3da1130fa598539c8175fa4bd186229009004943a00e186f6a87 *92cd301286e399554a452fd167069bcb86234a452407f8940f7ce8c3138665864c372495a8c74a *a69c52c638300dab2c81a41f7348c31b8ceb9321ff8198c11585a5f71a5ebc3804c760481a165d *7a81ec8e4bf160dd77e5147ee7c49be049b5246e90c983def1f3ea6731e9d068a99ea53d9ca4b8 *2e6cb740afaab7b9aaf9cdba405fa2219e421270a67c9bd06843ccc628ab1c068761898cde5837 *539679758dbbbeda6dd832f8cd966c16b78b1d568976ea552a6fef25d2f529bdb71563c7229fba *910a3c02aa6909b200e3102404c63d0d581b8d93c965ef3bb0bd5fb2555b632e32852997c097b4 *460e62ebdad2468eec859a5d7df68fa08d0e6db4b03733eb4c9ae30764019b353fc10a529fc86d *5fa467adb0a4031769b8ba620f341de7d1b572b1a5e8f18a239ecb3fd49efa6502c3fe903385b0 *16712e15c98ddd4b558e7753ba8d81161467082327fd972a29c311e113bedfa70d76528abda442 *3a1cb81c94952c0d0c67d4f8d24bc8403ba5fdf8d7bffea59f9a19b55d6cd81cd68647440e215b *720eb783df7cfb43c1e1ac2f57c57213460d3cc74dad528f2660ae2d4e61b4e8bee6681bb40250 *bc582ab652cdbf69dba7848f66b4d41b9fd3677229db888d49baef1cfa8689b241b4a08809c8c9 *d38c7b89160d1ba2d6c8b2c4c6e96e28509edc912681d4c17537fcd5310fd17c37346118db65ab *db6fb82bff33c8cf9ff560e472aa6cd8a162c868a922922303f0ac49b9d9335b3d746ac647358b *6879f9340ce932bb251f0edd4a076ced9728bf3e5a84c19d52369811f2dcda1bfda4e43cdea143 *b39b556ddd68a9d981f3724e33253ae5d22e3f4b0820c661cd8cb18e2ea5c21152940895539209 *526ca7833fa571ceaae39cf138a7de3825223033f5821c168394774b03fe0378f8608b9f42f83d *e48e2a413732b0b9dab0af9d58daf82dcfb69ff6385647382e58e26e253c026f01f26368e05643 *29725f9e1a1bdc964661f45f9d9a5769b203ac36c99cfb895c4700a14bf4fc0c2c772bcf3c0541 *911ae3f96e1fc0684effa0d81df8e6d56dc03bda58d752d900cb53ae25d5caaecddce71b1d8718 *746ffffa9cd9103bdd3812d309249e96b80a7265ea7328a261eaa1140a1842268abba409a35f0a *c98082a108b1a6869dec96e535bf742f2983c3ba7bf32306c6e21d4768c7a69807e0c0fd3e4dc5 *464174b8203398b8aef16ad4962478399794610c0ac6ff411605fd0459de1b33c6a98d0c9ad331 *4f6b34eb8d27a872b8def78de0477e4135949f78579591164b196b267ff0567a535ea0fd4c0ecc *584b63ced535a8328f5330c3bda88cd2ac530e7987c5ff8ce8d768ef0c94ef2ab0b1f63fa37eae *c4e3f6295e29b6e02c79e436cfe5224fb9b00c6fec4255d64c8043349577ade67f3dff9610fb05 *c73aa24a4b71cba59b6c692e74d83327ee59f3c78c0ecefd840ece59df52c7180aaa7288f54b3e *344c94673f6bd924f75bdae28de490f13565822ed35241850d09cdcf3e2f49d1df7d260c0e4fcf *58f102d3732a4622a2463ac179b796197cc4483a2e1d08de0b2a808135d071bf2458be2ce3e7f6 *26b11929931cc847c73bc3a4c67ece892fc9e6551d52353db5940d5c8e76f69435175c97b467d4 *02ce55a4e27ab0963fcbd9a358adc13ab561427d62e66a8da9802b4b0a9937b8fd5b42e1df310e *171c6dc9e18a78e6fb192c1955f858ca4e3a907b26b43844b5cd492233251ec96da16cece3a04f *b18f7d8e1bac382dd81fa8d7fd6263b087c24739c87429864d870bb3ef5c92224929760f8a62f1 *602f856b7679620caec59a1890b81ee0ee533465a3ebc17a2e202691cf057c40737dd0129a8869 *9f5a7b930bec36a47372feca2f45feba2ef830d147240a3e5c34f521a39b7118179dbf509dc2fc *b51b60a97c0a6be15b129a78054a22f8b4b23e87cac13016a4f9625c34461c22aee28b26481114 *1c3849734c14686b14fa074fb1bb772115eeb4781a7221ba254408cea07e07df05e0bf690214af *3476c3c0740ff462b1244ca3f4fd0d80c117c7737ad3842b5e698cf5de141ca5fe026f0e4d349c *16ca58e09fdfd42c9f03d4b570e7984ae03220df4de026853672385129b5d10b64a21c17e50436 *c14ea0791338091ce548210076ff7be2d5a4b1b720a0166a35c2bdd1204d2fb18c0b41c09845fc *d49c6c5c08575763ddad3e7a83feaf1ffab77fc36780a5c0eb6a88920b0760d5f364d8b310a632 *fc2b906397cbdd627149050c2fc18dc1605026c128acee0b90b06c6d009000c1b908108a97c4c1 *7cf6394da59bd9f7677ce00d9c800500556005009a6d550000afe559429a11ac820f0fc288100e *8556021caba7757c407f004d199e784a43a5173b62796b015a39953a38c101ce5e645af2480bc2 *1ab172a98b477b42f09014bb101e30469b264464e01d80deaecf197fa0082b200fa8e15757d38b *cfd1d5ae278bf1378ac05165ce7c0b7c44d07f03e75b8e9bd5c72b0eddc4c048e50d5502e82e3e *3711742d0c72aca478b973501cf388d8976f09ff5d8cb9a22d5be1263997c6ddc04675074345c1 *8eb849536f47b76fb6bc990d8e55bcd23b06c4dded10cb2aa61770acb8c8171b56094b74ed0528 *62a85989b0f5896af9d502ef9493bfcc4293ecf60692da3fb32f913fe7f72d4a9047241af1807b *dd042b534d01c9e62e924df105da5dbacbcda5ca5bbc8b5613f6a0d751693f63cb125e3104ca15 *ae1dca2dcb001ae910f3de3509dc3a0cfdeaaa585e484ce5275c23019d4a88c7246f5197f50299 *71bec30133d40946b21b766a982966a3e7e2ad70f8f114929bb7ab5b1097b27d59bbd7b3e0e8aa *1491265588650e0f5831c9314014e9cd824d2439f106f2dd1d1178c43021e8100b5c0ac3c8d28c *7165ba5a4cfeeb062a91f6f7ccbab494c800b22ce91e254868fc9d418256f79c8482e67ccae34f *4013339cbd7e62e6889832b3cbbabd0e43a25c37c0aadff3cad1678579dde3957326bc29f390ac *07e56d6841114e920c7ca609220a06651f618255e56135b27e46f518683dedb0a6460c5c21d6e2 *0ff2983ec34daf5a08436b709db6140e702375338ed495e5ec574f0e8e1a57c049dc2bb820fa98 *ea24690ad1bb547caadba53c1028700ebb0775fa297bca37b59b9cc60d14e2a6c83b4e56361924 *7098127d1a6e89a3ba5310db6a0d0c921a9a3b0151620c72c2170baec6913bf79ccf9bb69e31fb *06dc7a7f1d8a71b5be01c7fe04d6eb099e95d1af4e017c5c9a065cebdb7cb642dfee3f5b7c7d62 *751da454770fe3eb97a499cba906b794cc9ead94d3296de9865cecc69326dd58efe58e05027999 *8de54f25c06dd0e7a8d0d4ad3925e6bb59d938640c8a3851e71cf65b2ae598534d523ece911571 *9d432cabc499f551c68d365c8a5352e1bde19b024b18158999f7fecd7c1c5706ea8dd238f60395 *f4d0aca3cf86e16fd8225d907d748b40796fd9eac0b63fe0b26e499096ad7bc3fbdf6df3cdde26 *0648529dfd82df706fa7f8554a9573d097ee44d29123cdb9b9ac9be0395956b968e2cc6fa4fc75 *397008bca914f9e29f9a5535e80fcef51cafd94df13e16a88a549009e9adbc6dec3ffe65c30599 *9bccc2ddae8b9bd1baa080719802d82e9cf24fcd4e29f24b9f5e55579fcfaa915f68e500fb90dc *73c73608606d40ff73be3a5eae1ba5c122fb9e361738cb91185a460b2e05c05100ca2dc6444580 *f9865fbdcd79cb5effcd96212e9ece9469eaf3093538c19a5c8ed9a9faa43f46f6690258c9c542 *410cb0ed1e72951d8d3391e4a4524d99eec902b882fcf88244abd4b019b48983dfee365019916e *38a61482b1f5784cab66e106de9286ab572c91d78ae36b4297c2bb778defae4d55094c6c431cea *b1a731934cd735dd7e80053e1998b239f48ed946ca51561d6810fefdb4d54d2835d7c68ba14b69 *48041cf443a0228779a36043819a9873cd3ff23595e3d8619c0e20f672e559a9461c0e2716378c *1203db0c58c72704754a506f4cf95e739d064fc0f30d32aed02a682c9951780deefa85b9e21e6c *6c12ab26fead0eec1dc6f1e24c776466e38c89912b009fd8945d2c1f9acfdea28509ef7d505822 *933a022fa777df246b8f2dff5207d771c995680bf16fd25e4b5d84357bb84df0640ffd9b18340a *610f1c37c13e455190322ee9606ea6c8c90b2956fc29077e6f5737dee8140d0f3beaa39fd319e7 *6f8d4c247529f7738be5cef4ad2c091698645ccc8d53c961c2664e03b43a01d2931174cca633b9 *ba59960ecb668182528d6273bc751c5d01a88777acaba9752d0ec19929943a3636d34d8531981a *7398880d120a4277d9a982314b563b6acd4d919fa48dae4ba32b91cf3869236f7eb6e42bbd3152 *a012bd5408a7b2a667a794af1e8c9ab91a3d9a9c9f924fc3cc2f49b0a283e3564bc5ddccaf892a *c31822653ecade54cfdf47e25a74b4a9917d2d27769f8b96f5da8ad8d513ae1a0ca26462229046 *96a4e7cddd2dcf7fb49e6c244a9a5518bcf17db545eb0c9a14f4bb18c34fc5e725b228435f221b *615192fd53bcc3226b2058eebff1fe028eb416d7c78dad5dc1de030ed605e5ba372ea4fe941434 *ec666d0915cd2854f42bae8e4863e104aa95bdae92cb04b176b041f6ec556b0ad527652bae2955 *ecc4cdb24b24a15c29a9cd88817c9c4ac05a81a921d2d15283ca52c065e070b2903a8e53ab23b9 *96f4c4a446c9659219fb5ebd5bb625b088ef7d805c845620e1011548121f9a27403806f9d33950 *2bb13721c2345f69167073638a38b31fd4943fe14ea89414790dc0c78c0ac43547c00926aa8412 *a0fe926f3763ba125483bf5e531006d5b129b06a6375994dcdc6ee654bf500899f4b5958529534 *9242681a974743823325c130da4cea234d47c59a8276a194cf8a8b651650d01d6a93aec7a51b89 *25c68ceaa4d89045c035be9906ce7eb0d7d205174233640875b2168cba2053a6395f153675d36c *6cd12aaa9382887489570ec2ed23647dc6fd9f928b82cc9a7c76bf92081f7ce2133cdf72bc924b *02738b94a2ac4c3d8934f75433d4693116de4842233bf3456ef421c47d537d1196862d712f9583 *b5261003176aba9268c1c55beb659a95b81d4f78ce2c8ffaeba71433cb92e705865b6f38860aab *66709d683ccde6ff107f9028aab6a4b37f59c346b3278c5828d55e1b2051c8fcc64242d66b2739 *ae2e8d16aa4ca0d41b3998e7527e02d43589931a40b00b73a02bba3764bc5dbc45338abd2500f0 *660964ce05dce432edf2b1cbad3c887f9560ac3e159fb1373370ad3bbed216ac9026aeaacd6121 *5dac9a221d56ae74a299fff9ab675ff2c437a6509ebb4a8ed4cf12c272bcc69654764cf19de0fc *0b331a8afb2a344048fda39ba789b34c90ecc7ab053ac0c1eb62ab63739d32e92b4de9baf2d1d6 *90a415c7781f61d61bdab2174704d2d1b83f811bf254d6c1823a075e40bae4f17425aac96cd018 *b221aecd910103fa7623ba28c84d657233f388b6f81ee0a2240f38ae07379b51cd562c75a9b2f4 *e21309e6072ec67718eee02faf8b7c31e12a3a9794a00457ab4a4db13ea28a73bb0772dd82d20b *d7a36241f69d2da8c284b1aab05972de602889bd206634d92d27231ed9044ae48da5681a5d5dbb *3571f123aab85bb847ac7949fd243f2fdf1b24f1def61c00c5971a4e75ca6c8888e3aa6e3d75ed *592a667e9d582bf6e42e080c689859f5131661f514ee6f6c0bcebda2b36e032fe49c95516c0e9f *4e1131392226618e0e94c21e67da3249b9e1d5e3201530e813d76155844fa5acac50109e6638e6 *743e5ad8a3207076a9d63c361599492c2bb98e42ff9e5e765bf3e02d3e46955be7afd762e733d1 *08197ad1e1aa15095bee7430e758043cc69ffbf617b9916ec211ddcabb806e6a2fa073aa1475ba *1daf16b1d6b6d5b59b02cdce17c3964de4690da15cd20d44df2c290c5942c196266e05938d2592 *77ce16493b50562add9c8379c3a5e87955c3db501158a88fc5b2a9d34fa82e28653551320d9fc5 *a5482b5f2783b76ea18d12a3e16a2a6ccd4c5ce49ccb1a714ccc30d3b2e99b29219c98c666a595 *e7185f36eb684824c338ae7b46978b38b98425510b05f27b0da7cca91497f3f402b65223dd21a5 *5582d37e4b22526b75ebf5caa49a62fe27a82524dd3ac3aeb91c89ee8f311721cc3c6bfe13c283 *395ced8bc7fae6efc1d56ef219753f9ffcf1af5ffe6fe6eedd7687e9134dc83d0f7d35dd779301 *3b7108e2001db957cd4fae6720ccd69f3cd13f6bc1b0cd3ff90de8713fb5921432847fbcbcbcfc *89acaf17520d0e381186a91ae31da8df9bad5ba61b4fc65cb89d96f29af2fc667845208ae80554 *529fbb1537ec3d621d2991c029a6bf83b97e4e4987c0aa72b7f8a3a424164e610b9036381f09c9 *c242aa7f596d2104124fa47c0f1401a17a4960827733cff5534e562e974cc3a4a9b9ab7e4f3033 *87927746aebd92738ebe594a8511ba7978b4c9a5da2adf05d77643b35e32ae51e937eb11c9df8c *9193c1bb6458e328af1161a88b3e2d1beb7df3eadb62f98a6f4cea657cf7a739ee6ccc599bb3ca *29c54edc163925982327e53a662d8995ccc9fcbb7a656f024293a13ecf23a3a3ddf113fce78cf4 *92c240c541f4f82881d7adbe72c5e2cc618b7f685110c0caac161ccb53161b261b3f55e63a2db9 *6fb37072339d4b73436c41789fe2c4708c84c1f0db4ec329cb993c312e1fd651255b9b0c9b189d *05e3578efe949bcc1b0859a60ed056284929e6caa7c2ca094ce0d11d68018eae9425df1e3be702 *2e4c1c282b60427e6d67acc18abe0d3219e2a1b9c3316354d3fd777c753227018cada8907a10a8 *02d305c0d65e50ba60942c85545a4e839b9aaaa3f6e8256a00f4a98fbaa3c56ab65c55a41c9cc7 *b1f69deb602b5d664aa64224213646b2cd604ad01c12c44b1cc53141c5278dacd5627b8338ed24 *bc7ef9e24b323ddbbb5a86faacf096f2984cfade4ba7e0490bef42b550e4882775b50517b06a0b *6d8bc14c8afda54b54f1cc972f377c5237aa4cee9cbc9481469c02b5f58d96de6e758a069b1a41 *bdc2e2141e734046abe6168378c3e6eeca8942574a15e319cbdd926467e4cb1cf8289cbb757da6 *395936a98c414861b2193da153c7482e7795103f83ac78e473af08a4d235741bea64227c103712 *6f055a5b2702c762c2821299b3055196f612e3e2b9a6a5a837a3826a3078213a73f69872de81a7 *ca4dc5fbc0420d157bf1408d95638d45f36ad9d48bab4a57d82f5a338f73b8f7c62ae71a1c2e6f *d71efa6bf5aaa4d6e5ee7da414164b939b49299ca9e7bde00267c6da42b7ba628681ee3ae352c3 *bfc3cbeee1667612bac0c48864c7507c5c9f8b0a72ad50a9570a135013abefbaafbe74394bd2c3 *42d8288950b90191b1916b85fb50c91abda948eb966f4a022298ec5f11f21a3b586103a5edb104 *754b94512c98b142e7ebf96a01d75ba00c316a832d9433339c91698451972aba97cb828c58fd59 *9aeb59537b4830ee08e38e2f1751462ec359c54f5a545519ee0970ae0676223be47eebb48d1ee7 *d1820d69824b7cd1d12cd72ae85b288a8cf656bab7b13d24ebe3acc9ba105f2e6902d21d571cd6 *2835f65e2cf9ffb251e2f2f33297e71b56fb74f52905bcb8873ba87a339ab2fa8def88ca4db63b *be5582ca34cda0c2e4423315a83c0a8e5a0cf276c94a6e8d4c31a5569279e9d2ca8eb9d44d2e3d *fc16f913dda82343edf6597d025cc36af88c4e1223c12c93eaea8c369898a4d7b510c77d6e13e5 *8001c2fd5078b3ae68cca6d893a86b38d4050f8573d130d1046f8190b3352a9d7207061609a003 *88c9e9645715ace14e529cb164ce48d31926ecd132f4310378c52952d807dfd721b9a6b0cf9e93 *482bfe9f2d46188c8575ece4867053176b5a8a9958304da783d468562895391e9fd328f99a0bd2 *b9c8c606b1d21dab47dfeed69c042fc58f66ca29e260533f65fb8698312ca52a46b01d0b67975b *e58b33dd9a0164e233a2407237e69238e362672e874e2061b9a914ab0bb5a4a6c05389f693ba9f *f6061a8d78f9c244d8211cf72a1a8e57fd11cdb5a327fc31c6b5fe24b77b763b542efb19e7672e *3ca02f39962837652db0140b5e0520fd2a5b142d27096aeb906d588997b5e35eb30c2398567a20 *5e7ee68c0d72ecfbbf2425d6292aa5b7deb84d66ee5ded33a7443457690079090e44b76b95d13d *254e8d355444dce08adcbde8e065f996033a4d6a3a0473236b8152b861e6ae0b5f77da6636e0c2 *78c567b25778db7a7e6b4f2e738780e7c6a64c627d25a62dfde04d452ccb7138a3db4be49a01a0 *a0445cc78bb737abf5eddcbd4111f10b0d45233aa89be59a991b67c4216faf931f89571a97942e *31b1e53961b388ab180b5e4a36d82ee7fba37a4f896a9b9c2acbe1d55ae2f39af8c4e65c7424c4 *301874c9e7b4dcdd5ca3432f8188da4a996126019f50be8180708c1b1d625c3326666c6ea1603d *608c8631c112415e20344382bb64a1007e1bae27ab027f2911d09d846297f982a27e4f06a70e0c *8e4bc8129014af0f33475d3d4b3c2d076799421a4527c3506817e4cc290e2b35a07f6255b6d3c9 *32e37ddb70e18b12a3734bab2c8ae9963996cb028cc3dfd08f3b000ec84c7ac4695ccc93f46ab3 *8be8399cf24511aeb399952fad746b868b4cbb1c2d35e7db09972c1fa5df21840b017b7503ac8c *55d36355aceacca8c8d295e4862740e3b780a61279a079a8135e246199a993813e3755c7a654f4 *f4b75c1f75e1a3db0ce3e840bdfc6f8a8e714764ac5623ba417d211566a752fe91c233f19a55d0 *fcc78ea65a1a8a139b61f476310a6d50c536ce9e09dd2b231abdcf413b03a9aff8df929b2f9708 *ccec064ab2bfcbce6c348892a74b3518d9ed4981aa4ead600e1dcde0e2cd2b722b90070d0e566e *509457bad65e62c435f4ae5abf45838f14e0659ac2dc1b0a1aa5f07577d8d8516e2d6b92c2112a *e72a23772ab35b9320561ce4c0d1361426e39950ad99d24c66ee4ca6762653d493c09045e1ea94 *7cd7c09a27ab9f4929d0cc01e57d259125f7a812d4ae89a24ad942c8a59280dd526068afd153bd *46d7090c4d6d2e1f87712694cc77b39aecf44108b1e1bb11c648bc766ea6c2634c7173bb5a8386 *08a75af267e1c9e3869eff7deb42ebd0199e2c4ab72f15cac61a4c8f0b34805a9d60b2657f3d43 *efa2d23cdfea01741b3dd468415b9acff3d1a435e834fa29a01c7e448edea4973606a81bfe08bb *837547a87fe3582dc29e5805d5e806a8db1d78813cb1d0d3b00f59344f5a3363b7d67f7f0adff0 *cf491b2bafc0df5fd1ecc91387f547a4960ab9e7148e155f4af022b89f607a498ada105cde9964 *784b06c022b3ff4ced37fac3eb19ea1ab83ce37c89bcbe93a8a4d3a385d4a012dd3ffcfd152579 *b8fe43777c390e6fae4732c391a9a48bba029c5ae729c3d023f80bd8286004a8c2c2107a78e518 *f85ee7a02cc195a41a1a1ba9349ec0d2ead3070da0b00b346d7e820f7d82094704ab8f37b43cc1 *b8663610c2500678930a2ed260d0c11f3918a9c7a10ad817a354daeefa491f573837f08435b04a *051229b954fba0713d05d10d87db8cefa3a0273e110b092cd11f3ea7907753ab5eefef57df7da2 *a1cbdb69d2e3b7a78c42ceab62d8876a25b6c3146f8575925628002343396656004918a7a68fbe *2868b8b2e714f1e38f7ffde1cbaf7e40f4480435bafaf88b976f230a40c5cf19230996f8c48ff5 *f3cf3084624e2114b8a9b0f938b41ed6d5859da077f0158be354d1d841a2196316d223c3e8271d *deb6b48f51df4fbcd12817348c86e8f4378c0f08826ebd47e4da3f0ccf176e911981d0adf6308e *8cae97df3f8e1ff2312a39e09b9f8c88de344802a60f8143218bd288140ea9afd5d20c1df0820b *6b8187c0f4d9e333b8b7c159299591171d4748eeee27d57d13cad223fcdbb36fbff9d35f70cbb7 *ab5bdaf45607304b83d0b2232307f98f9200f9c91764d8812b8a50cf230a9e4bf7e4f936abac4f *308d8cbcd3c063e76819e868a695f59384d9cd78b445ff294abd6eb7a3b23edab08d1ee9a48d5d *c94a18fb1249050d5265780f821e08763aec11378495eeb43bb26d9d048db13f49cc417b4849ab *18e4b4c40c4820fc4e8a464e2932dbfce4db6f3e81b7b37e9749e14a7f41a954b0d8fddbbf7d72 *0976753d96df40ae779fd76a0122fa933fc04710c7fa09cde813bce444abeb5dda1ebe36e013e2 *8a08604049ac9f506c244198c307572d5c6ea4e39fa440061a2b992bcc6402bdd45e1642e55c35 *597c821604f054363ff9f30f5f7d8dfb0e3655e88219b11e59bf4d1b3671238ca4bba19c322487 *0d4c331d2e44f58c5dc4d6aeea3bd72ed0b3a3ccb5b773eb0f21a79f13b5a535b81e06842cf3b5 *56665f598d3faf1a6c4ced06cd0739052e4d7ba0c0fcfb753e2b965a4507d30f7898ff7db17803 *3588f5ff6f1b9d41d6f8f7ddfa4da3ab39a5fee1ade699c3a4f1efebd745e3df375a73a6f7b4da *f44700f3e58a2eba7fdab85eefaef3f1abcbfc76a3fe67e33f377963f57ad99814549648c3d9ae *1aa35f56c5a4315e2da70bfdf94675f1ef0d1c907ee9059c89c08bdbd0fbdc584da7ba3f2d702f *933e16ddb23f6de541ef25dd0142d26f36a65a1fdd3636e3d152ef66aeda976d6c8d6eaf77394c *87707eb5403abdfee5a0d7ed6bb2bc701ed06f2fa087bf416281160ad00170a3c66a9937002c74 *b4d6e78b7cdd800016f599f407b14b8da471b35b3448396f4cf2a986f4cd8d56351bb31cae0e5d *bf55f014dc6c3990699804ad86fe6f5dbc513f22a476a38dcfc1ff3fa97f362861653b2df4984c *97106535cfdf707fb75a8bfdbfaa80fed4b87dcaaf082e82fb38c0b5e1dbf4844d9d12580417c1 *bd2770fd8c49a39d9fea4b9d0e540417c1bd3770913422b8082e082e924604f741813ba050b50f *9c0df4f9612f10fb4c9534066df8b243a1df07ed76fbd8c19fc30246701f2bb8e974cfb919b0b9 *fe01fafb7e20f699106900e158e218b45d527287889f7a3f3de6023a447daf057578cba1c78e01 *5599ec43467770ed029ced3e6bf7b0b17d50a4516d0f278d30718464865d6c7fd11f6b01a9bf87 *100782db0fe018f001d270d9c449265bed4fbedfa51375cab17d84a4219fbb3f1f260d4b1c8748 *a3bce4bc1f275fc0876db1bc7390348e07e54cd63289bb8cadfaec1e99769f69abc363bb0bd00f *8a34fc3fd6490d21084b248748a3ed488e30695821ed2e3dfc5cb12fbb7f2c733f57d2977ff616 *b0faa73220ff2ffe96dbbf28f7e1eaa8f68da7fca4195df9b13211fb23f5f5237ff4ca875e9d40 *5986f84f97275e210d7f6cfe741f09974f0ceec4a431f6a4ca71a461d5aa3ad270b7dcdd25e5a3 *58152baa3853f7176701f7e186fb7f58f1b268a05c10c78ea74a77cee8dc9e0e4db2ae6bf9aeea *046379fafbc66adff544e4fe657e345c3e31b8939386af561d431af6ccb19f34aa0bae7c6aa9df *d62aaf0eed94b2fd59207705649f53553eeb5356ddb4aa9df3e88ec1daf062549fa9c596c39d84 *26aef6bfe6aeeaa3e1f289c19d81d4909f8038aaa411da70c348fdfd70ff548f2d3ec25516300c *a2faa93f92f26899340ee34b68d4e58ecce8f64f2f3c651fa7ed277b2c54750b2fdf4313af9046 *78c2c77e7d84a4719fb386fd1917b0421af53b65f465f9838b05654e57cfb7bd050c51934f1055 *51e58ed6fe6d2f2e873fab8e33481af574564708d56e94ff507902fbe82e3471e53f5e37b647c5 *e51383738d4b3ec3bf0769dcc742d56e2763faa203b94f1a16cb7d22a19f9db386bb07fbd400ff *990a6994c1d56d7215903b5afaf4c0e1a07e3ce1ee94dbc3beb1f99ff99f7b32adcacc432b591d *7788a8d471637b545c3e31b8a349e318e36de8ab9e348818aa90f5e7a79df1b1bb720efb7110dc *dd14930f7cb2ef15dc7bf3868b94780871fcfa48a32c54ce6b741f17b8e9b49f85bf147c03f4ad *7b80febe1f887da62235f6b7d3cdb82ce7cf7b3ff682abd366ce63741f1db8daa60e20af8bc447 *3c13236f23b8082e0cce90469e9cea4b9d0e540417c1bd3770913422b808aefad5ebfaa4719d9e *e24b9d064c0417c1bd2f70bd6e248d082e820b7c45d288e022b8e057248d082e820b7e45d288e0 *22b8e057248d082e820b7e45d288e022b8e057248d082e820b7e45d288e022b8e0d7f1a4510ebe *a24fee31441f88fba90559065d0bce7db00af4040b181aeb8327bb7f2ef7dadefa0e8e06b77f9c *6674c72df1b15fca5fa543933934f5f7461a873e29cdf85840d54fef4d1ac7cdfa4ed872a2c91e *1eddfb258d3aae7492d1d57f19d2386e8d0e4dfdbd934695c51f8dcbd5f9bbc0ec77ffa923c0d5 *8fa9fabf3a6e07423b75efc986572b344e2553913fdbffc3afd44d967e3e0a5bea763700ae7e89 *c363dcffa5fcdec3c87068d5bc9dad5f9bbbd1dec349a3bc2777c096f204eea150854923bc63de *02de155f429ddd69b2874726df551d45875fb12dfcce0348230452853ef61faedbc5d0d701d270 *2757bf9fa5c9d6bdfe98a4115a81f03a1cad7eef9ff51d906fdf98ca7fbb878e7192c91e87e72a *34b1fd2c25cc560f8eae3ad5faad90ff6b492334aac35f0749a37ed542db54218dd0948efb3a8d *d4f0f7e5086c09cfeb5ea4010fbbdf43632a8ff78ea471687c27941acee8ea70d39d9a0fbebab2 *f0fbbb270db7f7435f07152a7fca77248df0948efb3a9d421598f1614027220dbb0ffb16cf7e3f *5fd280ef7754a842e0dd85793fa4712c711c4d1ae1b1964758431a779364f475d6670dfbdc81ed *dd8f80d50dbeb785ea1d90460df21d471aa1a7ee69a1aadb922315aaea2a85bf8216aae3275746 *a1b3220d9f6b1f892dee2b2eb0ea6a1c04e73f5c3726bfb37bf83584501f38d93280ea4220b8d0 *c7fed44280ca9b73c7c9860056d7708f856a3f4a84bff6f835ca7dd7ada1db6dc542154292e3be *a2373c820b7fd561d2798cee1ee0ee4618913422b8baaf8f8c34ee2a3322694470755f1f1569dc *9d3022694470115ccd57248d082e820b7e45d288e022b8e057248d082e820b7e45d288e022b8e0 *57248d082e820b7e45d288e022b8e0579534e093877fa9d38089e022b8f70ace218d731d620417 *c1bd0f708634ce52b0457011dc7b03174923828be082e0226944701f34b8935c3d131cdd11a471 *d2db71ee0ef24497ed48c78f7115d0715bf74893ddd7cdf9dd7be48ef6cee01e89347add33200d *19c489c0dd7df68f812de1957d47a4b17f45cf8d34fcd19e8c341897ef2e72e00b8edc0f218dbb *f4553b443b88bb803c81d8753b56a772dff0e8ea5656beeeb67a779ceca1153d2f0da83cda9329 *540f1a5d240de93892c60326fbb0d71f8d34d27ebb9df6157cbbfbbf481ad271248d074cf661af *3f2269a43d4d1af4df5dbf47d2908e23693c60b20f7bfd3149a39f75346974ae4112747457fa9f *960859877ea3bf783ff5e599d39046b546c69e05ac3e14da48a9d7510ff0010b284083a411aac8 *71f7af3b90c6fed5bb4309100b20bca247172a0a4fbf7e391e8b348e2f42125e5fa20805a8df43 *946702e91321f450756232c1ff5dd2391d691c5abe3b92c6e16a0ff7de0f0bf87c48a3bec35f2f *69d455c839ee0b40b5db03fdae2274a70624d0b916f9017fee99bf11e1c0e7f0efb148235423a8 *a6025fbdd4f0f7c57ec675c1fc0fcaff1ff3d991a4e14ec6d673f24b7c9519dc8348c3ef904923 *b4a475459a8e208dbb80f33fad2e803a04625f6735a4e13ee002ab07535d5fc273050430e5361a *08599002d5b91e9bbf8d914c8074e089c7210d7f5be537159ee13152a38cdf5c17ec6e4451fefc *48d2084f66ffa70f228d1068b5af3f1f4feb56d4238dbb81ab1f1dfdaff68338b45677208d2a02 *d5118790863e6bc07f96088038e06bd026cae9f5e92fe3f6201199015f8f7bd6289186ffb07dec *d059232c1c94ffa08ff4552055007b48c39dce3b210d775142a055b587bb205bf9cd3b82dbf757 *268d7d0f557ff301df496adc8d3480fd1bd2e85c5bc901b201f42df809004ca7f4047cdeeb9f96 *34fc9f42b87527d2d82f350cb8d01fcabfd7fd7f62a9e1cfeb1e52a3ba767b4823b4c00f208dfd *e0ea97c3218d7a10d5d5f131e0dea45145257f7d11c3fbcaca08519e4472d003faaf8990867c0d *4e68a13a8c4d2af448fd46fa785efd7f8fd4d84730eeff2757a89c057cb842e57e768406f400d2 *3804ae7e390c691c03b00cac6eb477921afbd697b05cd1c15b48c3aa554014242184348880e8fb *7b3b6b1cdac823a546f98f77f93f9e358e05573fbabda421200eadd591162a1f5c154c757d09f3 *955191fa80d08336110710001141486a3cde59a33a8d8a85cafe741f0b952735ca2fc8c327911a *767a75fb557e0647f74e2c5455540c235b7993ee08ce1d5d68e2ea10885067610eb5c7af511e55 *194c757d490494142af8d91207fd85480355abf669a5c6715fd11bee7efd2abce1f598bb6fb435 *e08e03265f8e42654f15441abdbe4f1c9d6b7b0cb7cf46d2908e23693c60b2e50fcaa2e56ea33d *21690cda834491341824421a242be840ce92232169023fd1b13c4a8d481a27996cf5a3fddacefe *d19e8c34e888a1496390b852e33a25c921c4017f1792819fe9781e49433a8ea4f180c93eecf547 *0b2f242ae06338fc0808ad91be4fc462890348833eedf5496a44d288a47192c93eecf547230dc2 *75054441b2002d5409490dddaf951c2c35e05378b63b7c38691c5bbc07bef6d603ba3bc8139517 *928ed5e90a6e99d11ddcbad3acddfe8985ba39bf4a4fee68ef0cae9e3400cf954882ee902d549a *3806090486e82f1341059f89dc40e2a9017c1c699c7001ef0ef2d4a4711a70dee8f693c6c9d66e *ffc41e71ed4e08ce1dedc9480304034a0d2086711bfec971bb73ddce295a4a880308029e01127a *a84275d7aff392e211dcc70d4e142a2d3546039002edbc8d26dbf6de4687759420913422b88f12 *1c90c6182db64ab235486a20991c680f8da1fa18163082fb58c14902acb937dccdcb48fbfb4903 *5a248d08eee30447597ed0d4613288a411c1fd7ac045d288e022b8e057248d082e820b7e45d288 *e022b8e057248d082e820b7e45d288e022b8e057248d082e820b7e45d288e022b8e0d77bbd44e0 *bdcc38828be08efa8aa411c14570c12f1b8dff80b8e0e0e8226944701f34381b8d1f4923828be0 *de09b8481a115c0417046748e37429d3673ee3082e823bfca5f5b3481a115c0457fd8aa411c145 *70c1af481a115c0417fc7249e3216522fcaff32b6311c145707707174923828be0aa5f79e293c6 *190ab6082e827bf7e0c0c51e4923828be02a5f55d2804f1efea54e0326828be0de2b388734ce75 *88115c04f73ec0c54091082e820b828ba411c145704170913422b8082e08ae441ad31334750a20 *115c04f7bec045d288e022b8608ba411c14570c1164923828be0822d92460417c1055b248d082e *820bb6481a115c04176c913422b8082ed822694470115cb045d288e022b8608ba411c14570c116 *4923828be0822d92460417c1055b248d082e820bb6481a115c04176c913422b8082ed822694470 *115cb045d288e022b8608ba411c14570c1164923828be0822d92460417c1055b248d082e820bb6 *481af76aed5253f49ffce144a3b3f04f02ee54ed57022e92c6bd9aa0ab20ae928f4e461a2ea087 *023dafb5fb50c045d2b8572b23ad920f4f441a6530c781ad7be2bcd6ee43011749e35ead96344e *d35495100e9346fd13e7b5761f0ab8481a0f6a1e69d8c381ff73f9b3f2eb552aa8210d0bccffc9 *3ffb3cda647f65e022693ca8954823744408e1b3fdbbfbbf85b18734ea286d9fca759e6b77eee0 *22693ca81d411a77f949de8ba47106e022693ca83d9834427a50248db3001749e341ed2452a30a *3492c619808ba4f1a0f628a471c0421549e3dd808ba4f1a0f698a451e7d788a4f16ec045d27850 *7b0069943f2d8dae1eeddba5e63f138db7a7021449e3decd454f553e5a877f2e7b32caf85d1a5d *dd9fcbe0dc4f1f69b2bf4270913422b8082ed822694470115cb045d288e022b8608ba411c14570 *c1164923828be0822d92460417c1055b248d082e820bb6481a115c04176c913422b8082ed82269 *4470115cb045d288e022b8608ba411c14570c1164923828be0822d92460417c1055b248d082e82 *0bb6481a115c04176c913422b8082ed822694470115cb045d288e022b8608ba411c14570c1f650 *d2a8e6f5578a6c9ca6457011dcbb05f770a911228e930e915a0417c1bd5b70ef8134ee770dc5b9 *2e6004f7b1823b1d69b835c4f60cb1ae56d2a176ae0b18c17dace04e411ad5c26366887515c9aa *5750f87faf7673ae0b18c17dace04e431ae5327a3c44f9a8aec29efff7ead36e3bd7058ce03e56 *70a7250df91987e87e50fda9eeaa090bc06fe7ba8011dcc70aee54a4e11762c5211e471ad516ee *e65c173082fb58c19d8e34cac5baef20357c00b1a47104770ee04e4f1a82dbf7208d7dc471ae0b *18c17dace04e491a3e66df9934f6dfc872ae0b18c17dace04e4b1a2e66efb5508549265aa822b8 *f301779a18aaf22766885505c9ffddd5c17c7dacdcce750123b88f155c8cbc8de022b8608ba411 *c14570c1164923828be0822d92460417c1055b248d082e820bb6481a115c04176c913422b8082e *d822694470115cb045d288e022b8608ba411c14570c1164923828be0822d92460417c1055b248d *082e820bb6481a115c04176c913422b8082ed822694470115cb045d288e022b8608ba411c14570 *c1164923828be0822d92460417c105dbc348a3ddaeaf75503b44b7bead0039d4c95e70e5318446 *55fe5d1deaf56e4d492f270527cd96957800b85065a30780f3db31e0daedd0c60447f7907626a4 *e197f5bcd310efb24f072e79aa8ea1fc49b58e8f3a1d1e33b85302ac4cb6be16f01dc0bd57e4f3 *b7a6421aef7974a1762ad2a84eed04a4e12ee711a4515e7ffb53f509758a9d708490ffeb43db49 *4943efac0be4a1cd80bbefebe54f1e7bedeedb4e2d354a7cb9ace5f80fba985c05e057a8522e7a *972b5f957ff647157a5ab91ff89a574881a9ea66a5528de57a73874195ffe20e43957b0d95b473 *a757af72f1dad9018716b9fc4279a4fea855194c791c75a0cb5b456f18d2a88eee3eed8c48c3c5 *10f7bbaa7e74fc77016eff57871f73ff5a1d95ff842abf50057197b1aafbbc580ff0c1e0fc097b *52e39825b70c25f4fd2870e1d1f82cc8dbd93217284fe3d87646a451fdcd90461dd7adffee338c *1ad228b3a33abcb640ab63744823bc7df5dfcb3331e0aa9cf82edfdd61a887009a96da5e5c3e06 *776b48e3d0f842d8ede3bfb3b3a7228c0f8334e8c72a79ec278d10f01269d48fa1bcf2615231a3 *2b8facfa4a18e9aae2e8246cbea4503d149c055b4b1a7593dfdfc1d142a8aaab85807b5223a485 *ddad7d08a471f7edac5bca1269d4a17b99f7b8cf96595954a80e4dfe81a4111a4d8834cc29927e *29efe0dddb9990c6be439c72ffe88a5e397e953f096fab3447ecfabdb69d56f789fd4c7e0f2805 *feefee777fcf4292b0a250b93dd681b27f298355f580aa2f87baf15752b9eb51fdb9bae4fe4f7e *078eaa5c06581e471535425357b6bfd086dcb59d0969ec6bf718e2be1539c18c83a4719a766ee0 *4aa4f150707efb95803b23d2d8cf2a4e34638fcd9fae9d17b8f24a9ed7e83e147067431a87a4e8 *b92e6004f7b1823b1bd288e022b8f302174923828be082ede1a4e19b274a06c863011c7eea4131 *6d2701f7284682f0e44b5e97635ed9d76a46170613b659b9ed24f1670747f7dec19d426a846dd1 *7718e22391c6231bbc4e04ee006984fe7c22d2387644654745248da35b78a58e18e25dfc3b47cd *b8cec3744f70c7b720b8e330e80ea47168bdea3e7f2069943f8da47164ab3a6ce87bc00b567e71 *9f2bcb05cfe0ea1e2a3bb3fc4f5dd7951d5f2090d7f76bd58faafc0432d2aa53d15533cb23298f *2ae8a32b8fe1d07a85a6ef3924fd55084d689fc3cd238d435b51fe7c5ffb9849a3bc52f4bd26d8 *c17fd57f25fcac71c1ee7b34d4c5bea78281bcc78ce32870e5e9ed7b55feb9ef55d6eeb8f5aa9b *7e65b27759c572e7f70a01dad73e66d2b0dfddfff74491fbaf56f7cde7370749a34c9655f05564 *388234ca23ae932638bafdfddb4ffc91d4757407d208030d4cb6fad88948c3055c9eeaaf9934ea *f1a71445beefe5fdfb728034a48beacb0f921a2ed8fa51caffca7f3134bdfa4ede9dd4b80f98f2 *5bc1ad701f3b5e5e30b8631f7cc7e01e2bf2d6d1e6abccb3fc72885b57f8f22126bf6f34f7208d *3ac43c0a5c78e2e15743ef3d0669947b3c196984a7723c897c9ca4511508764554f8b1eae3f257 *572cfb9c1bb7b7fa50680c21f5cabe697f522150f6d1f0d4c2cf38c8175a0d7ff22e068530899a *725f3966bd42606cc7cafdb5fc7ffd02543ba69f025bb16fe70eb58f9334f6b53bf999ee0deebe *eda37593d8e6b0f95380b3ed5702ee1d93c67d09e31c163092c6af0b5c8ca13ab2ed27eaf73dba *6a73d599f31bdd87002e92460417c1055b248d082e820bb6f7461a773d75ec01b70f946f07b286 *9cf7a9cd9fb33df318a392638e3bce0655edc27db7e6507a0870dd131f3e69bc337061d7c4b98c *eefcc01d49b8be3dfa6ecd7ff7dea6cc481a0ceebec6ad939046d8c361db63e1f2fd2d7a4170c7 *b4ba2e4b22b2ea3eba4f171f3769541d5ad482d50bcbbe37f7a5ba67e96727dcb3ea59f21ff6c7 *e677624657df53f8337f9ae539a8ba49d48dc507547e57f9fdfa93a8775656bd740c2efc4a687d *c2abeb2f41252aa62c41eafe0f3faf6caf614f6268aa164c799dcf8634aa9abca7cd57e7109ad7 *31df2bd58ac263d8ffb92735ee3e2a1ff05e707719cbc1d1dd6dacd537543d32dd751b10dcfd81 *c8f3254abb1f52586c73db19914699bae57f8f34ec43e1cddef76c8534cacb716fd2088d2adcfb *9d49a3ccc4ab6b54df89578bbc7e8afe58ab38e2205fe815775cf4afbe137f09f64a0d1773eb17 *c3fd49ed9b663d0285277d56a411fefd24217241d2a08ff693c0e12ef606a3ee077b14694c03ad *8c7c7616b5a3db4f1a61f0d5372a919ee5c9b8fcf7f0c6d49c35ca0fd7777a0fd2a87bb90afc8c *4823bc2215a9e1ff793f83288382ef8fa150854615eefdcea451e5705560f57f3d9234c263adbe *5191b85536b36fa47b49234cdffee7e1c590bf1c2935aa530d6dcd1991060ddb9d807caf1cc3e5 *8ff67ff73777fed5671d5c0ea9046550eedfec1325e4abf654df7b08b0db54dd24c2abb46fa2bc *7655acf0a75207343479157ac53e66bfd74ddb1f4aad5fa3bcc8d5c957376c5a2d8e2c885f7dc9 *7da63c2a6967441ae17622a79a6d1f1db8aaec7810b87d2d82bb4f8ba4f1bec045d23873708f43 *1a2cc54f314069e7ba800f0017d2821e00aebe4570f7691f8e373c828be0de29b8481a115c0417 *6ca7f66bd876f6d1a3fb5e390cc0b7b3dcebac11ee0495d1723f7707eefe767410749d55c8ffbc *e2f2f347ebbfbedfa216583bf74ff76967431af5ed03881ead7be5b85d7137fc9e678dbacfd531 *8f1d0f7aefe85ccc757faf7a3ae49323c185cdb87e1715d2a8ba45eeda3e26d2386e0dce9734ee *6d8e7b34d22833dd03b92e655b599834ecff77248dfaff0352a3faf25ddb9990464856d26fd372 *751cfff1b2bfcb5d349fa7c867b5b1adf6f3fad1949f9c566f35afd323ca2fba93b7cfabf004eb *fb2feb197ee7156c7127181e4df50d6f74e5b5097182aaf4f089c4218dfa918468cda7b6f2c80f *eab66104aa6b67421af573de1379bbefb5b23cb7dff7c4b6dee5bbfc5f33baba4985f6a4ddb658 *b667b2e1fef77f0f30d243eb567edefd7fef647d2af2ffeab31c8734eeb27676adfceea4050478 *f9e163a65d0beebeed54a45165a90748a3cc51cabfb9cc2d481a65aeb6afab2aff53e1d7fd4985 *ff1a7aca893ba9624515cca199dc81345c02f557eecea4e18fc5efdcfdfc1ea4515d10db82b86c *57c45d9df2e842edcc48837ef257622f69b82fd49186ffd99ed8d66308a40c5c855fdf0f303c75 *1edd7e4cd8471ad58e1f536a84d8d831bfd99f8e200dfa3fbc2065a07bcf1a7520eadb99914668 *1af756a8e47ffbd72069f87fdecf56fd277174e1d7eb26b58f349cc986801e268deab3ca42be2b *69d4525a88e7845e098dcdfde948d2f05fa9eb24401ae5557157673f4f7046778a769a9ab75531 *ec9d9bcbf32cbf10fedc075e1bdbeafeef7ef7c1973fad09f794dffd71b932bd0c947e56e50743 *6855d765f5f360de963b097721421be2ffacea7a2b4fee98cf0391b7e1fdab5b2dfb3b8faebcf4 *e1dd0b8109b533218d7ded5c9d9cbf6e70f5b2e35ee04ed1ce155c248d5f17b8481a47b7481abf *3670c728257700f7f076aee022694470115cb045d288e022b8603b1d6904ec18c73f7cb8dd2124 *ab0c3a19b95ff0fb91e0ca2fee1ddda147aa60f7823b658be0eed34e2935ee401a773f07de2928 *ddff9d90d0fd7e34388bbf0749e3d02316908ca4fef973c5965f15b8774e1af735913c8034a8f9 *887867d2d8ffcc9d48631f70faec5cb1e55705eeb4356fed27c160d4b2c3aace736a9fb43fabf2 *1f42de267f1c7e1344246ead48b3b2dfdd3f865eb27fb55a9955b694fdb50ccaefa20ade07cae0 *4213b87f8be0eed34e1f2812884e08050cec0f7ca87e7e87cb910f490d66f3553dcbd7b9e867ff *60e03f677f53fb40f904531d53f5fbb962cbaf0adc694bb4c9ef6688c792462890c0efe0206994 *c7516e479146f97c5c66f62112aa210d0b2a04b00e5c248db301f738e1854603ba8bd4a882f6a4 *46dd6bf55df8ed68a9117ec9fdfd28d2a8035295209134ce12dc99285455da2aff5549e8595d7f *f6b707498deaa35520474a0df9ad4c1a65352b92c659823bd531bc7abe0e1ec3e513ff2c5d1799 *e9fe562a84eff7ed7e6eff773b75d51b3e3797cfbffe63f6b71066974f20caf59af8a0c220ca7a *9b25213e863f2c96c36fe78a7ce70deec3f4861f8337fb9f39d7fd88e0ce06dcc74a1aee13be53 *db931aa7fa3a35b8475cbb08eec8f62192c6c36347cf773f22b8b301f72192460417c1bd037091 *3422b8082ed822694470115cb045d288e022b8608ba411c14570c1164923828be0822d92460417 *c1055b248d082e820bb6481a115c04176c913422b8082ed822694470115cb045d288e022b8608b *a411c14570c1164923828be0822d92460417c1055b248d082e820bb6481a11dcc703cea949f0f0 *760ad2902205fe3f55f787fbfd53a704e6d4563cd7d19df7da9de5e8a89d156984dbf9f21603ce *aee749c09dae4570f76b4869a702762aa9516de7bb80115c0477448b52e374e04ed722b8fbb5b3 *961a8ece572e657ed7e68355a7c363686601db5ebb1bb9d8b7ce175b22b8fbb6534b0def3844bf *9c06a71f83342c29dc67a46ee5c573ddde5f19b833961a2edbbd3769f8cf1b708f2435427d1ed7 *dc6907f6e321e33d5fe4fb15813badd4a8210d97bfdaeffeef1644b9262eab2cf2d0c3cbb3f1e8 *ca34ed8e3034b6f2383d70e557ecc0ef3dbad3b55f0db8b3951afeff25a971ccf7109892d43895 *8e562b358e1d6780341ea29ded1ddd435b04779f764aa9e1b2fbc7238d5394f5ac951afb4658ae *deee818ba4710ee0a2d43841bba7d4a87b47d5bd7c92d13db44570f769a7931a65ec7e3ca9517e *e13eed5e52a3fca4fd4b248db300779652a37c210c3a22fcbb60ec1f5df564ff51bc04cefefad0 *797b0b58ee2b3cb66ac78e91a03c3dfbf38347f7f016c1dda7456ff8e9c09dae4570f76b672935 *aaed7c1730828be08e68516a9c0edce95a0477bf16a5460417c13d3eb828354e07ee742d82bb5f *3b3ba9116ee7bb80115c0477448ba411c17d3ce0ce4e6a8825dfffa7eafe70bf7f31373c8eeec0 *3f6a67451ae176bebcc580b3eb791270a76b11dcfd1a52daa980450b550417c1055b941aa70377 *ba16c1ddaf9db5d4d8abf33d04151f6b3ffca8a9bb35fbe69e1cc4c380ab4f2817fa5d47556de7 *8bcbe70cee5173c34fd91e4f6ac890ef471c0c6edfcb87c10648c30d6abceba8caed03d88ad3b4 *33961aaead40851ea87ff5507bbcfdf0877fb7e64cf6e4a471d751859ea3cfce1797cf19dc23e6 *86d32f7e93c7caa1e987dbe34b0df7e732cfaee3e125a9e14f2a1ccd1efab93c1055edc507e9bf *5a5e61bfe35f51bd93b3951afeffaabcf33e0654d1727f7b1752a37e847563ae9c3542c87ef8bb *6f990f92c6beef8756f97c71f99cc1bd83dcf0eaa6dd478579f752c3e7caf6d3d0f3aa0c6c1f1e *9771b92a8c0e92467984d5bffc2a49e343921ae107aa9cee707b97678d1053f79f2cbf7107d2a8 *ebd8931ac78c2adc65a88bf3c5e57306f70e72c3cf57a1aaf261f9a9eef32abb6770c7ea8ebe30 *aafe6446573ddd1c4f1a65c0e78a7c2707779652c3d5348cfa5dfec81e25eb7589baf66efd1a32 *52fad9ffdc1fbb77d6284fb9ba36a167aa9a668d5fc31f95055d05e77f76beb87ccee0a237fc74 *e04ed73cc23d21b8d3b4f305779652a3dace77013f30700f278f0f68b267042e4a8dd3813b5d8b *e0eed7a2d488e022b8c70717a5c6e9c09dae4570f76b672735c2ed7c1730828be08e68913422b8 *8f07dcd9490d6bbf77ffa9ba3fdcef5fcc0d8fa33bf08fda599146b89d2f6f31e0ec7a9e04dce9 *5a0477bf8694762a60d14215c14570c116a5c6e9c09dae4570f76b672935aaa148771ce2a158dc *0ab8873989bdc8db87fa9b4f1aa5e46c6f5df0d55d477cbeb87ccee04e1f792bbb76e721eedfec *00b80793861df2fd01d1fb27db0f5a3d2f2eb8cc32fccf8f69e78a7c2707779652a3ba77ef8334 *ee892d0f9519d387dc6aeebe698c36ee1fc2cb7befc93ebcfd4ac03daad408079fbb7cb0ac22f8 *91dceebba59a1df5b1d8c731d50af21dea7fffc44b09b0fed8ecb8ca9ffb6376c09547e7ab53ee *e7c7b47345be93833b5ba9513a6bb81be91283ff4ae899d07755469ffaef55465b6d01a971ccf7 *bac9ab70dff701ec9046555ef8eca47e7a7b26fbf0f62b01776aa961f74bf94c3cf4d85db0a996 *34c20cf5d049b55665097d2f1f80cb12c59369c79143553f727ff78ee1a1891f9a5e60b2a76be7 *0bee6ca586fb5b1097cb0fdf0535efc0e68f61a877961a75ed80d408938cfc2d04beb4bdfe9feb *296a5f3b5f5c3e67708f911b6ed87c488dba3b690498c1e1170e61b5911ae13185587c0898e103 *fb867edc98dde794fd252c6cee2233ce17f94e0eee2ca586cf1f7988d50fdd9faa7f6d7bcd7fb2 *527fc6c5e9f2cf3ef050ab205f75148781d9cfbdc996c7539e641960403f2b7f5c057f9776beb8 *7ccee03e006f78456539457b37def0e315bca3c0ddb7fd6ac09da5d4a8b60f80341e1d5c248d0f *18dc072035820ad543dbbb8aa1ba9b29e920b8fbb55f0db85f9bd488e022b8f701ee83901a8f05 *ee1d488d08ee5d823b3ba9116ee7bb80115c0477448ba411c17d3ce0ce4e6ab89e33fb4fd5fde1 *7eff626e781cdd817fd4ce8a34c2ed7c798b0167d7f324e04ed722b8fb35a4b453018b16aa082e *820bb628354e07ee742d82bb5f3b5ba961438fe0b70343bcab27ecdd82bb6b2b81ab1b8bbf42fe *e77bc0851eaa9faedb8913925537c2729417fdec86b295df53fe1fca716f75e3aa6be74a69a78c *bcb58b7ad4104f8ccbf700f710a9e1a3872affa9ee95babf1f411ac78db7dc499091bac460ff77 *5f2cffddfdad12b3e352d6dd57f5e3971a2e1b81ef8128f2d06bc7b6774d69873af399aa72ff54 *3796f20a85ffb66774c79186ff53005bc2722b440ea1a7f690c6bec9d7b78f5d6a54d743f91cac *ca327d5e637ff69f3042485892ab2bf8e0ca80ca202ab87c5fa9d1f69a01b76f35ea3eab4e9535 *a0fd53f43fdbd7490d230de1f621d270d66e9fd478c75caa3c90b3228d30ab08e486fbbfedff5e *7e5edde565ff7b08f88316f044a4513f62b5ffcfe1eff59d1c79d628637658660449a3cad28e6f *bf5aa951ddbc10ae9e9c34aa5dfbecf51ca4c60948a32a2c439d1c941aa175bb1369ec07bebf7d *ec52a3cabaee25357cfc7da0d47041c8cf27911a553e799485aabc428f2035c29d1c4d1aee4f75 *a47ccea47152708f68a1ba3b69d433b37b480df92dd4f5e35aa8ea49a33aba47208d6a2781c996 *17bc2a5b8f228d6afff5d3af6b1fbfd4288b63730c2f6f157d163a5256d503fbb40abd5cfe1e7e *3524921e9355d52b25fe0af98be22e8653a8283cc5f20b65e2f09f2b3922ca230c6dc45ed2683b *adbcb0e157f7b58f5f6a94db3d8658cfb0a237fc2cc0b13e70cc43c7b75f83d4f0db07401a11dc *1ddbb993c649c19d95d40809e70781ab6f516adcaf1de4cb775fd328351ed822b808eedd823b33 *a9f16ec145a9f191818b52e3ccc1d56b85d6a853fdfce0e80e1990c29db0852a64c4aa820a5bae *7ce031f2f6c1ed5c67ec807b14bfc63ebf40c8481a7afa6491b7e6dc1c2285f26842d6e0905536 *46dede6940d5f60190c6fd9bcb276bc0ed43ff47250df727c7a414268d1019d40ba703a4e1833b *b69dd7ceda16a5c63d5adb6b065cf9a1fdbf0b20fb57eb413b69e46d2595c902f15f3a441a0e1f *d82735dea3cb2f4a8df70dee08d2382417ec27a1ef278cbc457055777558c1da0f6e0f69f832f4 *bd91c649c145a9718f769034c2181afee441a4517fa2765bf0ac11c2e4fd187e506aec1f455d8b *52e381edbcc0ed3d6bd461461539ebbe9f2cf2f6e059a33ade7ad67ffea4715270516adcb39dc0 *42f548a4e17642dff75aa8ea5e0ffdcd4cd6fff3d99046941a670dce172861a5dcfddd7e6e3f39 *61e4edc1b34619546816f2194fd65727cb8f45a971a89deb8c1d700f911a0170a76be70a2e78b0 *0a3f747c8b52e3812d823b0370e74e1a270517a5c6e9c09dae9d2fb8837cf9ee6b1aa5c6035b04 *17c1bd5b70516a9c0edce95a0477bf16a5c69983ab9a6cca7fa95a3bfd4f4e16794b3fabb23169 *bf51a96ca72a7f5e71e254cd6eaefdaa6e9c7b277bff7656a4116ee73a6307dc7bf66bf87fab8c *2ed4e771e3f2ff37937531b56accadfe5c765e0448e390d7f018e28852e381edbcc095cdfee71a *79eb618bc5d32a26bb381e220df7f3a349c37fadae9dd7ceda16a5c63d5adb6b069cffc8e14fca *1cda2a3b278dbcad488df048aa3fbb82c7fd5f555fda27350ead73941a0f6ce704ee006984cf1a *759f84be9f30f2d63b6bd49f83ee75d6a8270d5fa6be33d23829b82835eed18e901aa1a376f889 *0791461df6fa9d9434a043845b77c6b8b3d4a81f95dba2d478603b2f7027396b3c82d4d87bd670 *3fdc87bda1b386fbfff992c649c145a971cfe673eb738dbcad218d2a719c8834c2678b2835fcf6 *0190c62381ab57b37d51e3e3b18bd1a7ae795b1d59751c210d2dfc7385347cf5d2075d5d84bd6b *f7f07656a4116ee73a6307dc43a44600dce9da0703ee98153cf44c941a0f6c11dc39823b33d238 *29b828354e07ee74ed030277680d0faf71941a0f6c115c04f76ec145a9713a70a76b11dcfd5a94 *1a1f00b8d09a5813ce1dc0f906256b010a198fc226a7134dd676a2dc5fcad6a8b2ddaa3aa2f2e7 *95ccf52a88ba6987c67956a4116e1f002e3f8a5f43fe587da1fe6fc1d1d9d77c436d195418b0fb *f309d6ce1d82b77655acf68dca654f47d50352cb56f64f3bdcf99991c6af506a9419d81d48e31e *52a3fcaaff7b18f0c949c3fe547148fa0f96f1b83a62fff33da4e17f5207c46f67451ae1765eb8 *1c04775fa9d1f69a0167ff5caf50857eaf0a06e54a84c302683f257a91b7fe04429f87c0fae0cd *da857b0d93465804a0102aaf4aa8cff227e1a7a2d478dfe0ee491abe16e66388ff5db9bf8439b3 *afd0f9bf5960d4d4fedeaadfebb8b40117ea31fc7299eeaa6f96ce1a0f210d33ba53b42835eed1 *f692469da6e1be5c7eae421abe40a982a8fe54961d15d27019b7fb40f973dbed01d20889c11078 *ffef5551a5aa0f55fb0c81aa3e15a5c6fb0757e6dbaafe4ff673ffa703a4e1be127e557eaa2314 *fb7305f9f6c9ae2ad8f2dfbcb34615b06865e131553faf218d43d3ae8237e04ed3a2d4b867f3b1 *ff08e36d9db25dfe8ec85765ecd557e5f7f25ffd0130230d4b8c7d045a260dfb79c94215e601ee *d8fc4fec532c71ebc4ddfe69979f76267b9a16a5c6e3800b33fcea0141fef7715c555f76f51e5f *305501979fa91c0eca3f5709224cda065c7934e1a9d777e8fe5c730c3f34edba719e156984db07 *80cb0f911a0170a76a956b941eda2aa665fffff0188e06f7d07694bb34dc4202ebac48234a8db3 *0d76a07667d2d88f9ce74b1a4170f76d516a9c0edc299aa3019dae0590af7a44288fe10ee01ed6 *02e08edb9890d27766a411a54604f711828b52e374e04ed722b8fbb5283522b808eef1c145a971 *3a70a76b11dcfd5a941a115c04f7f8e0a2d4381db8d3b508ee7e2d4a8d082e827b7c70516a9c0e *dce95a0477bf16a5460417c13d3eb828354e07ee742d82bb5f8b5223828be01e1f5c941aa70377 *ba16c1ddaf45a911c145708f0f2e4a8dd3813b5d8be0eed7a2d488e022b8c70717a5c6e9c09dae *4570f76b672735c2ed7c1730828be08e68913422b88f07dc59490da94651fda7f6fdf1eeffd429 *81c5d17daca33b23d2a86fe7cb5b22b808ee88164923828be0822d92460417c1055b248d082e82 *0bb6481a115c04176c913422b8082ed822694470115cb045d288e022b8608ba411c14570c11649 *23828be0822d92460417c1055b248d082e820bb6481a115c04176c913422b8082ed82269447011 *5cb045d288e022b8608ba411c14570c1164923828be0822d92460417c1055b248d082e820bb648 *1a115c04176c913422b8082ed822694470115cb045d288e022b8608ba411c14570c1164923828b *e0822d92460417c1055b248d082e820bb6481a115c04176c913422b8082ed822694470115cb045 *d288e022b8608ba411c14570c1164923828be0822d4c1aa7f852a70315c14570ef0d5c248d082e *820b828ba411c1457041708634f2a4d73dcd973a15a0082e827b8fe01cd238d5973a1da8082e82 *7b3fe05cd2385fc116c14570ef1c5c248d082e820b7e8548e32482ed6c671cc17d8ce01eac5055 *413e1269f4ba67b98011dcc70aee81a411c2d73ad218b7ebbeda6d7017dadf07fc653f414bc159 *2ee0d1e03e222bcbc707ae8e34ee8d2861a0f5a431a8f9f249630096ad14bec6863c22697ce8c8 *77cee0c2baba218d765ef7753ad21094f7bff41f1cd220c2007219b48138da1f13690cf3e3bed4 *b10f46700f07173e1678a411fab346cd7cd0deb7dba14feb4823195b39216dec480dfa1b11469b *89839e89a4f12123df79833b8234da79e014909f9234acdc7049c3ca0c91236d3e81d8df22697c *c8c877dee08e921a65e280df1f8f34ca87709114d369248d8f0bf9ce1bdc51a441c4e012c6e393 *867b08a7369d0ef0afa47e4585eac347bef3067724690c0c7100493c0e69b4db2e69106158fb14 *c98a81233322697ce8c877dee0eea050915dea71142a910c5575caf572e4981768cf241f0d691c *eddf7cb88b3482bbcbd701d27817c7f0c3ee3e977c2c117d14a4f16161cbaf0adc41d2087f9d8a *341eecc9f9b0492382fbc0c011ce3ec021590519268d871146248d08ee5d83239c7d74d238a319 *477011dcfb02174923828be0d270d49c90463f3bdd973a25b0082e827b6fe03469b44fda22b808 *ee6301a736f3d5ebdbd12c57f972a2fee7fffc6a39f97235dedde4cbad6afcbbfe6c739b8f8bd1 *a291f47a8d37cdaf8bd96e9db7d276e3bad97ddaca52fdff8b397ff0e717df7ddb9a35d7f966b7 *d86e5af3e66ada9aaae656ff7dd6ccdf8c6e6e17796bdadc8cd7c5edf649abd04f2e27f93a9fe8 *d73bed46da4dda8db7cdebd6b2f9b6f5aa39d200aed7abd652355f6ff2f565ebb6c18f0d3b8dbf *f1cf83b4d718e1087028e3d58d7efbba588eb6ab756ba6be5e347f5ead7e6ecd1b5faf9ac5460f *63a407b0cc5feb9fa6abf58dfe4f8f710eefddb6d6cdd5a6d816aba5fef4f5bc186b48731c994a *87eda11ed964bdbaddb4d2beee68d49a3534f06f47d7f9e2eb62b1cdd7ad97d0c7f5085e7bd51a *37b72b3d41987a0ea3f8c27d680b3384fef2d684a7ab07767bbb28c6a30b5e8be130556f9b3c1a *3d46fdc072a5c1e95935afda4907a1cd7407a3ad9ed178b5dce83ddbe027b99ed062740df01797 *2d9526ddb491b5fb5d3d035ca8811eff6e033b8173dfcef5c24c6939e6d495bcbd289633fd99fe *7bae9ac562b1db6cd7a3addeaf82873dc1ee70c459d21de81eb6eb7cb4d5d8a3ffbc6da55d758d *9dc05afd6e3cda8e16abd972f5b9de4abd0c1b0da658b6728431350882d32d04d3a6cdce539843 *326c64593b69bc05501ad272d5ea00cee1f6ce9acbddcd3562d2bc79d59ce4f9ad7ef1aab91de9 *e1abe627a6e74fae5a572d1e6fa7d301682bddd37aa3d131ed687030948906b0290858bec87132 *1a8b117bd684ca7a19c6b00e1a8bd61ae5a6f05eb186c55cdddeac365beea29bf6f5263a98b569 *65803d7ad6539eb55eaffc49eb25fcb6a4e57ccbfdcc9bb3e217bd8cfaf3996ac282ea1d5e6bb4 *cccdfe6c9e70473da49cd152535257c30704598e168bb78c0f536516ad80193b08542cc7ab358e *10765610686aba80edc7cd5c01296f5637b2ddbd61a6bb9ce5cb9c5022cb60f9f4d25cb6baf0e3 *3346d74c2bbb0ef18f474ba06b44fe597393e74bea61ca6c6292c3e0880a54d6eff774274ba2ca *3121273e0758f073befd197e5a95c87e0af0e682407aedb2cb562781656902e2f18ba92603ef5d *3d799ad9a00bc43e6a653d756d976a0a6f4e8993ac60bc821a8419af8bed5c773a72c913977de6 *bc42cbd3eb40cf002cebd2186e475bfdfc52663deca47a0037a32db22018176cea68362a961ab5 *5e025a2f4740ed79f39f66c3cc8773c21ee5a0e994c915e7d769a7c00afc6d464a7fd99cee9663 *5c6b645a1ae44cbf8dc47a0974039ca493b481cebf6e5df4808fac61936f566b8dc419507b01ec *08392da1fda6b85ee44818c8a664ad4b5d6ff4aab4958812186432645afff9cdcf489aa17d9e2d *7639701160a8aff53fc4d112f39229018fdbae66398cf789fefc7654ac99d976d27e47d3293def *afcb8698f85bbdd4b75a16ad9b93dd38bf6c213fea74124dde32c66ca897e3e9536440cced2f3e *77e5839668b0869d7eaa3add36d0ebc5e7f456cd0b1d6048d7fc4ea3d31d64eab877ae9aa327d7 *86d3a94ebfdf86b5bc6da697ddd600d8ffb3c52cbf5e8f3433c98030162358c00d4984a9bfcc1b *06326ca7c42eff4e3b9f13c3bc5e1740b15d60355a95c08d289afc435e06a5b192582891f91271 *b30011b7d991bc251282cd1c1994d59d0f0865b5b07bd5fca5b5d0508ad50e39b29949e14c63be *5a4c34d17705a586a41b6816b4450d24dfeac771aef20e2242b7dd03dcd6e83bf1982ff227e627 *45b3774994d04dba1a479b7f2a7e01ccc9603534cf456d02d9020bc189321c81b10946a0491590 *cd6a02b926f837c54db1411216b1aabaa906fc16e4f574b7d03c8a990172c2d2e2a20c07cc5eec *663318d2cc207c4b4d1d4240299f0cd3a4d1ed0c017a4fd378bebad5eadff75a137cdae837faaa *dfd0bbbcba6d5cc0542ff4fa2743cdf13b8d5fb426a8e73e688c00a3be59179b392151498782f7 *54d2612a9e8ab406617da599e2147f9e37e71a4bfbb03dbfc73fc0738a9ed3e4adff36e777b426 *96a6c0056e9aa3cd66a551406ba55bbdf4dbb7d4559a76a8abe54ab317a7b7a9d6d8bad801f633 *25faa1def1d901f4f87bbd01f89b5673b197ffd6abb6d01ce582d52702fe0a548b327015068ecf *0eda0d02ae577c9011e862a2b56b18b85e494d9d1911e79f76a3f56443fd75bb3d7fdd40bc407f *0c5309cc41b75d8289eff7f43082ef07268ca2911fd058a21ffa3de8c8f0a7a4ddad2e86eaa729 *01bf2a819fe38ee5f26ba1b799b7766a36560632f39643638e06af2966acffcf690e03ddb9d38d *aaef061070d8180c80767923aecc569887f43b5a3a8406708b93bb5919bc6d0cfb49b96fdc6ee8 *78666150c77a953a077b46000abacddaedba6e93346d57f76db5db1a74ea0f15918a83e5e69942 *bfd6d56349b276660744589d682cada075920d0278c6fde17ba63fec5d4309615bd2e90d4318c1 *8066cecacb4780fa8da4db4ded38dd65c3c75eeac77add4ced4392a49775efd6f59cbaee27256c *a9bc3bb74846c35130ec76a776f306eda43c9432d2202065063118748e1bc48a162d0354acf40e *a0d2769765fcf7203ab52e9a01a88d5652c7281c88472659e6edf7679fe33909f41efde3cce5c6 *538bfbf8275c4af811469fc143b5bcb891a6494f95983102d1ec32eb112f1ee096db3ff9e846ec *4708d443da549f8dcbccd8025765e0b407e379b198ac73deaa341b00e201afc315404069d6b72f *9be7893bae8835d2cb9d1e2823f8ce8c7ac69fb54a18789f5ee97600dbec62fceeb3d26228335e *fc132f46e3d062a8b497f91256bf6ee7535969c3b9bcf1a9b49f00225ee18ae00068b7f58ff332 *1397211ea6cdb43fec9708c2818d9834931d9f7ab880b0f70a8774d8cb940fdbc1521cf7bc0ed7 *04e361300a51dea81655aaceda9d5efd24b823e5f5e43f387757b2be239525e9b0565722b2d390 *92a1b3a933439e44ac46578207eb855b962669fddab15ae6f754128373e468d8ef5e319aa5c3ee *9e9eacfc2e6398b34b22f469a77adddabe323dd2da8d92be94db59557f2176cb9b15ec0b54b6ac *4ba6a3dbe697c53ac71336725b3cc1ac8a31e368d64bfb252de25f9fffcb0804fa794e0bfc7b38 *a9920084cfe73879f30ca1a8dac371b37e92949922bd5cd250f1cffc0aeafe962939cfb3baacae *fd41b1f6b847a325541ef4fb82ca49b7cfaf631f1565bcaf35ad1a425720d83aed0eebc73fe4e3 *dd7a63f6bb93a44c981333e32a1f27a529e3616e0a7d042ce034063d8c2cf274d2f6509580e164 *3d264a5cf91030d5498769796486df0e128437b19f74f5625dabbda3cbfadd3240b6726aac4191 *cd4c94fe9ee0ca1a163ac96fb53e8067e0c5e835aa0b9d2e1ccc945ed5ef8acd987be9c9092a5f *dcb818b17db3c54301fd34655c8087f053458b9c7558ad1d23b5e0511bcfab04bc2f2728026e58 *491938b11f039cd6dcc0cedf8c17faf40de2f2a6984c5adbe622970e86ac3a874437c033ba852f *9b3b03388005df82119534924eb7d16d93feb132ce10e0fdbda768cd732c2b29a0a1675999974e *ece0d2a0e35ea2f51176695cf4866a4446f9978e7de0924c3b7f5eb1a92b47ebc4fa099dbd8bad *a6c7024ef69b6d013608cde7f2c5ed74b700f3fa0a4cac13324714d3b7607ed881796bbcd0cc44 *cc9ea801e8418e5df3856ac29e58f3053b1c66cd95fe2ccbc1da8056461004faf83aa217733d33 *3406be20a31c5a2cd804ccbd816640767e31fce4663805d8889eb6527dae5269070c65899e3db8 *779eb53cf999eb7f9382882507cbf6a279dbca6167e623b1646bf4bc5daf7009d75b76b590d384 *1e27ea64b8abe668614c4f1b6b81df00180d521fcf7a5aa801be90934b6f515e905706c0fd38fe *890cd22bf9e0a7d6ad02eb29ce46931898b3533b1bb635809a0e3c1dac9a388d0dd88edd694ccb *b398d22ce6f4b4cca2afaab39839b33093e87686ee24466814fbc74eb35e341db379c93163a1f9 *74f48a4c6253727be050c76c1f266bdb0f08118c4fd84d2f033dbbd8e6371b2293c90ac508a290 *864548bc18dd3e4107d744dc857319dacc0e6b0a9fe1128cb73c8b7e622dd9abf504f1b1408b9d *f1dfc9f295264326c61ced79d3d54ef79ca3d740b933424c1da05beb3998afc12379bbce35ca8d *d08c8804474b47c72cf0695eefb6e02d1be1d0e963f0736dd0dc02135ae663cd1647eb62c106f9 *21f0621f38591855d206966c1cac686a166f26faeba6b4538e3fa76485d37b395eed16e4020033 *e3d431bdce9abb0d6e15d27f021c5a0f03f7e9cfa30deeb5e62533904d8b62032653e6ed487cf3 *7c89d238054d3149bbeddac3af5e7d180808a81fc79f7eaa270a6265fc29e8c517a86ae9df9ec0 *63f847fd19a821f0eb4f64044db261462cb7caff5ed2af5aa2ead59bb25314fd89ffd815682a5e *b02156e3d6bc986962bd205c29642968a9d2b65649924edf5844449d0605fcf764d61d03f3531a *3566cd9bd12d0ff3924e2c43e220b8cce311385851292c60cfd121025e12c24476f4245df43491 *9db9e051a21d194de2d6b4fdb2391e2dc6bb05ea049ab72619bc4cdae5abe6a095a5e9a041d060 *085ff838c0920115c735288ed27d0ffd4c5be20e4f68e3d18f35334777e46623785d1f3b57b047 *44a5a26816fcf7a91530c49fd047c086f2a49f5ae7b32234668ddb60724ed200a4c8249f90e7c0 *43645c434045a0a23975bb59b1072719a0538a94629a0d794f34316620c109470ae03fb966abc2 *7a4060824bd3f801f47b20ac6e47eb6d010bbed6443a66dd74adf9a2e90fdc53c04ec01b84a107 *c62d920cd111b0014ee7f4946bd22a5018f14922e73e41de01d2ac765bcf450634bb236f805e1a *dab1619f55345ebf941d88b829c21e987b212221ebe8e80598ec460b60ba244346c8ace6061259 *9b4472e630ffd162912f38fca1dd05d6c04bc49b9a26289a71537bc49be0d4c6eeccb9cbfe78ef *1c0ce45d024f30b04b0c0ff88c900d7155ef31f0527468e3085214ba206959df2237126f1eef0f *9d1d720c6020b5ab4097c80c88526fde76ceabf21dbae8014c41efadb7238e58c0e08bac0d727a *5ed5b5c0bc043de7ecadf65c51766ba79501a0301a2dd12dc3328ebb1a000b20868423a2580f0a *0661cc878f787d519b78427bad570cb75a64273e83f42bf28bcc557d882431911f1339b2ce9cf3 *aa87180408b57ce8ed9722c74500a294609562ab3717e875742b012bdd2ed0384219694d11ddfe *e8f425b933b7ec0c031334e181fcb85ee44f180bc6c02a9142d7a0ab4c89d015c408dc90164b1d *f532207587b2f088460e321891e19a73d69914284d05bacb91af6a06ac65b004fa90df9e6215a8 *837e0ab45d72ae8d95cbd9394ea6404de2ba18917399d105dd38c6919c4fb7f0388f43ef13eb15 *e9a02db27d4c473f881860bde7422300f4b69c901f0f07a36c60136ed0bffe45ec97047c6e177a *293d0c50a28366b034249766b43122260d3eccebf0e109c2841e509d87cee6c8c8ae4db0521fc3 *4faef5bebed4331e4dc8e1cf222fb7ccf595bbd3c06a14acd00696eb671fe7afb5d2f8e925eded *330ecc68773346b1152b7205e25296283075131de2ae6bb4ba21b957909e4c043b97754302b970 *b618914109a36d68090b1cc0c61520695a6b3a7134c4d0dc53e80ad0079579926930d33a92f04a *38aead8d2963ee139e9233fe4c78f194789c5eca6289310fce5aa2810223463270ced3115334df *27ec6b9ef0f95fde7c426c007ddca491e05ea2120c5118ae284366e9501acd9856281b74355b79 *0b9f6f291440d31fae00c60bd189635bcc46148042fcd21e620a3c8ec08865cefa69e167b84f37 *7090f0391c076e81931ede9aae1693ffba5978ea7ad6ebb16d2e6b0d4012bf685d000e69cadb90 *fe44e8a27bce9b5fbef8120f5820aa5f98a3b68903423e905d261433810f73804e976321f4b100 *37743a0229474ac6d45d310acd2b261c9b86cc0da32bf16c7d413125803e44e7d77cb6c3b02ab0 *2150c04ed6a5c83aa15e980c684d389fcd13dcf51c95cb9bd1fad5ee5650df841001f142f0d18e *79afa608c57136e8075bef889c6e72c02b14267aabe1c1b1e62eac3e3339c92130a7dd6ba2e47c *2bc627d85cfdde4d3e5aa2ac3324d549dba8328d66ac41a84e8aeeafaa4a3f86e92c9943e12e81 *9d0b15093856b98ba8c7a544bfc545d7f2b8588c50acbcb462b693f58015caa88073c36ef04908 *951382cfeb37c171c28167b424f501b15fb3fe09e10b8737c9c8d7207b2854a50307a1668ef691 *3104c3b5590d4344c1e0400d70b4d1bb8b00e97430e7003b8d2d30263cda6df21bd24ae0513013 *fc325a1413b0b222c23fe5a97533880b1ae9e96eb6ebd5728647a0a528229afbc10c6e72d297de *22c0d11861c2d8159cf12e0099f20998ebf480bb96e5767a09f041d881149507bb6278609dad47 *377ac960e4b47ea5bdc9fd73f7533a19eac5476b249fe6d1e4994b9c516f48d17733a4200437ba *064dfc2df30b7f8f045f27cc61348253c830a92c2fcbc138968f74fae8041c6db7eb424b253d00 *b459d13cf211990f30ae8e42f69a5ffa73c380473a601613e22c2f59d1453d75ba5a0bf60dd063 *38a2d06188a1d5c75080a11f618501cfd640a91c3eac486c49b890bfac9fc2f26b30bbf116231c *9d236567889e46d8cf8d602a81a8ac2609f5a9d94363279290275161f4ee9be0eb6e5b1fb4c0af *07814069a227d485c3c1a8f1f54b7d0ed5643d54ddf600b963c1c14195e86aa657ec61aa51517f *f072b791c9e6182ed52d48019a5c8cd633b3e4533618a1e82c0c6be9269d817acbd2eeff59e4c5 *a6a093941fd3ed495a778264dc509a3897232d039dc828a0b37e29386ad01828bd064e7094eede *4647d1473d5812ada2ffe18d964f6852fe8586fdfb4f93cbf6a77ff89c4369802bfdee375ffef5 *8b17fffbfbaf5049bede81e6f2fc7f3f7ff1d577fa834ff093cbc976f2891ef48f1c56d56be37b *5f7dfbd5775ffde585f3de151cc049a786232cc4354340fe581f3034e3d3689affe149ab9b8061 *b5834aae1e967ef0097a1a4d98f455ebdff029adb8c0006ff5d041675e005888297da5c94e93bc *6632f906ed3b9f8b4fc61f5741a3d1e3fa1fdf7ff1e5b317cf78da1d8c1d769fa3c1961f6c7431 *fed77950f993d1c3feeabbef5ffcefcf5bdd460f8d29bffbcdb3172fbefde6f98bf2bc4170c07f *1abfb007fdfbfff8e6bbefbffde6ab2f5bc34ebfd14763c8ed6284ea6ff9111ef8000d19eec065 *05d19db85891fe7ad5fa837e1706356c0366da41cddd1736dbb718136d3afbe1abfff59fdffc60 *7a1ba291c1ed4d3ad02fe1bc71e9bb8da40d7601a71bf7496025bb9beba5968b6662533bf77e37 *6924091ef04181db14ff0d6788f2639fb714472875ca5b6cb0a63ca82ccdbcb9a79a0e920e1ead *ed3bd950d34e070fc10b886375d75e96a3a5f0a96e1f768822fd838fe1533d3c8792768458fdc5 *97e0488575f8f67b363d7e572c8b2f8bcd18e30bcd4ae0eb7d3c5daeb5fe3ed2c29ef0867b52a5 *47077c4edc2db7ebb7661be7659c4986ed4e895a0d4121d6689c7b9baf35cd21ced0320f077d55 *7a079fd214426b3cc7354edbfd76c3c72ff31c4483c3a0cdb0cc3a81af58b36aa04188285f63b6 *8fd9f4bc8287699af5ca748d5c80180efc78d5faffe19038bc261996468f0fc9e071e41d3cb2b8 *282bcf10cf088ebca7856edac160e031d8cab78165878754dac5485eadd192161ade9b46daeb26 *a5bd41a68652487811224d4e2c568b752de5ff05ea068c56ff0a332f6833fa59a744ec0cac39da *6de72b8bb4151c4907493fc4d1a1bba9e589ba8f61bbbce1f641a525d9f2553d43d16f0fca8c57 *a6e176a334e36ff77aa57e9c27cbddf893c912742efdf4b956a83288cbe8faee525082fa4fe970 *f96ce979073530d23688db649deea0f1b7c605e59b248d51f3bfbefb96fcac254573e268627040 *7f8566ba29888bd1040ee6d3f2f9402b75a971a85e484804f251dfdef79acdb733d0a5a694f0c0 *76707b84100303982247641e9a2b51d949815bd070b7dcd500592ec596c0dfc0a542c740f6183a *3e423339b26e3847c682b3e944a95a616a05d9001486d3dbb40576c5674364e1a35632702157ce *5539d8f55f2ab04bdfeeb660fab7fa21ebe77b5f0543807ef192457e1b2db83679000e02a46417 *b99c95d1eb3de75370ae17576b64987246531d0153d0229dfd80abe584cdbd783e13634d6e3cfb *09ca1a3c04822f1e4e317c841855746a18f372c23ae8ccf70c49021e5923b7e2cc074be3857485 *124cbc35d66d8f9e1180601d6a4f6051ed91852c04e8e4c471cc0333e4181534e456e6fa4a865c *3e23949c9e6c4399d3329ae30360a7e3ede3801314a2b4c13b201538aefd19c6f2848237688bf4 *417d5d6c2975a8b49ce312a2be6244654b29e1440785ad3ee516b7e0dcb2546417102c17cef00a *332839dfeba31293c0bc741aa3a974514a8b4d907393f0bc8196d2a94219382244c27d5d82eeb0 *f09765e6a66ac0e1619aaf2f78163d94efe40a4a3abac77e4a8eb9a1094d49d824759992518a0e *d462ca21bbd4e6921f1fa6ecec04e69834dcec396b0a9939bbae9c759f4a16ce124fb1eb45918b *03c6d22fe2240e5e9fe780469835bf6cf62fe95c8b7ea30c1d24375ace92bf7b9a8f00633662dd *05e9867e1d08d7c0d7ae9a09c4aac18f9c20a6878abf324f7dcb212fba63adb9c841f2429f8fbb *6089c273a45e360d4c1fea323a466a9e812202482781455bc2bcdefe864c127fa3bf926904b132 *e98b03ae805dd1c7408a2b1153aa6a4a222dd95467eed15b9f6ce8e491e2590696fa95c51089ba *50cd6fbefce1abaf81a4acf960da0473326196588c668bd535dadca6cdddb2f807d0d22d59defc *532387fed0a9f16635d92d3831e3194877e25c64e363d72d0c4ee33930327c44f7f97b72c5d3c9 *8e3e9c365fa032356f3ea30316e89bdf8dde5e6394c70feef908f3ccb2948f7c5fc829459f39bf *1065fd270de77ba3bac2d38a4e7c2f481b9c36ff82fa0e193df08cb7cc5f6fdfdec24ad040a618 *4b453fcf9acff5da69de400b42673d79c18c7886b186fc4b21afe02ad089cf76e1cd8716a4a7d5 *403ad9f97f9c9566ff7f9ee97de491d3210f17370f3ef54a4346af72e88fe877fe276dc510bdd2 *d8e118720367bcf632f32790d90ccfe1414fce9e8107f564fe2f7b9edb98ab6827edec142c94f9 *b5d03b2dbdcc195cdefcd69c5079d5f9e867975d9e6078e6d7c2fce8ac95e2f3206362e989971a *c2b8fce12b5e1c9564ecd395c3690e339f569688e24be8dc684ea898c2f494ed89b56b45e74a67 *adccb113939c94f3c1dcfeece2021f3a797ee5477082aaf2b14c510ea374b09dd0c6bad3527cdc *e433ed1c9ec84b13a753269f670b7a82265c34bfc64f058bf8a0e99e5d11e2c43cef43a633a69c *5f67a1d5d73ff05af249131762c61d2389e570c05670449a560fd8fc2e9d352d8e5926c2fb603f *98377ffc1e4fb03ff1bb74f6b47b487f65ece45f0ac53fb95b07a750bb75dedf0be765f3d13f79 *19f9648ac7e7bcba6772fe744ece05ad322f991e8cac191d421d1e487c92c6cebf14cd1ff1270e *75e21369e91de19bf833ffef92211c3dedeeb87f2e30d8d8fde4a510201f3ac5441798291d36f9 *a43df771cfe7607cb2e4f3f62cf4a89ec3ff15476eafa75c7c20b14173a49f67564e999eb428c2 *3ffe9f9f24b3994f9abcc5f4472b08357f818da48f35108bd590beadb20ca307e1684f8f3cb307 *7cf323179e180ef0c9093ff9428ec25a93373fb37372e06edfd442623926bf16caf267facf14a6 *e8f63a550cb020ccaf08a2c42d1d50bd0442fcdbd550e5c1538ece9df307be7e39334a2916fac0 *188e1a4d58abac8a1d031984517308331ebc464e8184277466dfb293920bb1ccd001a4c403e486 *bb4cd98f236e1c384b2e35a14fbcaa0be4f1a0a397d47630061498f5241f2f466b167812503471 *2a1360ad0dd414216233f73c52ee78a44c003a8cbc918dad0688ee0945a713c2601a9231a15486 *7449d16657cd14760c340a476b1e621ca09428a01319ac414a856e9c93dd13f16428c79923c304 *16e0c4d05e815fe466b481f5983a111fecbc447174c56e962dc4ea909de67ab4a6155cddc2d0b5 *b6bde543fa5553c3de480005f8e6e041891859934b782b2196e8b0448976a58fa023d8518c6ab8 *5dec36b41e5073a399e17a4028c29c1c9774d821249855ceb5cea2e2b9fc42bcdb74349385404b *d314dce833f486e3e8698fc4d487b61798c04b676da6d54337b9d38d0f8d0e14582e461c71bd01 *799c4dc0317acfc90575536c35713d81989d9d13e34cca0b17e5596d504b75f19dbdfa2606830a *3b78302f29f0eaaad9c17a1d7abedf2cdd530a7bbbd06d8aa7a18939504b7d9b39ece212ed6852 *316480f2dbac9531c7a21f5a77842942445b1cad028094c516443c7e5bccb4fcf26f812ccdf0d8 *898932df0e0c2d55e48a97707beb935f8ec948c421931be4801be28ed4256f2d0f76461807fce7 *26bfb990ca0fa82c5c53fc42da531c88c7d3b95de717366e3ab7052466dc9f3187ed72096fe826 *a847bca0535b82f1436881c0701389c6c60ef4a68341e5170c609a5a0390120bd0062b2e957090 *7d9f5c1a43a3c6b829876c2cc2a50746817ecaab75e5183220266839db8d66b9c16422b435c510 *5134353faf30b6d5168d1894fca2c3c6500d1b03c72fda1bc27976653bc1682e64ef56a05cb67a *10d3f2153bdc333aea0bd257881b65c77ab59bcd176fa5c6841e0c31eed12b94ee606f80ed853a *5f53d40e3ce38d0390f3549e0b7fc46d42225b14afd828c906d40ba90ca07bdb8db75c7546ac7c *33c0b6e2521fefe74db077693e4068b91b93bbd96007703964a95f30e3c5aa39302bdbe5461fdd *25a79cc3d0a4238c35e6ae8a264605429c94d7dbc4ef0d033afeeaf3ed2c935ed11406e4c00e11 *4e1027bd026cf57ec532183c9e7c3dbedeb5cba699cb65eb82e2b4c00e01bb28d4dd01de848f20 *9b0e8548cf5d93d8d3561fce774ee06507e39fa0200fdb44315864cdd135bb2506d222895210d3 *680c0648a76219f9c59e0097f3941af874728191280b53852349497a6875e1154436f20691f232 *c3cf5b4ae306d29be6111b425a46adf0ba33279b523d27a16b76af7687b066f91b80b5c1883188 *bdb7fb31f33703ca26c1927a8b8cc86579e75c52b646365404e9a6d787b5339c13354134ebc1e4 *6c00bc31abeef20b607bb95fc20ba226803cf42a3a85a68c019da9a6dfc33c20289333f0889302 *e1a0b099181d3cf664cc77e400e04c2847deb15bbed3a5a9502929229d76968ad5954301bf012d *f7c6d9236620498f0dae9a574bdac67ab73012918ae3e93da42d71aa95d930dd3710ca7a658b04 *0d8d76f7cc14f74082282a8348db246d707e58978f3a8724600c4f3631a0a3c9a460813a372314 *6b7a922131e40b3883c1e1ffa546cac94e4bf2e5f82d4669387afd9c27000abf5f2f4d1fe5fbf4 *d1524037924ec2e1f7fab93aabf8d465ac1b90fec6123d2d55501a1087d0a7376411c0080021f2 *092945a3c50ab71b27af4ca5bc1a1ebe794219832d2a71c4d89d7411bd692c63371f0c3c82ecbf *9ba1ff2277507c23ce1ede0ae5737992dd242931058e8b90207a8fc6105fa9971d9c94d372ace7 *c65ad6375c3b8b28d296d09b829f7805519d14234f13e92372636f68f0aeac4669e15fe2fa41c2 *28c4b9fe276578a1491c95e35b88c15d1714d90004cd82261d5004710a6ff9facec4edad903c4d *37f54a33dde217873762854dc7b3223e0b09abe32007c85977e64f2cc89998e204358afbdc22c3 *05d4b792f2cbf5375fbfd0ffff98f45aff68fec4cec6b43d1c08ed77d8e3526cc6bb8d4d1f4fd3 *94b3a59e2d20ff65362749ccd530ed282eae471cf5e9841017221536a471fa017de011993c31b1 *101867016785ed6e8d65e820d3672ea53be9503c978416f69340b28e461ad2c35ebdc543f30675 *cb0b346d0dc96b83852b5125a050597ff1fc11df5041357de05a629836c59efadad186098356b1 *d317f3a97de08906b0e441968972f3768907b3b73788ec686228b8602aaeeaa835b3899de46bd3 *440f3bcc65527a58f47445328c6873e6d3262649a17719a80c0a203272d881e4ca19498b23fdca *2eceb48764556cd0bd33d13a891ec6aed8cc213600556653d8d39fe69c32fa46d7d7ebfc172023 *24044a6b8087b9a00a9293456df4e5f8eb2cce229b2143a3186f59c62893d3eae7d1e0000d6f4e *0748459a6089651b773f57de5c8e172b0915d852dc19f1af9cf47d88737e49ac56b29af0fc31de *4a680a6afb1474cbe837c4b845880fdbe4902a86dbe471a4622389003820852302b56c8ae9b036 *bc76bc5a2c381987936a465b89c668f7da800eec5fe3506af64223d28ffc3a9c2d4ec975753124 *ddeb9622dd6f0447f051b136276dea085d8d1428807cd9faf4bc6391f20d0facc79389825e84bd *a2a29973775c9a41162c97b214ca564068e27601c4c810a1b427ee0c0c4b0ecda535450eca4108 *c69e533ad26d4cf48770d92c6b8b8e8c89807a26379b7cc119e178d6b8f0e87b4acc8af2f038b5 *e5ad1c5b0b126639958cdd10bf4734904dcb86280b1129f03057a32f3c014d23bf9c5d52321b99 *7de794cfe42d09fd5d4cbffa5caf1f215728c708f525099c1203776f8a4541e1e21e3b944efe0f *654d51a2e3760ee6a07929494a4e30dd2e446ffe658446ed89a41940c6d74c38f2254df28b9108 *f51bace56ae23e3497c2c3c686356b8c0ad638f2b9d488a10a892b8d215452818f78cc7e46941f *f3bb17cffef43927e3223e5a8b099e0ee057fab305c31a0abe0f967f4993e14827cc2cff6649dc *d9dba36ade23aea472d420e15d9c74362b96c243a6cd1de9c4eb8bb15e13c9dce1ba309862ce87 *ac0b2a578b95934abc70862c9b53f3c4daaa04a63ef40c0cdd65fe9e736cd5b07c6ccec5b46531 *1a0dad4fc82621315e7ee60e1a00379489b222dd89b47d504ad11ab583fae582f9432c24b219af *309282323eb100ef9aa847ac98306fb67a3cd30b9e71d6e7dca8ff1014cf596637426774dc6d77 *c17122b61d54f72869d4169426b1cec7092c3be0a80120aa26bb1c6a923a03928c3a13cc9491ea *8cca2cfbc12831a5ab7b25e2501da86515ac038ce59f49ade9f4c530005ce2a6d8484612618ef2 *0d5a8583879f4ae198acdd656f1c18dbcd017dce0a3cdbbd1d7a806735bd7ea637e2962c73729c *2a4c3d1d2c15a94993ed3fdf184a9d19023222c5aff3cc5ad4cc4b8b53bec810b9d2e9f413614d *68ffa3a2afbca2148ce532c4b922c686f9f6de524c7901a67601e8684a1148dd2e397e8dc90f05 *136a0d840e404a4853c8acd13ee5f5ad656b0fed087844d9bcdd6c732e2ee19ab926522828eba3 *9562cb19bc642fa5687b18d88f5dd0c55b339b2f6acdb523e11e840613366b626d7c2a94bb25e6 *dbe9432dcce697f9e616d4405172379c4608d15c1b52ee666230c1dd5692d5c7739e19adacd119 *605d4c87d9a135c2e11338f1279cc283e6d12d9749dfe02191acabb93b8329655116a58430090e *1b0c386e81e239311d8b130fe758bd9bf28de4a4047679fc231ede3c76b4e4d229262291a3c5a0 *f62675be78ab8772ab89fe46ef678a783dc9e1489d598a244658801bc4841ce69418a4792b1f20 *31fd8ec3b4b0442798090a52c8d1a7ac577b85aa247111ca2c84a5188dd7ab4d2b497a7dfd2a15 *337dd54cdaad24d5c3246068c25ae1d6712595392da1890c1bda14a38b214682f528324c03a2d0 *302acf5ae8f3853ebc509c1a6a2ea08cdee4547bbde9d5a38083c714a87a8c067aaeb4c4a237d7 *cac6028d841216c9a884db35158c32862774ee694d7db19b902669975f6a6b0041e256b4921e3b *47e6cd7fe855a26cb789d14ed05d0b268c9c83f3202c14cfa3a035ecc46a81b5c1c6d8358ef1c2 *a9a3c4e3a51a74a325e6cd1b07833e3d290e8a645d98b235e1f854c8995a2f49072d645b2e5a82 *a5a48ad9923da19c6929b5361a6fdd0040a6150088b95e481c4b5af74f21cd1838c38c63695f29 *cfbed2046bd5d6dc7ad1cb8ccd46ca5ccf69f5a7482c1a92f8054c5da7d566b4d8b085618ad594 *c65ac51d413a5f2f69a4190763268996b4dd4ca562ec1b4d26c03478fc925aacfb37fe4c3e9094 *9c218a364d14bc91a02f888ecdb8d0db44b5756e46e0ade40cf04e0a19117f5df2497f246644a3 *abcf43761d66c4ec1324be85099b62b32333adf8b0d05c8d365b706c62f2f8ea961588891c2339 *f651997ae0684c1417cd065362f0b0ae99ea62556ce57616324debbfe0c1de2b5cce0621cd74fa *0d3ef33b7204cc59d06fcb947b5a8d886c54f326e7c2184028e8dec4bec8342dec163181eb3b88 *21698ca7dc62fa16e307e76cfef8e6b3bfb6a4fcbacd14147a1ff439339c4d42df03abcac0f84a *aa04b85088b34e9d3064be5740631522c18d24aa266da8bcdaec487af817d5a2f98d046aed9992 *3c23bce906025859b3a541dfe0b50e1a2760a337abc58e718f264ab6441b4b2dfc2525f305c4c5 *50b542cdf7a01402ac1558df201517205f78210de065929d060f29d28c2b3e69d8195a2f305316 *f5168cafe6eb112ab9e78ae751ba7b872c8d23e15f70dce2a03c4453c7d085dac36882661e3af9 *e9d13d95f83b2ab677dbfc0a4e58e868466260ed0365216ddf2f2d4591c060dc843ff4b922d373 *337c5c1dbb00d4436f004627b0b043fe3b188b177c89cfdcc1bad1589f30a06a01a8d07a7e14df *0e3edb09b3c01bbc24678939818280a65e501f3380f5de020a647ce2a0026d6c2afb0a263431fe *4bd13fd8735a90b30e95d3de78b7d8f25bcfe869bbf6a64011e6016f71a48be27aed9c78d0df10 *3ae4915f4a34b57ca939c98c0ac520f6cae918a299956bf5943e8719872a7252339603f9a73999 *b83915724d8912175dc129fb14458069f253be066733075d83a31051b0d2453750f403bd295251 *256db3c707a86d47de153cc3f8aa59abdf5325c4c045b488012a0d997d40ca49ad43ae4484fe76 *0e43c01815c955cfd14c82020d574dc80aa95980630ccd1a8a168ce8a88dbec599bd6407d2c429 *7c1183073596614c0f2559b040002399d882e45a0b8c65aa1c5e16b4bd0b635ce39a2d4af38f84 *dd7f637657827efa472898854ef029339f9949dc101b350f6943b913acd31b4ce5c8478c4714f5 *858c63fea9468296728551bda244d95db28e183c334bfd9a325168497823f13e692fa1a01bcc58 *a0e8ae5629ebcb29be03f54f9f5d9b2578629c31e2ad1db3deb6cee118d5ef113f79b640f4c454 *042e7e31932b7cbcca3ba455efd6147388555796ece42e17f491456d956f482ab444608f1d4554 *4d24c228c54b0a9ae2a4c11899111db567ae5d769d5fec3668349e4a76da8fec2c410b31d9e8db *0d53b40c0bf1902b801d14a6fe0e129f53a7072d8a8263b07e528704d4404af59fe43828b445cd *80608bc588c583bdef4c6549d6b7aa1f4ce586998b86a121506d9d500943c14053dccf41798ff1 *5d92f4e0e9c27c34c350145a0d5e91296ef405dd8c7643554e36247b716720d98f20af6e6dd218 *9f0415e970ffd891c38630980be5e0a1d3dccd85e58eb4b6bf5eebc38286bd649c545967c825fc *bfe5e26164084483391805565cbbc4548b9b1bd2ec0f88a399cb6e9cda21c6a53992f852b65359 *a9a82cf36b89cb7b35dda2e5cbbda9c794ff92abe09071f4e0a80a9570f01c26f5817a5dd11761 *37e750e3826dc834173ea13b454f249bcf991f090e2edbc21321f0fd0c146a9e3f7bdabfd9e0e4 *1b5fe75a2ea23514835b4847df204943f009963ea16391a80a53bea52e6ffe91aee8c3281a5a88 *2d872016e67eae015abeb484d950ae116d9151e5c58d62b5c739d7e832295880ae155ecdf726fe *81f61d3831d2341ec669d2c37697eb5cbcf27798b9bba0c3ccab5b53a517b4e0df4801265b2f53 *b4876c3818186a445b924d399b9678172a447e5da7dc30fe29717daff01ff3568af46b230f33c4 *011e30b4a391d0a45908260a4bb469a1e05152a404d88a9314aadb65b5b11af3910a554d291654 *b4812fb9f01cd56f6c4d3db5d7210fc7284373c830bf68c4a67412e439ca147189cb675a1fd0df *f506f79549ed05f95d2cf053bc99abec05bf70ebc2005bf903a5254b859e0e662be90dc022b0f0 *e71ccdcaa2456e38b116e8c75c0d67b2fad0075592919058b9e2033d47ec621e9360d74bc545e3 *50c0da6025ac2e3cf37d09a22b98b4b70ee444409cb8d6eb3b20aec9b09360ed18fd49075538a8 *5fbdddde3efdecb3d7af5f5fbece2e57ebd9672f7ef8eccdcd824ef71709ee13d880602b5fda7c *56be135175fa6d39c46856303f042f6d8d05d82bd729ae28ccaa541366588a7d4c20314b1f091b *c340f8e35fa7b2d3bbf52667bdc798e2d0ed6b4f3f8a8e3f745ad76c50a299924c6e1ce0908adc *78a8414bdfba38dae732d0fff5fc5ba28a1724df7fccd02e3bafd4959698198a3e5b3ba16a1ca4 *3032b246ac0323d7ee8adcdcd85ab54ecf63b26ae1537325080543cca4b469fe66848834f5ac48 *58a70a96e24d6bcaecf57a572c266477a1fb5b4bbe58b97241bdf58fe21cbf317798a3f55e512d *c7116e82cf8d95a9950543009f099bf4bb64fc425aa7832f3a81166f4938cb842f89c85120c3a3 *0b0a2f20e1331bdda23b84351cd0f976e2e3e9a603ccca5a4e775ce668c4d5a9c7203841eb5de4 *a3f5520a4352bc2516134a447fa01be9a8d6166a9cc04c77cbe9e806dd642d2a55b75a6b9124b8 *e2ad19f17ca3e753081f9560be017fdc02ce2c588a6e51bcca5b13bccdd52caf318b6d6e4668aa *0a5b2294bb56e8482764652333763ac09c50f6b9a02155a220c87ba49774819b2bc19de8f282b2 *a4606d111d6d638ca7549958c12918d93cab79c8030b335ee3d21b6282e91a4a60c2f51ba28183 *b0b31172737105be5a9a70b7f16abdc4c80dc77047c1ce74d607e58f6c2b37f9e6420216518e6c *90fca958dc886765622d0b8c875c53ed6d3c311714cd4efbb9c96dd54743ae06cd38d811e5053d *0ff7145f63440dd665471bc89c686c07c71964f0206997b0491c65481739dc363b92cc6e2b2732 *ad51989a137cc471dad950aa2662e281843c028296ac3fadb9d54c722a2c79e130e460c0ade378 *d3ff5272f0b5ca751136ece555a600f468011181e67881c91dfcb0860a291504b3dfc61b876e21 *e39c32cc4dc6799fef92c5327f187d7e5dc81952f8179f758d6f0def87a62a0fc00ef13c805ebd *dd762518d1a71c121b1048a88bc769aa3dca850cdc0b74b5ec923af413b24719460fe4fc846a36 *6210019cf738fcafcf46fd5710fbc79e08e24d049643994ce1b5292123050a550a804c6dbc10b2 *fd7637712fcc69c1cd519e696326fa39482f5a4cf12c1b2b75c73da7a0ec108f759a6454cd6cb7 *46138435a0997baea1f436dfb22b3e680aeab802a6c76e1c2f6a7ad532f59d2fa40e129a174047 *023b79c69e77295a01a57e2fe67a692fa0e0a7b84f41ade6f20e78500adce041f58b6d181cde73 *edd7aa2f5b0c30e815f31e278eea2386ab195f35807320e64113c8b0e2a68bdd5414796e87698c *4b989a4106fd9c544e3f3b9093ad24f027edf4a8a08dd87c73ae7adfb2ce5e25be521411c81373 *f6d13b26f1a9d929d9191a7c172b6b0a9e48bd7a39754d1d13ee148b106f247b110d88b088cac8 *b4df38b15ba38dc97d80833187b1f8f59f61b98b2dc70029af2b1b51c248b3ce2fe04a14e38230 *3181892d4763a301a85430a95058387d2a6bb15908e72e1d57374f2a2b65d42bcc62e265cb9bce *cd1fa4b263ac021a5cc563868720519fda98f0fba5ab901a868c553eb8c0d3800dad7f8611a259 *05630b77b7b8707a8b8423fe91ca6062ce883d4f058aef885f418269523498dfd808ef02afd508 *47a58dc6ffd8156b0c36724e4be64e11c77d22ee0a8e55432339569ce2621bec7a159276b81e1f *b15d27dcac146244aa87e5df59070de237234ef69b62ca033ebeba5d48e9140cf8318a59bec401 *3012cc9c12c51e25675d3284c3716dc2588ed19d73e6245372494cbda31eca0f88f520aa7e4b96 *06880428902cc77a3832f6ee904b02226fde4db084d612b3c950e18563c844aa16eb714d89b245 *244c6b8c1134fa1efa90219e00f4f7543ce4722629c049305a946a49dbd2427a275e29aab14b61 *08b77cd7cd948cf582ce831ee3e9374b73fbb35fc9c7a6af18b9f342c2756c2eadeb8646a6469a *22cd6588470234610c703539384b0eff6371fd31b2d214372b880ed86200c404a49333aa096b09 *1202d526775ce9948e759850bd0f7b722f5b7d60717fa4e01a342e8021cd5a7d5a26afcf047e61 *287120097a421a063923d92b43174d1132006956aca31ad130a660c9e148260c27a188e27c648b *4e9b33b1923cb22d958b81282e56f9c906e5a03750ce0e8b42955c075365e363528c5536a58bf8 *306692fbca71335c98aac74a6e9754dc1f7232c2675c1e1df318b5faccf150184b89a5e9604fbe *f70a5f891792f3405173647be27424398e7eadacb972d41c2e218591939b9dd61277c2dc317e6d *06e6852939cce6c6d004b5d4e1ba1b935aa03977afd7e80c323c22e28d417d8c482ad90970023f *666024b86ae6ff6522bca6cde7a29f4d9bdf8aa1e1258b9017c4598c6bf802eb600d1389e60065 *29b34900f3e6dfb32f2e4cf806a5a89a1c16a11b273555dcd40c17cd14c6654d7e1878813d6f53 *3fddd57758c3c71ced67c41080858254203bcd39816f565bad8b99d601a86c3a2fef726242d9c1 *9a0d0420d7ad63642852212aff10feb6c551773114a04907a4975ccf05c37e2004ba0bb9ff7f7e *011188482b7089afde517250e253dbf125c833ca33a083268e9ae2005e6b8513ae93ea51a40470 *521b3e700b1bfe1b0affa52351694d2ea188877e9703a24ad8f1e5f3e71a3f5049fd3149d98274 *55ae869d238228c49079f3b96f9c2629fcdce12b177481170a31a937a40c6261b69ab95deb0649 *57fff0cdf3bfa23082ecf4f5449446488847680a259661f428db2ad97610a59271a49349f615af *d494ade360cfa4b4a5ed8a078a02cb120a63071f9e7388402a4464234fd2509eff09171bab205a *5d04e5079f930132c53cad580a3e97281353231ffefa9715ecfa0d3b1b3d86ffd2354dc38178b4 *e6682593bda88fba8514bbc89726e11d8868369a617e9784aa5fac99d18945e19573a599f567cc *4cc1038e1f7b4537a1189c934e06e0a4f1991bb250ba43e78bf91a44205aa7be059d75f629ec39 *25f66899b9c9d7c661f1d74fbf18dd2cb4aea93973b7cb375f6974e478210eb32125e2d972825a *fdacf9977c0761589f8276e604c291339d436bdc7e9acf81890f3bbd46af23c18b9996b449a24c *1fec62e863418e175caf8318bb3e7f6a886c075ae493194ab625070be081504998f7cc0920c18c *338f26396209cb718c47b7644f28306685a4feb469a01a7fb231df4ded697a2e69235e22ff857b *88a340c234710e576c91fb7eaebbbd258fc9df89c78f26704f0d9eb0c98a2c4a1c1b89315663c6 *09b3ad69c04dc551846d2ccd0114553867a0424e34b0633f265d8d383fb17f344986accd3db31e *68b63875532f080623b040f042ae085e88be46dcc3da6c94df87460d949a349c14b34838aa48c2 *5c3ac09641f92dc801efdd50238168fec293cbb99020539564747f6001fc04719f1417912b5882 *572b27968f4a80e61f776b8c71f851f35cd5fcc9ea48a50b46c46ac5d1551d3a7210ab40ff3c1b *314c7aa8932cb02556839bfdfc75015afd7a44d552895b7db9a33aa4c453728845e7b8ac9474b8 *2d86b0e81da06bebb4fa4f176a119129e8ed42f70299f55d08a810a51a84c268f17683d79c9a3b *19921eea39e41ce7a304acb6125e4dd113cbd596031a9c8050a786f08f499b021cd064646bce82 *2a37677d92fbc34c91622bb93b9ec115435214970acae578ef4d9273a82fcc6466449cc009902a *255eaf8f4e77839c858d9cb1211196fae8dabc01667b984329aa50b2b312c859588c6b49e9240f *4d1dbb918dd31a526c18c77d04d109fcacbf40c6bb5b5d88a263301402a2839189e9f5286e2915 *9d48c244fd50c4560a2e193b484adc5b936eaf851585e96070f65a6e5799dadb1972286a0dee54 *d001240550af46bef9548acbb58972ddcb1e108339e86166073be5501b7d248245bc80c1236f42 *7dbac43f34e5f57f026796c48ba4c980ce6163aee589f58d367aabc7a00a174bf13fcc9d9b4aa5 *1492ca39c968ee2f375fa0c4277c8eb99578b67ea210395ff1dd4aae8b3b85dad8c80e5f201de4 *a5cb84d061e15c79b1313699674b0a2cb0d5619d5b354cd415b2c9db9109adc21ba339049e941f *b8efee167df064d69bcb6533ab652ee15c7220c174647bfa15f7031b55beca176373bd1b3296bf *159b8d29b33da32cd1d10c2cb34aef4b923179b379b258136b85ebf77ea1bbb3f18ce8524221fb *a8523e4c558fb9f6023e0a2f98150e5a9b082d85199a37c566245163c8c125503ac572bf148ab5 *cea540f2dc098006a4f68203e16a2788031d341c8f21274ab31919a6f296f074c4d3c0786619e9 *5b72682107f23403cef69961c807a47a00cf988e8ac50eabf602962c358f9e4064c24db134190b *06eb875820d42bd5cd61cc22a9ae295e16e2e8e07f9a2e55b6c25c7309e2c39b8d302047b308b1 *c6e1880da36c646d2c287abb439b199a1625276a6a2ed80285db68863f4b4119647e0c19d80320 *4a8710a5373088c2e166a8577be481185412eab4e00e32149cf69153dc927bc3cc13f422cb34d2 *b6a4f9225e807ad2e27a6252880efdb23344054eed8000a4ab76daa33c58ffbe1a1a99b939ce24 *d8e76fa547ac83e746a7a4180866e2ace7fe7cf958ad0c2150307df9c4dc92abcb71ff177c2167 *96612dbccdee1a23899ed2c57158a6848a81ade5b638a8a1851c11e2f2c4a4dca25bc9159f475f *7388950627ebd7e9da3bcf801afcbb60d97fb5661f9b92ea367c9720450c51b2dc1bbe7e0e4f19 *c5d221649a4817756ce3ecff2d058957c3a3a7c8d67237628aa294959b4b4531a7184039c16a79 *940a2b3171a864d3f293f90e917f4189d4146cbc5b53c273e9723b083ea57b4bf1c5726ecec244 *7777404b60f6c9a172549f5c42c6478b4b34993bf4dc825ba0722ce82a7c493eaf04e512d12b2c *3a62f09ff0c6048a1abf2576f2d93abfc0e80d524737e450784557f0190ef9c46cab5fc7806e4c *fdfac69289d49bc47bd696bf147885c2122ab16e70f6740b33d5ba30eea1429960a88d78346cae *12ddb93d68fbf1a1c32e5c6063424111313037de1690ccc9c7940b4b621300d0c522df9252b691 *f850be1641f471cc9c6cd3057f3debb6810c04134be3891d0ada13936bf9c8c8e937cf16523232 *c1927652dc64a0e4e8616f0e63f14b4448866dbe887426a96fe407b1af7014572a174e5266afeb *cacd9d58f75788cfb909c49d492024dfa6bac4c0c46d8b73d519f6c024f4839a21458fc4a0b7a1 *04733867e64a8283d8e335751777439c05afbf735cbe1cb487d1f5b04f247b538eee0102fdde99 *0d3a79c5deb261150dd090b2201ca12e5c812298c0372b1bc1c1f0b2865042852f5de60506a3a1 *8d4397e087b207d20bade32293e89096d8f3b137cfa96760985bf4e29c53e5cc1ec36721e2148f *4828b4b9c2243a0421c912d576b0fc314fc51b72d00f82296372c928d51c903282681d4203266f *37383827188fa4dc95e4ceb086b0264fb240c9b466b21ca6c29de4cc7cb79a2f73be24e1c72127 *1d7b77145294dad698bd3a032c3dbca1dbfa4caad7cce9ac64779ed1bd96b9bbb64fa97b0fd752 *beb79dba1976e816c3570e603f2697aea4de2df9c83337b2b48571f760b5bf2eb64c35b2ba2606 *b98bd5cd9a1868f02a6052d080f4ae8a3ec997cedac23b266fdee4e3cf44b1a1dabce6babf616a *affb8398cd6ed24914c56ca614b3d94de0aaa072cce67873b9dd5d5c6f2e27f9671b90c7e3f967 *b7e8f6fc6c81a6becfb6abe5dbcbf9f60670793854dd3441f3ce4bb0b811e034433b9f17bb592c *99e1bdbad47cfb62abcf946be803820b9664edfbeceb37b79f697558b3281bb199b4cb219b70ed *9982efed4acce60d5ec7b35a628d57f4ea09078028d195177b643285bd2d7809dbd9da365fe678 *bf21eadeecd3e58a6a7af77e9eaf16a0a8e25d02a32d5f08032afbd6dc8eeba2dd6f21ec5bb004 *2332c80521064504e794a9c49a2f307a6099a891d81bbccdb58a509a4cc291881464ae7cfbf273 *366e4abce51b7cde141fe074608c4927dbbb89b4920818f4e1166b94d1f8178d9a3d4bbea87873 *ad386054ac7be9f9143632c3d12760c5c7cacb00a4083fbe47b4742dfbb67a36862a3d1bb8ea43 *ae99eab1073773ae0ee16160399ca947bc73b7921eea2b8a23018d6fc2af70ead4aa44f562620e *c053931980cc5a513ee1948fd0a2602d4d589591b81018f2f67a8d974b41d2288728510e301d47 *30a2de861194e22fa78108ba19e85998f204582e9710cff83ad1a971aa522eb017e482388fa71a *e56e14d572a07c5e564a27a88ace500f9dc959bec575b829897ab7c18aaa6e313473678b9356ea *963fe412938487786c900268f6245348e1884b09ef642f6f8fbcbc5fac8005521104bc249af4d1 *afc9dfbb43fd87aa52973cc04992309b016737d81c41ed99b1514a2f22d5ac7ae90a70a79c90ad *2bb1d91564d9745cc02d8a4ae78e90b0d943e2e2b43ee3c2767f4d567a08e1855f650b3ddb35dd *994b0f5020c3dc5e6b45349d2251970c6228e1c896961befdb14afc1928baffc3c10959322ab15 *a909d70da5596448cf444c146aec9d3228e88423616612ad0816e4fc0d5b624d980c929d1ed478 *5db82546d007c761a748dd18c32a0aaff13760b86cbed9f2fd02d0d1d82a1a1cec482e93b5f11f *4b1919fd8f843c56f6d0d208ddcea0028d6e7226707da848bcb2eef8acbb19cef197640844d9d1 *c87b48cc8826ac75a1e980027eb81422565e2475cfbb378c1dd27ed9263e364b368e8499f68618 *c182010e5832fcb3bfa2f2b6d3eb9253c8d48e3c32a4db96afa09348e8bc92fb218905fd3e96c3 *13a51a9549477576637230c21a021bfd9c0e8306b448de95604eb28c84b3f6f06ace969f398367 *2f255784a135c72490613dd261277c21390a6872be30d96a31472c99fc05c8964da88a186bec65 *81c699aa5e1af4d1472834433a89f0c054284e0f30437226b4324481c77ff29253d15a88e85c76 *7c996864761b984b0c3dcf116432614a9a0da34df19e0ba78f39a5f48c284083ade8a3e2a62551 *cd74bcb372a4e2117392303902954b22c96d1474ecf4976e6ef270595c63e8252fe7a596da5ae3 *4cbb9d6a2ccb4df3ef059c8d91b7592f79b17dabf9639b321dd088820ff8d708e448640b4c3e60 *4b1171f1f16e8d1122690f8d86925740d99c3c39c98d36a6d7db1dd7f3044e43ee04aee6ab72c9 *f46b7111502d3cd8264d7e7129efb73198b5bbbec0939a64fdcc45e1e4f8a7ca6d98f0b43e9721 *647471e18d121074bd5b73392f7398c2a14172493836b3728d20d7c604d803f46ad9b0e9ac2b38 *29e2da8990848ac8b0097424e91a61629420a9b7804634e2e6d0c910dd60a8ee4dc4988aeaaa31 *c5da222cb9f151bda4b22424d550b199e46092013587acab189793b5d11966d8fb2bf2e3387559 *ece283c9d75703e7702385541b07c6b8c3546c0d3649a9e2756bee6ba3541eb6c5851f3a68d403 *5230d21a0db5145c27a9b825fa26dad30899a5ed2ee5e4e4ba8b09391a3209a604fb101a5c5103 *823fa129f109a6aa122b437b2d05cbc9919df2b551c8c13452747991e6f62947cf55745755dd37 *893142a7de25069f659d52f0994282fd0ecad783db965cbc4b4cab959a1e74f7e8863c3d7225e2 *40d92c4b92dd70c830a70118761743cf8876a81a7f19a99597de59d87c3808e05f90f4a4f31758 *08a1c23eae3845c5c2708959fbb9257c62fadeb55de2701937d90a0dcabdcccd0b426b7060ac19 *261663e64b3f1c23ad51634da6304a54a9dba99928fa93b957ba0a56eb79f97246bdf47b74f733 *5ccb89ee5626c47279e832e229e6ce60eca485438e062007a86579de06da4bdc7c4519c5156ead *711feebd254240f44756029ba199c602532fbba9cd6d471c596082b816fd5cd55642a630b367c3 *fa094b392046c932e6622e53715323f25714e36bb182d1591c0a14b3545273535a810211132abb *076b95a2dd79d1fc16ae7afbba5860ba815facdf240f00b382ed2b3673de411ba1903a110aec11 *c06541eceba041a48985e8692930d50baf38e13e5f56fae4b2ad14b3a03868611e1cab5e3c9856 *96d2fdc013e319c2eda4d29b7885c31fdf12fadfd0851b443a73771ce5b9e7529a8d26d2c19a08 *70327945d9a04e2ea4641f49259ac233b7631046aeca51189248e6aa823097ce804faa36da2953 *7c070907747b7502cbeacbaca4cd5378704f2a497d85e578e078f796d22d83fad8d0c90e030f08 *9404d9a32e4934761f1dafa45f64c65bf48f5db1a5cca61197cca1985064e9859411e76b6bdc85 *53a8d1e7ce05bc8dce009dadc856e864eecc87830d807a3b78bb5b857ae1da093cfc6154fa98a8 *78c95725d06ae70af3fd80e8465824a15529b40ad7f0ac290a447373285083d1b878ffb8863387 *ead95c3a112bda70710c30d02c26523208d3379c2a8618b00bf72c53c9d6d102a5b49e3786e276 *c83192df381516e64debaa37a702f1b1b273bd524b602ac507002c5d3767cdcf299f1aaa183133 *66b82dfaa467151fac9335a6304c1463739bdf68ad2d1fe95973c1225a0ae35531c6655bbb8db2 *b99448f740350409c395ba29ac96882581af114351d633c137109dd707c3cd13d269ca812d9c55 *86277f28cf8ace57e89c037f87cee558b294724f897707c21c2fb11893f6354265d7594c2a1763 *0374f5068f81bf0276f235ce738a06c78bbd9e482f532bf1c1693cdab0eb139d14e2fccc611728 *9e444e7bca09d91dbb45a69ce01c88a4c6db4a2baace73106923bce9fdc2501ad02e8c70c7fc69 *62326401d7fffb2d10ae97e081c76a1c075d6f4a39da69c792889bee44b125943b8c7fca39a370 *46f98adbd5c55a782f9439dbcc19385d7c0a23ca4083f19d17b8a4a017c9652298f7b6e39b3e34 *e8d5ecaaf917740c6d6e477031763f916c78004ef7a242f54227e686aba6a0ed8ea6c2dacc3c5f *70e512f058e4372bccfcf2cc1d9ceb87c0e94e553670714a1d971f326e298569b75c1291b9e592 *3281f031c4443ce95b660d7e2a0833a71b59d13f49a5445007dc705eac8b177c2b360eccf00258 *767363c9cfb3d1fa7a34cb3fe5830653077aec69e7d8674f39ca6ea608598334ec894ccbee23c7 *d7b17f8f2226197987e89be7b033bafe91cf6f23ba3f0e89bc6202a1883a8c6fae175fb8596e00 *8a5ead842e8e85014c4c70611983d80536db692581347bda06320e80ab5789f717d0497403c922 *a0fb65a9677dce5a8354b06a0472a2290f0b7c6e6bbe4201349a0dcfd8de542157c5e75629a189 *d04db4e6ec47c14efead475caccc1381856bb296548b24eb57732d6e2894f4f58894e282bc5037 *6671e78ab588c93e1562862a04f3754a3a612f22258b6b4e30d32344b40015e8b235c00af6fe46 *5a913bc70a9517bc085d2a80015757a16b492e10b256765b71e089b18471682eda58e938229127 *7456a1d1f630cf0d4f2d78c8373c92e769921b5a724106532e6ea4b9e26b82e7708e42d3f824be *02eaa49f4050259598b2ce57088863c147215509da8748aa725db46bd66431c166ce15d46fed7d *1b53097093d5ef639e1b992128dd6052a9460076cd8dc9d117c31023fb3f76e03b40d73fd0cf94 *7690366280796de882794db6407d0486080253efcbab48e1d6faee8162f26ce396be2f45a50abf *a1790c7b4cc1140c8c7af34459cf155afce7a3db8d73fc1f6db7eca4318581e4dcc6d1cf388db4 *6dafde407f8416bf62a607ea7843468bf4b2f394e8540a2f622e821b8f21b11f9cbe8f6827753f *98733780f4d45b8eaeb187130f7f25bc364b58c7c7dc3f5434a458392eb9a29af5135a0e531b90 *4b82055775a35f78622385d1f402142f3da25244f65fc93730d9f4262bdcd95313dec635cf0ba6 *363c789bd859cc40e390e101c7563e212f152d1866c49006266e4d76ac61ac1494acf16cecc6ac *ae30d6f3b7e2c1900aaf6917f523f13da5dd6a6e466e2c7e14c369a2c89141503af2948d6a244f *a5b0640fed0c385d948c93b750ee7fec6a6078efde0bbaca2dc3c007cf3e0d649253ea3e2da9a2 *0a4cb248fd7428364d9bfece717fc552bc5085bd0177b5b4f658f2dbced9d182ebcf377c161ab1 *c73be96480ae9db5a91142f96f243e5664e596e80db9dc90647a39fe7fee549265ba51d686c59d *a17f676df0785cbd4b74caa200cfa7ce25c4cef5d04f49b5cddadd6e40727d6fb268c778eec2ad *33252cc03c89833527ab616a0fc51dd755896c214b48877308e095bd4d60dac4ab13c16ba9e5a0 *59c3626a6c6b845d1836a8493be7bb5146c405b2141538905c6e6a24fc8e62c7897fc8d8d88139 *6b5afd5ecdde8ad16be66ae533472bcfb2764719b57c4076395626b7732c2fb3846c0654e6a97c *c1863d2b92323fe5c413bba40c197537ca960143915f210476f0098a6bb4ca4c9cc8e2c21c3427 *f98c2e40864a8a08b483fa192fbf5b2389cf32598f02734a1bfe8df8ca297ee31a5496ed6b3044 *e3619ad0096e31a05d2e369c7e3332520297c261d1b010ac66643d8c30d8ece0d20b8a02648924 *358c81b029fb9220de62f0dc988a06dcb0a98b2aa571159c8222528879d2d4fb1897207ab33ea4 *b41dc1b841272b790f677263039957d6524ff109df4336a9dcf6c73d6005028d3010b1470162f3 *d13594b2402ba0d682d6a2d23051938ecbd7a21b259295d43f15acd49643bba9b361a78bb16d92 *cc4a0841f91853f7320e7b9129ea30a5dbfb142b75e4e18360935f8ab51c39a916015ff760aabc *72a09f966d57f68aa80df931319957c2eae971f0d783336769b46bac3da0e08e69adb9d1d5e899 *29268f6af98ccb3312c3230f33a211665963d568609f7091bb4996e49c004759e6be503173441a *3209ba514b4a346d24dddabbc6440a864db160185b94e9624e465d2e3820125562ba4becc2e6cd *b624bd9da2706fe9ba3413d5c1451efb92fa88f8e824981a45920342e556c32f4670031ecabf1f *6c56b0eee60b7a01f1f8aaf9d58e2336f062ec6fb713be3964b39b69b1871101544c09d381e06a *0389d54c3800d85433279710970899eed05707c15335b9a40dce25655ab6b9c033ce053685aab8 *431462ff8158a085c157cb191807511638a6445b877b9e2f6eb1763be66938d5bf3881000c3e26 *016ab21e4de552f5419f6fc29cd82c280e01317e29886864e93982b434a4cee70e3d62c16bb983 *106ff5567c01091e54f044c191a218aae04c62eea2d52f05184f209651f1b5db49520e6484ab65 *157c4f2a818ca0bdcaad27ad0b2822496e9855f3c7e427b2e5bf286ed88db41e31ef470e8bfbfe *1f396e08a6d0ae168564ae8c9b5f5c7e77a9a9fd392f0cdd9b3ebbf80e9437cdd8b57c6fe0252d *54d69e2cd0686bfd0eeb82c1269b305b0824d6c88f7c22b96c43b40b1488d0bffd906362d0109c *fd642f245515efd645d1b208d7f5fce1ab2f2ede48f2c413b204fdfdef7fd790b2ac8f15229760 *552876375c468a559efc7abd1bc99513c9700817d5c2aa69fad36ffd98fe44e7e2bf530d813fb7 *384bf7126ebc21b1f8031edd174d4cd3f9256f753b5811040ef2fadf0c4de514043395e4717c7c *8e19851b49f718aa2e9ac89e69c6b2592d2ffe8ed6f1450ec7f82732bc7e9787d743432094edc0 *2dfd0fbc58ed55f30b2d068026af9af904960c742eccb846858b7b2f95c7c0c0cc2ba1504dd330 *d461a38fd6c02f814c903793bbaba64aebdfbfbc78b3596c65f5a7b8f448125fc0edd34335c0b9 *991d289acff40100048a5ef221cf694873eaf092ffc78a3dbfbc53a3627dadff2db972d3777cf5 *fb100d7298e83615d33594db60defb9442799e2d45b305cf9a46d5364e6f5c6cb85a6f5e31b99a *d825caad579c25cfcad073cd0fc46c336efe53bf8f5b3e1a23f4044b61c3398acc3ac443be7a73 *0b1509283a10ffc2eb356b26fdab66efaaf534eb0fffa9550858a1ffd82d0174321cf4698134c5 *6360c78f5d5ea13f6a0d6e528cb7c46e7fd060fe34d21c7c4d65783cdc046c449d1c4260315feb *6fbcaa6bcd81b1f649df4411fc2f736911bc01f3c9fa9017c3f8c37e5a41dc2eecc697f92d5f24 *842e78ba8e01f21e9bcfc72616f23f975ae9509478ba65c30daa3f7f596d71d93abc6ccbd97cc4 *748a278df997fa2138df69e6cc66fd994bac499716a6675067be241647be8b4b2a3ff877d2b9f0 *6ce5ec76514a66e1fb1c91a3f5fa5802f2c69dd17f68e90eeff1e6e5cd2cbd6aa670a5d38cd13a *875d1bcaae0db02c31a416dbc1a177490657e09928b7c131b82878293b252eab52e6f2a45ce71e *65ec374b18f160985084480286a301de09b65d5cea779e8fe758c815668c31d4cf26bf8c181117 *78a5fdd7aec2e2b130253c8c27ad3b1a6232ea2d5f9fd1cdfe39ec419ad97318e80c7d8bdffee5 *8be7fa93bf895fe992d8d830ed0236e8fd136e9626b444035ea23fad477348d7c31a39bbed1615 *2b3a607eb52e4039ff2e2f5ee2919992e496a3097823db68fea7ca0f48d5439526989bebc66603 *5f8205927d9c525e5aa5fa245af0838cdc90ede0aad9818d9f6a6ad5e799216470c351d0c1cdb4 *43731bf2dc501c824640b1f0c6162ba1f6ad0e56ca949a185ca5c41dffa0279b9d7664b3ffaef9 *f606c20830e10ed74beaa06f9da4ce59609620d7be45db07d79f620a0319ec6cf1a4d949fed9ed *7b5b9cd316cfec161362eb43e400b6f8b9e60a399a8128891c0d657a6d7a5225b4df8672313f26 *ed9f288bf1cbd5481fdab86c862d4f2117187fbb83d8f472850a0e51f8d2e43303df1d42185cda *285796905054df809e2b2e0a036961bcba09b3d054f7fc8a6968ead0d01062e1e0f4b562bb7889 *9ae62e354d6bf0483107b9e5fcc464d0f967daee03eb4987544644d67a4a6b3d75d61a879a68a9 *00368067bb1955b876d6376be312fc9880ea0768f525394c2674c07a663592dd1a6f2e9382f4f0 *57aab91df080c3510fd79e4a2290c55feb5909165431d135e5aa5e1bba7ab32c3c71edfe292b84 *477afc7cee0a4d9099a04664292e4a497c4e9bc3ab6602d25363681b6527dacc50b19b80da34e4 *380ebeabf8c7246584fb4f6331d73b8f72b154e56a08cb662aa1cd4275ae867223b15bee8aeb0b *8cadd6abe0f485a5b5b4de0b5568bfe6bc21a3630df1fe612068ab67adc6e3d1cde5e6e5f472b9 *fa05c85f63ee67ad7f6841bed9e8ff169f4df0ffcd620837bc7c668997ee19d6a2558e190b4698 *ef77d74ef8d3dcc11795f5b1faf68f49c6cb43651ac61c0e082bfbff16a895e0652bcfae8b4981 *29d25a1319e947464f88144d620dd6657a0da31960616d299eb4b811e7589ff210b9d23b663adb *8b71b8ea0255b6626b38a50fe7007348e5b34dae3e8bf96fc84045262bbee419a9f015b0d92946 *9c0906cd885772e88325d821d83dba98195acfff51f321d245253ac9fe99a20c8430992fbe439d *509fea9f500d933233d45d68b1e7080bcc18ea107e767803f80c3df30ed05a04746c5de10e3b9c *31bd6731c222665ceda135370eb211d68dd97036e05075329c9e299ec085569cb5ab480ab48dd6 *1c6c3c015230597448f419d529a55b2c96cd359e7f6017f5ffdbddda25e6b991375a7afe334907 *2189a300380af6bf09461172a7ed044094d71a98c0a06b82b952c2f2aebfc8c3ac64a80096d041 *86384c29f58ec24b4c0151d6d46e47a8be76fa78ef3ae67e4ebddc35295ca14f620033b3673161 *a460c61c92e946529d01a0eef76de9c83bde5c5e6b5abe588cae37c20cfeffaf47136006f9fab3 *37c80c0c1f4850e4fe11887f08860ed8f36ff59b4f88c73b7c32374731bc9115a7f263d2e325fa *0b5a611644d57fa7bb6be16ccafa670f0f2039ba4a386f1ab315f99a08bec042ec8e58ae658526 *832e49a86f300ae60686d0d7e8f3a7c568335bbd8625ab57499ba690b8517eec519a64d11f35aa *a46dbbabfc1c1741c2f018839c337b5229047f948740c3be5c232bb5cd9fc9f5e0c59ba7540503 *5d0a1805e60420bee4fba8b11e7482911eb682be66a6a61026c636b5075df0f59201fe05eb21ab *e68f7a6760277e84592e9abffbeadbafbefbea2f2f48a9d4e7d7c6d710bda9f1e916ae7fff9cd6 *e2277ee9a7d61078d5efa9d08496ecdbb7b739c62fc26b377449fdeff59129c36239d0377c8c4f *5f350116fc7adbd0f23301ad4d6b9e94203c6cbc6ef06df37833a43cd7d7480ecffdcd3c021541 *dbfd4c8b387015ca10660c5961ac38fced6f8dde80def83d3984bf6cad2bf3b7535d6126e14fec *a4005859a7d36f74b21e59bd5e9bbc13fe2bd78863e0dfd13a95167729ab079061431add64a80e *6cc8b3172fbefde6b9d990341d248d5e3ba5e3e304591d980921168aaeed1837dbfaf7e1109e82 *dff3e6d316427caa79ca53f26599f7fa9a5e7b4942efbdd2bf6b92e3f7fcdd56e5ddc6d42abbd5 *b0896040d2efeacd1938fba77bd528907413d51b740505f4e3c9b0db804ffee66f3740d7ba1f9e *29fab4a8de92d8c167fdcea0d1a3db4460d21924a8601f76ffb24eafdbe8f748fb69cad91fa819 *2142e2e8253d34d003e487d09987bd5736c4ed5d53fba0d756bc74595fab22032261833db83cb3 *e68cb06798757cec510ef634ee843d80f32a69274ccfcfe48d596598907891a0d2c1ab94656df3 *a60bae912458a3c15f1afa0344ed2ab79ff092605f5c5d11d724d373a4b71dc48780c024ebf0bd *5a3ffcf9b9b1f09482293c06a69060924ec63ec432fd123fc99b6f348974c0e80311c9eaeb5740 *0de9a063decc9bbfa509ea07b35eca0f62814e50d57bf8a0e2079160f4bf19fe830005fd16d00b *95476c7c7d0d44d3c3fee8ad95e648963de28820c3a92f1b3c6494f8a2b535c357bc92f0289a32 *dec052769ca1c1b675fbce1c80a4d5358f0c45847e07d248dd8165dd9e7dc7a5637da6d27fe826 *3d594acda1f5ce75883e47d05dda6b9b270c62295c5f8d4119d76d94b16902b30ff336f769a21a *7807448f0b1cae0173813bd8841d74358f830e14ef4bd6030957ea20e31bfa0c7793a550d42ba4 *9479bd0e86bdbdbd0e7b43a57bedcaf275daed7e755a8885bd7652c2c21961a07230b0d71eca0a *11069ab75e1a54cdf8416530b0f46092c92c67f2cf87d085c565d64fd898660642181bfb996063 *42ce0f1f1d1b2e3af608b5f4167b13cab2bee622a617db073158de76586f2a05cddb8e934d54ed *b6a77e275095c6edc4723e16258be6bf90628e9a42476f2f8b0b44aa6c000b4580bc2958ccd50a *ab7ea48bc65a9a42eabe139802e098db492f4b94db89e5b6462ac914502a7590f54e99f56a8dad *9bde6ba298b8cc6c00a23d0450cd5e75db7a4483347126da73de094d74d8f03ae96503e5766289 *6598f5c3c442a050dbba6afd815ee1b974c107e972cc45f3bbd1dbebdc1d73d6d5983f6c5b02cf *fa03d35b60cc25e54b0b94b4868a9de7af5affe60d4c1f76546960dfeaf36f521a582341b7931d *98e9edf0c0b812290f4cd50e8cf494ab763b7321c8026a9e521ae78f0683f418f5f81a699bd28f *88e1ebe141c735c4e98eb14ff0cc6807031514c981777974509d97f5e590406c5405624913c5ea *9e69d6edc8b51c90f14755915d0dc216c7e41350ca7787c160d3a4d3033b7a5fd620d594db48cd *ed629e6a218cbd0f171475fa86b1c32d66f28aa75ac0cae8070d63ef2443efc199cbd251d500d5 *426b88fa2d5c4f62e6fdc41991cbcc133cd7dbddd5834cbbcadb5e676ab4bdd5a9197a4e871de5 *4e4cab6eee5af83bff849474e01b49a2bc7eba7042dbd34f0fa2679d75417b62b91fd44f52e0b5 *a2b6778dacefa0da034a5936b0a2266b1baf050ea3a38f7c02a0a265bd21f6967649336255a9eb *bcc0d3ed0192e2199330bdd7eefbc8d3edf77ce4e1279c2e5dbd1490a797747de431401dada09f *2afb6042c73bf7c1aa563067088ca73dad61a53d525d5847ed39a3731129c57b2f5c44faeb32ff *eb5463008e2e617d082e5f69a7de1ae87353a6dc35004dafbc06bed4e8e2b0ba4ab0acabb1d8be *50d11ce1264aaf837ea67bdcd3c10017caae9c56a712ec40b9e8d501f4ea0dcbc7635120b9f35e *afa7fbeab54de7101d21af853a87ca41699ff41b44aa41bbedbce0d39041aa7ebfe722954afb9d *8e8f54fc44f0b0c3b280a567b7db2bed254b4dbba4d910fab45d641dad644117c7337e33743efe *5a7a18a4437fe8035abe2033f5e56b171debeed059ae7a43576e1734f46a17c1a12b7fe878d992 *3bf4215d8c6b878e4fa8bdab1e96c05d0cd5d927779dbe883157fb3a2c77b336ac8472a730f445 *193d115e1a6b22e975dd85af13c4a59174fb0a0d38287dff0217d0a5740d2a44d361bc388c30ed *73ae7eed699754d634d523d747de9ee58cddbe791d195a4793957d02582218fdcc13151a4626d8 *81310cfa569a0eec3b9e229c2466097cfb07d6fbe022ede852a47a7e52f2a4f5b2b984c96b151b *a2aa31020f0298e17a5df0d66290e01464c80d2f4987282f6ce4c97d234f0fbd5ec16161ad8ee5 *867d1cb8f672d759de84baa6e0dbbc18f350c876a285de40fa4e41c2ea83828330c3a179a2b253 *feb0d0cc7dd4b0943bacc5eab533a674d0066fe2b06371080a1d637cd062c2ea5ad6170c0a98e3 *841e96b4e15f7cf9ecc5330de17ffcf0d5fffacf6f7ef8ea4b267a6fa3875ac2732cb5c5f8ef34 *596af19ff1a556489689461bb9f66dff2e75b962c3d3a798a0df7cbe5d0b05f09d6e771cff37df *7dffed37f5c3ef20550786ef903f0ebf5347fe7b874f02033da6ce4c20ac3a3d6a2618f547fd6c *808e214a3a6d5bc2d64a9a85f5d23c084aaf7d10e85bd3aafb60bd214411845e1fbbb266b93e96 *d648f8fcacb935165638881e1d2a8d5759df0e7cf3d6371986f590baf585e851751ce9d39a63f5 *3c5e73b51f7bca6b9e527caeacb9b2b0bc35771e9435771e0416506f7c92354fe9a46bd75c4350 *fe9a5b946e04975c9f0278c995b7e41969e8b2e4fc6078f1d40194eef5643bcbabaf2aab0ff5d5 *f51182af41ff0219fea8584a5dbbd15653c635d6c04032eff4122e6b513190d710f9e525a54895 *1603bda7827950472ceb312a601e0bf7a08e46842e788f3b0e224064bf407211a1ef3c88889034 *dc07938e20c2b40e11b0abae83081942f01101a7dd0de300e5d0d0e49538987addba4d0b101aa9 *78e06f848933f3ae7b7703ea23542ee9b7cd6904d7c1307d5febfa17f8427d60ca05d607dfe5a0 *6f18983e0db42bc06064aac342016d7a217fd4ccfddb9e2e7b1db8c4906c20648303fa65e866fc *9dde407513ac63f57531db49b9bc21f123722dc30fae6bb920d7f2a5c6352adf9c805d73a80f6b *e09eb515914750bc59b2085e681259e46b952f276ab7c9d71043dcf84cff76315fad5e355e2d57 *af97ff945fff6f31d5af7cf5d7afd5ff07f26ef3aed94d0b00 newhex * rmfile ./docs/icfp99.ps.gz hunk ./docs/index.html 5 - HaXml: Haskell and XML + polyparse: alternative parser combinator libraries hunk ./docs/index.html 12 -

    HaXml

    +

    polyparse

    hunk ./docs/index.html 14 -What is HaXml?
    +What is polyparse?
    hunk ./docs/index.html 25 -

    - -Warning! The development versions (1.14 upwards) significantly -change the API of some modules! They may be incomplete, inconsistent, -and liable to change before the next release! Do not expect code -written against an earlier API to be compatible! DtdToHaskell has only -recently been fixed to work with the 1.15 APIs! Warning! - - -Notes for migrating code from the 1.13 version of -HaXml to the development version. - hunk ./docs/index.html 26 -

    What is HaXml?

    -

    -HaXml is a collection of utilities for parsing, filtering, -transforming, and generating -XML documents using -Haskell. Its basic facilities -include: -

    - +

    What is polyparse?

    hunk ./docs/index.html 28 -For processing XML documents, the following components are also provided: - +polyparse is a collection of parser combinator libraries in +Haskell. It is distributed as a package, but you are likely to use only +one of the included variations at any one time - they are generally +alternatives to each other, as well as an alternative to other +widely-used parser libraries available elsewhere. hunk ./docs/index.html 37 -Detailed documentation of the HaXml APIs +Detailed documentation of the polyparse APIs hunk ./docs/index.html 39 -Documentation for the -previous (stable) version, HaXml-1.13.1. hunk ./docs/index.html 41 -An introduction to HaXml for people who know more about XML than -about Haskell can be found at - -IBM DeveloperWorks. -Please note that the DeveloperWorks article was based on an older -version of HaXml. If you try to use the examples given there, you -will need a couple of minor but important edits, given as a -diff patch here. - -

    -A paper describing and comparing the generic Combinators with -the typed representation (DtdToHaskell/XmlContent) is available here: -(12 pages of double-column A4) -

    - -

    -Some additional info about using the various facilities is here: -

    +Parser combinators have a long history in Haskell. The first(?) monadic +set of combinators was introduced by Hutton and Meijer in 1996, and +distributed with Gofer (a precursor to Hugs), and known simply as +ParseLib. That set lives on here as Text.ParserCombinator.HuttonMeijer. hunk ./docs/index.html 49 -
  • To use -package HaXml interactively with GHCi, you need - at least ghci-5.02.3. -
  • The function toDTD generates Parameter Entity Declarations in the internal - subset of the DTD, which don't conform to the strict well-formedness - conditions of XML. We think the constraint in question is spurious, - and any reasonable XML tool ought to deal adequately with full PEs. - Nevertheless, many standard XML processors reject these auto-generated - DTDs. The solution is easy - just write the DTD into a separate file! -
  • DtdToHaskell generates the Haskell String type for DTD attributes - that are of Tokenized or Notation Types in XML. This may not be - entirely accurate. +
  • Report bugs to Malcolm.Wallace@cs.york.ac.uk +
  • Even better, fix any bugs you find, and then darcs send a patch. hunk ./docs/index.html 56 -Development versions:
    -HaXml-1.17, release date 2006.09.11
    -By HTTP: -.tar.gz, -.zip. -
    -By FTP: - -ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/ - -

    -Ongoing development: -The development version of HaXml is also available through +Development version:
    +darcs repository at: hunk ./docs/index.html 59 - http://www.cs.york.ac.uk/fp/darcs/HaXml + http://www.cs.york.ac.uk/fp/darcs/polyparse hunk ./docs/index.html 62 -Older versions:
    -Stable version: for 1.13.2 see - -http://haskell.org/HaXml/ +Released version:
    +polparse-1.00, release date 2007.01.xx
    +By HTTP: +.tar.gz, +.zip. hunk ./docs/index.html 69 - -ftp://ftp.cs.york.ac.uk/pub/haskell/HaXml/ -
    -FreeBSD port: - -http://freshports.org/textproc/haxml/ + +ftp://ftp.cs.york.ac.uk/pub/haskell/polyparse/ + hunk ./docs/index.html 75 -To install HaXml, you must have a Haskell compiler: ghc-5.04 +To install polyparse, you must have a Haskell compiler: ghc-6.2 hunk ./docs/index.html 91 -to configure, build, and install HaXml as a package for your -compiler(s). You need write permission on the library installation -directories of your compiler(s). Afterwards, to gain access to -the HaXml libraries, you only need to add the option -package -HaXml to your compiler commandline (no option required for Hugs). -Various stand-alone tools are also built - DtdToHaskell, Xtract, -Validate, MkOneOf - and copied to the final installation location -specified by the --prefix=... option to configure. - -

    -To build/install on a Windows system without the Cygwin shell and -utilities, you can avoid the configure/make steps by simply using the -minimal Build.bat script. Edit it first for the location -of your compiler etc. +to configure, build, and install polyparse as a package for your +compiler(s). If you don't use the --prefix option, you may need write +permission on the library installation directories of your compiler(s). +Afterwards, to gain access to the polyparse libraries, you only need to +add the option -package polyparse to your compiler commandline +(no option required for Hugs). hunk ./docs/index.html 101 -Version 1.17 essentially just fixes compatibility with ghc-6.6. -However, it also include a lazier pretty-printer to use in conjunction -with the lazy parser, to save running out of memory on large datasets. - -

    -Version 1.16 adds laziness to the parser combinator libraries, such that -they can start to return partial results before a whole entity has been -parsed. Partial is also used in the sense that the returned value can -contain bottom - an error which gets thrown as an exception when you try -to explore the inner regions of the value. In terms of XML, it means you -get an element back as soon as its start-tag has been consumed, but if -there are parse errors later on, BOOM. However, if there are no errors, -it does mean that your processing will be (a) faster and (b) less memory -hungry. Another cool thing is that, even in the presence of errors, you -still might get enough output to satisfy your processing task before the -error is noticed. - -

    -Use Text.XML.HaXml.ParseLazy and -Text.XML.HaXml.Html.ParseLazy to try it out. There are also -lazy versions of the supplied demo programs: CanonicaliseLazy -and XtractLazy. - -

    -Version 1.15 is essentially 1.14 with some bugfixes, and some new -functionality, especially in the parser combinator libraries. DrIFT now -supports deriving the XmlContent class, and DtdToHaskell now also -derives the XmlContent class, in addition to determining a collection of -Haskell datatypes equivalent to a given DTD. - -

    -Error messages from parsing are much improved in 1.15 - they should -locate any error far more specifically and accurately. Let me know -about examples which do not report correctly. - -

    -Prior to 1.14, there were two separate classes, Xml2Haskell and -Haskell2Xml. They are now combined into the single class XmlContent. -Make sure you get a recent version of DrIFT if you want to derive this -class from Haskell datatypes - the included version of DtdToHaskell has -not yet been updated for deriving the class the other way, from an XML DTD. - -

    -Version 1.14 also contains a new SAX-like stream parser. - -

    -A while back, Graham Klyne extended the 1.12 version of HaXml -significantly, in particular to ensure that the parser passes a large -XML acceptance test suite, and to deal more correctly with Unicode, -namespaces, and parameter entity expansion. His modifications will -eventually be merged back in to the main CVS tree, but in the meantime, -you can get his version here: - -http://www.ninebynine.org/Software/HaskellUtils/ - -

    -The previous stable version (1.13) had the following features and fixes:
    -

    +Version 1.00 is the first release of polyparse as a separate package. +It was previously part of the HaXml suite. HaXml continues to use +polyparse, but polyparse will be useful more widely. If you are looking +for examples of the usage of polyparse, the implementations of +Text.XML.HaXml.Parse and Text.XML.HaXml.XmlContent are two good places +to look. hunk ./docs/index.html 114 -We are interested in hearing your feedback on these XML facilities - +We are interested in hearing your feedback on these parser combinators - hunk ./docs/index.html 118 - Malcolm.Wallace@cs.york.ac.uk (implementation & design) + Malcolm.Wallace@cs.york.ac.uk hunk ./docs/index.html 122 -Development of these XML libraries was originally funded by Canon -Research Europe Ltd.. Subsequent maintenance and development has -been partially supported by the EPSRC, and the University of York. hunk ./docs/index.html 126 -restrict anyone else's use of it. The HaXml library is distributed +restrict anyone else's use of it. The polyparse library is distributed hunk ./docs/index.html 130 -The HaXml tools are distributed under the GNU General Public Licence -(GPL) - see LICENCE-GPL. (If you don't -like any of these licensing conditions, please contact us to discuss -your requirements.) +(If you don't like any of these licensing conditions, please contact us +to discuss your requirements.) hunk ./docs/index.html 137 -
  • Joe English has written a more space-efficient parser for XML - in Haskell, called hxml. What is more, it can be used as a simple - drop-in replacement for the HaXml parser! - Available here. -
  • Uwe Schmidt designed another - Haskell XML Toolbox - based on the ideas of HaXml and hxml. It is well-maintained, and has - recently been updated to use arrow-based combinators rather than filters - as in HaXml. -
  • To use HaXml and HXT together, Henning Thielemann has put together - WraXML, - a wrapper using an alternative tree data structure, together with - conversions to/from HaXml and HXT. -
  • Some comparisons between functional language approaches to processing - XML can be found in - - Bijan Parsia's article on xml.com -
  • Christian Lindig has written an XML parser in O'Caml: - - here. -
  • Andreas Neumann of the University of Trier has written a - validating XML parser in Standard ML: - here. -
  • Erik Meijer and Mark Shields have a design for a functional programming - language that treats XML documents as basic data types: - XMLambda. -
  • Benjamin Pierce and Haruo Hosoya have a different but similar design in - XDuce, which is - also implemented. -
  • Taking XDuce's approach further, is the very cool - CDuce by Véronique Benzaken, - Guiseppe Castagna, and Alain Frisch. The CDuce language does - fully statically-typed transformation of XML documents, thus - guaranteeing correctness, and what is more, it is also faster - than the untyped XSLT! -
  • The Xcerpt project uses HaXml - to create another rule-based query and transformation language for XML, - inspired by logic programming, and based on positional selection rather - than navigational selection. -
  • Ulf Wiger describes an Erlang toolkit for XML: - XMerL -
  • The Java world has adopted the ideas from DtdToHaskell into - the Java Architecture for XML Binding - (JAXB). JAXB translates - an XML Schema Definition into a set of Java classes, and provides - the runtime machinery (like XmlContent) for reading and - writing objects of those classes to/from XML files. -
  • There is a comprehensive reading list for XML and web programming in - functional languages here. +
  • Daan Leijen's parsec. +
  • Doaitse Swierstra's UU_Parse. +
  • Koen Claessen's ReadP. hunk ./docs/migrate.html 1 - - HaXml: Haskell and XML - - - -
    -

    Migrating from HaXml 1.13 to HaXml >= 1.17

    -
    -
    - -

    -There are 3 main changes between 1.13 and 1.17: - -

    More info fields in the generic document tree

    -Content items in the generic document representation now have an -extra polymorphic component field. This can be used for -propagating information throughout the document tree, like -namespace scopes. However, if you simply want to change some old -code to use the new types, essentially you can just use unit -() values as dummies to fill in this field. - -

    -data Document --> data Document i - -

    -data Element --> data Element i - -

    -data Content --> data Content i - -

    New XmlContent class, replaces old classes

    -The Haskell2Xml and Xml2Haskell classes have been -merged into a single new class: XmlContent. Because the new -class is based on combinator parsers that return good error -messages, some of the signatures of user-accessible I/O routines -have changed to enable the possibility of reporting parse errors. -See this page for details. - -If you are playing with the class methods themselves, then the -translation from old-style to new-style is more-or-less like this: -
    -    class XmlContent a where	-- old
    -      fromElem :: [Content] -> (Maybe a, [Content])
    -      toElem :: a -> [Content]
    -
    -becomes -
    -    class XMLContent a where	--new
    -      parseContents :: XMLParser a
    -      toContents    :: a -> [Content ()]
    -
    - -

    Lazy parsing

    -Parsing of generic XML documents can now be lazy, that is, it can -start returning part of the document tree, before seeing the end of -it. However, this does mean that parse errors can be discovered -too late to do anything sensible with them - your program will -likely just stop with the error message. To use the lazy parser, - -

    -import Text.XML.HaXml.Parse --> import Text.XML.HaXml.ParseLazy - - -


    - - - rmfile ./docs/migrate.html }