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 62CED200C86 for ; Wed, 17 May 2017 01:39:55 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 61523160BC9; Tue, 16 May 2017 23:39:55 +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 34527160BC1 for ; Wed, 17 May 2017 01:39:54 +0200 (CEST) Received: (qmail 50503 invoked by uid 500); 16 May 2017 23:39:53 -0000 Mailing-List: contact users-help@apex.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@apex.apache.org Delivered-To: mailing list users@apex.apache.org Received: (qmail 50492 invoked by uid 99); 16 May 2017 23:39:53 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 16 May 2017 23:39:53 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id D8853C030F for ; Tue, 16 May 2017 23:39:52 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: -0.297 X-Spam-Level: X-Spam-Status: No, score=-0.297 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, 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] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=datatorrent-com.20150623.gappssmtp.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id Ptw1EYk2W9rJ for ; Tue, 16 May 2017 23:39:50 +0000 (UTC) Received: from mail-oi0-f44.google.com (mail-oi0-f44.google.com [209.85.218.44]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id F1D5E5FBC1 for ; Tue, 16 May 2017 23:39:49 +0000 (UTC) Received: by mail-oi0-f44.google.com with SMTP id w10so45237656oif.0 for ; Tue, 16 May 2017 16:39:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datatorrent-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=J/20XEm/93tIZ0Ra0e7+sEcxwmYiDaqSA+fE32yrK7w=; b=OgybgSU3l4MXk4ltZcRIILb6nyPkZhf8W5S/inO+rXMax30kJWr4ad60i3R8kFuG0g qTOx7AeeidklUsZNa59eCO1GSIwNx+4ww7qygIYFRdoe9KmvrXQHVuZvdZnrNsUzdEQe XppPCQfwHi5yEhfDWpFO61RjWnT9SO9aMvOgEF5ZTBlfzYhZSYjYZPWsEnw+nvhkLN0r aXB0UcDT+BbjrJaMF2eiwdeeHimAKSUHL9ckXwQOLOHK7kqMHIEbeSvUcIjI33bcMnEk On1Xt9cavNt4/CwCpWVTDwsev587ptBTNGSAls/9gA+zvJVIJzVaeKT9KFmZQUheW+VP Zs0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=J/20XEm/93tIZ0Ra0e7+sEcxwmYiDaqSA+fE32yrK7w=; b=OfapPuw3xEnjllt4b5ySknG2Krmhycafs+2jQraInMiKYbk1uQE1dNS6URQV34xfOS SiUBKQsvXG4/TaePTRh/iI7+PojMR5BHkKAeQr3vwDSzEBovy2xVJ7m9ocLkScfumTf+ q/z3tL+bXbZa78m/fsPNJRs0APNFT1ay973CTq7KsA9PzVWvDZLDfU9yygLzvVSINdDa KxtWzfGFNGZBt/18XNYgY86YD9E4qqc9vmGXy7dL5ImKsTVM8rymitCceKdPns/441MF mXIsxCDtTYpqjPwcyLF6KlJu07JpBVe5/sqQ+78D/bnBmNNhJ0rzrAGx7iSILNPjg61g JwFw== X-Gm-Message-State: AODbwcCSyrgI05Bizd3mIBTOhaUwRyZ604R2mRQItXy1DcevRlehHwsP RZaGpBvXkQJX99GKzL+hpPsBnVbcbH63QFY= X-Received: by 10.157.32.36 with SMTP id n33mr310265ota.81.1494977989196; Tue, 16 May 2017 16:39:49 -0700 (PDT) MIME-Version: 1.0 Received: by 10.157.0.42 with HTTP; Tue, 16 May 2017 16:39:48 -0700 (PDT) In-Reply-To: <1494964409597-1620.post@n6.nabble.com> References: <1494964409597-1620.post@n6.nabble.com> From: Sanjay Pujare Date: Tue, 16 May 2017 16:39:48 -0700 Message-ID: Subject: Re: HiveOutputModule creating extra directories, than specified, while saving data into HDFS To: users@apex.apache.org Content-Type: multipart/alternative; boundary="001a113d03b8fe51cf054facaf34" archived-at: Tue, 16 May 2017 23:39:55 -0000 --001a113d03b8fe51cf054facaf34 Content-Type: text/plain; charset="UTF-8" Vivek, Take a look at HiveOutputModule.populateDAG() ( https://github.com/apache/apex-malhar/blob/master/hive/src/main/java/org/apache/apex/malhar/hive/HiveOutputModule.java ) This is a sub-DAG with fsRolling (FSPojoToHiveOperator) and hiveStore ( FSPojoToHiveOperator) using the file-path you have supplied ( /common/data/test/accessCounts). If you look at the code in com.datatorrent.contrib.hive.AbstractFSRollingOutputOperator.setup(OperatorContext) (superclass of FSPojoToHiveOperator) it does construct a path for rolling temporary files along the lines you have observed. But the final output should be in the output path you specified if you wait long enough for the creation of those files. On Tue, May 16, 2017 at 12:53 PM, bhidevivek wrote: > H All, I am trying to use HiveOutput Module to insert the ingested data > into > hive external table. The table is already created with the same location as > /dt.application..operator.hiveOutput.prop.filePath/ property and > partition column is accessdate. With below configurations in property file, > the hdfs file structure I am expecting is > > /common/data/test/accessCounts > | > ----- accessdate=2017-05-15 > | > > ------- > > ------- > ----- accessdate=2017-05-16 > | > > ------- > > ------- > > but the actual structure look like > > /common/data/test/accessCounts/ ingest_appl>/10 > > | > > ----- 2017-05-15 > > | > > ------- > > ------- > > | > > ----- 2017-05-16 > > | > > ------- > > ------- > > Questions > 1. Why the yarn_application_id and some other extra directories are created > when it is no where specified in config > 2. If I want to achieve the structure I want, what other configurations I > will need to set? > > HiveOutputModule Configs > ================== > > > dt.application..operator.hiveOutput. > prop.filePath > > /common/data/test/accessCounts > > > dt.application..operator.hiveOutput. > prop.databaseUrl > > > > > dt.application..operator.hiveOutput. > prop.databaseDriver > > org.apache.hive.jdbc.HiveDriver > > > dt.application..operator.hiveOutput. > prop.tablename > > inserted> > > > > dt.application..operator.hiveOutput. > prop.hivePartitionColumns > > {accessdate} > > > dt.application..operator.hiveOutput. > prop.password > > > > > dt.application..operator.hiveOutput. > prop.userName > > > > > dt.application..operator.hiveOutput. > prop.hiveColumns > > {col1,col2,col3,col4} > > > > dt.application..operator.hiveOutput. > prop.hiveColumnDataTypes > > {STRING,STRING,STRING,STRING} > > > > dt.application..operator.hiveOutput. > prop.hivePartitionColumns > > {accessdate} > > > > dt.application..operator.hiveOutput.prop. > hivePartitionColumnDataTypes > > {STRING} > > > > dt.application..operator.hiveOutput. > prop.expressionsForHiveColumns > > {"getCol1()","getCol2()","getCol3()","getCol4()"} value> > > > > dt.application..operator.hiveOutput.prop. > expressionsForHivePartitionColumns > > {"getAccessdate()"} > > > > > -- > View this message in context: http://apache-apex-users-list. > 78494.x6.nabble.com/HiveOutputModule-creating-extra-directories-than- > specified-while-saving-data-into-HDFS-tp1620.html > Sent from the Apache Apex Users list mailing list archive at Nabble.com. > --001a113d03b8fe51cf054facaf34 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+Vml2ZWssPGRpdj48YnI+PC9kaXY+PGRpdj5UYWtlIGEgbG9vayBhdCBI aXZlT3V0cHV0TW9kdWxlLjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTpNb25hY287Zm9udC1zaXpl OjExcHgiPnBvcHVsYXRlREFHKCkgKDwvc3Bhbj48Zm9udCBmYWNlPSJNb25hY28iPjxzcGFuIHN0 eWxlPSJmb250LXNpemU6MTFweCI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9h cGV4LW1hbGhhci9ibG9iL21hc3Rlci9oaXZlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNoZS9hcGV4 L21hbGhhci9oaXZlL0hpdmVPdXRwdXRNb2R1bGUuamF2YSI+aHR0cHM6Ly9naXRodWIuY29tL2Fw YWNoZS9hcGV4LW1hbGhhci9ibG9iL21hc3Rlci9oaXZlL3NyYy9tYWluL2phdmEvb3JnL2FwYWNo ZS9hcGV4L21hbGhhci9oaXZlL0hpdmVPdXRwdXRNb2R1bGUuamF2YTwvYT4pPC9zcGFuPjwvZm9u dD48L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPGRpdiBjbGFzcz0iZ21haWxfZXh0cmEiPjxicj48ZGl2 IGNsYXNzPSJnbWFpbF9xdW90ZSI+VGhpcyBpcyBhIHN1Yi1EQUcgd2l0aCBmc1JvbGxpbmcgKDxz cGFuIHN0eWxlPSJmb250LWZhbWlseTpNb25hY287Zm9udC1zaXplOjExcHgiPkZTUG9qb1RvSGl2 ZU9wZXJhdG9yPC9zcGFuPikgYW5kIGhpdmVTdG9yZSAoPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5 Ok1vbmFjbztmb250LXNpemU6MTFweCI+RlNQb2pvVG9IaXZlT3BlcmF0b3I8L3NwYW4+KSB1c2lu ZyB0aGUgZmlsZS1wYXRoIHlvdSBoYXZlIHN1cHBsaWVkICg8c3BhbiBzdHlsZT0iZm9udC1zaXpl OjEyLjhweCI+L2NvbW1vbi9kYXRhL3Rlc3QvPC9zcGFuPjx3YnIgc3R5bGU9ImZvbnQtc2l6ZTox Mi44cHgiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MTIuOHB4Ij5hY2Nlc3NDb3VudHM8L3NwYW4+ KS7CoDwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48YnI+PC9kaXY+PGRpdiBjbGFzcz0i Z21haWxfcXVvdGUiPklmIHlvdSBsb29rIGF0IHRoZSBjb2RlIGluwqBjb20uZGF0YXRvcnJlbnQu Y29udHJpYi5oaXZlLkFic3RyYWN0RlNSb2xsaW5nT3V0cHV0T3BlcmF0b3Iuc2V0dXAoT3BlcmF0 b3JDb250ZXh0KSDCoCAoc3VwZXJjbGFzcyBvZiDCoEZTUG9qb1RvSGl2ZU9wZXJhdG9yKSBpdCBk b2VzIGNvbnN0cnVjdCBhIHBhdGggZm9yIHJvbGxpbmcgdGVtcG9yYXJ5IGZpbGVzIGFsb25nIHRo ZSBsaW5lcyB5b3UgaGF2ZSBvYnNlcnZlZC4gQnV0IHRoZSBmaW5hbCBvdXRwdXQgc2hvdWxkIGJl IGluIHRoZSBvdXRwdXQgcGF0aCB5b3Ugc3BlY2lmaWVkIGlmIHlvdSB3YWl0IGxvbmcgZW5vdWdo IGZvciB0aGUgY3JlYXRpb24gb2YgdGhvc2UgZmlsZXMuPC9kaXY+PGRpdiBjbGFzcz0iZ21haWxf cXVvdGUiPjxicj48L2Rpdj4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCjxkaXYgY2xh c3M9ImdtYWlsX3F1b3RlIj48YnI+PC9kaXY+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPjxicj48 L2Rpdj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+T24gVHVlLCBNYXkgMTYsIDIwMTcgYXQgMTI6 NTMgUE0sIGJoaWRldml2ZWsgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86Ymhp ZGUudml2ZWtAZ21haWwuY29tIiB0YXJnZXQ9Il9ibGFuayI+YmhpZGUudml2ZWtAZ21haWwuY29t PC9hPiZndDs8L3NwYW4+IHdyb3RlOjxicj48YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUi IHN0eWxlPSJtYXJnaW46MHB4IDBweCAwcHggMC44ZXg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJn YigyMDQsMjA0LDIwNCk7cGFkZGluZy1sZWZ0OjFleCI+SCBBbGwsIEkgYW0gdHJ5aW5nIHRvIHVz ZSBIaXZlT3V0cHV0IE1vZHVsZSB0byBpbnNlcnQgdGhlIGluZ2VzdGVkIGRhdGEgaW50bzxicj4N CmhpdmUgZXh0ZXJuYWwgdGFibGUuIFRoZSB0YWJsZSBpcyBhbHJlYWR5IGNyZWF0ZWQgd2l0aCB0 aGUgc2FtZSBsb2NhdGlvbiBhczxicj4NCi9kdC5hcHBsaWNhdGlvbi4mbHQ7YXBwX25hbWUmZ3Q7 Ljx3YnI+b3BlcmF0b3IuaGl2ZU91dHB1dC5wcm9wLjx3YnI+ZmlsZVBhdGgvIHByb3BlcnR5IGFu ZDxicj4NCnBhcnRpdGlvbiBjb2x1bW4gaXMgYWNjZXNzZGF0ZS4gV2l0aCBiZWxvdyBjb25maWd1 cmF0aW9ucyBpbiBwcm9wZXJ0eSBmaWxlLDxicj4NCnRoZSBoZGZzIGZpbGUgc3RydWN0dXJlIEkg YW0gZXhwZWN0aW5nIGlzPGJyPg0KPGJyPg0KL2NvbW1vbi9kYXRhL3Rlc3QvYWNjZXNzQ291bnRz PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0tLS0tIGFjY2Vzc2Rh dGU9MjAxNy0wNS0xNTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIHw8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCAtLS0tLS0tICZsdDtmaWwxJmd0Ozxicj4NCsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0tLS0tLS0gJmx0O2ZpbDImZ3Q7PGJy Pg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgLS0tLS0gYWNjZXNzZGF0ZT0yMDE3LTA1LTE2PGJyPg0KwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDxicj4NCsKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC0tLS0tLS0gJmx0 O2ZpbDEmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgLS0tLS0tLSAmbHQ7ZmlsMiZndDs8YnI+DQo8YnI+DQpidXQgdGhlIGFjdHVhbCBz dHJ1Y3R1cmUgbG9vayBsaWtlPGJyPg0KPGJyPg0KL2NvbW1vbi9kYXRhL3Rlc3QvPHdicj5hY2Nl c3NDb3VudHMvJmx0O3lhcm5fPHdicj5hcHBsaWNhdGlvbl9pZF9mb3JfYXBleF88d2JyPmluZ2Vz dF9hcHBsJmd0Oy8xMDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCsKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLS0t LS0gMjAxNy0wNS0xNTxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLS0tLS0tLSAmbHQ7ZmlsMSZndDs8YnI+DQrCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0tLS0tLS0gJmx0O2ZpbDImZ3Q7PGJyPg0KwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgfDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgLS0tLS0gMjAxNy0wNS0xNjxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgfDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg LS0tLS0tLSAmbHQ7ZmlsMSZndDs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoC0t LS0tLS0gJmx0O2ZpbDImZ3Q7PGJyPg0KPGJyPg0KUXVlc3Rpb25zPGJyPg0KMS4gV2h5IHRoZSB5 YXJuX2FwcGxpY2F0aW9uX2lkIGFuZCBzb21lIG90aGVyIGV4dHJhIGRpcmVjdG9yaWVzIGFyZSBj cmVhdGVkPGJyPg0Kd2hlbiBpdCBpcyBubyB3aGVyZSBzcGVjaWZpZWQgaW4gY29uZmlnPGJyPg0K Mi4gSWYgSSB3YW50IHRvIGFjaGlldmUgdGhlIHN0cnVjdHVyZSBJIHdhbnQsIHdoYXQgb3RoZXIg Y29uZmlndXJhdGlvbnMgSTxicj4NCndpbGwgbmVlZCB0byBzZXQ/PGJyPg0KPGJyPg0KSGl2ZU91 dHB1dE1vZHVsZSBDb25maWdzPGJyPg0KPT09PT09PT09PT09PT09PT09PGJyPg0KPGJyPg0KJmx0 O3Byb3BlcnR5Jmd0Ozxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDtuYW1lJmd0O2R0 LmFwcGxpY2F0aW9uLiZsdDthcHBfPHdicj5uYW1lJmd0Oy5vcGVyYXRvci5oaXZlT3V0cHV0Ljx3 YnI+cHJvcC5maWxlUGF0aDxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDsvbmFtZSZn dDs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7dmFsdWUmZ3Q7L2NvbW1vbi9kYXRh L3Rlc3QvPHdicj5hY2Nlc3NDb3VudHMmbHQ7L3ZhbHVlJmd0Ozxicj4NCsKgIMKgIMKgIMKgICZs dDsvcHJvcGVydHkmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0O3Byb3BlcnR5Jmd0Ozxicj4NCsKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDtuYW1lJmd0O2R0LmFwcGxpY2F0aW9uLiZsdDthcHBf PHdicj5uYW1lJmd0Oy5vcGVyYXRvci5oaXZlT3V0cHV0Ljx3YnI+cHJvcC5kYXRhYmFzZVVybDxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDsvbmFtZSZndDs8YnI+DQrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCAmbHQ7dmFsdWUmZ3Q7Jmx0O2pkYmNfdXJsJmd0OyZsdDsvdmFsdWUmZ3Q7 PGJyPg0KwqAgwqAgwqAgwqAgJmx0Oy9wcm9wZXJ0eSZndDs8YnI+DQrCoCDCoCDCoCDCoCAmbHQ7 cHJvcGVydHkmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgJmx0O25hbWUmZ3Q7ZHQu YXBwbGljYXRpb24uJmx0O2FwcF88d2JyPm5hbWUmZ3Q7Lm9wZXJhdG9yLmhpdmVPdXRwdXQuPHdi cj5wcm9wLmRhdGFiYXNlRHJpdmVyPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgJmx0Oy9u YW1lJmd0Ozxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDt2YWx1ZSZndDtvcmcuYXBh Y2hlLmhpdmUuamRiYy48d2JyPkhpdmVEcml2ZXImbHQ7L3ZhbHVlJmd0Ozxicj4NCsKgIMKgIMKg IMKgICZsdDsvcHJvcGVydHkmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0O3Byb3BlcnR5Jmd0Ozxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDtuYW1lJmd0O2R0LmFwcGxpY2F0aW9uLiZs dDthcHBfPHdicj5uYW1lJmd0Oy5vcGVyYXRvci5oaXZlT3V0cHV0Ljx3YnI+cHJvcC50YWJsZW5h bWU8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7L25hbWUmZ3Q7PGJyPg0KwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgJmx0O3ZhbHVlJmd0OyZsdDtoaXZlIHRhYmxlIG5hbWUgd2hlcmUg cmVjb3JkcyBuZWVkcyB0byBiZSBpbnNlcnRlZCZndDsmbHQ7L3ZhbHVlJmd0Ozxicj4NCsKgIMKg IMKgIMKgICZsdDsvcHJvcGVydHkmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0O3Byb3BlcnR5Jmd0 Ozxicj4NCjxicj4NCiZsdDtuYW1lJmd0O2R0LmFwcGxpY2F0aW9uLiZsdDthcHBfPHdicj5uYW1l Jmd0Oy5vcGVyYXRvci5oaXZlT3V0cHV0Ljx3YnI+cHJvcC5oaXZlUGFydGl0aW9uQ29sdW1uczxi cj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDsvbmFtZSZndDs8YnI+DQrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCAmbHQ7dmFsdWUmZ3Q7e2FjY2Vzc2RhdGV9Jmx0Oy92YWx1ZSZndDs8YnI+ DQrCoCDCoCDCoCDCoCAmbHQ7L3Byb3BlcnR5Jmd0Ozxicj4NCsKgIMKgIMKgIMKgICZsdDtwcm9w ZXJ0eSZndDs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7bmFtZSZndDtkdC5hcHBs aWNhdGlvbi4mbHQ7YXBwXzx3YnI+bmFtZSZndDsub3BlcmF0b3IuaGl2ZU91dHB1dC48d2JyPnBy b3AucGFzc3dvcmQ8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7L25hbWUmZ3Q7PGJy Pg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgJmx0O3ZhbHVlJmd0OyZsdDtoaXZlIGNvbm5lY3Rp b24gcGFzc3dvcmQmZ3Q7Jmx0Oy92YWx1ZSZndDs8YnI+DQrCoCDCoCDCoCDCoCAmbHQ7L3Byb3Bl cnR5Jmd0Ozxicj4NCsKgIMKgIMKgIMKgICZsdDtwcm9wZXJ0eSZndDs8YnI+DQrCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCAmbHQ7bmFtZSZndDtkdC5hcHBsaWNhdGlvbi4mbHQ7YXBwXzx3YnI+bmFt ZSZndDsub3BlcmF0b3IuaGl2ZU91dHB1dC48d2JyPnByb3AudXNlck5hbWU8YnI+DQrCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCAmbHQ7L25hbWUmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgJmx0O3ZhbHVlJmd0OyZsdDtoaXZlIGNvbm5lY3Rpb24gdXNlciZndDsmbHQ7L3ZhbHVlJmd0 Ozxicj4NCsKgIMKgIMKgIMKgICZsdDsvcHJvcGVydHkmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0 O3Byb3BlcnR5Jmd0Ozxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDtuYW1lJmd0O2R0 LmFwcGxpY2F0aW9uLiZsdDthcHBfPHdicj5uYW1lJmd0Oy5vcGVyYXRvci5oaXZlT3V0cHV0Ljx3 YnI+cHJvcC5oaXZlQ29sdW1uczxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZsdDsvbmFt ZSZndDs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7dmFsdWUmZ3Q7e2NvbDEsY29s Mixjb2wzLGNvbDR9Jmx0Oy88d2JyPnZhbHVlJmd0Ozxicj4NCsKgIMKgIMKgIMKgICZsdDsvcHJv cGVydHkmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0O3Byb3BlcnR5Jmd0Ozxicj4NCjxicj4NCiZs dDtuYW1lJmd0O2R0LmFwcGxpY2F0aW9uLiZsdDthcHBfPHdicj5uYW1lJmd0Oy5vcGVyYXRvci5o aXZlT3V0cHV0Ljx3YnI+cHJvcC5oaXZlQ29sdW1uRGF0YVR5cGVzPGJyPg0KwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgJmx0Oy9uYW1lJmd0Ozxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZs dDt2YWx1ZSZndDt7U1RSSU5HLFNUUklORyxTVFJJTkcsPHdicj5TVFJJTkd9Jmx0Oy92YWx1ZSZn dDs8YnI+DQrCoCDCoCDCoCDCoCAmbHQ7L3Byb3BlcnR5Jmd0Ozxicj4NCsKgIMKgIMKgIMKgICZs dDtwcm9wZXJ0eSZndDs8YnI+DQo8YnI+DQombHQ7bmFtZSZndDtkdC5hcHBsaWNhdGlvbi4mbHQ7 YXBwXzx3YnI+bmFtZSZndDsub3BlcmF0b3IuaGl2ZU91dHB1dC48d2JyPnByb3AuaGl2ZVBhcnRp dGlvbkNvbHVtbnM8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7L25hbWUmZ3Q7PGJy Pg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgJmx0O3ZhbHVlJmd0O3thY2Nlc3NkYXRlfSZsdDsv dmFsdWUmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0Oy9wcm9wZXJ0eSZndDs8YnI+DQrCoCDCoCDC oCDCoCAmbHQ7cHJvcGVydHkmZ3Q7PGJyPg0KPGJyPg0KJmx0O25hbWUmZ3Q7ZHQuYXBwbGljYXRp b24uJmx0O2FwcF88d2JyPm5hbWUmZ3Q7Lm9wZXJhdG9yLmhpdmVPdXRwdXQuPHdicj5wcm9wLjx3 YnI+aGl2ZVBhcnRpdGlvbkNvbHVtbkRhdGFUeXBlczxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgICZsdDsvbmFtZSZndDs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCAmbHQ7dmFsdWUm Z3Q7e1NUUklOR30mbHQ7L3ZhbHVlJmd0Ozxicj4NCsKgIMKgIMKgIMKgICZsdDsvcHJvcGVydHkm Z3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0O3Byb3BlcnR5Jmd0Ozxicj4NCjxicj4NCiZsdDtuYW1l Jmd0O2R0LmFwcGxpY2F0aW9uLiZsdDthcHBfPHdicj5uYW1lJmd0Oy5vcGVyYXRvci5oaXZlT3V0 cHV0Ljx3YnI+cHJvcC5leHByZXNzaW9uc0ZvckhpdmVDb2x1bW5zPGJyPg0KwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgJmx0Oy9uYW1lJmd0Ozxicj4NCsKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgICZs dDt2YWx1ZSZndDt7JnF1b3Q7Z2V0Q29sMSgpJnF1b3Q7LCZxdW90O2dldENvbDIoKTx3YnI+JnF1 b3Q7LCZxdW90O2dldENvbDMoKSZxdW90OywmcXVvdDtnZXRDb2w0KCkmcXVvdDt9Jmx0Oy88d2Jy PnZhbHVlJmd0Ozxicj4NCsKgIMKgIMKgIMKgICZsdDsvcHJvcGVydHkmZ3Q7PGJyPg0KwqAgwqAg wqAgwqAgJmx0O3Byb3BlcnR5Jmd0Ozxicj4NCjxicj4NCiZsdDtuYW1lJmd0O2R0LmFwcGxpY2F0 aW9uLiZsdDthcHBfPHdicj5uYW1lJmd0Oy5vcGVyYXRvci5oaXZlT3V0cHV0Ljx3YnI+cHJvcC48 d2JyPmV4cHJlc3Npb25zRm9ySGl2ZVBhcnRpdGlvbkNvbDx3YnI+dW1uczxicj4NCsKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgICZsdDsvbmFtZSZndDs8YnI+DQrCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCAmbHQ7dmFsdWUmZ3Q7eyZxdW90O2dldEFjY2Vzc2RhdGUoKSZxdW90O30mbHQ7Lzx3YnI+dmFs dWUmZ3Q7PGJyPg0KwqAgwqAgwqAgwqAgJmx0Oy9wcm9wZXJ0eSZndDs8YnI+DQo8YnI+DQo8YnI+ DQo8YnI+DQotLTxicj4NClZpZXcgdGhpcyBtZXNzYWdlIGluIGNvbnRleHQ6IDxhIGhyZWY9Imh0 dHA6Ly9hcGFjaGUtYXBleC11c2Vycy1saXN0Ljc4NDk0Lng2Lm5hYmJsZS5jb20vSGl2ZU91dHB1 dE1vZHVsZS1jcmVhdGluZy1leHRyYS1kaXJlY3Rvcmllcy10aGFuLXNwZWNpZmllZC13aGlsZS1z YXZpbmctZGF0YS1pbnRvLUhERlMtdHAxNjIwLmh0bWwiIHJlbD0ibm9yZWZlcnJlciIgdGFyZ2V0 PSJfYmxhbmsiPmh0dHA6Ly9hcGFjaGUtYXBleC11c2Vycy1saXN0Ljx3YnI+Nzg0OTQueDYubmFi YmxlLmNvbS88d2JyPkhpdmVPdXRwdXRNb2R1bGUtY3JlYXRpbmctPHdicj5leHRyYS1kaXJlY3Rv cmllcy10aGFuLTx3YnI+c3BlY2lmaWVkLXdoaWxlLXNhdmluZy1kYXRhLTx3YnI+aW50by1IREZT LXRwMTYyMC5odG1sPC9hPjxicj4NClNlbnQgZnJvbSB0aGUgQXBhY2hlIEFwZXggVXNlcnMgbGlz dCBtYWlsaW5nIGxpc3QgYXJjaGl2ZSBhdCBOYWJibGUuY29tLjxicj4NCjwvYmxvY2txdW90ZT48 L2Rpdj48YnI+PC9kaXY+PC9kaXY+DQo= --001a113d03b8fe51cf054facaf34--