Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 7E079200C5B for ; Thu, 27 Apr 2017 13:08:21 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 7C889160BA7; Thu, 27 Apr 2017 11:08:21 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 4F3EC160B98 for ; Thu, 27 Apr 2017 13:08:20 +0200 (CEST) Received: (qmail 32267 invoked by uid 500); 27 Apr 2017 11:08:19 -0000 Mailing-List: contact user-help@kylin.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@kylin.apache.org Delivered-To: mailing list user@kylin.apache.org Received: (qmail 32253 invoked by uid 99); 27 Apr 2017 11:08:19 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Apr 2017 11:08:19 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 0EC7ED608A for ; Thu, 27 Apr 2017 11:08:19 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.296 X-Spam-Level: X-Spam-Status: No, score=-0.296 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-2.796, RCVD_IN_SORBS_SPAM=0.5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-lw-eu.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id w4bcpMcoc1JX for ; Thu, 27 Apr 2017 11:08:16 +0000 (UTC) Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.17.10]) by mx1-lw-eu.apache.org (ASF Mail Server at mx1-lw-eu.apache.org) with ESMTPS id 8B5EA5FCD7 for ; Thu, 27 Apr 2017 11:08:15 +0000 (UTC) Received: from [172.18.100.17] ([193.146.1.7]) by mrelayeu.kundenserver.de (mreue103 [212.227.15.183]) with ESMTPSA (Nemesis) id 0LySz0-1e9A2o3SRK-015pZW for ; Thu, 27 Apr 2017 13:08:09 +0200 Subject: Re: A problem in cube building time To: user@kylin.apache.org References: <5E444323BC1D0743A9C9429B5D2F7EFB0651DBA8@fxjtsemb003.fosun.com> From: =?UTF-8?Q?Roberto_Tard=c3=ado_Olmos?= Message-ID: <61f09ac4-25fc-62b5-ebf9-a83abd19cbac@stratebi.com> Date: Thu, 27 Apr 2017 13:08:00 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <5E444323BC1D0743A9C9429B5D2F7EFB0651DBA8@fxjtsemb003.fosun.com> Content-Type: multipart/alternative; boundary="------------043E8ECEB94A4A199E7F0ECA" X-Provags-ID: V03:K0:EfmnfrFQBenKKt+KaiRdJMFQOrG+WaM+D3n/E9sD0+Eq/zDiObw yM+dQSOVnZvbVuEnfo3DMJX8JeVU9Lf7Xj69GFZtUVLm7mQ3fA93NCdrxuM+69bxBPtHOV2 pU6uG8ywCZZyTszTQp6ODGbaennBMFVv8ROi3sX2OLuWMvYoseLGmB6Db9HaslV+Ba6G6fC M0qShxzIQHmCLk9hVILCA== X-UI-Out-Filterresults: notjunk:1;V01:K0:nVSqIXoGtw0=:v1tbBsd4aQC2FbTzcJKSlZ g9JFjgFVrK1YjpDN+yIN346TVipcXsGXVuMZYUB/srgH3XcamvICchBp21D6XJQ6jU5D+XTtC bie4hdsolL94rMgm1STREq4HY2HdmPiGeuTEckXrtPUb+eguzllwGDsLNPe4N6I/EQk5AXMQ7 2/RezIi/w0BKmP015Y0XRcJjznWJGtMO4R+KweY4XCyFvlElc67v9UP5WUc9rE3d7VvSxWOKq g5zxbr1SLag6xobabeVWjJxsfooBQvGOWkVcsoXbklLtSiV8zOyQlkRtTeEIgg63EJfax4aiI yHbgGIvv5YrszqtiNy5r790hpPfgdh9H3P2GzYcu0Mronbk33tn0FdSNmhSAGdw/NAuUTyZtm ZtD691vFVV5ngppvk2QMSzZ6DOIrCAnuyV+IZgm7F9lThhO8Nu2aoRSvg1aPb5cNuMjAfRXlK zFB63waZzLAIqlF8c13aGtwS0ZvWZr0P3uE1ccXUOQU/Rbxhb1MLVW8MTw64RAoOepHMf93Om Esu5TDPOhBN7w5mC4r6RWXJl2joHhWElDw3jBtKooCrd4gtXb74CA2TGKuzXtv6aVMDjrp6vc q2OVh3mjkbWcnjl0A6Z36R4Vwl3humb64zxS3rjO56IsbIvns5YtiM2dNrotgBeB6oK/FC5AU BT8+iiSJNhNSv98cwOdOnVZl2XeIgmQzKocajaG+l3YQSsm0zjiK6cmYNP3mxJNuiuas= archived-at: Thu, 27 Apr 2017 11:08:21 -0000 This is a multi-part message in MIME format. --------------043E8ECEB94A4A199E7F0ECA Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Zhuoran, I faced a similar problem about cube building time. I think that depends on the cardinality of the 2 dimensions you add. If some of these has a big cardinality (eg. in my use case about 500.000 rows, Customer Dimension) the number of combinations Kylin need to build the cube increases a lot. Some things you could try to reduce cube building time and size: * Define all Dimension tables attributes as a Derived Dimensions. In this cases you can not use Hierarchy optimization in Agg Group. The query latency in queries that use derived attributes will be less optimal than using Agg Group Hierarchies (with Normal Dimensions), but in some cases the differences in query latency are acceptable (in my case between 2 and 6 seconds more, depending of the query). Cube size and building time will be reduced. * Use "Shard By" in Rowkey for High Cardinality Dimensions. I have not been able to test it yet, but as indicated at https://kylin.apache.org/docs16/howto/howto_optimize_build.html should work fine. This helps to reduce cube building time. I hope to help you, I'm also learning to use Kylin. Kind Regards, El 27/04/2017 a las 12:46, 吕卓然 escribió: > > Hi all, > > Currently I am using Kylin 1.6.1 and I face a problem about cube > building time. I have one fact table and two lookup tables. When I set > 13 normal dimensions and 15 derived dimensions and two measures (count > and count distinct). The step3 in building takes around 20mins and the > entire building takes around 1 hour. This is good. > > However, when I try to increase to 15 normal dimensions and 15 derived > dimensions and two measures(count and count distinct). The step3 in > building takes around 240mins and the entire building takes forever…. > > BTW, I have a hierarchy dimension which has 4 normal dimensions. > > I am really confusing about this. Does 13 normal dimensions become a > bottleneck in building cube? > > Thanks a lot! > > Zhuoran > -- *Roberto Tardío Olmos* /Senior Big Data & Business Intelligence Consultant/ Avenida de Brasil, 17, Planta 16. 28020 Madrid Fijo: 91.788.34.10 --------------043E8ECEB94A4A199E7F0ECA Content-Type: multipart/related; boundary="------------3BC27CDA8207FF9DB61F9610" --------------3BC27CDA8207FF9DB61F9610 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

Hi Zhuoran,

I faced a similar problem about cube building time. I think that depends on the cardinality of the 2 dimensions you add. If some of these has a big cardinality (eg. in my use case about 500.000 rows, Customer Dimension) the number of combinations Kylin need to build the cube increases a lot.

Some things you could try to reduce cube building time and size:

  • Define all Dimension tables attributes as a Derived Dimensions. In this cases you can not use Hierarchy optimization in Agg Group. The query latency in queries that use derived attributes will be less optimal than using Agg Group Hierarchies (with Normal Dimensions), but in some cases the differences in query latency are acceptable (in my case between 2 and 6 seconds more, depending of the query). Cube size and building time will be reduced.
  • Use "Shard By" in Rowkey for High Cardinality Dimensions. I have not been able to test it yet, but as indicated at https://kylin.apache.org/docs16/howto/howto_optimize_build.html should work fine. This helps to reduce cube building time.

I hope to help you, I'm also learning to use Kylin.

Kind Regards,

El 27/04/2017 a las 12:46, 吕卓然 escribió:

Hi all,

 

Currently I am using Kylin 1.6.1 and I face a problem about cube building time. I have one fact table and two lookup tables. When I set 13 normal dimensions and 15 derived dimensions and two measures (count and count distinct). The step3 in building takes around 20mins and the entire building takes around 1 hour. This is good.

However, when I try to increase to 15 normal dimensions and 15 derived dimensions and two measures(count and count distinct). The step3 in building takes around 240mins and the entire building takes forever….

BTW, I have a hierarchy dimension which has 4 normal dimensions.

I am really confusing about this.  Does 13 normal dimensions become a bottleneck in building cube?

 

Thanks a lot!

Zhuoran


--
Roberto Tardío Olmos
Senior Big Data & Business Intelligence Consultant

Avenida de Brasil, 17, Planta 16.
28020 Madrid
Fijo: 91.788.34.10
--------------3BC27CDA8207FF9DB61F9610 Content-Type: image/png; name="stratebi.png" Content-Transfer-Encoding: base64 Content-ID: Content-Disposition: inline; filename="stratebi.png" iVBORw0KGgoAAAANSUhEUgAAAK8AAAA4CAIAAAAEkz/ZAAAAAXNSR0IArs4c6QAAAARnQU1B AACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAA GLFJREFUeF7tnXdYVcfTx0nv7Y2JDUuaKcYSTTOmG0uK6dXE9Dwx3fTERKOxB7shFkRQEUFU ioJSBakqqIACAgKKdJAuHd+P2fzW5Zx7L5cLgn9wnvP4LOfumZ2d/e7M7Ozs8bxTp05ZdV7n kgROnWosO5lb31hTU1deVJqWXRTfPtxl5EVZgYbO69yRwMnqYkblWEFUflliYXly6cnMdrt9 dk/qRMO5goSGxvrsori4NLfjRbtzS/a3/+0Z8W0nGs4VNGQWRMdluKTn+afnB3TIvTl0Qica zgk0JBz1iU5dkXDcJeG4a0fdG4LHtyUaqqurX1aucePGpaennxPCNo+JrKysCRMmyB6MHz/+ yJEj5r3aqlonyjMiDy/cn76M+2hBkHqn5HjuT18ufmrNfSB9xcFjaxOzNiYed40/6miQ5vrA 19sSDZWVlar3e8UVVxw4cKBVcmrflw8fPtynTx/ZhWuvvXbfvn1nm4X6hprdScvCkmZEJs/i ZkGh3gVlhyKTZ4ufWnHPTsvbXlGVW1NXxl1SmRabYaen5ug3thMNZ4a7Q9BwojxtV+KUnYd+ ErcGfPmlB4IP/Sx/taywN3V+dW2xSjm/NF5PapXvU51o6GA0HMzYuGP/x76xn4pbg4ac4r1+ sRPkr5YVYtKW1DVUqZQbGxvCD0/TUFvh80gnGjoSDY2nGlf7PbUtZpy8NWjIOhHpHfO2WsGC 8p5Um7qGag3liOTpGlLLvB/oRENHoiGv+PDGiOc273le3poxyywK3bLnBbWCBeWgg99X1RQ1 sRRlcVv2asku3Tq4Ew0diYaDGducw59wiRwhbw0ajhbudI0cqVawoOwW9XR8pmNjI/7p6auy Ojfg4Nd6Oou8+neioUPRkL51XdgD6yOGyVuLhgJ/54jhagWLy0EJE5OyXaPTFrjvHWuQyCKv fp1o6GA0OIQMWBM6UN4aNKTnb18bOlit0KpyGKQGGaMw3/2mTjR0MBrsQ25zCO0nbw0a0vK9 HUPvUCucvfI8d+tONHQwGuyC+9rvukneGjQcyd+6etctaoWzV57n3r0JGggtZ2dn79+/f9eu Xa6urlu2bAkNDSUel5iYWF5ermG0oaEhLS2NX+UVHh6uxiIvu+yyDRs2qBWob05oD3/n5MmT FRUVhYWFvHLw3ysnJ4cWjb1eU1ND/bKysry8vNzc3JKSEv6EiHSdDL5IZ1X23N3du3fvLrtw 1VVXrV+/Xq1w9OhR0wRpBSZpt6qqqtmaVD6YvtVuZ69VIb3lrUODl31I37Xh/TdHjwxOmhh1 5M/odJsDR5fyL+XQ5F/cY55xihhMHZWIpuwYdmdw4ul35e2170V9fRv3bv+hgQ74+voSor/t ttuuu+66q6+++pJLLmE4KfAnMnrggQeWLVuGOCS7vPLhhx/yq7wI5apoOO+888Tr8iLybxoN DLm/v/9vv/02YsSIQYMG3XXXXb169brx34t3GWDN6wg9KSlp7ty5r7766uDBgwcOHHj77bf3 69dvwIABvP74449Dys/PD3wYbHf27Nkqe3B7/vnnyy7AP4BQK3z99df19fV6Ugx8aWlpVFTU ggULfvjhhyeeeGLUqFE//fTTrFmzYmNjwbSxXjeLhqzisIjkyQVlcVW1RQ0NtdoJ2VhfXVdS VJFw4JitS9SDxjDhHHV/UUWi+u6+jIVG0UAP33jjDWShCgIoXHrppUhEPrzgggsQNArjv4VK ZSVvtSgtB7QZkwsj/ddffzH8l19+uUGaY8aMYeqrrwPH1157rWvXriqT+nchCFk7Ozs0n6b1 P/74o0X8f/zxx3V1dXod6eHh8cgjj7Avo4IJyjDGDLn33ntXr16tb90c3dDYWM+ttgjyiCTq xNh4oiLRc99YgxqiBWg4ceLEu+++K4QC9zfffPPvv/++Y8cOTAMjtH379o0bN7755pv33HMP YqXCN998I1hBOS9atAhAyIsJqgr3wgsvHD16tFph/vz5ejSgWjEETz/9tBQlQERFMdLTp0/f /L8LFKIJxOvIIzg4+JZbblGR2q1bN95CQwwdOvSOO+646aabmNkSKAzVl19+iWlQFbibm5vK 3jPPPEM1SfOiiy5iiqsVVqxYoeoGwfmnn3568cUXi7fgHD166623whtKhfkjniO6999///jx 4xrz0axu+F9/64srUxKz1gQlfLkjbrxP7JsBBz+JSPk9uzi8XgkyVlRn+8S9hWOhwUQL0ODo 6CinI31As9XWajUSEwI54gSggdGWckRPo1S5AJBmDxOjq1bQm1KeeHp6ot4lFMCQg4NDSkoK clfrq2UfHx9QK0eawfj+++8jIyPZQGdXGnODRWMLatOmTVBWFd6zzz5bUFBgjH/cI80eZnR0 tAn+4+PjQZ5kAzj+888/e/fuhY3U1NSAgAAshdo6+oMm1PlgJhqOF4fiN+gMQZ914QN2H5lV 13BS0gQ0W6LHWI6GsWPHCo4ZBpBh2q5jpL28vIzVsWBHG+lg7KXIGAwmfbO+BQpAvgIUfvnl F6yGwbdg6eGHH1Zxs2TJEoO2n9fN38MEmlR+7LHHpE69++678b71PCBSbJnkFvUDWGU10LAy qJddcG956ymUnkx3j3lOraOW7XfdkpjtzH7Hf1rkVGNc5kq74D5qHedIrd8Qk75QT/AvvEip zdByTFPTIyG0dBui4b333pMMUMC66zWTprmVK1eiw+UwYJ6MQUG8yPoIJ1SOBxaEiWuwC+aj AfOKDyRp3nDDDSEhIQZp4i7MmDFDtT7ffvut+WjAEIQk/WgMCuL5pr2jTtbkSZq19ZVue0ZY iAZVt+O34w00C4g2QYOw/WrrKNJmV2W47qpiwM9tFsH4nhgIdTywRK1Ew86dO6+//npJExfH oJMoWsHW3Hnnnaoyi4uLEz81qxsqarK3RI82jQbCU1knwtUeJWStXRXSV77VAt2gKmqMxcSJ Ey1OX2uRpcDJeOGFF6SMGFd8umaBiByZiPKtvn37YrxMv8VgYEpU2OERtwYNEHz99del9cHr CgwMNM0D7rbUZ3Dy0UcfibVJs2goKI9zihhqGg3YhfhMe5WBvNIYx9D+lqABx0e6xMJ7wPPi oT7c1OxQtQgNhJVUF8/MtDMnJyeV20cffdTEal4yTKRERQOhFIJU+u6YaSlYakFBEmTVjetq WjgszVjgyFdwxllfCDQsD7BeEdhL3ho6R/JwLPqqFQyWdyZ8r75YUZPrEvmIrOkUdl9heRPv NTptoZ7O3E1drRABzKnCEmU6+euvv+JUYyObxYGo0CI0EKtRZzkLMzhptiHWqCqr+iCEQQos TdW3mNYyaqLWNxMNCxcuVKlhuTIzM7FHJi46a21tLd8ipCaMBWhYFmC9PLCXvDX8p+Z5rQjq o1YwWF4dcrf64mnXYfdoWXOdITTo6ZxGAw420TrVCkqmWfX16NHjySefxDE2x59oERqIfEv/ kRbRE/n5+c2igWiHBWiArAbuRDEs1g24gSo14gpPPfUUuDRxsfpQIxnoCSI6Ag22vj3/8bOW t4arlByvZf691QoGyysDb9OgYWPkKFlzTci9heUJaoW9Rxbo6cxx6/pfZBpfASeZjhmM62Hz cJTQE6Yx0SI0uLi4qJE74kVqJMAYLFjTtwka2ICwDA04DYSb9Kq0RU9AA7ZDoOHvHT1tfa3l rUfDP3691QoGyysCtGhwjRglazoGa9GwJ3WBns5siQaceXZ6cJU///xzdX2sdrJ3795r1641 MX3bAQ04gG2CBnv7Jm6X6JQ5lgJBffHFFy0ae31lFQ2LvXss8ekp77ySeFXCydmeS7f3UisY LC/zvVWjG5zDRsqa9kFDC8qa6IbdKfP1dGa63qjd0aa3LJYICRO0ufLKKzWqAu8pIaEJXZWJ dkAD+0wWoAE9pBkSi9FAfzWWAq02depUggrmXzY2NuLcDrph0bbuAELeUSlNgvegYYmPtVrB YHml/4CmaKhYHzpC1rQPHKJBA63o6cx00aFBEEUfsrIPCwsjOqQ6w8iUaBo/GdQQ7YCGxYsX qwBlH8EYMyqH+t2p1qCBgLeKLTaliouLm/V4DFYADQu8ui/c2kPeYYkzG0+d2ZRKyfZZ7N1H rWCwHBT/u0q/uCLdLmCorGnnP6SgtMkcjjo8X09nhjE0SNLoCTqvuntdunQxph7aAQ1BQUEq OokHq5vsBiVOpJLwQBvqBlYoCEESZDWUnJxsMRrme3Rb4Hnm9tg9vqbuzMZ9YVnSSr8hagWD 5X1pK1UGsk/E2Pr0kzVX+t6jQUNk0jw9nenON5iV+8S2vQSEifN07YAGdrPUpRpLnmYP9x07 dkzjbTCQrdENyJ2ljXSBsZ5MmGajqAbhknh0u41793ke3eTtEPh4ycljsjLH5dYFj1Er6MtL t/XLKtqr0g9NmK1WW77jnvymuiE8aZ6ezmzXXmahgVjbNddcI2ZDx6KBRc3bb78t5yWxsj// /NP0vGRHXp8z0Uo0ED9Qfe2RI0cyEyxQD6WVOTZbrOdu7irvBZ59U3P8JKmGhvrA2MlqBX3Z aedzVTUl8pUT5alLvfur1Wx9BueXNLEU4Qnz9HQ8Ij83Cw2sx2QEsGfPnsZ2fdpBN9BnAke4 txIQOHHwY3Bq8pD8A/YIWDm3oaWAB6wPiy/pwRBWJ//KMkDYeg1joU/kR95rAkdXVDdJl3IL G2ez2VqtI8t/bxuYku0roVDfUBscP1NT09bbEBqUFv+t3yMywdYKeZnWcoSniKtIabJnKLNO NLOhfdBAKx988IE6usOHDyerQD81ydNkFwZNjg/ftmhAYsTK+CSBmqHz3Xff6XP1mlUY0cmO c9x6znK9Ud5zNnZzj/y0uuZMold5VW5Q3J9z3Lqr1Wa7dnX0H3M0P7yh8Uw6VmpO4GLP/mo1 yku9BuWXHGpiSg7aaOosdL8jIy/8dASaPRWmFz3RwIInMTEx5C9JUaIeTfjP7YMGMTUffPBB NXiFIfv5559J7RRJrWS+EFYXeZrUJC+ybdEgJMuGGRslkjKqggUXUU7iFoiOi1QGBMhuHElT xvZTCkuPLPYYzOpOveds7BEcN7u6tknmH/iITl7lv38yd8CBP3KLYvk4kGJT6tJygue6WWtI 8ecSz0F5xU3QsOugjabaat9nKqoKrIilEGrENWOGsdfH0llc5MMNGzaMzACpD8ENqS5tld9g WSxSdj4jI+OTTz4hl1NdcOLTiKRWwMFzLrIZ0BAsmM8GGhAFOCNZUl1iYDXwbcnR5RIpx+IJ aRYG9URDQ13A/hkzNnTFpVfvWS49N4V+mJYTUlOrzVbX0CEBraQiMzLRdpH7AA0R8eci94Fa NMTbqDVnbOgRn76FlBkrYibqAtJglI1EGERPwMRY1pDgr910g2gOj5Lg6UsvvYQt0AfUeYKB k4vhs4EGycbu3bvRCurGpmwOF4dINog0kZJTXH5sift905y66O85rn3XBb4acejviqr8uvrq JqmBpxrr6qsKy9K2R09a7DF0+vquBinwcMGWARo0hMT+pVZ2D/8GUNIdK3KNODSBj02qCxmh 6AN0AHmeXP3790fWhP9woc1ZQRGcUHNKSb5lBhsznBERESTfyvoYXU1KdLMWV1ZgQxn9TIhQ Uvvss8+2bdumWnGVMcrELfT0yf1EU8qaeCctSvVgJxMPd9KkSYIC8kSqZoYisgpjl3gMm+Z0 49R1XYzdNm53Ou98xyX4fXGvDXh15obeJurLn2Y4W6/xf1m+SOFvz+Hi12nrujoFjKus+s9p PbOmQJ0y9dk6QgTionvMP3NwoFgvNavU6GEY6msybE2cnDETFk0a1p3D0fxqrFOmiZjDidov c+rLOpn50X97DJ/seH173g6+LxdXZEoezFphtqhXnZUtlkBaTpjDjpdnOPWZ7HD9Wb2nOHSZ s6GfW8gEVqQqt51osHjszsqLKO34NA97nxcnO3SdZP9/Z+OeuraXe9jE9NyImjptxKxd0YBj YU7WjAkxo4dxx0w7s207SjgfbdKc2neSIqUc8Nv0Dua/35WN99k9xc77+aXuj7fVvcbvLWiy kpQZ9xpZtR8aGEiOJhIIas1oFRUVkWLKEaDWEDH/XYaQqDPRC9OvUM1EzrRwktS+k/i0fPly QZMcMI5hGQvoVdeW8+Xptrpr6wyfOukAvwEHDU9bPU1g/qjImkwpwo4W7yC3tEV45qBEs4m4 q1atIn3XBHFN34m1TJs2TdRnU23Pnj1ton5a2jt9fSsYZe3ALhyRJZaaUtA8JFuLsBrPvb29 Za4sMGe5wUOWcDI3DtXHzhbPSbEE7EQD9d0TEiFuwZG0rVu3Ul/OJ47Kc4oN5qCD9AmWi/nE 0pFWqEymhdgFoAKLQ8kMC330BHzCPwXZKL2gLzDJkk9W5iEnOATn4iEskbvM6pSHrHgNhgRY XbPyFILj9C2RA8790RxprmJhcujQIXbMSQQhEiq+EUAIUtCEbZF+YQINBDTRPWJJxbsEhekv TfAcsYh26TW9oy/8REFk32PC6Aht8S87c7wo12U8ZMhgAPlIITM6vM5DwGdMk1kxDKQ5selC DzmFx2iJdT9tk9P81VdfsWhm5c1ACs5ACUEIUuw5lkny57p16+gDnBGo4KQ659pAPSmv8KGB npAIGQkcWIYnYrrgRtQh25HoJwWaJowj5g3K85133pkyZQozSXCIiaUhsnblJ14J7MADScyo HA6RCpXOANCLF198kS5wZINxYuwBCqFr/qSbnADmhC4jRySRCNW8efPI8CN0uHTpUv3KEzUu Mlq5yAXk4CWBfIK27JKLYxTgg6QbKJNLzLEDaD7//PMYRABBgX6JVauqF1XdAPN0U5wwY57w lQH4sbW1hSapy6JdZt0rr7zCQHDdf//9gIyHjC6RIdijPvFQRMR2v4AUmwnIjYg4x4pgj4dE 4YSg4IqHRO00oyP+PL3Tj2jEH5wk5CSkmKa8xq6EyGono4RD73xZgTKH4xgwntM2rIgcdgZp yJAh/CTokHBLhzXtCYmAJDEFqcBHGkQd4t+kJ1GAFAQFMoAde06gnpMXjBaqWHyyA3lJNPBZ aE6+Upl5z/CsWbOGMvxz6ob+Iy/+ZQh5wvymAsjgIcezQDNtERridC8KgygZTSA+PRp4RWS0 cpH5PnnyZArkkDJagk8uCqSAiDKVkTszlYYYJ/Lr0XAm0MCL7NELoDMb+SSGmLgzZ84k4C1o smsP3CGIwsCPIa4FQf4kQsg5RCrwCqFCwSezlE5hgCgzOZGb8FrgSsiEcKK0U5oxsuIHIUQu piOZPGg8yqCB6YLXRpnZJjsP9w899BDUuYAkGZS8RU84NyfPIkLTGBqk34AqI+1AtGsQDQgI fQAPHPcAXiLGrEEDMUfRkECDEA38Iya+qgGHP/74IzNPGBHExF4MO+DMY9QGMmIqsx3DgNHK W2+9ZfCQjAYNetRq0IA1gRMhH06Os/HNSR5z0CBmgqDPJY7zijJoAyiCJnDhUImw13RTWHbo 0ynQQIEewYAwhcwfLtE6Wk1QgCWplbVoYDjZqhBPIY12EqekQQPDIBwo+sNOIJiijJ4k+Crm EEaXSYCgGSQ0P6ZX0DGBBsZPWHdnZ2e2ykR9NnWEFJhznE0Qcw4VAgIAIpqAnqCQxCclVN1g EA3wf99994kZhiDwQsArf2LgkRFqAGxhyyjQHEChIThnbjFH9SHRlqIBkw8d0S8Cu3RBjoec CaqlkLqB3qHDidALtwCBSEuBPIWXKkAg4uUCDcKdgm0sI2igAgTlNAbfqFh+ZfMdEIjeMabS E9KiARLIDnGQUoZ/AAbFuQbQwA4hyl9oUYQlvpeDAmA8cOXYq8WYsXEsFLiZaMDiYG55F40n V1nMY0aIh0wITJVAAwYCWwho8HowwIhYbBM3iwa6ihPDJjIjAUHqi486YJiQNdYQq8+Hi3hC l/Fj0BOsU1B+WEyL0YCDhfVEn0GfvFk0BG4magkPhmE2RzcwSbDr5OZgxXCtmH7SUgAFgAK3 eAzoYFSg1A0aNCA3eo2lYJnDLGKAhPkDf0AEyTM3mEJ4exociD+tmDfYZjoACfwsiRrQwIYs gsN44x4yVOIFkCvUBhcqS0AEKTBsUtOCLc1nKwSuMdgAiz5j79Hb8qgnmSMclQQEME0F4SXR EPVBKk4ACl98GIWGeFF+x4kljGiIXmDvRI4k1Rhd9p+YOuhVseXGRQGLix6idfEQhUHfsRT0 nblo8HgPFk3+LxUwKXhjAiBlUebCZaYhrDs9gm2UE8NA68hTsCr6LrfK4FnqUbCOqy9QSO9w zkADICb1kjQzQZ85ACDwWhhR5CyCEyg2YCHcT+izAJF8sp5idtFTRl0IWYwaFgQvCvrG1sxG o0/iZfMPYRrEWufDFkkAjYKaxGcHlwTZpJfaIiKtqdyJhtZIr43fZZnGCUfsI9YN7aLXr23c no7c/wMgqa6ctBblNQAAAABJRU5ErkJggg== --------------3BC27CDA8207FF9DB61F9610-- --------------043E8ECEB94A4A199E7F0ECA--