[initial import of happstack-clckwrks Jeremy Shaw **20120223064330 Ignore-this: cdc4a4036d3f5c7538b8712c20afe24a ] addfile ./Makefile hunk ./Makefile 1 +all: json2/json2.js jstree/jquery.jstree.js hunk ./Makefile 3 +json2/json2.js: + mkdir -p json2 + wget https://raw.github.com/douglascrockford/JSON-js/master/json2.js -O json2/json2.js + +jstree/jquery.jstree.js: + mkdir -p jstree + wget http://github.com/downloads/vakata/jstree/jstree_pre1.0_fix_1.zip -O jstree/jstree_pre1.0_fix_1.zip + cd jstree ; unzip jstree_pre1.0_fix_1.zip + +.PHONY: all adddir ./clckwrks-theme-happstack addfile ./clckwrks-theme-happstack/LICENSE hunk ./clckwrks-theme-happstack/LICENSE 1 +Copyright (c)2011, Jeremy Shaw + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Jeremy Shaw nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. addfile ./clckwrks-theme-happstack/Setup.hs hunk ./clckwrks-theme-happstack/Setup.hs 1 +import Distribution.Simple +main = defaultMain adddir ./clckwrks-theme-happstack/Theme addfile ./clckwrks-theme-happstack/Theme/Blog.hs hunk ./clckwrks-theme-happstack/Theme/Blog.hs 1 +{-# LANGUAGE RecordWildCards #-} +{-# OPTIONS_GHC -F -pgmFtrhsx #-} +<% +module Theme.Blog where + +import Clckwrks + +postsHTML :: XMLGenT (Clck ClckURL) XML +postsHTML = + do posts <- getPosts +
    + <% mapM postHTML posts %> +
+ +postHTML :: Page -> XMLGenT (Clck ClckURL) XML +postHTML Page{..} = +
  • +

    <% pageTitle %>

    + <% pageDate %> + <% pageSrc %> +

    permalink

    +
  • + +page :: XMLGenT (Clck ClckURL) XML + +%> + + + + Blog + + + + +
    + Clckwrks
    + for secure, reliable, &
    integrated websites
    + <% getMenu %> +
    + +
    + <% postsHTML %> +
    + + addfile ./clckwrks-theme-happstack/Theme/Home.hs hunk ./clckwrks-theme-happstack/Theme/Home.hs 1 +{-# OPTIONS_GHC -F -pgmFtrhsx #-} + +module Theme.Home where + +import Clckwrks +import Theme.Template + +summaryBox :: PageId -> GenXML (Clck ClckURL) +summaryBox pid = +
    + <% getPageSummary pid %> + read more... +
    + + +page :: XMLGenT (Clck ClckURL) XML +page = + template "Home" () $ + <%> + + +
    +

    The relentless, uncompromised power and beauty of Haskell for the web.

    +
    + +
    +
    +

    Elegance

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    + +
    +

    Speed

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    + +
    +

    Power

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    +
    + + + addfile ./clckwrks-theme-happstack/Theme/HomeOld.hs hunk ./clckwrks-theme-happstack/Theme/HomeOld.hs 1 +{-# OPTIONS_GHC -F -pgmFtrhsx #-} +<% +module Theme.Home where + +import Clckwrks + +summaryBox :: PageId -> GenXML (Clck ClckURL) +summaryBox pid = +
    + <% getPageSummary pid %> + read more... +
    + + +page :: XMLGenT (Clck ClckURL) XML + +%> + + + + <% getPageTitle %> + + + + + + + +
    +
    + + + +
    + The relentless, uncompromised power and beauty of Haskell for the web +
    +
    +
    +

    Elegance

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    + +
    +

    Speed

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    + +
    +

    Power

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    +
    + + + + + addfile ./clckwrks-theme-happstack/Theme/Page.hs hunk ./clckwrks-theme-happstack/Theme/Page.hs 1 +{-# OPTIONS_GHC -F -pgmFtrhsx #-} +module Theme.Page where hunk ./clckwrks-theme-happstack/Theme/Page.hs 4 +import Clckwrks +import Data.Text (unpack) +import Theme.Template + +page :: XMLGenT (Clck ClckURL) XML +page = + do ttl <- lift getPageTitle + template (unpack ttl) () $ + <%> +
    +

    <% getPageTitle %>

    + <% getPageContent %> +
    + +{- + + + <% getPageTitle %> + + + + + + <% getMenu %> + +
    +
    + + + +
    + The relentless, uncompromised power and beauty of Haskell for the web +
    +
    +
    +

    Elegance

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    + +
    +

    Speed

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    + +
    +

    Power

    + +

    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ut tortor non augue tincidunt iaculis. Cras ac diam rhoncus nibh commodo iaculis vel sed ligula. Curabitur fringilla tortor sed massa consequat convallis. Maecenas consectetur tincidunt porttitor. Aenean quis posuere augue.

    +
    +
    + + + + + + +{- + + + <% getPageTitle %> + + + + +
    + Clckwrks
    + for secure, reliable, &
    integrated websites
    +-- <% getPageMenu %> + <% getMenu %>Te +
    + +
    +

    <% getPageTitle %>

    +

    <% getPageContent %>

    +
    + + +-} +-} addfile ./clckwrks-theme-happstack/Theme/Template.hs hunk ./clckwrks-theme-happstack/Theme/Template.hs 1 +{-# LANGUAGE FlexibleContexts #-} +{-# OPTIONS_GHC -F -pgmFtrhsx #-} +module Theme.Template where hunk ./clckwrks-theme-happstack/Theme/Template.hs 5 +import Clckwrks +import Data.String (IsString(..)) +import Data.Text (Text) +import HSP.Google.Analytics (UACCT) + +template :: + ( EmbedAsChild (Clck ClckURL) headers + , EmbedAsChild (Clck ClckURL) body + ) => + String + -> headers + -> body + -> XMLGenT (Clck ClckURL) XML +template title headers body = + + + <% title %> + + + <% headers %> + -- TODO: only show when running on live site, not testing/devel +-- <% analyticsAsync (UACCT "UA-7111625-1") %> + + + <% getMenu %> + <% body %> + + + + + +{- + +template :: + ( EmbedAsChild headers + , EmbedAsChild body + ) => + String + -> headers + -> body + -> XMLGenT (Clck ClckURL) XML +template title headers body = + + + <% getPageTitle %> + + + + +
    + Clckwrks
    + for secure, reliable, &
    integrated websites
    + -- <% getPageMenu %> + <% getMenu %> +
    + +
    + <% body %> + +

    admin

    +

    login

    + +
    + + + + + -} addfile ./clckwrks-theme-happstack/clckwrks-theme-happstack.cabal hunk ./clckwrks-theme-happstack/clckwrks-theme-happstack.cabal 1 +Name: clckwrks-theme-happstack +Version: 0.1 +Synopsis: Theme for happstack.com +-- Description: +Homepage: http://www.clckwrks.com/ +License: BSD3 +License-file: LICENSE +Author: Jeremy Shaw +Maintainer: jeremy@n-heptane.com +-- Copyright: +Category: Clckwrks +Build-type: Simple +Cabal-version: >=1.2 + +Library + Exposed-modules: Theme.Blog, + Theme.Home, + Theme.Page, + Theme.Template + + Build-depends: + base < 5, + clckwrks, + happstack-hsp >= 6.2.8 && < 6.3 adddir ./clckwrks-theme-happstack/data addfile ./clckwrks-theme-happstack/data/hscolour.css hunk ./clckwrks-theme-happstack/data/hscolour.css 1 +.hs-keyglyph { color: DarkGoldenrod; } +.hs-layout { color: Black;} +.hs-keyword { color: PaleGreen;} +.hs-comment, .hs-comment a { color: Firebrick;} +.hs-str { color: RosyBrown; } +.hs-chr { color: RosyBrown;} +.hs-keyword { color: BlueViolet; } +.hs-conid { color: ForestGreen; } +.hs-varid { color: black; } +.hs-num { color: black; } +.hs-varop { color: DarkGoldenrod; } +.hs-conop { color: DarkGoldenrod; } +.hs-sel { color: Red; } +.hs-cpp { color: Red; } +.hs-definition { color: Blue; } addfile ./clckwrks-theme-happstack/data/seven.png binary ./clckwrks-theme-happstack/data/seven.png oldhex * newhex *89504e470d0a1a0a0000000d49484452000003c00000021c0802000000b63f502c000000097048 *5973000017120000171201679fd252000020004944415478daecdde7731cf77d3ff0fd6edfbd5e *500e04401200c122896227c52252142b54adc892d2679247ce1f900779966426136726999f8b2c *c9b2a58c33496c6b6ccbb66c47cd922559168b4012ec0429a2973b5c2f5b6ecbefc177b8730629 *922791c0117cbf1e68c0bbc561b10b88effbf0f3fd7c89ebba0c0000000000dc1c169700000000 *00e0e621400300000000d401011a00000000a00e08d000000000007540800600000000a8030234 *00000000401d10a00100000000ea80000d000000005007046800000000803a20400300000000d4 *01011a00000000a00e08d000000000007540800600000000a803023400000000401d10a0010000 *0000ea80000d000000005007046800000000803a20400300000000d401011a00000000a00e08d0 *00000000007540800600000000a803023400000000401d10a00100000000ea80000d0000000050 *07046800000000803a20400300000000d401011a00000000a00e08d00000000000754080060000 *0000a803023400000000401d10a00100000000ea80000d000000005007046800000000803a2040 *0300000000d401011a00000000a00e08d000000000007540800600000000a80302340000000040 *1d10a00100000000ea80000d000000005007046800000000803a20400300000000d401011a0000 *0000a00e08d000000000007540800600000000a803023400000000401d10a00100000000ea8000 *0d000000005007046800000000803a20400300000000d401011a00000000a00e08d00000000000 *7540800600000000a803023400000000401d10a00100000000ea80000d00000000500704680000 *0000803a20400300000000d401011a00000000a00e08d000000000007540800600000000a80302 *3400000000401d10a00100000000ea80000d000000005007046800000000803a20400300000000 *d401011a00000000a00e08d000000000007540800600000000a803023400000000401d10a00100 *000000ea80000d000000005007046800000000803a20400300000000d401011a00000000a00e08 *d000000000007540800600000000a803023400000000401d10a00100000000ea80000d00000000 *5007046800000000803a20400300000000d401011a00000000a00e08d000000000007540800600 *000000a803023400000000401d10a00100000000ea80000d000000005007046800000000803a20 *400300000000d401011a00000000a00e08d000000000007540800600000000a803023400000000 *401d10a00100000000ea80000d000000005007046800000000803a20400300000000d401011a00 *000000a00e08d000000000007540800600000000a803023400000000401d10a00100000000ea80 *000d0000000050070468008046e1ba2e2e020040e3e3710900001ac1d0d0d08913277a7b7ba3d1 *682c16e379fcff1900a041e17fd000000dc134cdd3a74f57abd542a1a0aa6a7373732291e8ecec *5455951082eb0300d03810a001001a0221646262a2b9b979d3a64d8ee3e472b993274f1e3a7448 *5194e5cb97271289502824cb322e1400c0bc4380060068142ccb7ef8e187854261f1e2c5cdcdcd *bdbdbd2ccb6a9a363e3e7eecd831c771962c5992482462b118c23400c03c2258b30200d0080607 *07bff18d6f148b454dd3388e0b87c38944a2adad2d914844a35145515cd72d97cb994c667a7ada *b2ac40209048245a5b5be3f178201090659965b12e1c00602ea0020d00d0105cd7b56d9b16350a *85c2c4c4c49933674451f4f97c2d2d2d1d1d1d8b172fa6899956a6e9f18ee32493c98989094110 *1445511485655951141545912409911a00e076408006006808aeeb9aa6e9388ee3382ccb3a8e53 *2c163b3a3adadbdbc3e1b0aaaa3e9f4f966542882449342b8ba22808024dc9b66d5b96651886a6 *69994c46d77586614451641886e7799ee7398ea39fc8711cc771aeebceefa00fcbb2e6eb4bdbb6 *6ddb76bd77e7eaa59c2ccbd6bbbe93dee5ab1f64188610e2ba2efd42f463fa93507b007dc43bcc *7b856b7e4c08d175dd719cdaafe53d6b5996e338f43accfab768d775172f5e8c393000d7815f0f *00804651ad56abd5aae338aeebcab2bc7af5eab56bd7c6e3f16030188944687a6618c6300cc330 *0a8502cbb21cc7f13c2f08020dd3b22cfb7cbee6e6662f815996a5ebba6559954aa5542a11424c *d3745dd7300c5af02684d8b6cdb22ccd6ace15b3a221fd636d38bbe1b773f531b52f42233efd5a *d7fc12b5bc28c9f33c3da05aad7af575fa08fd5e2ccbaa8d83348c4a92547b24bd025ebd7fd62b *d007bd371834ad3257de87b02c6b9aa6288a922479ef5eea8ad1d56a75d6f1b5275c9b8cabd52a *c771f406d1c74dd31404a15aad9aa649e3bbe338d56a95e7795dd7354df34e98de5f86614451a4 *6faee853a552c9b2acf1f1f1a9a929ef75388ea3b99ce3388661b2d9eccb2fbfdcd2d2825f4980 *cf83000d00d028689aa469c9b6ed93274f3ef8e0839d9d9db46c4c03b177302da356ab55e64a4c *24847057d0b4270802cff3b22c731c178944e831f4d3e9abd1e8465fd60b91cc5505d79bc9cd5f *78d6def597e2cc4ac35e9cf56ab1b5477acfcefaf4da3a2e5313946b1fa9fd60564978d66978ef *2e6aafd5e7bdd44d7ef0790f7edef5b93a73d79e2afdf9a11d3e3ccf0f0f0fffee77bfab542ae9 *745ad7f55028240882cfe7abbd65de0be672b962b188c98900d787000d00d0105cd7f5cacf0cc3 *689af6c9279ff4f6f69e3d7bd6b2ac55ab567993ec789e9f1516bd8fbdce04af9a4b0861af421f *f462f72dfc16ea7aea661ebcfa98eb1f700bff78938fd4f5207373f9f8269fbdfec1debda68b50 *83c1209d8a48081104e19aaf609a6632999cd5f5010057438006006814b43b9626e96432b96bd7 *aea54b972e5ab4c834cd8f3ffef8bdf7deebeeeeeee9e9e9eeee6e6b6b8bc7e37ebf5f92249a86 *999a18cdfc7125f5ea7edf6bb66778eef4e94c982e35eb6ad0f41c0a850cc3b02c4b5555dad332 *eb1f164cd3cce5725eb3072e1dc075204003003404d775755d1704c1b6ed9999198661162d5ad4 *d3d3c3f3bc699a4b962c59b2644928149a9a9a3a76ec582e97e3793e168b75747404028165cb96 *7574748442211aa969276b6d3b6fbd955758485896a5fddca228ceea1167aefc33056df0a08d31 *edededaaaae2ba015c070234004043705db752a9288a92c96458967df8e187b76ddbb66ad52aba *08acabab6be5ca9574b69d6ddb5e2fc7ccccccc993273ffdf453da0c1d89443a3a3a5a5a5ac2e1 *70341af5f97cb1584c5555da0c4dd7c031570d6db8e68809efc1ab9fbde6f1b5cfced945ab6d3e *ae65dbf6ac86ef5b758fbc1119d7f9de0921748de3e7f542d4d536336ba5e3cd1c39ebcad096e8 *3367ce589655ad560dc3f0de62d103745d3f7bf66c369b0d04028490969616f440035c1f023400 *40a3989a9a1245717c7cfcaffeeaaf7a7a7a56af5e2d08025db2160a85c2e1704f4fcfe6cd9b0b *85423a9dbe78f1e2850b174aa592cfe75bbe7c7930180c04020cc394cbe5e9e9e9c1c1c1c9c9c9 *3367ce040281d0154d4d4de1705896e57038eccdb6f3f97cb3e660300c43376df1e2a0aaaa340e *d247cae5726d77355de0c85c59ab572a954aa5d235e3a397c8af0ea0d75cd0f679bdc5341d8aa2 *c8f3bca66974ae85d7f24b3742e7384e55556f6e095d9ae9bd60edb75cfb7e60565aa5cfd2c59a *f4d3e9c013af07dd9b5842ffe940d7757a65d2e9b4288a9aa6d52ed064ae35ccc4bbc8b3bec7da *f3a45fc8db7b72d67a417a56f41d94f7898220e8ba4ebf354110464646b2d9ecc4c484e338a3a3 *a3de90167a006dedf016b0d2970280eb408006006814b95c2e994c3efbecb3343dd3dd07e9535e *661204211e8f373535f5f6f63efcf0c3a552898e5628168bb95cae5028d0460e9ee777efde5d2c *166990ad542a8661a452a9542a95c96468b7aba669e572399fcf673219411068ddb4aef1cc9148 *847e22ed3f29140af4f14422a1280adddec5344dba708d3ec5711cad80d666471add842b5896cd *66b37ebf9f0ec6d675bd76e0064da8b41ba1a9a989cee05314c5b66d4dd352a9141de4572e970b *85427b7bbb2449741885770ef4d5ae5964f5022ecbb2b48ced7d452f73d38e089ad72b958adfef *a7e3026ba7da398ea3695aa5521104a15c2ed3cfe2384ed3347ac5e891de3b10c771e83f35d0cb *e2bd13a057cc9bfdec388eaaaab4579e5691992be3a86b2bee343a731c170c0665591604419224 *efed04fdc0344d1a9445512484f4f6f6f23cdfd6d636333383fe0d801b428006006808aeebae5a *b56adfbe7d3d3d3d5d5d5dcdcdcdd7e913a04f499224cb7253531373a548494744d3585c2a9578 *9ea713a005415055b5a5a5c5db5a85d64d69f2f3b297e338a6697a8b0e354d334dd30b67f4f599 *2b0194e3385996755da763866ddbcee7f334f3050201da8b4283320df15eb8cc66b3749e319da9 *4cb36cb55a9565994edc63182693c9d0d2299d634dcf879e248df83494f33c5fa954e8c978f38f *0dc3705d37140add7ffffd4b962ca10be6e897ab0dcdb3665d5f3d516e56219cbeecacd86d5916 *3de1daa768e82f168b33333382200483414dd3e8b7230882dfef17459165596f2034ad5ecbb24c *af9e6ddbf435693d98ae1365ae0c902684d077563458d321d0f41d8277568140a0582c0a82e01d *a6aa2acff3e3e3e38542c1b66d3ac79ae3389afbd3e934c7717ebf3f1008f8fdfe65cb96a18503 *e0fa10a001001a8220085bb76e354d73d9b2654b972ebdc9b6dddab6044208cda0e170b8bdbd9d *3e4bb727b42c4bd334cbb2cc2b4aa592b7f7211d1d4d93ae288a994c86e62afa546dbf01ade3d2 *adc2e9833491d3cd3efc7e7f6de1369148d07169f40cbd0ae892254bbc8d126962a66722cbb237 *ebbab647e2ea49ccf4a56a1f310c837653789d0c74ff14da7cc25c7983e1adb0641886ee214223 *a6aaaab4eeebfe31ef4c0441a8ed1bae3dc9dab1d0b3fa3168a9f8f3fa37982bb5ea603078f5da *3eca5bff473b49aed9e94173706db1dc7b8a769ee8ba7ef4e85159962f5fbe1c8d469b9a9a6815 *dc3b8768347ae0c081ad5bb75a96353535353e3e8e75a500d787000d00d0106853ef030f3cb078 *f1e2eb2c53bbc997f23e9da643866142a1107de4864beb6ee64b5fb342f905ceb936f0dd64d5f3 *864b18afff3ad75c69b7b00bae86615cbe7cd9719c402040772b8cc562b5df78a55289c5629d9d *9daeeb7675754d4c4c78bb3c02c035214003003404511477eddad5d2d272cd35765fdef557e67d *e157fbf2aff3054eec566d3e726baf49c3a20d1eb4db84b68bd0cbeebd7fa04d385e355d922454 *a001ae0f011a00a0210882108944105ce0769024499224dae941bb6e6acd6aa1c60f21c00de1df *6800001a025dec75bbbf0a7669be3b398e333d3d5d2814ae9eb242abd1b5933710a0016e081568 *0080bb08b2d15d881032343474e8d0a1b1b13155555b5b5b671d4087a8787ff4166e02c0e74180 *0600b88b783328e0aec2f37c7373732c165314c59ba0e2a153ede8c7b4c7a3b6a30300aef13b85 *4b000000b080b9aedbd1d1d1d5d5954c26e938ea5905664248ed3b2b6f661f007c1ef440030000 *2c703ccffbfd7eba9fcb0d0f46a33cc00d21400300002c645ebdb9b6d179d601d87a10a02e08d0 *0000007705baafe1d55999e7799fcfe7fd112b08016efcdb844b000000b0b0d1d0ccf3fc35c3f1 *ac8dc411a0016e08011a00006081abab4303011ae08610a001000016384288b785cad5615a96e5 *dad11c08d0003784000d0000b0c0b12cabebfaac560dca755dbac5b7f708a67000dcf8770a9700 *0000606123575cf359ba9bf7e7fd1100ae86000d0000b0c0d1e87c9d645cfbf875a236005008d0 *0000000b996ddb9f37019a9a95aa7d3e1fb6f206b83e0468000080858ce66342c8e755a0af6ee1 *c04503b83e0468000080058e10e2388e6ddb1cc75ddd9e31eb410468801b428006000058b00821 *b66dd3c11ad7dc869042051aa02e08d00000000b9917883f6f7520cbb292245d7d3c007c1e0468 *00008005eefa63ec66cd81c6183b801b428006000058e0683ea6eb08af7e3610080882e0fd11e9 *19e08610a001000016389665afb395b76ddbb5a1193b1102dcf8770a9700000060c1d375fdf366 *d8317f9caa518106b821046800008085cceb7efebc168e590fa2020d704308d00000000b99ebba *de56ded739c6fbd8eff7b32ce201c0f5e0370400006021bb614bc6acb11b1cc7e1a2015c1f0234 *0000c04246d708baae6bdbf63527d9cd4ad8e88106b821046800008085cceb69765df79ad5e559 *a91a011ae08610a00100001632dbb6e9073ccf5ff3009ee76b83350234c00d21400300002c6474 *11a1ebba2ccb5eb3854392245114bddc8c000d704308d00000000b59ed3edeb3c2310dd6966539 *8ee3656b0468801b428006000058e0bc00cd5cb5678aaeeba6696a9a860a34c0cd438006000058 *e00821b34670d08f755dd734edc9279f6c6a6aa28fdbb6ed6dfa0d009f07011a000060e1d3346d *d6239665a5d3e9279e7862d7ae5da228320cc3b26c2a95ba669f3400d4428006000058c868ff86 *6559b55d1c8ee364b3d9871f7e78d7ae5d9224d185869aa6599675df7df7e1a2015c1f02340000 *c082454373ed3a429a9e272626366fdefcc8238fa8aa4a9b9e5dd71d191959bd7ab52449b86e00 *d787000d0000b06011420a85826118a66956abd552a994cbe5060707d7ae5dfbe4934f46a3519a *9e59969d9c9c5cb66c99d70c0d00d7c1e3120000002c482ccbe6f3f943870e954aa58f3efa289f *cffb7cbe0b172eecdebdfb89279e8846a37493424248a9545255b5b7b717170de0a67eb9700900 *0000161edaf77ce8d0a14aa5323a3a3a3a3aeaf7fb354d3b70e0c05ffee55f2e59b2a4766e5d2a *955ab56ad53537fa0680aba1020d0000b0001142ce9c39f3c9279f10420e1f3e4c1f59b162c5fe *fdfbdbdadabcf44c9b3756ad5a150c0671d1006e1202340000c042c3b26c3299fcc52f7e91c964 *3efdf453cbb254558dc7e34f3cf1c4b265cbe806840cc310428ac562341aedececc44503a8e357 *0c970000006021a103e97ef39bdf0c0e0e5eb8702197cb1142388e5bbb76edc68d1b4551ac6dde *d0346df9f2e5b868007541051a00a051600b65b8553efdf4d3d75e7bcd719cb1b131411054558d *4422bb77ef0e8542b5cd1bc96472e5ca95985b07502f0468000080858365d9a1a1a1575f7d3593 *c994cb65d77543a190288a7ffbb77fdbdbdb5b9b9eb3d96c7373733c1ec74503a8170234000034 *b49bdf59daebeb6d84d3765dd7b22c9e9fd3bf6759962d168bbff9cd6f4cd30c0402f97c3e1c0e *3b8ef3d0430f6dddba95e338ef1299a6c9f37c4f4f0f7ec000be0004680000b8f56a778df636ba *735dd7711c6f5be96ab5eaba2e1d9de60d24ae7d11fa29f403ef756e3e929aa6e9bd4eed59d157 *bbfe69d77e16cbb2de275ee773bdcfa207ccccccf8fdfeb9acefd20bfbc9279fd02f3d3838180c *0683c1607b7bfb534f3de5f3f9e84566aeac1dbcefbefb30b70ee08b4180060068140d523afdc2 *a7ed380e8d689665d1d5698661388e635996288aa2283a8ea3ebba288ad56a9506689ee7bd007d *7536f5d273ed23d769d8f54236fdd8b6ed592f7593dfcbac8309212ccb327f9cf2bdb3adfdc0fb *946c366b59564747c71cdf880b172e5cbe7c391c0efffef7bfe738aeadad4d5194bff88bbf58b2 *6489979e5996cd64328b172f0e0402f8a503f86210a001001a82576d6d70b561d10bca2ccb9aa6 *a9eb3ac3303ccfd34c6959163dc0b66d4dd32ccb324dd3300ccbb268aa364dd3b66ddbb6e931de *7f6f78a16ef2025ee7a56a9b3d6a0fab7da4b6eaec3deb3d6518063dc0711c51145996154571dd *ba75b158ac5c2e9ba6d9dbdb4b2fc5dcdc179665a7a7a78f1d3b160c06ffeffffeaf5c2ec76231 *dbb61f7ae8a18d1b37d69eb9aeeb8140a0adad0dbf74005f180234004043304d339d4eb7b6b636 *5a8cf662222d6196cb6596650dc39024c9300c1aa06ddbd675bd5c2e6b9a56281432994c3e9f2f *140ab95c2e9fcf97cb655a72a6356942486d9ea3989b2bc07ff9223dfdd2de7fbfe44b711c27cb *b22449d56af589279e080683d56a75666666d1a245aaaaced9ad2484542a958f3ffe5814c5e3c7 *8f5fba7429180caaaaba66cd9a83070faaaaea959f1986b16d7bc58a1577e83f77003408046800 *8086a0ebfad0d05022916884004df3256d592e168bb22c6b9a56ad5659962d954a8661e472391a *94a7a6a6d2e9f4d8d8583a9d1e1c1cf45e41144586617c3e1fc771aaaa0683414288244992245d *33ba7db13c779d6b75c34ee52f766568ece6384e144549920441a0d5f7b56bd7ae5bb78ee3b874 *3addd2d2d2d4d434c7f7f1ecd9b3a5522997cb7df4d147b22c0b82d0dadadad7d7d7d2d252dbbc *512814962d5b86b975005f120234004043605976787878c3860df3beaeab5aade6f379d3342549 *721c2793c91886914c2653a9d4f8f8f8d8d8d8e8e8e8d9b367bde383c120c7713ccf373535d59e *3ccd6db66d8ba2487b390821f4419665afb96af00bfbbcd587d739fe9afdd6d77c41ef299ee765 *595655d56bdda69d2aadadadbb76ed8a4422c964b25aadb6b6b6cef14fcef8f8f8b973e70441f8 *f0c30f69bb79381ceeebeb5bb16245ed77a4699a2449e17018bf6e005f120234004043b02cebf5 *d75fdfbb776f341a9d9722346d41ae542af97c3e97cbcdcccc8c8e8e4e4e4e0e0e0e4e4e4e5ebe *7c991e160a8558968d44228ee3d0705cad56abd52ac771b4b999ae0e0c854274ea704b4b4b381c *1604a1a5a5857e95783c4eebd377909ffef4a7d3d3d38aa2cc9a0142efd48e1d3bdadada2a954a *a9545abe7c39cbb273d9bca169daa1438724493a7efcf8d4d4542010f0fbfddbb66d5bbf7ebd20 *08b59b0e56abd5d5ab57e3770de0cb43800600680874b2583e9f8fc5627319bf68aeaa542ae974 *7a7474747474746464646060606060801e43bb2f7c3e1fcff3749e86e338b484ecf3f91e7cf0c1 *582cd6d2d2b264c992783c1e8944fc7ebfaaaa3e9f4f51144208cff334740a82c05c77845cc33a *7bf6eccf7ef6335555bdfabad7b46d18c6e6cd9b57ae5ce938cecccc4c6767a7dfef9fe3f73fa7 *4f9f2e954ac964f2fdf7dff7fbfd3e9f2f1e8f6fdfbebdf69d18cbb2b95c0ecd1b00b70a023400 *4043a0b3d2868787bbbaba6ef717a2ad14d56ab550288c8e8e9e3e7d7a7c7c7c6060a0bfbf9f61 *185555699b6f2010b06d9ba646d7751f79e491502874fffdf787c3e1c58b1787c3e170381c0c06 *0541e079fe2663f11d979e3399cccb2fbf9ccbe5bcdab3979eabd56a7777f7b66ddb64594e2693 *c160301e8fcf657a6659f6d2a54b870f1f6659f6c30f3f54555551144551fafafababbbb6baf79 *a9546a6e6e8e46a3f84503b82510a001001a455b5bdbf1e3c7b76edd4a8bb5b7162d361b8651a9 *54b2d9ecd8d8d8ccccccc993273ff8e083c9c9c96030288a623018a43b3f170a0541101e7ffcf1 *9e9e9e254b96ac5dbb5655d5d6d6569ee7efb8ee8b2fa352a9bcfaeaab478f1ef5de2178ff751c *2710083cf8e0834d4d4d85428186e9da41d4b71b2d2abffdf6db8ee31c3b762c97cb4992248ae2 *f6eddbe98f506df306cff39d9d9df81503b85510a001001a022124140a9d3c79329fcfdfc2190e *deccb87c3e7ff6ecd94b972e4d4c4c7cf6d967a74f9f4ea5520cc3343535b5b7b7dbb65d28142c *cbfaea57bf7ae0c081eeee6e5a669665f96e9e77d6dfdffffaebaff33c4f3752f1d2339d4fb26d *dbb6aeae2e3a7fb0bbbbbb36b3ce01cbb28e1c39522814b2d9ecc0c0001d75128944b66ddb160e *876b9b376666667a7b7bb1e920c02d84000d00d0282449cae572636363cdcdcd5f388ad190477b *940dc3a0fb9b5cbe7cf9d8b163274f9e1c1e1ebe74e9922008aaaa0602018ee36cdbdeb1634738 *1c7ee08107366edcd8d9d9a9aa2aee05c330a3a3a32fbcf002ed6699f554b55abdfffefbd7ac59 *c3b2ece4e4643c1eafcdac7380e3b8cb972fffee77bfe379fed4a9538220f8fd7e49920e1e3cd8 *d3d353fbc35028145a5b5b9b9a9a7043016e210468008046210882288a172f5e5cb366cdcd7f96 *b717091d0ca7eb7a3a9dd675fdd2a54b030303a954ca75dd818181e1e1618661c2e170341a751c *47d3b4a79f7e7afffefd1b366ce8ececbcdb7a336ea852a9fcf77ffff7c8c888d74ee3959fe9dc *ba6ddbb60502814c2623cbf2a2458be6323dd358fcd65b6f99a679e6cc99a9a9a97038ac284a77 *77f7e6cd9be92a4f7aa4e33892242d59b2043714e0d6428006006808746045381c7eefbdf71e7e *f8e1ab87d9cddaae8f4ecfa856abbaaee7f3f96ab57afefc794dd3344d1b1b1ba3ffac3f3a3a4a *0f0e0402e170986ef9f1d8638fedddbb17c5e6eb7be79d777efdeb5fd37d52983f6ede1004c19b *5ba769da1c6fd9cd300c6d7aa693b9a7a7a725498ac7e38aa23cfae8a3b3b64dc966b3f7de7b2f *9a37006e390468008046c1719ca2286fbffdf6f8f8782c166318c6dbf8dab66dba29201dd54c3b *3d464747e9be80954aa5b9b9d9711cd775d3e9f4d4d4d4b163c72ccb120481ce92631806b9f9e6 *9d3973e6f9e79f671866567a6618c6b22c6f6e5d2e97ebe8e89024698e276f7cf6d96793939389 *44e2d0a1439665b5b5b51986f1d0430fdd77df7dde61742a623c1ef7fbfdb8a100b71c02340040 *a36059561084c58b175fb87061f5ead5d96cf6b5d75ee3793e140a55abd55c2e974ea719864926 *93341cd32972b1588ce3385dd793c9e4e0e0e0e9d3a71dc7a1bbe5b12cab69da57bef295471e79 *e4e0c183a1500817f9864647479f7ffef94aa5427b5a6ad3331db5b169d326599669e3c41cb73e *d3e68dfefe7e59963ff8e003d3345b5a5a7c3e5f7777f7a38f3eaa284a6df3862ccb4b972ec50d *05b81d10a001001a05c7711cc7a9aa7af2e4c99d3b77bef7de7bfff55fffb574e9524110e8e3b2 *2c2b8a92482424499265996e8a512e972f5ebc78fefcf9d1d1518ee3e8c13ccf3ffae8a37bf6ec *41c9b92eb4f5796060e0eac9d68ee30483c11d3b76b4b6b666b359da093dc77ba6388ef3e9a79f *d2f1cfa74e9d0a0402a15028140a3df1c4138944a2b679239fcfdf73cf3d68de00b84d10a00100 *1a02dd488510120e873ffae8a3eeeeee3ffce10f6bd7ae9524491004babe9052148546e7542a75 *e9d2a50b172e4c4c4c701c170a856860dabf7fff9ffff99fefdcb913b9b95eefbefbeeaf7ef52b *9665e995ac2d3f3b8eb373e7ceaeae2ec3303299ccca952be7b8f59965d9a1a1a16432e9baeebb *efbe2bcbb2cfe7e338eec08103f7dc734fed0f52a9548ac7e33e9f0f3714e03641800600680874 *8f6b9665799e1704e1f0e1c38aa2c8b2ec456749926874765d8bc79b280000200049444154776a *6aeab3cf3eebefef2f168b3e9f2f140a99a64908f9d77ffdd76ddbb6a1e4fcc50c0d0dfdf0873f *a4ab39993f4ecfa669ae5fbf7ef5ead58490643239f75b76d39ee663c78e298af2fefbefebba4e *a710de73cf3d9b366d9224c92b3fd36d53307903e0b6428006006814ec15cb962da35b640b8220 *4992179d6ddb1e1b1b1b1c1c3c74e810c3307ebf5f96659ee7f7ecd9f3e4934f6ed8b0a1b7b797 *ae7b837a6532996f7ef39b746e1d5db8c95c49cfb66d2712896ddbb6a9aa9a4aa57c3edf9719d4 *fdc5388e73faf469d7752f5dba74e2c409455182c1a0cfe77bf8e1879b9a9a6a9b373299ccb265 *cbf06300705b2140030034042f90c9b21c080468e7066d7a1645d1b6ed9191910b172e1c3a7488 *1022cb32c7718490679e7966cf9e3d7bf6ec492412b8865f986559afbffefa912347388ea38d34 *4ccdc4408661b66edddad2d242679eac58b1622eb7ec66ae346f0c0f0fbbaefbdbdffe5614453a *5be3e1871f5eb56a95771821a45c2e271289783c8e7b0a705b21400300340a5af80c87c33e9fcf *ab3a3b8e333a3a7aeedcb9b367cf1a86218aa22ccb0cc37ce52b5f3970e000666bdc12a74e9d7a *f5d55769ffccacb583a6696edcb871d5aa55b66da7d3e9a54b978aa238f7cd1b9f7efaa92ccbbf *fbddef344da39b0e7676766ed9b2a576889eebba8661e0ad14c01c408006006820aaaafafd7e55 *5569d5797878f8cc993367cf9ea5d568bfdfaf69dae38f3ffedc73cf618de0ad92c9647ef0831f *78adcf94d7bcd1d6d6b675eb56455126272763b1d81ccfada34e9f3ecdf3fcf0f0707f7f3f9dbc *c130ccbe7dfb12898477322ccbe672b9dede5ebac014006e2b0468008046c1715c7373b32ccb96 *650d0d0dd1fdb70dc3a055c66c36fbdc73cffdd99ffd19a2f32d449b378e1e3d4a5b626a9b37e8 *6abc5dbb76b5b4b4e4f37942c81c6fd9cd300ccbb22323234343433ccf7ffcf1c78aa2f8fd7e3a *0f64cd9a352ccbd2f32184542a95d6d656baff0e00dc6e08d000000d81e3b84020e0baeee5cb97 *8f1f3f3e3838c85c29489ba6f9e4934f7eed6b5f5bbd7ab5a228b856b7d0a143875e7df5559ee7 *6980666a5a9f4dd3dcb56bd7f2e5cb0dc3c8e572cb972fe7386e8e9b374cd33c75ea94aaaa1f7e *f8612693a1b3c05b5a5a76efde3d6b0c085de9881b0a303710a001001a826559e7cf9f3f7bf6ec *a953a75896a593e9344dfbea57bffab5af7dedbefbee43d5f9961b1d1d7de18517bc09dcb36e47 *7777f7e6cd9b799e1f1b1b6b6b6b5355758ecbcf84904b972e5996353d3d7de2c4094992c2e1b0 *61187bf6ece9ececac6dde2897cb3d3d3d74eb4400980308d000000d61c992257ffff77f3f3c3c *7ce1c2855ffef297274e9c78fae9a7ffeeeffe0ed1f936a19b0e0e0f0f0b82e00d7df3f64c5114 *65dbb66de170786666665ee6d6d19ee6cf3efb4cd3b4b7df7e9b6e45e938cec68d1bd7ad5be7d5 *c26995dae7f385c361dc53803983000d00d0106459deb061c3860d1b1886f99bbff99b52a99448 *24109d6f9f77de79876e3a382b3d330ce3baeeeeddbb972f5fae699aaeeb733fb78e106218467f *7f7f3e9f3f77ee5c2693f1fbfd3e9f4f51949d3b774622117a32aeebd2f2f3b265cb704301e612 *02340040c3696969696969c175b87d4e9f3efd9def7c871042b74d616af61d340c63fdfaf5f7df *7f3f5db8d9d9d939c773ebe8690c0d0d8d8e8eeabadedfdf2fcb723018344db3afafcf1bfc4c08 *a956aba55269f1e2c574b22100cc19ec54040000779752a9f4ca2baf94cb656feab3577bb62cab *a5a5856e3a98cd662391c8dccfad6359b650289c3c79921072f8f061c3301445e1386ed9b2659b *376ff6063febba6e9aa6dfefc7da4180b987000d00007797f7de7beff0e1c374f2c6d5cf3ef8e0 *83adadadf97cde719cd6d6d6b99ffa6c59d69123472ccbba70e1c2c58b1705410806838661ecda *b5ab768e1ecff386612c5ebc18371460ee21400300c05de4f4e9d3cf3fff3ccbb25e7af68ad0a6 *696edab469d5aa559665150a85f6f6f66b26ecdb8a65d9f1f1f1f1f1f152a974e8d021ba3ad030 *8c2d5bb66cd8b0c13bd542a1303c3cdcd2d2e2f3f9704f01e61e02340000dc2d3299ccf7bffffd *4aa532ab7983106259566b6b2bdd1c3b954ab5b6b6ce1ab43c076807f6f1e3c725493a72e488e3 *388220f87c3ebfdf7ff0e0416f8e9eebba3333333ccf777474e09e02cc0b04680000b82bd04d07 *8f1c39c2711c9dbce1a5673ace62d7ae5d4d4d4dd96c5614c5a6a6a6b96fde705d776060c0344d *ba85bb288a9148a45c2e1f387060f1e2c5dedcba52a9c430ccc68d1bb16b37c07c4180060080bb *c2279f7cf2eaabaf1242ae6ecc304d73f3e6cd2b56ac300c43d7f58e8e0e6fb6dd9c6159766a6a *eacc9933baaefffef7bff7f97c81408010d2dbdbbb65cb166f9314d3343399cca2458ba2d128ee *29c07c4180060080852f9d4ed3f47cf5dcba6ab5ba74e9d2071e784010049a4d65599efbe60dd3 *34fbfbfb55553d71e244b158e4793e180c562a95bd7bf7b6b4b4388e438f2c954aa669f6f6f6e2 *9e02cc230468000058e02ccb7aedb5d78e1e3dea6d9be2a567c7712449dab97367341acd66b381 *4060eee7d6d133b978f162369bcde572274e9c9065391289e8babe73e7ce356bd678c718863131 *3181cd2901e61d023400002c701f7ffcf1bffccbbfa8aa9acfe7cbe5726d05da34cd071e78a0bb *bbbb52a9944aa579995b470829168ba74e9d6259f6a38f3e2284c8b22ccbb2dfefdfbb77efacb5 *836d6d6dedededb8a700f30b011a000016b2919191af7ffdebd168d4b6eda1a1a14c26a3699ae3 *38b479a3abab6bc3860d2ccba6d369bae9e0bc9ce4c993271dc7191919b978f122cff38140a058 *2c1e3c78b076ed60b158b46d7bf5ead53c8f5d8401e619023400002c589aa67def7bdf1b1c1c54 *557572725255d54020303a3a3a3131615996aaaabb76ed0a87c374d3c168343af7e56796652727 *27070707abd5eac71f7fecf7fb83c1a0b7efa017e8abd56a369bede9e9f1fbfdb8ad00f30e011a *000016acc3870f7fef7bdf8bc562e5723997cbc562b16ab59a4ea7b3d96c369bddb66d5b7777b7 *a6690cc32412897969de304df3d8b163aaaa9e3a75aa5c2e8ba2180804cae5f2fefdfb6bd70e96 *cb65499230f819a04120400300c0c2449b375a5b5b1dc7191f1f6f69691145717a7a5a10044551 *eebbefbe75ebd6b9ae5b2814dadadae6a52f821072e9d2a56c369bc964fafbfbe9e0675dd71f7c *f0c1b56bd77ac798a6393333b37cf9f2f9ea3001805910a001006001aa542aafbcf2cae0e0a0a2 *285353530cc3d0568d4aa5120a853a3a3af6eedd1b0c0673b95c3c1ef716eacd2542483e9fefef *ef9724e9f0e1c30cc32857ecdbb7cf3b25c77132994c6b6b6b2291c06d05681008d00000b000bd *f9e69b2fbdf4523c1ea7cd1b2d2d2db48dd8eff74b92b47ffffec58b17178b45966563b1d8dca7 *67eaf4e9d31cc75dbe7cf9fcf9f31cc745a3d162b1d8d7d757bb76b05c2e1b86b162c50adc5380 *c681000d00000bcdc8c8c84b2fbde4356fc46231555553a91421445194eddbb7af5fbfde719c62 *b1d8dede3ef79b0e3257f61dbc78f1a265591f7ffcb1aaaae170986198c58b176fdab4c96bd5b0 *2c0b6b07011a10023400002c28954ae5d5575fa59337a6a7a71dc789c562c562b152a9f87cbea5 *4b97d2e68d7c3ebf68d1224992e6a5fc4cd70e2a8a72faf4e97c3e2f8a6228142a140a7d7d7d34 *f7d3c3f2f9bc24499d9d9db8ad000d05011a00001694b7de7aebc5175f6c6a6a2a97cbf97c3e91 *48589635333323cbb22449fbf6edebe8e8c8e5728ee38442a17949cf2ccb0e0d0da552a94c2673 *f4e8514992229188699adbb76f5fb3668db7cf8b6ddbd96cb6b7b7176b07011a0d023400002c1c *b47923168b310c333e3e1e0804fc7e7f2a95725d575194071e7860f5ead5d56a359fcf777676d2 *a83ac7685bf3f1e3c715453972e40821445555bfdfcfb2ec030f3ce0f7fbbd7d07b3d96c737333 *d60e023420046800005820344d7be59557ce9f3f1f0a8532998ce3387411211da2dcd3d3b36fdf *be4020904c26dbdbdb15459997f23321846e9b32343474ead4295114c3e170a954dab469d37df7 *dde71da3eb7aa15058ba74296e2b4003428006008005e2c89123dffdee77239148b95c4e2693b1 *588ce3b8542ac5f3bcaaaafbf6edebeaeacae7f33e9f2f1e8fcf577a4ea7d367cf9eb56dfbf0e1 *c3a150c8e7f389a22849d2debd7b6559f6cacfb95caebdbdbda9a909b715a00121400300c04230 *3232f26ffff66fe1705814c56432e9f7fbc3e1702e97d3755d1445af79a3542ab5b5b5cdd7dc3a *8661ce9c39c330cce5cb9753a914c771a150a8582c3ef6d863edededdee83a4dd36cdb5ebe7c39 *6e2b406342800600803b1e6dde181818080683e9745ad7753af8399fcf0b82b072e54adabc3133 *3393482464599e9793645936954a4d4c4ce8bafefbdfff5e96e54824e2384e6b6bebc68d1be94a *414248b55a4d2693cb972f9faff304801bff3ae3120000c09d8e366f343535699a964c269b9b9b *054148a7d38ee3f8fdfe7dfbf6757777cfcccc0483c1796cde304db3bfbfdf75dd4f3ffdd4711c *455182c160a15078fcf1c7bdd175aeebd2d0dfdcdc8cdb0ad0b010a00100e0ce469b3702818028 *8aa9544a96e56030582a952a950a2164dbb66df7df7f7fb55acd6432f3959ea9f3e7cfcfcccc4c *4f4f9f3f7f5e108470385ca954366dda543bba8e4edc5bb972a52449b8b3000d0b011a0000ee60 *9aa67dfffbdf1f1818884422e9745ad3b44422e1380e9dc271efbdf7eedfbf3f1008a452a99e9e *1e5555e7e524695bf3471f7da4ebfaf1e3c709219224298a22cbf2fefdfb83c160ede8ba458b16 *b5b5b5e1ce02343204680000b8831d3972e4c5175f8c46a3d56a35954a45a351599673b99c6118 *aaaaeed9b367e9d2a5854221140ac5e3716f87bfb977faf4e942a1f0c9279f9c3c79d2b6ed582c *96cfe7d7ae5ddbdbdb4b0fa021bb52a9ac5cb912b715a0c121400300c09d6a6464e4eb5fff7a20 *109065796a6a4a96e5783c5ea9548ac5a2699a3b77ee5cbf7ebd6ddb9665cde3e40d42c8cccccc *e1c3871dc7191a1af2f97cc1605092249fcfb77fff7e511467ed9ce2f7fb7167011a1c02340000 *dc912ccbfaf9cf7f7efcf8f1582c562c162b954a2c16a38bf00cc358b3660ded8ec866b3adadad *1cc7cde3a99e3871c234cd42a1502e971545696e6ece64326bd7ae4d2412dee83a5dd71dc741f9 *19e08e80000d000077a48181817ffee77f8ec7e30cc3a452a970381c080468926659d6db364551 *149fcf375fe5679665272626e8ce29478f1e1545311289104258963d78f0a037a8ce34cdc9c9c9 *e5cb972b8a823b0bd0f810a00100e0ce934ea75f7ae925bfdfeff7fb53a91421241a8deaba5e2a *958ac5625f5fdf860d1b68c7737b7bfb3c9ea76ddb67cf9e25848c8d8de9ba4e47d7cdcccc3cf5 *d4538b162da26748bb9f45516c6969c19d05b82320400300c09de797bffce5ebafbf1e8d468bc5 *623e9f8f46a32ccbd2f2f3f2e5cbf7eedd1b0a8572b95c4b4bcb3c366fb02c3b3a3afad9679f59 *9675ead429499262b1986ddb9d9d9d5bb66ca13ba7300c639a662a955ab56a1546d701dc2910a0 *0100e00e73ead4a96f7ce31bf1789cee96e2f7fb43a150b95c360c43d7f5471f7d74e9d2a59aa6 *8542214551e671f0b36118c78f1f1704e1c489139665f97cbe402090c9641e7ffc71affccc304c *a552696969c1e83a803b0802340000dc498ac5e2b7bffded542a4577ed364d331a8d9aa6691846 *26933970e0c0d6ad5be9be244d4d4df3789e2ccb8e8c8c2493c9e9e9e9cf3efb4c92a470386c9a *e6d6ad5bd7ac59e31d66db762e97ebeaeac29d05b88320400300c09de49d77def9c94f7ed2dcdc *5cad56b3d96c381c1645b15c2e6b9ad6dcdcbc77efde70385c2e9783c120cbcedbdf718410c330 *06060604413873e60cc7717ebfdfe7f3150a852d5bb6844221af2e9ecd66a3d1682c16c39d05b8 *8320400300c01de3ecd9b3fff00fff108d46154549a55292244522113af5796a6aeae9a79f5eb9 *72a56118c160301008cc63f306c330274e9cc8e7f3b4079a6edc5d2e97b76ddbb66edd3a7a0021 *c4b6ed4aa5b26ad52adc59803b0b02340000dc192a95ca8f7ffc63ba643097cb95cb65ba26cf34 *cd6c36bb7ffffeeddbb7b32c6b5956381c9ec7f44c0829168b67cf9e6518e6dcb973b22cfbfd7e *59965dd7ddb56b97d796edba6e3299c4ce2900772204680000b833bcf9e69bdffad6b79a9a9a5c *d74da7d3c16050519442a140d7e7f5f5f5c5e371c330e8448ef93dd5e3c78fdbb63d3c3c3c3c3c *ccf33c4dfc9b376ff6f649a13d1ebaae63e714803b1102340000dc014646465e7cf1c540201008 *04d2e9b4e338d168b45c2ebbae3b3c3cfcf8e38fdf7befbda669ceefb6290cc31042d2e9f4c58b *17354d3b7af4a8a228e17058100451141f7df4515a87a647cecccc7477777b7ba900c01d04011a *00001a9d6ddb74d7eee6e6e64aa592cd66e90684e572b95c2eefd8b163f7eedd822054abd56030 *38bfadcf8490f3e7cf9ba6393e3e5e2a95789e0f0683b95c6efbf6edcdcdcddece29c5625192a4 *a54b97e2e602dc8910a00100a0d17df4d147fff88fff188fc7799e4fa5523e9f8fa65242c8f4f4 *f4238f3cd2d6d66618462c161304611ecf931032393979f8f0e15c2ef7873ffc8110120e87398e *134571efdebdde36ddaeeb663299254b96787ba900c09d05011a00001adaccccccf3cf3f2fcb32 *dd5c50d7f5482452a9546cdb4e26937ffdd77fbd6edd3a5dd745519cdfe60deaf4e9d3a954eac2 *850b7477ee50285428149e7beeb94422e1959f4ba5522814c2ce2900772e0468000068686fbcf1 *c67befbdd7d4d4e4388e37f8b95028388ed3dedebe67cf1e55551986a91dae3c2f5896bd7cf9f2 *071f7c609ae6850b176459a625735dd7efb9e71eaf345ead5633994c4747c73cee310e005ff6f7 *1d970000001ad6b973e7fefddfff3d180cfafdfe4c26e3ba2e1dfc4c0849a552cf3cf34c676727 *ad49cf6f3b0421a45aad1e3e7c38994cd2f2b32008c160707a7afab1c71ea3e99f1e46cf76d1a2 *45b8b900772e046800006850954ae5473ffa512a958ac7e3e572399fcfc76231c7718ac562b95c *debb77ef962d5b5cd71504c11bae3c5f58969d9898f8e0830f9a9b9b2f5cb8e0380ead888ba2b8 *73e74e6fd4866559e9741acd1b00773a0468000068506fbdf5d6b7bef5ad783cce715c2e97a33b *926432199ee709218f3cf2483018248444a3d1f93d4f4248b95cfeed6f7f3b393979faf4699665 *c3e170341a1d1d1d7df6d9673b3b3bbdf2b3a669e170b8bdbd1d3717e08e86000d00008d686464 *e485175ef0f97ce17098969c63b158a552314d33954a3dfbecb3bdbdbd8661c8b2ccf3fcfc9e2a *2d3fbff2ca2b0cc35cbc78d1719c582ce6baeed2a54bd7ae5debf53a9ba6994ea77b7a7a707301 *ee7408d00000d0702ccbfaf9cf7f7eecd8b1e6e666d3340b8542301814042197cb398eb369d3a6 *ddbb77731c4708f1fbfdf33e79a35c2e7ff8e1872b57ae1c1e1e665976f1e2c54d4d4dc3c3c37d *7d7d1d1d1d5ef9d934cd582c46275803c01d0d011a00001acec0c0c03ffdd33f45221149920a85 *42b55a8d44228542c1755dc3301e7becb1783c6e9a66381c2684ccefa9721c974aa53efcf04349 *922a950a2d3f57abd5d5ab576fdcb8d13bccb6ed62b1b86ad52adc5c800500011a00001a4b3a9d *feee77bfcb711c9df75c2e97a3d1a8e338b95c2e97cbf5f5f5ad5ebdba5aadfa7cbe795f3bc830 *4ca55279f3cd3783c1e0c0c000c330f1783c12899c3b776ee7ce9dcdcdcddee9e57239bacd38ee *2fc00280000d00008de58d37de78edb5d79a9a9a0821854281e338ba76d0719c152b561c3c7850 *51148ee30281c0bca7678ee392c9647f7f7f32999c9e9e9624a9a9a9c9308c8d1b376edebcd93b *3dcbb2b2d9ecbdf7de8b9b0bb0302040030040033977eedc7ffcc77ff8fdfe6030582c160dc388 *44229aa6e9ba5e28141e79e4918e8e0edbb6239108cbceff5f619aa6bdfffefba150686a6a8ae3 *b8458b16c562b18b172feedebdbbb6fc5ca9543a3a3afc7e3fee2fc0c280000d00008d42d3b41f *fde847131313b48e5b2a9554551545319bcd96cbe5fdfbf76fdab48961185114e77df206c3302c *cbcecccc0c0e0ea652a98989098661c2e1b061181b366ca003aae9618ee3643299152b56e0fe02 *2c1808d00000d0288e1c39f2c20b2f44a3514110cae5b26ddb5e1d3a10081c3c7830180c3a8e13 *0c061be16c755d7ff7dd776559ce66b3aaaa26128970387cf9f2e51d3b763435357901ba582cb6 *b6b64a9284fb0bb06020400300404348a7d3dff9ce771886a13d1be57299c6e55c2e974c269f7a *ea293af8d9eff73742f306c771939393e3e3e3d3d3d343434392243537371b86f1d0430f6ddfbe *dd4bcfb66d2793490cdf00586010a00100a021fcea57bf7ae79d7768eb70b95ca6339eb3d96cb1 *58dcb973e7430f3dc4f33ccff3aaaacefbda4186612a95cafbefbfafaaead8d898288aa150281c *0e5fbc7871ddba757417157a58a954eae8e840f91960814180060080f977eedcb9fff7fffe9fcf *e7f3fbfda55289ae1db42cab52a91886f1c8238f343535310c138bc51ae16c59964da552d56ab5 *542a7df6d967743b71d33477eddab571e3c6daf2733a9d46f91960e1418006008079a669da8f7f *fc63ba76900edce0795e5194743a3d3d3dfdf4d34fdf7ffffdd56ab541d60e320c63dbf6f9f3e7 *172d5a74e2c489783c1e8d46c3e1f0a54b97b66edd5adbfd5c2814dadada507e06587810a00100 *609e1d3d7af4bbdffd6e381ce6795ed3b46ab51a8d468bc562a15058bc78f1debd7b1545e1793e *180c3642f306cbb2c96492e7f972b99ccbe55896a5c33776ecd8b16eddbadad9cf283f032c5408 *d00000309fd2e9f48b2fbee8ba6e381c2e97cb9665c9b24c08c966b3d96cf64ffee44fbabbbb75 *5d0f04020d72c2b4fcecf3f90e1f3eecf3f982c160381c9e9898d8bd7bb7577e2684e8badedede *8ef233c08284000d0000f3e957bffad5fbefbf1f8d462dcb320cc3344d3aba2e93c9ecd8b163c7 *8e1d84109fcfd720499465d9a9a929dbb6474646ce9d3bc7b26c2c16334db3afaf6f56f939954a *a1fc0cb05021400300c0bc397ffefcb7bef52d3ac5a2542ad119cf849052a9649ae6e38f3f1e8b *c50821e170b8414ed8b6ed8b172ffa7cbe8f3efa88e338511445512c140a9b366df23a4c68f939 *9148a0fc0cb05021400300c0fca06b07c7c7c7e9e067c7711886f1fbfdb95c6e7a7afaa9a79e5a *bd7ab5e3387ebf9f10d208274c0849a7d39665954aa5e1e1619ee7038180a6693b77ee5cb56a55 *edf08d4c26b372e54adc6280850a011a0000e6c7b973e7fef33fff535555499268f9d9eff7ebba *5e2a959a9a9a0e1e3ca8aa2ac7718d53c7755df7c2850bb22cbff9e69ba6698aa22849523e9fdf *b061432010f0cacf9aa6353535c9b28c5b0cb05021400300c03c28168bdffffef7755d8fc562e5 *72d9755dda1191cfe7a7a6a69e7beeb9eeee6ec3301a64d76e86610821b95c4ed334c3302e5dba *a4aaaadfefaf542a9b376feeeaeaf2cacfa66962eb4180050f011a0000e6c17befbdf7c61b6f44 *22118661cae532ed7ed6342d93c9ecdcb9f3c1071f745d57555551141be79c07070725497aebad *b7344d63184692244dd31e7ef8e1dae11bd56a15ddcf000b1e02340000ccb5919191ef7def7b96 *65d18e67966515452184140a054dd39e78e289783c4e08f1fa22e61d2d3f673219dbb64f9e3c49 *a7d71986118fc75b5b5bbd93ac56ab854201e56780050f011a0000e6dadb6fbf7dfcf8f1582c66 *dbb66ddb0cc3288a522c162727279f7beeb97befbdd775dd4824c2715c839c3021647272d2e7f3 *f5f7f73b8ec3b2ac2ccb9aa6fde99ffe692291a8ed7ea68dd1b8c5000b1b02340000cca973e7ce *bdfcf2cb3ccffb7cbe5c2ec7719caaaaaeeb160a85783cbe7bf76e499244511404a1414e9896c6 *c7c7c7755dffc52f7e21cbb2aaaab66d070281aeae2eef30c7712ccbbafffefb718b01163c0468 *0000983b9aa6bdf6da6b636363d16894b63e330c4367594c4c4c3cfbecb34b962c61184655d5c6 *396742c8c8c888dfef1f1f1f57555510049fcf572a959e79e699582ce6959fcbe532c3307ebf1f *771960c1e37109000060ce1c3d7af4073ff881a22874e006cff3aaaa3a8e93cbe51e78e081eddb *b7731c27cbb220088dd3fd5c2e97c7c6c6388e7be38d374451a4eddad168f4befbeee379de0bd0 *a6692e5fbe1cb718e06e800a340000cc91999999975e7a49d7f568345a2c161986a1713997cbcd *cccc3cfef8e3cdcdcdaeebfafdfe0649cf0cc310428687870381c0f8f878b95c9665d9e7f3a552 *a9cd9b37d7ce7e2e97cb8aa2c4e371dc6580bb0102340000cc915ffffad79f7cf24928146218a6 *542ad1eee772b93c3939f9d4534fad59b3866198c6d9b59baa56ab3333330cc31c3d7a54922449 *9208219d9d9dfbf6edab5d2c984c269b9b9b718b01ee1208d0000030174647477ffad39f1a8641 *47d70982c0f33cc77185424155d57dfbf6f97c3e49921a67ed20c3302ccb4e4d4d310c73e6cc99 *8181016fe1e38a152b42a1106de026845896b568d1a2f6f676dc6580bb0402340000dc769665fd *e217bf3879f264341a751cc7344d96655555ad542ac3c3c35ffdea577b7a7a08210db576906118 *dbb62f5dbaa428cac58b17e3f1b8aaaa8490442271e0c0012fe8bbae3b343444cbea0070974080 *060080dbeeecd9b3dffce6371986f1f97c994c461004bac560269359bf7efd830f3e288aa22ccb *3cdf404bdb0921e974dab6edc1c1c1818101ba33a2aeeb2b56ac686969a9edd246f919e06e8300 *0d0000b757a552f9d9cf7e6659563018ac542a9665d1b583c56271626262fffefd6d6d6d0cc3f8 *7cbec6593bc8308cebbab4fcfc873ffc81763ff33c5f2e97efb9e79eda1d5e4647479b9b9b5916 *7f9f02dc45f00b0f0000b7d7b973e7fee77ffe87eed75d2c1625499265d975dda9a9a97dfbf66d *d9b2c575dd6030d850e74cf7ee2e140ad56a756c6c8ce7f94020a069dac18307d7af5fef1de6ba *2e1d2a82bb0c70574180060080dba8582cbef2ca2bd56a35180c964a25dbb60541a0a3eb0cc3e8 *ebeb0b068374f073a39df9f8f8382d3f572a1542882449a55269c58a15a2287ad3eb4aa5d2ba75 *eb1445c18d06b8ab20400300c06df4eebbefbefbeebb3ccf0b82502814682f44b55a1d1a1a7ae6 *996756ad5a45571336d439d3644cf7eefecd6f7ee3f3f9fc7ebfaeebf7dc734f575797d76752ad *56a7a6a630fb19e02e84000d0000b74b3a9dfee10f7f689a66381ca63b5dd3e583e974baabab6b *d5f185100000200049444154f7eedd3458375af99910323636160c062727271545a1db256a9af6 *d8638fd1ad5ee831baae2f5ab4489665dc6880bb0d02340000dc2e6fbcf1c68913272449725d37 *9fcfd3ee674dd3868686fafafa3a3b3b1dc769a87d07198621841886914c260dc3f8e0830fe878 *1086617c3e5f5b5b5beda956abd57befbd177719e02e84000d0000b7c5b973e7bef39defd8b61d *0c0673b91cc771749f94743abd69d3a6ad5bb71242a2d168438dae63ae949fe9088ea1a121ba77 *773e9fdfbb776f381cf6cacfb95cce75dddacd0801e0ee81000d0000b79e6559efbefb6ea150a0 *c3e90cc3902449519472b93c3636d6d7d7d7dcdc4c87d93554f9996118dbb6878686fc7effe0e0 *60301894248965d94422b17bf76e2f2e1342cae5f2f2e5cb71a301ee4e08d0000070eb9d3973e6 *dbdffeb6e3388aa2e472399ee769fa4c26937bf6eca193e01a6d741d73a5b44c08999e9e3e75ea *14dd1cb1582c7675750502012febdbb6ddd4d484e58300772d04680000b8c5e8ce290cc3f87c3e *d3344dd3144591969f93c9645f5f9fdfef5714856e46d868060707054178fbedb71986114591e3 *b86834ba7bf76e6fa52321647272321c0ee34603dcb510a00100e0163b77eedc0f7ff843866114 *4529140ab455c3719cb1b1b1679f7d76e5ca9574ae45a3356f10420a85422693b12cebd2a54baa *aad2e975ebd7afefe9e9f1ced6755d41105a5a5a70a301ee5a08d00000702b954aa5975f7e9961 *189fcf57a9544cd3a4a3eb8ac5a2cfe7dbbd7bb7cfe71345b1d1d60e320c4308191f1f0f87c3c3 *c3c3d56a9561184992b2d96c6767a7b777371d11ddd3d383e58300773304680000b895fafbfbdf *7bef3d4288288aa55289e3385a6cbe7cf9f2134f3cd1d5d5c5304c6d3f71e3300c23954a150a85 *d75f7f5d92245555755ddfbe7dfbca952b6b374f999e9e8e4422b8d100773304680000b8658ac5 *e28b2fbec85c293f57ab55599645512c140aab56addabe7dbba2288dd93dccb2ecf4f434c330a3 *a3a3a55249144555552b95ca9e3d7b6a374fa9542acb962dc3dedd00773904680000b865de7df7 *ddfefe7e9665398e2b168b749b6edbb62f5dbab46fdfbe458b16711cd780cd1b0cc3d8b67df1e2 *455555e9f43a455158966d6a6aaadd3c85106259d692254b70a301ee7208d00000706ba4d3e9ff *fddfff25840402015dd76ddba6fb60a752a96ddbb66dd9b285e6e9063c7342483e9f775db75028 *5cb870c1755d59960b85c2ca952bbd8d120921b49f1bddcf0080000d0000b706ddb89b104208f1 *cacfd56a756666e6e0c183a15088ee44d898273f32322208c2af7ffdeb4aa542d738b6b5b53df9 *e493741f6f6a6262229148e046030002340000dc022323233ff9c94f0821c16050d334affc3c3d *3dbd6bd7ff6fefce9ae3b8ce33009fd3dbf46c0007036225888d04290224283222b5d8915c9612 *559cbbfc80fc9fa42a374ea554b94b95739bcd51cab249d97251b6484a9468d2a44452e00e2e00 *0860d6ee9e5e7271c24ebb97d33d8385d383f7b95081839ea51768de39f39defbcb7b0b020cb72 *369bedc2b983acb1c6d3a74f0dc3b87efd7a5f5f5fa15068369b0b0b0b6ef53321c4b6ed919191 *8989099c6b0040800600806df0cb5ffef2f6eddb9224b1420877f8b952a97cf0c107fdfdfdb95c *ae3b879f29a58f1e3dcae7f3cbcbcb9452411032994cbd5e9f9999f176afab56ab587a10001804 *680000d8aa070f1efcd77ffd1721249fcfd7eb7556432c49d2f2f2f24f7ef293b9b9b9ae1d7e26 *8498a6f9e4c9935c2e77f5ea55455132998caeeba74e9d3a7cf8b077f194f5f5f58181019c6b00 *2008d00000b0759f7cf2c9ad5bb732998ce338f57a9d0d3f379b4dc771de7df7dd5c2ed7b513ef *d8f4414ae9ddbb77af5ebd2a49523e9f6f369b7ff1177fe1ed5ef7e2c58b72b98cee7500c02040 *0300c096dcbc79f3a38f3ea294b2ce156cf85996e5c78f1ffff55ffff5ececace338dddcb98255 *9efce637bfc966b38aa288a238343474f0e0416ff73ac7714e9c3881730d000c023400006cc985 *0b17eaf53a1b7ed6348d0d3f371a8dfefefeb7df7e5b519452a94429edc257cea60f6e6e6e1a86 *71f7ee5d55558bc562ad569b9b9bf3ae95689aa6aaaae85e07002e04680000e8dcb7df7efbd147 *1f0982e01b7ebe7ffffe5ffdd55f4d4d4de5f3795996bbb3fa994d1fcc66b38f1e3db22c8b1022 *8ae2fefdfb3ff8e0034551dc6d9e3e7d8ae98300e085000d00001d324df3dcb9736ce16bcbb2dc *e1e76ab53a3d3dfdd65b6f0982d0b58d9fc9cbe983f97cfedab56b8aa264b3d966b3f9faebaf4f *4f4f7b879f8bc522bad70180170234000074e8c68d1bfff00fff208aa277f8595194870f1f7ef0 *c107434343acaab83b5f3ca5b452a9504abffffefb6fbef9461445d627647e7ede5d6c9c52da68 *34d80ae438dd00e042800600804e349bcd7ffff77f674b5b5b966518061b7ededcdc5c5858387b *f66c369bcde572dd59bcc1dcba754b92a4cf3efb2c9fcf2b8ac20a51bc8ba7504aebf57ab95cc6 *e906002f04680000e8c4eddbb7ffe55ffe4514454551363737d9f0b3288a8f1f3f7efffdf70707 *076559768772bb0d9b3eb8b1b16118c6d2d292a228c56251d7f50f3ffcb0542ab9ddeb5aad96a2 *28ded5bc0100080234000074c01d7e5655d5b6ed56ab4508c966b39b9b9ba74e9d3a75ea942ccb *8542a16b879f29a58f1f3fcee5728f1e3d721c87522a49d2e0e0e09ffff99f7be3f2fafafa9123 *4770ba01c007011a0000da161c7e66e5ceababab7ff9977f592e9773b95c77b6ae634cd35c5e5e *2e140ad7ae5dcb6432aaaa369bcd13274eb8c3cf6c9b42a180fe1b001084000d0000ed61c3cf94 *d26c366b59161b7ecee572ebebeb67ce9c999f9f170481b585eeced7cfa60f3a8ef3f0e1c3ebd7 *af1342d8f4c185850577b2209b3e38343484d30d004108d00000d01e36fcac288a2ccb6ef5b3a2 *286b6b6b1f7cf0415f5f5fb158ece6d74f297dfefcb920081f7ffc31212493c90882a0280aa60f *02404208d00000d08666b3f96ffff66fa228e6f379c3300cc3208464b3d9172f5efcf0873f3c7a *f4a82449dddcf48d525aad56efddbba769daad5bb70a85425f5f5fb3d9fcf18f7fecaddfc0f441 *00e0408006008036b0e16741104451acd56a84904c2693c964d6d6d6de7befbdbebebe7dfbf675 *73f533a5746d6d4d92a4c78f1f2b8a228aa2288a434343efbfffbe1b970541d0340dd30701200a *0234000024659ae66f7ffb5b49920a85826ddbdee1e71ffde847737373a22876737a2684388ef3 *fcf9f362b1f8edb7dfb2f6cf9aa62d2e2e0e0c0cb8c3cfcd66d3711c4c1f04802808d0000090d4 *8d1b37fefeefff5e144556fd4c5e0e3fd76ab5f7de7baf582c160a856e7efdac7ee3f9f3e7cd66 *f3ce9d3b9452555529a5f3f3f3bee98323232338dd001005011a00001271879fb3d9ac699a6cf8 *5955d5b5b5b51ffff8c7870e1dca66b35dbee4356bffbc6fdfbe7bf7ee351a0d511459c39072b9 *ec9d3ea8ebfafefdfb71c601200a023400002472e3c68dbffbbbbf936599f57e2684b06976f57a *fd9d77dec9e572b22c77f92e98a6c9d64ff9c31ffea0aa2a6bc3f7377ff337fbf7eff74e1f649d *a171c601200a02340000c473879f5555751ca7d56ab1c5535657573ffcf0c3c9c9c97c3edfb50b *7733acfdb320082f5ebcb879f326a5545194c1c1c193274f663219b68d2008baaecfcdcde18c03 *000702340000c473879f33990cebfdac280a5b2de5edb7dfeeefefeffee167b7fdf3b973e74cd3 *cce57286612c2c2c78eb370cc3906519d30701800f011a0000e25dbc785110845c2e67dbb6a669 *e4e5d283efbffffec4c4842ccbdd1fa00dc3585b5b6b341a172e5cc8e7f3994c46d775dfea831b *1b1b03030338dd00c087000d0000316edebcf94ffff44fdeea6749921445314df3cc99337d7d7d *acaea39b77411084e5e5655dd7590d344bfc333333939393de57de683430fc0c00b110a0010020 *c6e79f7ffee2c50b36fcacebbae338f97c7e6363e3bdf7de9b9c9ccc66b3dd3ffcccda3f67b359 *d6fe5955d556ab75e2c489bebe3e3740dbb65d2e97317d1000622140030000cf83070ffee33ffe *8375afabd7eb8ee3b03ed08661bcfdf6dba55289554277f95ee8bade68349acde6ad5bb7044150 *55b55aad4e4c4c78eb3736373787878771c601201602340000f07cf2c927d7ae5d631ddfd8dadd *c56251d3b41ffde847535353ddbff4202144108467cf9ec9b2fcf0e1435dd7d90b9e9999999898 *70b7a194d66a35d46f00401208d0000010696d6deddcb9739224e5f3f966b3490811044196655d *d7df79e71d36fcdcfd7b61dbf6ad5bb76459be79f366369b5514a5d56a7df8e187c3c3c3b66db3 *6d5aad16eb0c8d930e00b110a0010020d2cf7ffef3dffdee776c8e60a5522184140a8546a3f1ee *bbefa665f8990d2debbade6c36bffbee3bd64b647474747171d1d7fef9e8d1a338e30090040234 *000084ab56abbff8c52f4451cc66b3cd66d3711c4a692693310c8335df48c5f033a5f4c993277d *7d7d77efdeadd7eba228eaba3e3f3f5f2a95bca5db854201cb7703404208d0000010eefcf9f39f *7ffe79a150a09456ab554a692e97d3348d0d3f534a0521056f22b66d3f7af42897cb5dbf7e9d15 *69504a4f9c38e16bffdcd7d787330e00092140030040885aadf6b39ffd8c52aaaaaaa6699665b1 *00cd869ff7eddb572814babff906ebad611846bd5e67f51b8aa24c4c4c4c4c4c785f7cad562b95 *4a38e90090100234000084b87dfbf6975f7e99cfe725496a341a94524551344d3b73e6cce4e424 *212415c3cf94d2478f1ef5f7f72f2d2d359b4d49925aadd6e4e4a437fdb75aad42a180f6cf0090 *1c02340000f855abd58f3efa88529acfe71b8d86611884907c3eef38ce0f7ef08352a9542c16bb *7ff89910629ae6f3e7cf5555bd7af52aabdfd8dcdc3c7cf8b0bbf20bab4e191d1dc5490780e410 *a00100c0efeeddbb1f7ffcb124499224d5eb7542085bb87b71717166664692a4b40c3fb3ce219b *9b9bdf7efbad200892249d3a756a6e6ece4dff94d246a381e98300d01604680000f0bb78f1a26d *dbf97c5ed334c3301cc7c966b39aa6bdf3ce3be572990d4577ff5e504a9f3e7daa28ca175f7cd1 *6ab564599624697171b15c2e7beb37f2f93cda3f03405b10a00100e04fdcbc79f3a73ffda9a228 *aaaad6eb75d6ba4e14c5d75f7f7d7676d66d5ed1fd4cd35c5959d134ed97bffc653e9f5755b5bf *bf7f7c7cdcedbec7fa6fa07e0300da85000d00007fe2c2850b2b2b2b6ced6ed3340921b95cae5e *afbff5d65b838383a9e8fd4c5ed66fb00cbdb1b1218aa2288aacff86779b5aad36343484930e00 *6d4180060080ffb7b6b6f6ab5ffd4a14c55c2ec70a8805411004e1e8d1a3737373922475ffd283 *0cabdf5055f5e6cd9bfbf7ef571445108453a74e79eb370cc3c8e572b95c0ee71d00da82000d00 *00ffefe73ffff9850b178ac522a5b4d96c12428ac5a2a6696fbdf556a954729b57743fd3349f3d *7ba6aaeaf2f272369b9565797878f8f0e1c39224b10d0441585b5b1b1b1bc34907807621400300 *c0ffa9d56a1f7ffc315b30a5d96cdab64d291545717a7a7a7e7e9ef5844ec58eb0fa0dcbb22a95 *cad2d212cbfd274e9c181818f04e7fcc66b3070e1cc07907807621400300c0ffb972e5cae79f7f *9ecbe5d8027e8ee364329946a3f1e69b6f0e0f0fcbb29c8ae61b84104ae993274f8ac5e29d3b77 *1cc751148510b2b0b0c07e600cc3989e9ec6fa2900d001046800002084906ab5fad39ffe941052 *28149acda6655984904c26333939393f3f9fc96452d1fb99314df3e9d3a7b22cffe10f7fe8ebeb *9324e9e0c183dee5bb0541304db3bfbf1fe71d003a80000d0000841072f7eedddffdee778aa288 *a2e8aedd5dafd7df78e38dc1c1c11475af63c3e7ac7ee3d6ad5b84105dd74f9d3ad5dfdfefabdf *484b471100e83608d00000400821172f5e741ca7afafafd96ceaba4e085155756c6c6c71717160 *602045d307ddfa8defbfff9ead9f22cbf26bafbde6fd0ca0eb7aa954c2490780ce2040030000b9 *79f3e63ffee33f8aa2a8aa2a1b7ecee5728220bcf5d65b434343292ade208498a6f9e4c9934c26 *73eddab55c2e27cbf2e4e4e4d8d898b77ea3d56aeddbb70fe71d003a83000d0000e4c2850babab *abb95cceb22cc3300441c8e572994c666161a15c2ea7a5f9067959bf619a26abdf1045d1b2ace3 *c78ff7f5f5a17e0300b60b023400c05e57ad56cf9d3b2708423e9fdfd8d8a094aaaada6ab5de79 *e79de1e1e1740d3f534a1f3f7edcd7d777f7ee5d5dd765599624e9d8b163defa8d66b389fa0d00 *d80a04680080bdeedcb973172e5cc866b394524dd332994c3e9f5714e5f4e9d3e99a3e4808b12c *ebc99327aaaa5ebf7e3d97cb89a278e8d0a160ff0d046800d80a046800803dad56abfdec673f73 *1c2797cbe9ba2e8aa22449a6691e3f7efcc08103e9aa73a094d6eb75d334abd5ea77df7d278aa2 *6ddb8b8b8bbefa8d5c2e87f6cf00b01508d000007bdad2d2d2175f7ca1288a20088d462393c9b0 *00fdd65b6fb105bd53b42facff462e97bb7fffbea669a2282a8a72f4e851ef20baa66903030338 *ef00b01508d000007b1aeb5e572c1659eb3a411028a5afbdf6dadcdc5ca15048ddee542a955c2e *77e3c68d6c362bcbf2e1c3870f1c3880fa0d00d85ea999580d0000dbceed5e97c9643636366459 *662ddece9e3dabaa6abaa60f12421a8d46a5522184fcf18f7f9424a9d56a2d2c2c148b455ffd06 *fa6f00c01661041a0060ef62ddebb2d9ace3389452dbb60921d3d3d3274e9c4863fd46b55a1504 *e1debd7bac98bb582cfaea37b07e0a006c0b046800803daa56ab9d3b778e1092cd66ebf53a8bcb *a669bef1c61bfbf7efcf6432de81dbee47295d5f5f9724e9ead5abf97c5e96e5e9e9e9f1f171d4 *6f00c0b643800600d8a36edfbe7df9f26555552549b26ddbb22c59960f1c38b0b8b898a285bb5d *a669aeaeae562a95ebd7afb3955f8e1d3b86f55300602720400300ec45b55aed9ffff99f0921f9 *7cdeb22cc7716cdb364df3f4e9d31313138aa2a46b7728a5954aa5d56a3d7bf66c7d7ddd711c45 *518e1c39e2abdf40ff0d00d81608d000007bd1d2d2d2b973e758d7675dd72dcb1245319fcf1f3f *7e5c55d574553f93970decb2d9eccacacae0e020216472723258bfb16fdf3e9c7a00d83a046800 *80bde8d2a54b8ee364b359cbb20cc3b06ddb719c37df7cf3e0c183e95a7a90b12cebe9d3a7b22c *2f2d2da9aaea38cefcfc7c7f7f3ffa6f00c04e40800600d873aad5eaa79f7e4a29551445d775db *b66559ce6432afbffe7ab95c4e5d80a6946e6e6eeaba5ead56efddbb47085155f5e8d1a3ac129a *41ff0d00d84608d000007bcef9f3e72f5fbe2c4912ebfacc7ad8bdf6da6b070f1ef486ceb4a094 *3e7ffebc582cdebd7bd7344d42c8b163c7262727bdf51b9665a17e0300b60b16520100d85b6ab5 *dabffeebbfb26976ad56cbb66d56f1fce69b6ff6f7f7a7aefa9910e238cecaca8aa228376edcc8 *e7f394d2f9f9795fff0db6580cce3e006c0b04680080bd656969e9ebafbf1645511004b67cb724 *49b3b3b3ac68388d7b641886699aad56ebbbefbe13453197cb4d4d4d0982e00668c33036373771 *ea0160bba0840300606fb974e91221445555f64f56deb0b8b8582a9552b776372184525aafd745 *515c5a5a6a341a8ee38c8c8c78cb9d29a56b6b6be3e3e338f500b05d10a00100f610eff441562e *2c08c2fefdfb8f1d3b96c6ea674208a5f4d9b367b66d5fb972a55028088230353595cfe7bd1bd4 *6ab59191119c7d00d82e08d000007bc8f9f3e72f5dba24cb32a5d4b22c4288655967cf9e9d9b9b *2b140ae95abb9b314df3e9d3a78aa23c7efc98529acd660f1c38e0dd175dd7fbfbfb73b91cce3e *006c1704680080bd824d1f2484c8b2ccaa9f29a5c56271616121a5f9928d2e6b9a661846a3d1b0 *2c6bfffefdd3d3d36e810aa554d3b4c9c9499c7d00d84608d000007b059b3e28cbb2288aad568b *1062dbf6f1e3c7d35bdec0ea3772b9dcfdfbf74dd3d4346d6a6a6a7474d4bb81655943434338fb *00b08dd085030060af60d30733990c2b6f601debce9e3d7be0c0015996d3b847ac819daaaa376e *dc28140a8aa21c3e7c78dfbe7d6efd86e338f97cde1d900600d81608d000007b029b3e28088224 *499aa611426cdb9e99993974e850369b4de94eb1ca0d4110ae5dbb268ae2ccccccd4d494a2286e *80d6346d787818671f00b6174a380000f60477fa2021c4b66d4248abd53a79f2644a7b3f134228 *a58d46435194efbfff9eb5829e9d9df5c66541106cdb1e1818c0d90780ed8511680080dec7a60f *524a455164d3071dc729954ac78f1f2f168b29dd294ae993274f0441b87efd7a3e9f9765f9d0a1 *43be050873b91c162004806d8711680080dee7ae3ee876af334df38d37de989a9a4a69f53321c4 *b2acc78f1fe7f3f97abd6e9ae6c18307272727bdbb631806869f01602720400300f4be4b972e51 *4ad9582c1ba09565f9f8f1e3d96c368dbd9fc9cb0508755daf56ab4f9e3c69b55aa552a95c2ebb *1b088250afd7bd2baa00006c17046800801e57abd57ef5ab5f514a2549b22c8b526adbf6d1a347 *27272745514cef7e6d6e6e160a85fbf7efb75a2d4ae9e1c387bdeba7388ef3e4c913d669040060 *7ba1061a00a0c72d2d2d5db97245511442080bd086619c3e7d7a646424bd019a525aad562549fa *e69b6f72b95ca150181c1cf4c665d334070707b1002100ec048c400300f4b8cb972f534a655966 *d5cfac7b1dabdf48ef4e99a6b9b2b252afd77ffffbdf534af7efdf5f2a95dccf036c01c2e9e969 *9c7d00d80908d00000bdecc18307fff99fff4929751cc7300c4288aeebc78f1f1f1c1c4cef4eb9 *2b780b82a0284aa3d1989e9e1e1f1f7747a0d95cc954ef23007433046800805ef6c9279f7cfbed *b79224d9b6cdea83fbfafae6e7e7533dfc4c29ddd8d8c866b38f1f3f16453197cbcdcdcd954a25 *ef84c862b188050801608720400300f4ac5aad76eedc394aa9a2286cf114d3348f1d3b76f8f0e1 *54874bb682b724497ffce31f1545999e9e660b10ba1be8ba8ee16700d83908d000003d8b4d1f64 *ed9f598026849c3973a6542aa57abf6cdbd6346d7373f3cb2fbf1404617a7a7a7474d4fdad2008 *2b2b2be8bf01003b07011a00a067b1f6cfac7b1d21c4b2acd9d9d9a9a9a95477af63f51bbaaed7 *ebf5f5f5f546a3d1d7d797cbe5bcf51b9aa6a1ff0600ec1c04680080dec4da3f13422449324d93 *10d26c368f1f3f3e3030200829fe9f3fa5f4f9f3e7994ca652a9944aa5a1a1a1c9c949ef1ed9b6 *3d3c3c8c25540060e720400300f42656bf2149122184cd202c168b8b8b8bfbf7ef4ff57e398ef3 *e2c50b59966fdebc29cbf2c18307f7eddbe76d60d76c36bd151d0000db0e011a00a037b1fa0d41 *10745d771cc734cdc5c545df606d1a5996d56ab52a95cab56bd71cc799989818191971778a557b *7bd7f40600d87608d000003d686d6dedfcf9f3e465476436a3eecc9933fdfdfdde5ae1d4a19456 *2a15dbb69797975fbc7891cd66676767070606dc2992849042a180067600b0a310a001007ad07f *fff77fb30e152c2e5b96353333333b3bcb2a3ad28b52fae4c91355559bcda6a228070f1e9c9a9a *ca6432ee6f9bcd66aaa74802402a20400300f49a5aadf63ffff33f8410455158ff8d66b3b9b0b0 *30303090f6e66e8ee36c6c6c88a278e7ce1d59960f1f3eec6bc9b7b2b292ea2176004885740f45 *000040d0d2d2d2575f7d2549923b029dcfe74f9e3c39303090f65db32ccb34cd5aad76fdfa75db *b6f7efdfdfdfdfeffe96522acbf2c4c404ae0100d85118810600e835972e5d2284b8ed9f0dc338 *7efcf8d4d454daa70f524a3737375badd6eaeaeacacacac0c040a9545255d51d72761ca7542aa5 *7a9572004805046800809ee2b67f164591b57f364df3f4e9d3699f3e4808a194aeacac288aa269 *5a369b1d1b1b1b1a1af2563c1b86313232826b0000761a023400404f61f51beef2dd96651d3972 *24edab0fba3636362449ba79f32621e4d0a143070e1c70abba0541d8dcdcc4fa2900b00b50030d *00d05358fd86288aad568bbc9c3e383636d60301dab22c5dd71b8dc6ef7ffffb72b9fcda6bafed *dbb7cf3bac5eafd7d35ea60200a980ffd10000f40eb77e8310c202b4aaaa8b8b8b3d307d90525a *ad561b8d866ddbb66d178bc59191115996dd0d1cc7191a1acae572b80c0060a721400300f48ea5 *a5256ffbe756ab353f3f3f3d3d9df6f6cfe4e5122ab95c6e65654510847c3eaf288ab72b9fa669 *58c11b00760702340040ef70eb376cdb66ab8abcfefaebbe3a87f4aa542a94d2afbffe9a7580f6 *36b01304c134cd1e186807805440800600e8116efd06a5d4711cdbb6474646e6e6e61445e981bd *b32cebd9b36784901b376e140a85a3478f96cb65ef0783d5d5d5b42f1303006981000d00d02358 *fd86288a2c56361a8dd3a74ff7cca06ca3d168369b6c647d7c7c7c7272d2fbc1c0b6ed818181de *f8a80000dd0f011a00a04778eb370821b66d9f3871a25c2ef7c0b82c2b4729140a77efdead56ab *aaaafaf64bd3b4f1f1715c0300b03b10a001007a41ad563b77ee9c20082c409ba679e4c891a347 *8fe672b91e2880a694aeaeae12422e5fbeacaa2a2b8076f74b1004dbb6070707711900c0ee4080 *0600e8054b4b4b57ae5c9124890d3f57abd5d3a74f0f0e0ef6465f64dbb69797975555add56ab9 *5c6e7878d8d7d65a10844c2683cb00007607023400402fb878f122f12cdf9dcd668f1f3fde3335 *c1a6693a8e53afd79f3e7d3a393979e8d0216f5cb62ccb300c5c0300b06b10a00100528ff5df60 *83cdb66d1b86b1b8b8383131d11bc3cf94d25aad46295d5e5e7ef0e0c1be7dfb464747dd026856 *1e3d363686cb0000760d02340040ea2d2d2d5dbe7c591445cbb2082186612c2c2c140a85de68eb *46297dfefcb9a228cd66531084d1d1d162b1e81640b39e7d434343b80c0060d720400300a4de17 *5f7c2108025b4cc4b6ed03070ecccccc7897b94e3b4dd30441f8f6db6fa7a7a7c7c6c67c05d09a *a6f5d2ce0240f74380060048b75aadf68b5ffc82b57f761ca7d1689c3c79f2e8d1a33d53006d59 *d68b172f2ccbba76ed5aa9549a9a9af21640dbb62dcb726f14ab00405ae0ff380000e9b6b4b4f4 *e9a79fbaf51ba6691e3f7ebc582cf64ca6acd7ebd56ad5b66db683be7675baae4f4c4ce0320080 *dd84000d00906e5f7cf105a5541004cbb22ccb9a9b9b9b99991104a1670aa0755d2f168b4b4b4b *ababab6fbcf1c6e0e0a0b703b461183db3da2200a405023400408ab1fa0d499208218ee3d46ab5 *93274f0e0c0cf4467a2684504a9f3d7b2649d29d3b77262626c6c7c77d23eb8d4603f51b00b0cb *f03f1d0080145b5a5afaf5af7f9dc4db75190000200049444154cbe5dc5b1616165455ed9900ed *38ced3a74f33998ca6699aa68d8d8da9aaeafd6d5f5f5fcf547b03405a20400300a4d8a54b9708 *21aaaadab6dd6ab58e1f3f3e3939c93a72f4c60edab62d8ae2e6e6e6e5cb97c7c7c7c7c7c7bdbf *d5346d747414970100ec3204680080b4aad56ae7ce9d932489b5e0a8d7eb8b8b8ba552a9970aa0 *2b958aaeeb8d46235800cdcaa3fbfafa702500c02e4380060048abbb77ef7ef9e597aaaab295ae *8bc5e2ececac2ccb3d53bf410869369bb95c6e7d7d7d6c6c6c6464c43bb24e2965fda1712500c0 *2e937008000052ead2a54b8ee3288ad26ab528a5c78e1d3b70e080288a3d932929a5ebebeb8ee3 *5cb9726579797970705055557704da719c52a994cd66712500c02e4380060048a55aad76fefc79 *96262dcb324d737e7ebebfbfbf67ea3708218ee33c7ffe5c55d5cdcdcdb367cfcececeb285bbd9 *6f0dc32897cbb8120060f7e19b2f0080545a5a5aba7af5aa2ccb8661504a0707078f1d3b96cbe5 *7a2940b395536ab5dabd7bf7feeccffeac5c2edbb6cd7e4529add7eb6e980600d84d1881060048 *25d67f4310044dd31445595858181b1b1345b1973a40572a154dd3745d7ffefc39db59ef6f1dc7 *c1083400bc1218810600481fd67f832d40582e973399ccfcfc7c369beda5e16736475055d5f5f5 *7542c8d1a347bd1da00921aaaaa2001a005e098c400300a4cfd2d2d237df7c23499220088aa294 *4aa5a9a929d67fa397ba52acaeaecab27cfdfaf51ffce007870e1df216405b96651806ae040078 *2530020d00903e972e5d625999526a18c6dcdc5cb95ceea5f5530821a6692e2d2d298aa2695ab5 *5a9524c95bf1ac69dac4c404ae0400782510a0010052c65bbf4108b12cebc891236efd462f9570 *f4f7f76f6c6c9c3f7ffecc9933be25540cc3e8efefc7c50000af0402340040ca2c2d2d5db97285 *a567dbb64747470f1e3cc8ea377a6909957abdaeebbaaeeb8490c5c5456f0134a5b4d16888a288 *8b01005e090468008094b974e992200892241142745d3f72e4c8c0c000ebbfd1633308b3d9ecea *ea2afba7f7b78ee30c0e0e62062100bc2a08d0000069c2ea3758b586e338b55acdaddf2081a099 *5e9452d6baeeead5ab274e9c603308dddf1a86e1ebc80100b09b10a00100d284d56fb0ea85cdcd *4d56bf2149127da93776d3719cf5f57555555badd6a953a77c4ba8689a96c964703100c0ab8200 *0d009026172f5e1445918d402f2f2f9f3973a6542ab9b7f4cc6edab6dd6ab52a95caf9f3e72dcb *f2963bb3a1f7e1e1615c0c00f0aaa00f34004022ac05445448751cc7dba5d8fbb3d71633ae6118 *972e5d6269d2719c56abb5b8b898c964d82dbd3402dd68341a8d06abf33e7bf66c369b7547a009 *219665298a826b12005e15046800803f110cbe2c1cb31f7c4139ea8ea11b706e4f8252aaebfae6 *e6a6dbbdeeedb7df9e9c9c741ca7c7fa51b03d5555f5fefdfb333333333333dedfdab6cd5690f1 *9e17f7a4b81f21dcdf064f22dbb89706ec016097214003c01ee5e6ade4c197a52edbb643ef4b92 *8d4347e5efe066bec79424e9ce9d3bd7ae5d9365991052abd5de7ffffd42a160db36dbb8c76610 *cab2bcbebe5ea9541445f11e315dd7c7c7c7c9cbcf33be13c7399bbe6db6f26126ea7cf91ed377 *ae63137cd48ddb7e72f917a1f7dae3ec5de8e3b8bb868f28d0db10a001600f09262a4e020e46b1 *0ec695f929cd17328279cb1b9e5aad162b80761c878dbf2e2c2c504adde1e75eca2bbaae4b9274 *fffefd9ffce427e572d99be46ab5dac8c888699aeee98b8d6b9cbc18fcc01315857da72cea1963 *b3699257123ca1eec7a4ed92304373f694447c5d43fef4036792bd03481d046800d813f8c3ccbe *77fde0f6dec14b1605a2463739b7f0f11306a5b45aadfee637bf6137dab63d373737313161db76 *ef2da16259d6dada5aa150b87ffffebbefbeabaaaa37e3dab6adaaaa6559c4f39d80ef88edd020 *68f26f0f6237e384f5a8cd42afea1d3defa11532ee93069b737be3b2ef46b7fc29f6c52358432a *20400340cf4a1e9a093731fb7ecbe25a30522779319cc14b7e041745f1eeddbb7ff8c31f58b70d *5dd75f7bed3555557bb223322b92a9d56ab76edddab76f9fefb7d96c3693c95896e54d66ec57a1 *b92d78547d250a49e22967a83b36fefa1e275820e1dd9e040a277c1b7386bd835f68f0f731f422 *645f6ef81ec15b98113c02a17b14ba4dc20c1d7530f1ff34e81e08d000d0fba28a31a232b4f312 *7939e449c23299afdec39b066cdb6653fd7cf13af49fee6bf3d56c78838b6ddb972f5f76574b11 *45717676960d3cb31b490f258c46a3615996699ab95c8eeda67bc46cdb360cc3778248c4f70651 *17836ff4d7173463efd8ee2517faf8497ab6042f0cce898e2d3e8e9a5ee9bb6ff055855ef9c15d *0bee6fe8070012f86a85bf53b18f00f04a20400340af894a51bed01c1c638e2de420dc81eae058 *23096bdce1cd4fc14c10356e5aad562f5cb8c07eb66d7b7474747c7c9ca567f78ebd912a28a5cd *66535194e5e5e585858552a9e46d60a7ebfac8c80889f8ea20f4a407cb0fd80877e8f06ae8e344 *0544dfb344bd86d8c2127eed7bf07142eba1bde3f1ee672aef6fbd8791936e7d9774d4c4c7e07c *59df2384ee14bb4a394d6c9214de441d1f80dd84000d003d2bb40c83f3dfa86cedfe9cb0783a74 *1aa2bbbd5bc41c8cbcc191693728b0fa0d769756ab353535d5dfdfef8e73f7124ae9fafaba288a *b76fdf9e9a9af2ae384829add7ebfdfdfdde1984b1e79d70075383f7e2dc12fa5cc1ef10a25232 *097c0c0b6650ef27aba82819357cee3e08bbbabc81356a449cc48d7f47d532791f3638accef2ba *fbecde8d93b45c0c5effbe571e5b9d02b0d310a001a037254ccfde82665fcee01749933f4d4bee *ed9c261ebefb065f70d4d7d994d27bf7ee79479a2727272549b22c8b2d35127c8454ab56ab9224 *bd78f1e2873ffc21ebd9e71e07d334655966551ce44ff3a2f7d87a1324e72c9040fdaef79fbe9c *9aa4723a58cfe38db09c72856085311b48766ff45604b9d76d92d7e6bb38f965e2a1adb5f97f5f *9c1bbd23e5ee0b738bd7f9cd4cbc2f3861f50b9234ec26046800e829a1dfc287c6e2ce4a38dc9f *83037b5185cebe4e5ea105a0b13bf5e2c50bb7fc607878787c7c3c93c9349b4ddf087467bd8d43 *bf137f5571dcb2ac6ab52acbf2679f7df6b77ffbb79224796b0f64591604a1d56a9176d21ee752 *f1359460cfe54b99a183b8b1cddddcb41a5ae0e1eb4de17b1951f70db6bf48de602ef65879aff9 *d849aefcfe7451d52fc16f69386d04839f2842a748726abb01760e023400f48ed801334e654592 *c98524faebe3a8f9552410777cb72779cb770ba029a58661cccccc0c0c0cb06e09de00cda96a88 *c5ef4fbcd327ce7b585aad96a6698ee30c0f0f8f8d8df94e53b3d9b42c2b34052669fb10d575db *3b601c3aa2e91d150ebdb47ccd2b381937f8cfd02b213437276fa9c12920097d84840df548d844 *58fe998dda26f6330fa7663a74589aa0a8037611023400f4a0d86e0ca1a3cebe5f71ee1e7cb424 *f1c5fdb9ad41685114efdfbfffcd37dfb85b4e4e4eb2e5544860ad8ded3d8ca1f3c676e27cb9b3 *21d90c4251149f3d7b363d3d3d3030e0dd29c3304aa592b70507e13697208478f36e54722589fb *42f0078039bfe59ff1b6d2b6f7d49036c362ecddf9fde912f6c488aaaef6dd3de1aa8dbe7f0613 *796c2908c04e408006809ec55feb24989e938466ef582027c44415bcf2f34ad45e7cf5d557eed3 *8d8e8e0e0d0de5f379df23388eb3ed017a1b71e2913bca280882288acd665392a46ab53a3333e3 *9b41d86834d88ef347f7a3c66e13d63fc49e94e419b7ad6d485cb66ef775b6b5171d6f1cd59331 *f44f89b35079d4bc82e055c42fe6468f0ed81d08d000d06b38151a24aece21b8e860f09143fb9d *f13334d3c13b3aa5b452a9fcf6b7bf252feb3766676755550d8e4073f6ab1b9204e7c38c370f89 *a2b8bebeee38cef5ebd73ff8e0034551bc6390ad562b9fcf870e2a7bc371309e46dd1e3c4a6d2d *61987c2c394962deb9acbcbd67d0777c62d7064ab21c4c68397bb0223f342b472566c468d85108 *d000d02342879343bb6ef9ee1555184de2c6cf1216a446cd822209be771604e1debd7bbefa0d49 *9258b24cb24e1ee97466e1ee9f3ec7714451642d38eaf5fad8d898774a1ffbfce0761d499e9239 *e9394991467209bf4f7855eb726f23df67c8ad5f60fc701cfad926ea9a476e86dd81000d007b42 *54fd06671b5f43baa8f967bebb70fed9d9cbfeeaabafdc9f47474707070759fbe760bf88e05a2d *db7800db8dfe9d9d1dc330d6d7d72549ba79f366a954b22ccb5d29c6bbfa0949d023b99b2fc534 *368e885aed85249b0e48b83d5e827daf830bdcf01bf0f13f3d224fc3b6438006805e907c1499bf *4d681974e8bb75686808c682b6668c05d56ab5cf3efb8cd507b3fe1baaaa4a9294b026b5e3e399 *a426751b07b6dd236c5996aeebb66dbff9e69be572d9ed194c08310cc3ed3dc239e66d9d8bad5f *75db3bf6d9e59f0a623b75445d45843b4f80bf77a17d6f429792896acd01b01310a001a007f1cb *3942171d6412b6138e7acb4fd2682c791862450b2f5ebcf0d66fd8b6edaee5b673f920ead0ed28 *d682c3719c5aadc66a9dd9cc485114ddee1cfcfaf52d16517476a0929464f0d75e4912f4bb2443 *73668292045dd843772aea43087fc1c5e0e12571a5d5f81f236ca35e5b031600f6a0ce869ff96f *f69c965bfc8eb3a181c0b741c2fd1204e1e1c387f7efdf678f333434b47ffffe56abb50b017abb *ce4b90fd92f512fb273b509aa6c9b2fcecd9b313274ec8b2ccb667e9c734cd81818124bdae937c *e710fbab6dbc32b7eb79bba196bde34baead26e59c6f84f8fddaa39649225beb920e1084116800 *48b7d8d282d815b94982c520924f99f205ebadb456701ce7cb2fbf6489dc34cda9a9a96c365bad *56dd0991bb1908a28e736cafc0d873c47690d53a6f6c6cc8b2bcb6b676f2e449774b16a01b8d46 *bbe38baf64dc31f9987407afad1b465239c5d009afa224752f51451aa19b452daa82e167d83908 *d000d09b82f9326a2c8a9faddb15dbc82cb94aa5f2d9679fb19f6ddb3e78f02021c434cd24e9bc *ad03e5fb39c9e85d92f44c127f4471670a6a9a2608c2a3478fd80c42eff44156fcbdc53ddd89f5 *9f1396f0267f84ee0f7c51199ab3ca09677f931f9fd099859c7693a18f40501b0ddb01011a0052 *8cf30d6f6c4547bb5fafc78eb4f15b4107cb3df90441a8542a57af5e657729954ac3c3c3a669b2 *9a077704dab22c5996437721ea9804ff19fb8df9568e5e928f22ecc85896f5ecd9b37c3eafaa6a *b158344d934d9764bb69595692ebe1950c456f3d01277f84ee995098b02947e834037ee0f6de91 *53064dc222b5ef35847e52c298346c1d023400f4b224d3987c3ff87e1b9ca844feb4c35dec4ca6 *d01b93bc7fbf78f1826d699ae6c183070b8582aeeb2c43bbcfc51abd7923b50f49b08eccee5709 *87662616a3354d63b798a6c9660d3a8ea3695aa150089e975434b3dbf63e21dd9fa17d2f35b86e *4ef27d893ad79cfed0b1fdef00b60e011a007a4767413976b4ccb77d707568cec6debbf89e3476 *09954aa5c2b6b12c6b727252108456abc51abdb98fa0ebbaa669a4cda49b3cc1847e39bef5d311 *fab08661b00295f9f97949924cd3946599f5e2a8d7ebfdfdfdfce76a2ba46efb786407bdd848af *acabc239cb9cef82423f8512ee7a43510b107286a50977241b791a3a86000d006915958939ddeb *dc1f12d6697450e6c1f9675b2ccbba7dfb36fb399fcf8f8e8ebaf51bac53327b0deebad6c125f4 *a296e223815621646792445b73cb589dc6a143876edebc592814dcb20dd672c434cd7c3edf413d *71eced3b777172969e4918dfd35bc8119a6e13ee57ec33721e24f8f9c4fbc276e8b313ec4d08d0 *00906e6d4d01e447ede08304dffe83b59e9c37e3846b7d87b26dfbeeddbbec87f1f1f1bebebe56 *ab659aa66ddb8d46a3dd91e0d0158f93b7a36ef75cb4754777335996a7a6a6d6d7d7fbfbfb3399 *4cb3d9344d535114f2b29ca3dd0be3d526e9ce2aa149b2ef07ba27f6c566e80e0e4ec25980a1c5 *1ba18fc0df12191a3a803ed000d0537c53e57c3792b8c611edf6cde0173ff8067adb7a9f6e369b *0f1f3e646ba94c4e4e4a92c4ea375880364d73d77ad839896df1f1d9b07ab55a2d140a8aa2b02a *0eb78d1d1b6be77fe6897afcd8dbb7e5606ecb628dc9cba0bba7ab71d46bf65eff51a3c56ded0e *bf2db4f75a0afe33aa6934e98e06db903a08d000904a49964d49be997b7b305485563b4495406c *572673d720643f8f8f8fbb2b8fb08260c3307aef9cb2e9929aa6e57239411032990cdbeb56ab95 *cd6693146fc49edf9d7efd9d5dc0fccbe6152e04d3d9be470dfcc73e4270243b76e52312d67827 *2a1c77dc66112008011a00522cc9b832e767ce321f9c478e0de55bff469852bab2b2f2e0c103db *b60f1c38502e97d9043bb6689fa669f57abd27bf7766a51aaaaa3a8e234992288aa669eaba2e49 *520711679793746c6fec84cf9bd23097bc037a54fd3d7f09cfd8bf4dce618c6d4493dec30eaf0a *6aa0012065f8a199f3d69870ed0f123151c9577649a293416c29706cf6650bef11420cc3989999 *5114a556abb98b60b75aada74f9f0e0e0eba3308495864098d29515fa977b638cbf6660e4a69b3 *d9cc6432ac311fa53493c95896659ae6c8c888f749b7d86539f4f65de8c5d1f1b3a7a54e37aa1b *b4efef22f9659370ce28a74d4754b30e7e8f0e805808d000d06b92bc4f07dfe69394d2f25326bf *af45bb6fcc0f1f3e643f1c3c78d06d49c16aa009214f9f3e2d140a6e2589ef07efcf2c64538fd0 *7f726e24dc741eac73e58c3e72ba7fb01feaf5fae0e0a07b23eb03cd86dbf9ddcd1206a0579e90 *12be80d4f584f69ed0d00c1dfbc71835d535f66f87b30e4bd4c441cea14386868410a0012095da *fd1a37e162d424ba131649dcbd8e2f617e7afaf4a9e338434343e572994d1f64e99905e867cf9e *3d79f284ffc8be6c4dc28699437ff065e8e0837b3776033a896e9ce7fe932dd91d15d00541a8d7 *eb9393936cf8994519511473b95c70b5c5d803f8aa6250c783d0bbf38cbb8cb3ca77d45f6b9256 *24fcaf14a2d65821c9563d044802011a005229aabf6cf0e7767b23c42ed91d143a78c6d998c4bd *55ebba7efdfaf556ab75f0e0415555354d73d333c39265f09577704bd4e14a3e02bac553e93b6b *f57a7d6060606a6acabdb1d56a6de5c193ac63e7bb71eb7bc4c97f9cf047a2fb1ca7b7c683b3ca *37e72eb17f3551872b58b6115acb11ac302171055a005e08d000902609174f09de98b04e23785f *26c91b7fc28e7549de98755d5f5f5fb72c6b62628252eaa6e7a8f94f9d2d1ede41717667bbd3d6 *23e8ba7ef1e2c562b1582e9759ed4a2e97ebe0534d6f5ced698c71fc9395e454063f91ba4d393a *28c3886d021db55421323470a00b0700a44f6c3106bfc02398a763a7fdc58ecb6e63bc1304a15a *ad5ebf7ebd50280c0d0db15974de11e8249314630bb2636f79550441585f5fbf72e58aaeebac9d *5fb07e83d30dfa9537b3e35ca25b7c3d5dd5fb996f2b1dd0dd9d4dd294837f2493f787e6dc2b75 *ff7b84dd81000d00a9d1599be760bfd8241d27da7dcbe7ac25d1c19eaeafafdbb63d3a3aca1620 *f4166f78dfd443536ff2797b5b7c913b4714c5efbefbeece9d3b9452dbb6070606dafd0221f622 *216dae61b9a35772926ec7491eb3dbd2de163374073b1efbd9386a059657721940aa21400340ef *68eb2d30765030b6315c14ce14bd240441d8d8d8d0757d626282adc6e72de17047a03b18782609 *e2b5f7f6dd147c6d5f7ffd75bd5e6fb55ade6e7ddb7579bcda8b936c614c7a2bbf7db58267bc83 *f395e47342d4a2839c30cdff160b791a8210a001206542c790f8451da1cbf9f2a7217a436a5be9 *992fc983589675fbf66d4ae9c4c4042b028e4dcf494a3212c6eb5755cbe17b5251149f3c79f2f0 *e143511483d325b7eb12eae0b73bf4bca9586e70eba7751bc3287f85a3d0e50909b79623f8b018 *93060e0468004801fe2cc02419da777bf091195fe7dad8ca819d489cb66d2f2d2d8d8c8cb00676 *befa0db21db303bbb906da3df894d2a5a525b7531e67cbd81f92df777b7721f6bc24bf6f6ff035 *558cfdf36977d5c0241321a26a3c624b7a90a1c10b011a007a4a6c62f675840d8e909176166ed8 *89f7d466b3f9f0e1c3a9a9a94c26c33a400747a0dd7dd9fac073574567ef88a0288a0f1e3c300c *23e1894e72cabab98aa3e316315d2e494adec6e7e2fc4f20aa00daf95304191a12401b3b00e876 *b1851624d97873c2a5bca34a3bdc4e58fca9519c5b92e4544a69abd55a5959397dfa3421849f9e *933f75f2bb247fa93b7aa2d9cf9b9b9bfdfdfdc113b12dcfb50bfb987c0510fe31dffdc5597654 *677dee625b4187fe754775ace32cb912d51f3a2d8717760746a001a0db85ae2246c202b16ffca9 *e32ff743c7cc92bc716ebded00a5f4d9b367ababab838383c1ee75eedbff0e0d3cbfc21ae820b7 *0934d995bae45732d0c87f527e6174aacba683b51cb1c721eaca4c5ed1eefb993f2c4dc24aa8d3 *7278611720400340574b3ee99e245e4e8f13a3ddf51abcefd9ee3b77b07ca2ad6fe113aec156af *d7c7c7c70b8542920268b27d43d1dd939b5d8383838542a183da860eeaa1777307a3fee9fbd917 *2bd39edbb67281b5bbfba1bded48825a0e9278fa04ec7108d000900e09e712854eba27ed2cc4e0 *1df00e86e9a88d197e724d18201e3e7c383939298aa26f01c2d0b8df6335d03ed96c96d382a3b3 *709cf05e3b979638cbf490ed1be94c45da6bebaf23ea9b281211afdb5a8b3eb4514f682b8fe08d *b037a1061a005226f9f8505bf3f74958b2e4cf29e4fcb6e348ea38cedadadaf0f0b0699aac8483 *c5686f8e8f7da284b5ceddb6a28a2f9d388e73e0c0015114773aa9ece8eacda175babb53d0dc85 *d5baa1dfe4f8be2fdaae2524431fd657064d3cf5d0bee3165c4e3c154718760d02340074af76bf *45e50f0ec5de375892113bdb89ff680937f6d234edc68d1b870f1f66fd375ca669eaba1ef56204 *41e8a0c773ec78795be120f9c65175356ed0613326755d77879fb7b216f48ee6e38e2fecce6259 *68d4ebed3f7912967a43773cf4c6e4e3d09c3985becfd298530804011a00ba56c2f58db7eb8b78 *cefb71d47b64f09d75eb745d57553593c9341a0db77e43d7f5f5f5755dd7931f0ace005bd4fefa *7ed5ee328afce54ebc8f16d5d7997d0c68b55a8661b45aad7abdbeb0b0e056a593c050a2ef1c05 *77362a43271c8cdcde331b75756df18e690c70c1231c3a6921783d736ac449f45746fcb4cdb936 *a25e18418606046800e87e5bff4a97ffa618f58572f046dff6be55577c8f1c1cd38a7d9d822054 *2a154551dc05080921a669562a15dbb65555d5344d10847abd6e9a26a5940dd33a8e238aa22ccb *8410dbb6593c655b12422a958a2008b66db397214992e3389224b15bdc4a6bf6db46a3e11dcc16 *04c1bd2fc3fee99b61c95e67f0c306fb81bd0c3794070f117999aa054128954a8aa2b04f0ea669 *aaaa6a595630e69288ece5cb4fc173cd4fcfa1afbf83181d55e51cdb0b39aa6f1ae934c7a725db *f1e7e3c6fe8572f6da37621df5e98bffad0809fbb48c0cbdc721400340378aadc1885a5030490d *86efc6e057b751cf1b1a9dbd9b850e53b51580363737cbe5320bb5f57a5dd7f5d75f7f7d7a7a5a *55554aa961188ee3b0ee1cec01ddf0ea8d7d2c58b35bdc716bf632589cf5c6624dd34cd374ab26 *bc3bc806951dc761e9963d327b55a669ba37b28ceb2db770a3b6699a84104dd3dcd7c39e4b1445 *37c4534a4dd35c5b5b5b5959c966b38661b07b95cbe5818181d87a8fd003ee6dda1d3c0bc1f4ec *3d8651d70649dc369b737591b8a57c389753d453472d15c4f953e23c9aef8ebb960b932463b24d *932343879fbd478053cb11758e90a1f71a046800e86a49d646618203ccde5f11ee3856d4986592 *652f7ce3d0845b1bc04fea2ccee6f3f96ab5babcbc7ce7ce9df5f5f5fbf7efcfcece1e38706078 *78b85c2e178bc55c2ee71dd6e52c1e117b48bd5f8b7b0b4cdd0d58400f76fb0a7ea5ee0e45075f *927b3b8765592c3aafaeae7efae9a72b2b2bfbf7ef57553558ef91e4a4442dd71c7c1c7e000a4d *57514fc77f25c18d43073283cfcbf9de236ad50ffeabedf8cf6d1b25bf4463370bddf1e4e93f58 *1243c23e544725e9a83169e87908d000904aa17139f9d2625ea1c34851034e24fabbfee02b0c3e *51e80fee2b6403cfbaae572a954c26b3b0b0c036b36dfbc183070f1e3c9065b9502894cb654992 *0441e8efef9765595114f64f5692e1eb5dcdc6ad8967f03574018ba8b015fa15368968f9e7eb8d *ed1ea824ade858150aa5b4542a65b3d95ffffad7838383d96c96ffe53ea73c26f97c534110d88b *f7d6a2f0679476b0969eef720ad6ff70ae4992a0ba232a4987a6fce4d5deb17f3e9d696b1518ce *478ea8474832c5307909077f4e61d4ff22a0b751078d0c01a0cbc44e1fe4ac77e01d040d5d4921 *f4a192bc92245f317306b639db7bdfa459c38d60af0c5f74634dee7cdb7843b3f757cd66d3f7a4 *ee0fde2d2dcb6a369bde47089d4d48296d341aad568bdfd3c3fbcf4aa5e2ab780eed45adeb3a7b *01acce5b10843367ce84ae0f1775a6423f35b91bf027a8459d5fefa782609c0aeeafaf74c477ee *825f4a046704f23f8f05ab4aa25e0989f8b0973c1027ac4fd8faf86bec8a8c9c70dfd902f5fc9f *43ff72831f38633f76420f438006802e151a7063d70ce3ac8640b6d03ddafbdb242d637d15b7a1 *0f153a7aba736fbd9ce137129d27dafd5a3cb42021f4ecb84520de6a90e094afd8f5dbf9b7875e *36c18173cef2d149f63a61b1327f7b6f0c0d4daec1f312ac6fd962c3efd8c49c70626507913a58 *59d44187f5e47749f8dd4b6cb64ef819127a0f023400749dd8e128efcf9c114a4e8c8efaea3ff4 *3b717e296a681909fb99d506f86a1b388f13753452fa4e9cbcfd48e8f94db83e5fd43c4212d6db *3baa6b0ae77af35d03fcda8360c54b54314ce851e2cf59e45c2ab123e2a10f48b8b30643670e84 *be1ed2fe4788a8a3173a61d7bb01e78b8224cf9b6495fbd871657e9f478c43ef1108d000d08d92 *cf1de44c170b1d7b0efd21ea5d995fc2c1afaa2409c69eb732859f333332aa4f70546ae7c4a0d8 *cadaa82d398d0b827b41e2d68d4b725e3867875f07c2e9e9e1fb995f904ddaaff9893db6097bea *c55e75a1d9d7575743c2be39890ab2247aca41c29d4df887cf3956ed3e57d49e060fb5efb078b7 *89cad3a14f8a0cddc310a001a07b251c8a0efdf2975fddc17904ce33f25f64bbddf1128a5d3583 *b3244454efe4d0bd686b621667dc3d6a2fda5deb3174d939cefc3cfe209bef3500000579494441 *54007f684a0e1ea8e08a77deb31c5a9d125bfe117b45252caf8ffd6d68288c9a23cb39ef9cb9b3 *247afc9b444449ce1876c2bfafce3e5b26f927e7c346d461e11475247c7ce80d08d000d0bda2be *d5f56de3fd212a0091e8d6d1518b9c6d718dc384abb49057f42ecba91c20c95a14b7b5d807bfd1 *44e821dd96e548dabad8125e84fcee819c8f73499e3ac98bf78d01b77b2d7106b0934fcb4bb81a *625bc3d2498e55c2878d9d49c9dfc1d855ee49b211e857f8070e3bfebf50046800e872b185aafc *5257ce06c1d013dbe181f3aa3a9364f5e0e495a66d0dd745957107374bb2cb0907a15371bd255f *8ba4836532391fd592548dc7566993045f17f0f737c9972709c36bc28b8153d414fa698d5fd912 *b5367bd4c1e1bff2761b6e7430f711d208011a005223e117e29cc61ddec166fe1c324e2f2dcec2 *84fc0517a23af2eee6314cb23463f0573b148e93df2bf683c136a6f3a851f9e049e75f87be179f *e4eb94a83bf27730c9a7a0d8c3c8598128f624b67bd2f92fa0e34f891dcf234c7263f2cc8d5e1c *7b04023400a44c674b3084de982452277cf6a8d53da246da4858daf63e20a752995341c12fc826 *112b152739b63edb3e9c9ca4ab49926ba3b30aefb6aebad84397e490f23f5071964e24c9aa4d5e *ed787f5b2516fcbb2729fe49f2b0495a97446d1f9c34197a5f146fec2908d00090561d7cb11eba *c1566a9d396d37da5d7525d52722f932d149061a134eb6dbf6d1f176fb16c72e7717ba964aec9e *72f68b3f28ce799d5165425bff036c2bdd46d59944155e27f9d497bc9b5ef2d89d7c1a62079b41 *6f40800680dec1e97e903034c48ee006b7e7b7c52011ad7643d300274e911d0bdcbef1eca8aa5c *7e77b9d801efd817c039869c115f7e5af5ed425b67b6db2eec84574bf2fd4a7895068f24495cb5 *9264d7422fefd8ee8afc078cfd2d67a224a7815d5ba52348cf3d0f011a007a535b236ddb382cd7 *e50724c96f39b3e89224549fed3db0492a1fa2aa3848b226d3dbf5e2832d41386ddd3a984d1875 *64a24e5fd473918864cc7fb59c3bbe7249261dc60668c25d2a9cdf901bf60204680080ffd7d63a *0eb18fb62d75bd5bbcd7168f063f93798f09a74a38b492a1b74b5c92b4f24838babf2d1706e7e3 *53d4523bbe0d386db613d69c74fc57c0295ce9609c3bc95f77671b203def2908d00000b07b12ae *80e86e1c15c15d1d0c8aefe6ce268fad4962f416eb79baf033495b5f7d441dab2407b68303b5c5 *3c0dbd0d011a0000a0ebc40e0cfb3626111f4ba2c686a31ac290b0981e1a58932f2ab9a34789ec *4a90455606ff2581000d00000000909c80430000000000901c023400000000401b10a001000000 *00da80000d00000000d006046800000000803620400300000000b401011a00000000a00d08d000 *000000006d408006000000006803023400000000401b10a00100000000da80000d00000000d006 *046800000000803620400300000000b401011a00000000a00d08d000000000006d408006000000 *006803023400000000401b10a00100000000da80000d00000000d0060468000000008036204003 *00000000b401011a00000000a00d08d000000000006d408006000000006803023400000000401b *10a00100000000da80000d00000000d006046800000000803620400300000000b401011a000000 *00a00d08d000000000006d408006000000006803023400000000401b10a00100000000da80000d *00000000d006046800000000803620400300000000b401011a00000000a00d08d000000000006d *408006000000006803023400000000401b10a00100000000da80000d00000000d0060468000000 *00803620400300000000b401011a00000000a00d08d000000000006d4080060000000068030234 *00000000401b10a00100000000da80000d00000000d0060468000000008036fc2fc7413d1dccc7 *e6960000000049454e44ae426082 addfile ./clckwrks-theme-happstack/data/style.css hunk ./clckwrks-theme-happstack/data/style.css 1 +@import url(http://fonts.googleapis.com/css?family=Puritan); +body +{ +/* font-family:"Lucida Sans Unicode","Lucida Grande","Trebuchet MS",Helvetica,Arial,sans-serif;*/ + font-family: 'Puritan', Verdana,Arial,sans-serif; +/* font-family: Arial, Helevtica, Verdana, san-serif; */ + font-size: 13px; +/* background-color: #dde7eb; */ + line-height: 1.8; + outline-color: #333; + outline-style: none; + outline-width: 0px; + color: #555; + padding: 0; + margin: 0; +} + +h1 +{ + font-weight: normal; + margin-top: 0; +} + +h2 +{ + font-weight: normal; +} + +#logo +{ + margin-left: 200px; + width: 260px; + height: 75px; + line-height: 75px; + position: absolute; + top: 0px; + font-size: 50px; +/* background: #0BBBDE; */ + abackground: #0BBBDE; + color: white; + box-shadow: 0px 0px 4px 0px #333; + text-align: center; + text-shadow: -1px -1px #999, 1px 1px #fff; + display: none; +} + +#page-content +{ + margin-top: 0; + padding-top: 0; + margin-left: 25em; +} + +.page-menu +{ +/* position: absolute; */ +/* width: 800px; */ +/* right: 199em; + margin: auto; + margin-bottom: 1em; */ + text-align: center; + padding: 0; + margin: 0; + font-size: 1.5em; + background: black; +} + +.page-menu ul +{ + list-style-type: none; + padding: 0; + margin: 0; +} + +.page-menu li +{ + display: inline-block; + padding-left: 1.5em; + padding-right: 1.5em; + margin-right: -1px; + line-height: 2.5em; +} + +.page-menu a +{ + text-decoration: none; + color: #eee; +} + + +#background-box +{ + position: absolute; + background: #fff; +/* background: #F2FBFF; */ + width: 100%; + height: 500px; + z-index: -1; +/* box-shadow: 0px 0px 10px 0px #aaa; */ +} + +.img-text { + position: absolute; + width: 800px; + height: 100px; + top: 400px; + color: #555; + padding: 1em; + font-size: 14px; + line-height: 75px; + display: none; +} + +.img-text-bg { + position: absolute; + width: 800px; + height: 100px; + top: 400px; + background: white; + opacity: 0.8; + display: none; +/* border-radius: 0 0 10px 10px; */ +} + +.mesh { + background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFUlEQVQIHWNgYGAw/v//PwMjiAABADusBi/shrLOAAAAAElFTkSuQmCC) repeat; + position: absolute; + width: 100%; + margin-top: 3em; + height: 400px; + border-radius: 10px; + opacity: 0.5; + display: none; +} + +#banner-box +{ + text-align: center; + background: white; +} + +#banner-box img +{ + height: 500px; +} +/* +#banner-box +{ + width: 800px; + height: 400px; + margin: auto; + margin-top: 60px; + margin-bottom: 80px; + box-shadow: 0px 0px 10px 0px #aaa; + border-radius: 10px; +} + + +#banner-box img +{ + border-radius: 10px; + +} +*/ +blockquote +{ + font-family: Georgia,"Times New Roman",Times,serif; + font-style: italic; + text-align: center; + font-size: 1.4em; + border-top: 1px solid #eee; + border-bottom: 1px solid #eee; + margin-top: 1em; + margin-bottom: 1em; + padding-top: 1em; + padding-bottom: 1em; +} + +.summary-box +{ + width: 30%; + display: inline-block; + margin-right: 3%; +} + +.summary-box img +{ + width: 70px; + padding-right: 0.5em; + float: left; +} + +.summary-boxes +{ + margin: auto; + width: 60%; + font-size: 14px; +} + +#footer +{ + height: 500px; + background-color: #333; + margin-top: 25em; + padding: 1em; + color: #aaa; +} + +#footer a +{ + color: #aaa; +} + +#copyright +{ + padding-top: 450px; + text-align: center; +} adddir ./happstack-dot-com addfile ./happstack-dot-com/.ghci hunk ./happstack-dot-com/.ghci 1 - +:set -i../../clckwrks/clckwrks/ -i../clckwrks-theme-happstack/ -i../../clckwrks/clckwrks-plugin-media addfile ./happstack-dot-com/LICENSE hunk ./happstack-dot-com/LICENSE 1 +Copyright (c)2011, Jeremy Shaw + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Jeremy Shaw nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. addfile ./happstack-dot-com/Main.hs hunk ./happstack-dot-com/Main.hs 1 +{-# LANGUAGE CPP, RankNTypes, RecordWildCards, OverloadedStrings #-} +module Main where + +import Control.Monad.State (evalStateT, get, modify) +import Clckwrks +import Clckwrks.Admin.Template (defaultAdminMenu) +import Clckwrks.Server +import Clckwrks.Media +import Clckwrks.Media.PreProcess (mediaCmd) +import qualified Data.ByteString.Char8 as C +import Data.List (intercalate) +import qualified Data.Map as Map +import Data.Monoid (mappend) +import Data.Text (Text) +import Data.Text.Lazy.Builder (Builder) +import qualified Data.Text as Text +import System.Environment (getArgs) +import URL +import Web.Routes.Happstack +import qualified Theme.Blog as Blog + +#ifdef PLUGINS +import Control.Monad.State (get) +import System.Plugins.Auto (PluginHandle, PluginConf(..), defaultPluginConf, initPlugins, withMonadIOFile) +#else +import PageMapper +#endif + +clckwrksConfig :: ClckwrksConfig SiteURL +clckwrksConfig = ClckwrksConfig + { clckHostname = "localhost" + , clckPort = 8000 + , clckURL = C + , clckJQueryPath = "/usr/share/javascript/jquery/" + , clckJQueryUIPath = "/usr/share/javascript/jquery-ui/" + , clckJSTreePath = "../jstree/" + , clckJSON2Path = "../json2/" + , clckThemeDir = "../clckwrks-theme-happstack/" + , clckPluginDir = [("media", "../../clckwrks/clckwrks-plugin-media/")] + , clckStaticDir = "../static" +#ifdef PLUGINS + , clckPageHandler = undefined +#else + , clckPageHandler = staticPageHandler +#endif + , clckBlogHandler = staticBlogHandler + } + +-- * SitePlus + +data SitePlus url a = SitePlus + { siteSite :: Site url a + , siteDomain :: Text + , sitePort :: Int + , siteAppRoot :: Text + , sitePrefix :: Text + , siteShowURL :: url -> [(Text, Maybe Text)] -> Text + , siteParsePathInfo :: C.ByteString -> Either String url + } + +instance Functor (SitePlus url) where + fmap f sitePlus = sitePlus { siteSite = fmap f (siteSite sitePlus) } + +mkSitePlus :: Text + -> Int + -> Text + -> Site url a + -> SitePlus url a +mkSitePlus domain port approot site = + SitePlus { siteSite = site + , siteDomain = domain + , sitePort = port + , siteAppRoot = approot + , sitePrefix = prefix + , siteShowURL = showFn + , siteParsePathInfo = parsePathSegments site . decodePathInfo + } + where + showFn url qs = + let (pieces, qs') = formatPathSegments site url + in approot `mappend` (encodePathInfo pieces (qs ++ qs')) + prefix = Text.concat $ [ Text.pack "http://" + , domain + ] ++ + (if port == 80 + then [] + else [Text.pack ":", Text.pack $ show port] + ) ++ + [ approot ] + +runSitePlus_ :: (Happstack m) => SitePlus url (m a) -> m (Either String a) +runSitePlus_ sitePlus = + dirs (Text.unpack (siteAppRoot sitePlus)) $ + do rq <- askRq + let r = runSite (sitePrefix sitePlus) (siteSite sitePlus) (map Text.pack $ rqPaths rq) + case r of + (Left parseError) -> return (Left parseError) + (Right sp) -> Right <$> (localRq (const $ rq { rqPaths = [] }) sp) + where + escapeSlash :: String -> String + escapeSlash [] = [] + escapeSlash ('/':cs) = "%2F" ++ escapeSlash cs + escapeSlash (c:cs) = c : escapeSlash cs + +runSitePlus :: (Happstack m) => SitePlus url (m a) -> m a +runSitePlus sitePlus = + do r <- runSitePlus_ sitePlus + case r of + (Left _) -> mzero + (Right a) -> return a + +initPlugins :: ClckT SiteURL IO () +initPlugins = + do showFn <- askRouteFn + let mediaCmd' :: forall url m. (Monad m) => (Text -> ClckT url m Builder) + mediaCmd' = mediaCmd (\u p -> showFn (M u) p) + addPreProcessor "media" mediaCmd' + nestURL M $ addMediaAdminMenu + dm <- nestURL C $ defaultAdminMenu + mapM_ addAdminMenu dm + +clckwrks :: ClckwrksConfig SiteURL -> IO () +clckwrks cc' = + do args <- getArgs + let cc = case args of + [] -> cc' + (h:_) -> cc' { clckHostname = h } + withClckwrks cc $ \clckState -> + withMediaConfig Nothing "_uploads" $ \mediaConf -> + let -- site = mkSite (clckPageHandler cc) clckState mediaConf + site = mkSite2 cc mediaConf + sitePlus = mkSitePlus (Text.pack $ clckHostname cc) (clckPort cc) Text.empty site + in + do clckState' <- execClckT (siteShowURL sitePlus) clckState $ initPlugins + let sitePlus' = fmap (evalClckT (siteShowURL sitePlus) clckState') sitePlus + simpleHTTP (nullConf { port = clckPort cc }) (route cc sitePlus') + +route :: Happstack m => ClckwrksConfig SiteURL -> SitePlus SiteURL (m Response) -> m Response +route cc sitePlus = + do decodeBody (defaultBodyPolicy "/tmp/" (10 * 10^6) (1 * 10^6) (1 * 10^6)) + msum $ + [ jsHandlers cc + , dir "favicon.ico" $ notFound (toResponse ()) + , dir "static" $ serveDirectory DisableBrowsing [] (clckStaticDir cc) + , dir "login" $ seeOther ((siteShowURL sitePlus) (C $ Auth $ AuthURL A_Login) []) (toResponse ()) + , dir "admin" $ seeOther ((siteShowURL sitePlus) (C $ Admin Console) []) (toResponse ()) + , runSitePlus sitePlus + ] + +{- + +we can't register the pp callbacks instead the nestURL because then +the only callbacks will only be available when that route is active. + +it is 'tricky' to register the callbacks outside, because the +callbacks might require information that is only available 'inside' +the monad. But, of course, that is silly now that we think about +it. Because that monad is only available when processing the route. But when doing the pp, that route may not be the one we are doing. + +So, the reason it is hard to get the monad into the callback is because we shouldn't. The pp has to assume that the route being processed is not one of those. + +Well, that is not actually a problem. The monad is really an environment in which a computation can run. And we can create that environment multiple ways. + +The issue with the MediaT monad is that it includes the MediaURL. And so to work with that, we need to specify how to turn a MediaURL into a SiteURL. + +That is something we normally do in routeSite via 'nestURL M'. But that means we have to repeat ourselves. + +we could have a function like withMediaT to contruct a temporary MediaT monad to be used when registering the callback. Though there is a danger there, because some of the information use to register the callback might become stale. + +In theory, we would like to do some stuff in the ClckT monad before start listening to incoming requests. However, to run the ClckT monad we need to provide the show function. Normally that is done transparently via implSite / site / etc. + +Though it seems the information we need comes from Site not implSite. +-} +routeSite :: ClckwrksConfig u -> MediaConfig -> SiteURL -> Clck SiteURL Response +routeSite cc mediaConfig url = + do case url of + (C clckURL) -> nestURL C $ routeClck cc clckURL + (M mediaURL) -> + do showFn <- askRouteFn + -- FIXME: it is a bit silly that we wait this long to set the mediaClckURL + -- would be better to do it before we forkIO on simpleHTTP + nestURL M $ runMediaT (mediaConfig { mediaClckURL = (showFn . C) }) $ routeMedia mediaURL +{- +mkSite :: ClckwrksConfig u -> ClckState -> MediaConfig -> Site SiteURL (ServerPart Response) +mkSite cc clckState media = setDefault (C $ ViewPage $ PageId 1) $ mkSitePI route' + where + route' f u = + evalStateT (unRouteT (unClckT $ routeSite cc media u) f) clckState +-} +-- FIXME: something seems weird here.. we do not use the 'f' in route' +mkSite2 :: ClckwrksConfig u -> MediaConfig -> Site SiteURL (ClckT SiteURL (ServerPartT IO) Response) +mkSite2 cc mediaConfig = setDefault (C $ ViewPage $ PageId 1) $ mkSitePI route' + where + route' :: (SiteURL -> [(Text.Text, Maybe Text.Text)] -> Text.Text) -> SiteURL -> ClckT SiteURL (ServerPartT IO) Response + route' f url = + routeSite cc mediaConfig url + + +#ifdef PLUGINS +main :: IO () +main = + do ph <- initPlugins + putStrLn "Dynamic Server Started." + clckwrks (clckwrksConfig { clckPageHandler = dynamicPageHandler ph }) + +dynamicPageHandler :: PluginHandle -> Clck ClckURL Response +dynamicPageHandler ph = + do fp <- themePath <$> get + withMonadIOFile "PageMapper.hs" "pageMapper" ph (\pc -> pc { pcGHCArgs = [ "-i" ++ fp] }) notLoaded page + where + page :: [String] -> XMLGenT (Clck url) XML -> Clck url Response + page _errs (XMLGenT part) = toResponse <$> part + notLoaded errs = + internalServerError $ toResponse $ unlines errs +#else +main :: IO () +main = + do putStrLn "Static Server Started." + clckwrks clckwrksConfig + +staticPageHandler :: Clck ClckURL Response +staticPageHandler = toResponse <$> unXMLGenT pageMapper +#endif + +staticBlogHandler :: Clck ClckURL Response +staticBlogHandler = toResponse <$> unXMLGenT Blog.page + addfile ./happstack-dot-com/PageMapper.hs hunk ./happstack-dot-com/PageMapper.hs 1 +module PageMapper where + +import Clckwrks +import qualified Theme.Page as Page +import qualified Theme.Home as Home + +pageMapper :: XMLGenT (Clck ClckURL) XML +pageMapper = + do pid <- XMLGenT $ getPageId + case pid of + (PageId 1) -> Home.page + _ -> Page.page addfile ./happstack-dot-com/Setup.hs hunk ./happstack-dot-com/Setup.hs 1 +import Distribution.Simple +main = defaultMain addfile ./happstack-dot-com/URL.hs hunk ./happstack-dot-com/URL.hs 1 +{-# LANGUAGE TemplateHaskell #-} +module URL where + +import Clckwrks.URL (ClckURL) +import Clckwrks.Media (MediaURL) +import Web.Routes.TH (derivePathInfo) + +data SiteURL + = C ClckURL + | M MediaURL +$(derivePathInfo ''SiteURL) addfile ./happstack-dot-com/happstack-dot-com.cabal hunk ./happstack-dot-com/happstack-dot-com.cabal 1 +Name: happstack-dot-com +Version: 0.1 +Synopsis: happstack.com +-- Description: +Homepage: http://www.happstack.com/ +License: BSD3 +License-file: LICENSE +Author: Jeremy Shaw +Maintainer: jeremy@n-heptane.com +-- Copyright: +Category: Clckwrks +Build-type: Simple +Cabal-version: >=1.2 + +Flag plugins + Description: enable dynamic recompilation + Default: False + +Executable happstack-server + Main-is: Main.hs + ghc-options: -threaded -O2 + Extensions: CPP + Build-depends: + base < 5, + bytestring == 0.9.*, + clckwrks, +-- clckwrks-plugin-media, + containers == 0.4.*, + mtl == 2.0.*, + text, + web-routes-happstack, + web-routes-th == 0.21.* + + if flag(plugins) + Build-depends: + mtl == 2.0.*, + plugins-auto > 0.0.1 + cpp-options: -DPLUGINS + else + Build-depends: + clckwrks-theme-happstack addfile ./happstack-dot-com/run.sh hunk ./happstack-dot-com/run.sh 1 +#!/bin/bash hunk ./happstack-dot-com/run.sh 3 +runhaskell -i../../clckwrks/clckwrks/ -i../clckwrks-theme-happstack/ -i../../clckwrks/clckwrks-plugin-media Main.hs 192.168.0.5