From cb2a3d6c9382cfa3649e8cd5de213b160e61424c Mon Sep 17 00:00:00 2001 From: ShimonSte Date: Thu, 9 Apr 2026 15:20:07 +0300 Subject: [PATCH 1/5] Update AWS Glue connector documentation - Update activation instructions to use AWS Marketplace usage instructions link - Add supported Glue versions: Glue 4 (Spark 3.3) and Glue 5 (Spark 3.5) - Simplify manual installation to reference only the Spark connector JAR - Fix code examples to use proper Glue patterns (custom.spark with DynamicFrames) - Add Visual Editor example showing drag-and-drop connector usage - Add screenshots for marketplace usage instructions and visual editor --- .../data-ingestion/aws-glue/index.md | 178 ++++++++++-------- .../aws-glue/glue-studio-visual-editor.png | Bin 0 -> 51483 bytes .../marketplace-usage-instructions.png | Bin 0 -> 51070 bytes 3 files changed, 98 insertions(+), 80 deletions(-) create mode 100644 static/images/integrations/data-ingestion/aws-glue/glue-studio-visual-editor.png create mode 100644 static/images/integrations/data-ingestion/aws-glue/marketplace-usage-instructions.png diff --git a/docs/integrations/data-ingestion/aws-glue/index.md b/docs/integrations/data-ingestion/aws-glue/index.md index 774a3a0fa69..a5fc449c72c 100644 --- a/docs/integrations/data-ingestion/aws-glue/index.md +++ b/docs/integrations/data-ingestion/aws-glue/index.md @@ -16,6 +16,8 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import notebook_connections_config from '@site/static/images/integrations/data-ingestion/aws-glue/notebook-connections-config.png'; import dependent_jars_path_option from '@site/static/images/integrations/data-ingestion/aws-glue/dependent_jars_path_option.png'; +import marketplace_usage_instructions from '@site/static/images/integrations/data-ingestion/aws-glue/marketplace-usage-instructions.png'; +import glue_studio_visual_editor from '@site/static/images/integrations/data-ingestion/aws-glue/glue-studio-visual-editor.png'; import ClickHouseSupportedBadge from '@theme/badges/ClickHouseSupported'; # Integrating Amazon Glue with ClickHouse and Spark @@ -40,7 +42,9 @@ To access the connector in your account, subscribe to the ClickHouse AWS Glue Co Ensure your Glue job’s IAM role has the necessary permissions, as described in the minimum privileges [guide](https://docs.aws.amazon.com/glue/latest/dg/getting-started-min-privs-job.html#getting-started-min-privs-connectors). 3.

Activate the Connector & Create a Connection

-You can activate the connector and create a connection directly by clicking [this link](https://console.aws.amazon.com/gluestudio/home#/connector/add-connection?connectorName="ClickHouse%20AWS%20Glue%20Connector"&connectorType="Spark"&connectorUrl=https://709825985650.dkr.ecr.us-east-1.amazonaws.com/clickhouse/clickhouse-glue:1.0.0&connectorClassName="com.clickhouse.spark.ClickHouseCatalog"), which opens the Glue connection creation page with key fields pre-filled. Give the connection a name, and press create (no need to provide the ClickHouse connection details at this stage). +After subscribing, select the Glue version that matches your job requirements. In the **Additional details** section, under **Usage instructions**, click the link to **Open Glue Studio - Add ClickHouse connector**. This opens the Glue connection creation page with key fields pre-filled. Give the connection a name and press create (no need to provide the ClickHouse connection details at this stage). + +AWS Marketplace usage instructions for ClickHouse Glue connector 4.

Use in Glue Job

In your Glue job, select the `Job details` tab, and expend the `Advanced properties` window. Under the `Connections` section, select the connection you just created. The connector automatically injects the required JARs into the job runtime. @@ -48,13 +52,15 @@ In your Glue job, select the `Job details` tab, and expend the `Advanced propert Glue Notebook connections config :::note -The JARs used in the Glue connector are built for `Spark 3.3`, `Scala 2`, and `Python 3`. Make sure to select these versions when configuring your Glue job. +Make sure to select the connector version that matches your Glue job configuration: +- **Glue 4**: Spark 3.3, Scala 2, Python 3 +- **Glue 5**: Spark 3.5, Scala 2, Python 3 ::: To add the required jars manually, please follow the following: -1. Upload the following jars to an S3 bucket - `clickhouse-jdbc-0.6.X-all.jar` and `clickhouse-spark-runtime-3.X_2.X-0.8.X.jar`. +1. Upload the latest Spark connector JAR (`clickhouse-spark-runtime-3.X_2.X-0.10.X.jar`) to an S3 bucket. 2. Make sure the Glue job has access to this bucket. 3. Under the `Job details` tab, scroll down and expend the `Advanced properties` drop down, and fill the jars path in `Dependent JARs path`: @@ -65,70 +71,68 @@ To add the required jars manually, please follow the following: ## Examples {#example} - + + +You can use the ClickHouse connector as either a source or a target in the Glue Studio visual editor. Simply drag the ClickHouse Spark Connector component onto the canvas and connect it to your data pipeline. + +Glue Studio visual editor with ClickHouse connector + + + ```java import com.amazonaws.services.glue.GlueContext -import com.amazonaws.services.glue.util.GlueArgParser -import com.amazonaws.services.glue.util.Job -import com.clickhouseScala.Native.NativeSparkRead.spark -import org.apache.spark.sql.SparkSession - +import com.amazonaws.services.glue.util.{GlueArgParser, Job, JsonOptions} +import org.apache.spark.SparkContext import scala.collection.JavaConverters._ -import org.apache.spark.sql.types._ -import org.apache.spark.sql.functions._ object ClickHouseGlueExample { - def main(sysArgs: Array[String]) { + def main(sysArgs: Array[String]): Unit = { val args = GlueArgParser.getResolvedOptions(sysArgs, Seq("JOB_NAME").toArray) - val sparkSession: SparkSession = SparkSession.builder - .config("spark.sql.catalog.clickhouse", "com.clickhouse.spark.ClickHouseCatalog") - .config("spark.sql.catalog.clickhouse.host", "") - .config("spark.sql.catalog.clickhouse.protocol", "https") - .config("spark.sql.catalog.clickhouse.http_port", "") - .config("spark.sql.catalog.clickhouse.user", "default") - .config("spark.sql.catalog.clickhouse.password", "") - .config("spark.sql.catalog.clickhouse.database", "default") - // for ClickHouse cloud - .config("spark.sql.catalog.clickhouse.option.ssl", "true") - .config("spark.sql.catalog.clickhouse.option.ssl_mode", "NONE") - .getOrCreate - - val glueContext = new GlueContext(sparkSession.sparkContext) + val sc = new SparkContext() + val glueContext = new GlueContext(sc) Job.init(args("JOB_NAME"), glueContext, args.asJava) - import sparkSession.implicits._ - - val url = "s3://{path_to_cell_tower_data}/cell_towers.csv.gz" - - val schema = StructType(Seq( - StructField("radio", StringType, nullable = false), - StructField("mcc", IntegerType, nullable = false), - StructField("net", IntegerType, nullable = false), - StructField("area", IntegerType, nullable = false), - StructField("cell", LongType, nullable = false), - StructField("unit", IntegerType, nullable = false), - StructField("lon", DoubleType, nullable = false), - StructField("lat", DoubleType, nullable = false), - StructField("range", IntegerType, nullable = false), - StructField("samples", IntegerType, nullable = false), - StructField("changeable", IntegerType, nullable = false), - StructField("created", TimestampType, nullable = false), - StructField("updated", TimestampType, nullable = false), - StructField("averageSignal", IntegerType, nullable = false) + + val clickHouseOptions = JsonOptions(Map( + "className" -> "clickhouse", + "host" -> "", + "http_port" -> "", + "protocol" -> "https", + "user" -> "default", + "password" -> "", + "database" -> "default", + "table" -> "example_table", + // for ClickHouse Cloud + "ssl" -> "true" )) - val df = sparkSession.read - .option("header", "true") - .schema(schema) - .csv(url) + // Read from ClickHouse + val source = glueContext.getSource( + connectionType = "custom.spark", + connectionOptions = clickHouseOptions, + transformationContext = "clickhouseSource" + ) + val dyf = source.getDynamicFrame() // Write to ClickHouse - df.writeTo("clickhouse.default.cell_towers").append() + val writeOptions = JsonOptions(Map( + "className" -> "clickhouse", + "host" -> "", + "http_port" -> "", + "protocol" -> "https", + "user" -> "default", + "password" -> "", + "database" -> "default", + "table" -> "target_table", + "ssl" -> "true" + )) + glueContext.getSink( + connectionType = "custom.spark", + connectionOptions = writeOptions + ).writeDynamicFrame(dyf) - // Read from ClickHouse - val dfRead = spark.sql("select * from clickhouse.default.cell_towers") Job.commit() } } @@ -139,47 +143,61 @@ object ClickHouseGlueExample { ```python import sys -from awsglue.transforms import * from awsglue.utils import getResolvedOptions from pyspark.context import SparkContext from awsglue.context import GlueContext from awsglue.job import Job -from pyspark.sql import Row - -## @params: [JOB_NAME] args = getResolvedOptions(sys.argv, ['JOB_NAME']) sc = SparkContext() glueContext = GlueContext(sc) logger = glueContext.get_logger() -spark = glueContext.spark_session job = Job(glueContext) job.init(args['JOB_NAME'], args) -spark.conf.set("spark.sql.catalog.clickhouse", "com.clickhouse.spark.ClickHouseCatalog") -spark.conf.set("spark.sql.catalog.clickhouse.host", "") -spark.conf.set("spark.sql.catalog.clickhouse.protocol", "https") -spark.conf.set("spark.sql.catalog.clickhouse.http_port", "") -spark.conf.set("spark.sql.catalog.clickhouse.user", "default") -spark.conf.set("spark.sql.catalog.clickhouse.password", "") -spark.conf.set("spark.sql.catalog.clickhouse.database", "default") -spark.conf.set("spark.clickhouse.write.format", "json") -spark.conf.set("spark.clickhouse.read.format", "arrow") -# for ClickHouse cloud -spark.conf.set("spark.sql.catalog.clickhouse.option.ssl", "true") -spark.conf.set("spark.sql.catalog.clickhouse.option.ssl_mode", "NONE") - -# Create DataFrame -data = [Row(id=11, name="John"), Row(id=12, name="Doe")] -df = spark.createDataFrame(data) - -# Write DataFrame to ClickHouse -df.writeTo("clickhouse.default.example_table").append() - -# Read DataFrame from ClickHouse -df_read = spark.sql("select * from clickhouse.default.example_table") -logger.info(str(df.take(10))) +clickhouse_options = { + "className": "clickhouse", + "host": "", + "http_port": "", + "protocol": "https", + "user": "default", + "password": "", + "database": "default", + "table": "example_table", + # for ClickHouse Cloud + "ssl": "true" +} + +# Read from ClickHouse +source = glueContext.create_dynamic_frame.from_options( + connection_type="custom.spark", + connection_options=clickhouse_options, + transformation_ctx="clickhouse_source" +) +dyf = source + +logger.info(f"Read {dyf.count()} rows from ClickHouse") + +# Write to ClickHouse +write_options = { + "className": "clickhouse", + "host": "", + "http_port": "", + "protocol": "https", + "user": "default", + "password": "", + "database": "default", + "table": "target_table", + "ssl": "true" +} + +glueContext.write_dynamic_frame.from_options( + frame=dyf, + connection_type="custom.spark", + connection_options=write_options, + transformation_ctx="clickhouse_sink" +) job.commit() ``` diff --git a/static/images/integrations/data-ingestion/aws-glue/glue-studio-visual-editor.png b/static/images/integrations/data-ingestion/aws-glue/glue-studio-visual-editor.png new file mode 100644 index 0000000000000000000000000000000000000000..725e5c2c174a9a4f6d6ea53d8aabe12366521302 GIT binary patch literal 51483 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 literal 0 HcmV?d00001 diff --git a/static/images/integrations/data-ingestion/aws-glue/marketplace-usage-instructions.png b/static/images/integrations/data-ingestion/aws-glue/marketplace-usage-instructions.png new file mode 100644 index 0000000000000000000000000000000000000000..f7eb987e924e08e403f298fa3a6c8bb8ee37a86b GIT binary patch literal 51070 zcmeFY2UJt*w=WtMQBcHCrAr_nB_N^qEjp%-ZhMQ|&< zL+D+q(xof)vd?+{{r|uB#yMl$G48$Ry)n*Q$y&dx?_2Ymb7hs;zN^WruYiYe6_^U( z#ti`A#`OZYTDma_Q&cp6j?_|tsVo0`Ll@whNS*=!PR<@~NL7W$FAR+y-}(CQNBq@h zVdehnukC+8*L;u1|Kbh+j6nW_KL6QnGL*Hu)pds-*I!Pz>%p&urMbp5w*QWw{Dm$5 z9n1WMy**xeT=#kY7k1M{DqdsMHGX3IFWB;5u+=NKzxqdC_mOdO^!#hAzvwTC?^`?T z>0EE`UVoVZ?f@h}6`=5!{@1^+$t4#6kT?PWZpHs|pCuLmAcOz_kEZ{*kMkV>Kp6}G z;0OP?@1N)7m4%zdzp*2^Uf;B_0RZ+30RRd^0DyW303bL1x3=rme<0iA>n7%Fxm>On zTYw|L8t@nZ12_Y$00P$t3U~?-0*GDB02BeYZr=Rsb4?`IpWAnD-zFisO@8MN>D~L} z_wU~$zju$~0o6l_2fzpS?meV?2&AT=rKP=3N&kqB<`ESQEzMs{Zrr*)hU7Nc?b~ED z6!$1-{-^2cPXO@l4KWhHts5Y~P2i1Nz#CU>0G8|1ee>3hYx;+_fZKO(klwjPLU!}I zS?eJHKzid^c+xw!Nl9+sB)J2)ar0UQ(mOz^yX@3LG_-Ue?IaH9GabEQBE7JMM-`cf zn1Nfhg6kj2k2t}KNY4ZYNy|D3cTCFrn$c^9jDL-EJ>K7=UH{+z#_+mL6nHJm&6_uF zUTb>m*6qK#+yLHWza>OP^6WM>NSl@eYC&_&IYIdIFtX~0rF-K0#j9z+{ae?E0dD~T z@_-A(zwrJ4CS>c41s9Cg6=8xC(vt#}e!FL63@e6n=0~{;%Z7)m`YDsyL(y6=&=nw3 z#G6Iy3NV_4rCeebH2;wy%H>Kq9|tto?cFl!-4;Fo$+cergrs1c2|yr_-V$_n`{8^` z+zIvNvn#+5>)(j$cM8bpz)~`EPfZtyKjnV-_AxDQn z^*Q^Lm%sl5{2_AV{k_faR{&S}6}F2Tf1{grw-o3nhA)?by5vu9{R5B;kp>G^=3TU1 z0pf!W@BEF(-cj5&H&;E2xB@)B0(__ZC#3$3@nOr~BLBDW|9$5F`?C4(8}|RVPa7cX zK22%_#$(#&JUxIM4Zi{;JP9AXe7nmwTJNZ3q27h26sZ&`Bd|Xlj6#Uk$4L~vZ?Vyy zdv$`O#a}YUZEvYoK?U6kPJR~vuO=(NTGG{F5%(3)>%dhCuhLZIaK>G=3SKd$W zd^2cR;m^#!tR@F%d;P})X3-jbB?%1h<7JgnI=CA_6*?7ba#`5Cy1LLs+69mtFFCsN zhaCMV5_X7wX7!!zJfUPHNB-WfaPErcIWS!e+6ud{PKjyL6de$+RR zQ-a!aE1cSFtv*hJpxH7h&c!5eL2EfBc?XxIxAFnQwL!*D`(L-4cKtBMd@Qs_E=oR5 z^GsCihU?}tn!xpr^xy8!SU*f0jZy0qi6gJ>b?fCE9WnruCqgtJ1I#H&oDokrw6Vo7 zNO)WyY2UTQH29=WnzFRV6}w)WTjS6X0lAALYuiBuZiFYP{6$JAl%@Y)Z}~gYenrd_ zG1gY_R3G%f{L2-B!S^_CmsWA_Js+PSZ7x5z1^oO=smFlvBPMOv3$8C)`+WsLrBC>f zAw8*I%NOn^)xMY8pu(|k7$K_I(kS9dSb^yy_F`bYL@VNj9A-GUJA%8_IFQ43#a~}3 z_xjIFc$E3qz|5NlQg25t$h<;6eq(ozFo-LWp#+ARa_eWy5X6QmI8BBdldJsZEjWt! z$pxxAh^a0Vk}D|>6!px)_x2srb((&Dl!2Z+%$poLc3Oixhy>jHi|c<0MRm`tDvDZ9 zbufv~$iErh<-7u%C6GO1Nw@-pmCGl4Uxe~|$)=l!Pt#uky23k;Wh{d{Y%j{r&&rlDyMzZN-|~sJkAE3r{dI-j%AEdZM5`CWbB`*_>4LQ&o+hWW!XL(iXrWEkA8j6U>s{{cyu34nu~_H=6big$GO9i=o7WB zzER}{ZzwJRHN9zFfb+O4M-{f0WJ`xMn7rtXExP!&=u_mAQs#wT>o@Uz59h>qLx{uMvt6;q<~&DdC9?$8 zUH)2u)&~)hGmQBVeWxztw&kj%<JaX5-=pX`rp4F*T11 zvv2R+rztLqd&r_0%>6-kh4AoW;RUP7J{P0XH}<<)bB<=4Vz&x=M?d=UmpZptdq^tv zmhop;kgDW?8D)R=m!-DDrr@xxfZo=EZQe0ksrTbqzx9h;s;~~|#Y%wuF&Kwl^*ZH<`*lQGBlW!F%piMgn(#`!$rmmJ}fwoVj=-#UGqz|%wAV4ZAMINA@ny2muj6h%;*+{=|l|Z`WUnXI~17A zxoOZ#E1vt>f>vO<8AqESdc?F~hJ~r~W`TuwY)?gp3&j;cf3gw%V`V=nB$Xw4uu*NW z;o%CS=ZII`uqBJJuogm^rMU<9Vf)^OF9okV50=N}Jr2`6Vl2R@Ht4)V?{>fy(mS=@E;|>If#Z7EnIrQEvEIB1^VvdGRv%Em{?oP+3oxkO-7D#r9j3wTME+%?slHp zI9D6d9Jr`B<>gSBjzN__%lQOL!tHvkOtcy*H$B}=I&?96&4eoVRr6f(kvGSJL!LuS ziBX7o{;4a*Ml9TQk|y3Xb5p~qf1XU3lRI#x=osd5oOV7x-t4_WX)Yz+TO;j{cu+zt z^}s#hV)ZX)w5EQZBw>@t@|CSmSy&^ zVyXC*;j*sip9gU7$>`&Ss<^=v^l5woktIh9Bw2xe4yMaURatT?X)y2fOGLDl)^#O5jA}R6~Vr`0)(fi zn0$NjT7ICqB17tRbx1fNAaVWN1GMlUeZyFHjRv2DZ*ZyFUUWpMHsIQw8WMnqnu*^Z zmK%qNR$%U_=`adka%q7&)29sIjV$7))1MWkHl%_UEQM@}#g@#cKBaAnDHl(_MQa(x zYUUEUXHrvpGM6LbzhoNs7`B59ffu%NReW7x{^R|Y8?A_{^BSm%P(e{!vHn)DlIOaX zmWfDNw*X&M@w3v<9w>((!E)ilHx|y9=_ACJ%C$7h+G>q8@x*z2{%ZfA0!M3fa=kKl z9Ia2t=Pw4gM4sTG2XeFec?B$p-nGOFnGcJ~?!_-M)cW}CJE>F%6pbhI z@POvbc&O?z%IR1wTb~WvQvI#k!9w+JsenlHGjnz~S~l)C?wWNgJi$fFr5K+aaA`xr zZaX)@Vlh7GSJ$%n1#Qsf)MNB?!w6l`g2xGQn>LV1P7g1zg)?b?M(6?Z9P4KLl{&8^ zvpJoIsgG}SkKIR{DeO_0w|}s$QTKe65xUor6bhFt4zrSQX4pZ0O(pvx#|1xaO4zM| zx4Rg=9w{^Wmc1xtVO~gU*TLO%J974mZt#mqAA}LJF-&2kx5*|C1bYSMj2`SWdo9l0 zj4)d*)ljW9@fw2^P+V60tUn*fw(9&Ye!@3gvjNMw{gw}S66Mpv|sH}EqS4Q~}3h|8eK(40#R zIi7xPfqN(N!UvD~k*&^v8*d-~mzX{zUaFU@wU>Ge$Bz<#Q*1w9kNh$SnzZb+I*Yg% z&N<{hrL5Y`XHB@ns|($=832RsNUA|DO+f zQ<~!nKxq`jyL)zDEqp8PTo!#^`e{qZs_LTc^84T^^~IeJdw(kmP@WGwF8wur1;`D4 z_fJ*t-FyWg0WhDL*S)M2R;~8m+PLu0O(0&!lW5{@b<-Xa_q%wpcJg-l)g`m&msQ&y8`f@C z2tnQSXDt;s9p-&u&sf)D&JqHg!W1Gfqgn+=A01vGd419^WQ*_WFeCcT738GpJ6%cQ z@0JDe<@Z`Ofnt|hRzp)4>$m;$<&yZW01@f;yW)P{!di3aSB?v;HPdNN@6Cr6t8r(z zTmjM(T2^wFtUr)FXJd{^|LGZ79q3`hhlv9sXMK54iPr}1xGjF6^HotpWf$L6j)9bD z5`C1{s*v>t^7mzDH}ZEwx8JqL-91h^AU+R%8gyABJSBfLNs>kxT*;@ISswX? zXN<{AQjVrpuM0b5MrvAHb(E*=~LRYwVD2B z%|=Bj$d0o9PR~)^`t_e$2@Bk+-~G z-^UhC838D7nJhUZj9wxFxU&QmrR zmN?+|wS~7d@lFZl2S_3smXQ@5ep%9Tt7lnuRAJ*D{d-(~=Qp(f##mR5R}&4*+QQT_ z+{mGA4t>J7qfykn>et@Zp6~e;sPAhEhD5)hqZj?bjgZZ2PvoI!JUOMx<1o0mGsF9Z zpPNA`g1^&v<15kh6~>wGD@I=Uk_6Q9J1}`lRJJ*|>!H)j{;a!QIORC-1F6qB2@p;j z^cA3@wReV`%}!Q%vvJqVsdp?pWg&kXfA-UOf5!RJ>^H9e{LcE{+Nz2QTHMrHHN65@ zL;(M9UYLA+&K$!PKq2VeF{_Y#qwr<$72w&{{^^jt)C2(DzByVj z1&!p(KDXh6`;Lw=btI*H`%HLPmvcdt%yw~yv2;vb{Zn=G)E&ROm`va_HSA-ywZt;7 zq)=zTuZ&P-!k;JmI|8%e+X#yeHYZBxlEyu!HVh^o>xe=HqELLVuK+a}g}7DLW?9*n zIeX0j+$6eq4AS7Z=w%c-dQxGxjQ0YmNJe4AWttzIf)ql+&X34Bn6c2~XfVtVsz__y3_q%Kp6kuQ>ps_#0jE;^9d$U2t4V#Yz!Y&Qc^-GDd~PQ6`_9a892z5U$SoesJ)u0JMdom z8}EcnYYL_nTn`sAi&&Q*J(|nmK5t+p*ZL%bi%~3By|(4u_lf(-T1=pJ?&XNY4JJNo z{m(UN8sI020|^Ykyzf7ER2%Bi+kHkA(ITosL>Aa+vCiH`Cda*Ib(rX6o!;=2_yYwh zv?p2{$AvL>-xn0gZ+aZ2>7GA(hihn7T0_|0=a+S$q$w*C)g1W4p2Q4VAl*UA^jO0Ex=ihT9BgWS#uTaRmktUr)ZTm3V7)(8(;sc5hA7K$DywiGL8 zu?sqP@u<2^dR$-k7kx3els%|PC(QC1>m0-j^k(!7&?a2TkhS=pS>1U}R|R4+-}jNK zqUhe18E3!wtr5i^S&9QfCZ8VTjzX2A>Roiz4+%4e){K}uxx0q!0mPgN_&!5xts?oK zP?Mg^(9|Kw0evE9Ulk|!4OgG|s_SRDP0AI({~L-5F@JfxrdQeNSMtbO)ar$*#~rFL zR($AI3IF=97;O`nu{Qq;#rx&jF)(cgdhw)Y0%%TkjtiBGB~*-<4B{?ccT%bvkHkFt z+`~B|A;fQzOid(eii~VO$%M{g8c5Kxz1I1^1pCF^R25D+FEco9@(X|IV5%~$(N47G zAD_jErHn3_ifdRmKEy2d#<{Rpqdy^xO!I$g%yY+DK3yixi#Zw9ff4a5D~uX4rmn5X zBn+4jwOi$O?QIMBC$=lPH$VOIv~sI7A>MMVYRLo@Z56{;Os_t z;9>Oca&t`qb4nh+!q?-D0|)zgrat&__k11dX{i2?y_MYUswuLFJrL$R>y-xy%-nkm z8|nyOu9t&_|Mn#!(~rYV7@r`E78y{;D@RzZQ|zEQdEl~`+=ali*r>$sYiwAw@A_Oj zpZkYv*UaXoLzb&;dqD)}Fx4-2F!vkvZU?KJNQ4&hOmKqwuXW>0H$et`;8AYHjze3J7E*KtUi5(7ljiod;DO zf*Pf-Th{l>);WY@QJn3bZww#{4|MMT6k5*1R=Q19JCUHF!do^rw)L}udvHhkGh{6v zTc;(6g2jtw%f~gt6@hTVWoTgF+Sr`)zCL3JV%-+u=||P+T2@JI*^|SH=GPO!Qa-JZ z!I3>1_-eIbX~a z%J6qewOXuZOjc;K&59nq!?d{gLlFVj;Q2A6lngAi+^6rMZil@`>kGYSn@%X4T)S<) z)h}AW1ODZj7SN7s&k!bPXGCiM`ar}lI1Q<;i8xBbmk#}ke@<=EWsTdD@I~X2iT0kR zr6uVRHj5D4$IlIoaTsKcK>N{IqrCF=AvbBuSbD#DjtWxPz6)LvVdJ(S_&^G?p&NHM zMWfU$fH+IE-Ss_&G<2{GafQ6}{it4%cgLyeg-cRe2*@#PGIpJHrB-A)^bJ&QwSkQq z1fA>(-siCZ0ABX}Z?y;h6XyTovnc(G*$~ANx5Is+5;TLYxfXe?e^qXv8a>UES1Fsa}tE*zbdKl6~ddH ztpc=Jjna-Nmm=RG+V4%faZ>WIsLjBq4Ze#aXk1>p%#b`<@mQ=-Q zxOz-iuLYms-`2YKTkf7<;31QOPRKq3IJ4mLDUw3eq?j&x1n4P z1NUKYI5KHVNnX`-gqaWF;m!T-UHfcBN3uC&N>pNm{18jx$Y{caOk62UO2X(=?bt6b zxJI}0YvgYn5j1xuY$CT#9%VP;lgth$&oVb*5P3^XyIc=0|%EJlN8a6+dM|hUR zgY;KQQ#3WK$kL}O+?BFzmdRF|B9?dEG*<~h?7#jf_-Uqik9wR!rqz|lSO1BR$Q8f< zg?|Js-gy!406VSIdIittQLe_z!3}X-SrJ@{LBoDbnO6W4DfK`BVCwj9twLzs<72T} zmyXEM;0d1ch%xSngkqLBw*?Gh(2Z}&sPm98E+$(k5k=+VD0FW8B-s{3V&cD@Aql0L zN&wqA*&qx!g!f^;9<+<={fL~c%QP~xdPdLf3scmsG3^G@mGk%?#}9J5(F!tm2QKtc>QoPHt8r_el5KEPH#_ zsS_(Vh$Zcq^h)nk8(;VR-PP4ud&Y>0!_jF!SJyC8D+c9F(Sa8R6OuuU(#WAO8BxJ@ z(LGKo0<5Snv8x`N5Q!VMh6JX4^L-#%G;Qd~r-xguv97^>iYY-nz*ldxQ|l)Fh_}&X zUGZa!Xj!v|LfF)#&_{yDUf;wJBgIvsnjM_qBljFw`BaT0$-Yh-iySPW;aZlEIH&7~ zW%4}-S<13d-lJ67R(Dd@bNz}5(zp~vLxLAEuOpy6{ecwgY`QB`!qy_6wQs7$kf^wk zjaAwD)~uW?sg6#fX=lZ2_ldn+eE0xs&uhtYV>Ru77`#p1j3viH9fuWz%l&Z(L(3=y zcbD5avPos5lnXk~yPD2E0ORwJn2twGy}H^LdHuK|zh{c`8ldjh_)yt&=U%4_q%YJ%^ndnLfW8jO^=zrdM14BpP!w`POM-lG$N$ zJ+K5U1Dh2GEhQO|KO{D#ZbY->aA2oUw^>d%|3!)%J^)%w^}hJkR0?cv05v_DLS=*C z%x?1wQC0q=^m$weaHf=fvl6SQ^ zn^%AdRMCB17{3wqC`H<|Ra47ZjS*jJdfr&-w9*l~B^YX~IRwm%k7@kgo%&J8j8DCY6_0~8j~thn8(MqUqlwdF^@S0E z!CN8h+#Cse!W_ca`3x%LTlVby3L&`QHf;eGYk{drS3>`yDz!wup0YE~?^;@~soGMW zZP=bk@O7qbG$tMjY741sZ1N{3j&L;&n><#R+@^+(Rb}@JrVOyQ*;cEcN2?lc%H<$O zej`*3R29*Rkt5j$6J1#FoW;CLxlZi6G$K;^Zmb|FYWwtw6vy`2gd{FS5w2riH zq~D>Il5hLOs8s%YSiF)+`m+RyJY@Z`**E-hi34kz6{FCY48kN4W@~+_;DbmONv;)9 zl@s+JQ`3ob_yU@`_iB8nN4BX;;3Aq>1bJQQd55ljZ@l_mCMGvGWQUa{e|=k+)<4Q) z&lAp>y*i7RTaL8zHW*{Xd6%*h0%PAYwhD|GP#x*p9isb-HNg)uBB9URzGmTtIaVii z?3>y8KLoI@znOUc)Zt?)u(P6^b9UM8O>yOyICiwI7Nel&lf?FRETb3fNxUCp1UH#0 z&R29o%Tz~FxzO-7t!IIOxvhrg1=EK)T~N|eOQihGtzaH5)Eg*_eo{#=8r*w?{+NrM z4e@wFc+=Fed}_2w4ZZ{BcZTh0l>edF9Etd{q`TYSBeB|J##*pa zlzC@c-`%cym)h`T6b%DzHzr{Ypfq@Q2CpX1+oir@JfW+#3CAQ?RXaarsM~T#YREh}S}0nQ8)LhXi2b zcmpeSm*!b&sOsbl1P7_mkKA;IRK5_opF^J+mWCmkdXdkgk?+$9Qbo3P^RUYMEaK@JY6mME6)40yb-C4_vDRmtdUwS+pLq;?s4neu4tro<9m>BkMNpcHSt)a! zxdI@?Gz6oA6&>c0qc(QnU)%`^7nW3bLZQ_kMUR>b1j?(?DI+F@@4f|T*shV4x=t~632GL|$3EYH_&0?sG-CockFC*JVVMRxuB7 zO~AZT1fJ@Bu=(wibl1k=1ZR00uG%&b2E$ObX64SbJk(B7s-`y9NM zGgt^dDTNA^EQQL0#H*lGDnY`aSv~$HWy1-R1>N;UVmGc6$|7A51LL)}8k&p(6L1or zsc4eYX^0cXLf2uhuIRv-`k1)1p0bUQL6q4@<9?4cIa(*{FsN)9 z5q~g%K{OOVr6ZKfqc8kNe*P3tPJPx}EQl_$D*sifJEa=028Ch88x7i0@&tHbSZ5n0 zSyzo$U!ZdmVVOdhF{RFIi`4970l&LSq7uPn*Z@=w!WjtRM2mU}(=<_i-gfWHGn{kA zo<~+Js9(@=E?Ag%<_>0uv^ar*^9yaBT=}lA@Ury@^i5q;6jWQaeuZbe%r@UxbK9+P zAFJi7v}87^d+I2-tm5gWHMPaQab|Rb_k?Go`|xz{>P|bWjiMWI8F0QA26}NWiyD>j zVN>o_lRwKzQ302vlC*L9KI)B5S~6bKEz_IiVO$CpnQLBEI?p4uGnnackm`juNwBSa z!9l0Nwe?$!#kpVHB5Eh-41}Dk>9=NIx3YLeka;?ONKO>WRM2XbBk>QfPml5Q=3o|m zq+!NpJ4VVspQ8~IZ&GE=!IW$s-B`aFy(&Z>+E*|wHr$P>{fWvIHrxY=vVK8MkD^2I zON|M73bX!^F@`dy^~caBmQx~IMVA~fqws04`xI9>0m?2*k91|2(y4EAEJ;yO8@~ig z>+_dbia`dwU?#mTOA6)VcBihH-|~GAeGGM)Nn7j%aKDxOcp#Okg(oHj(^HG9_b$wM zGF%i$x@a~!7L6OZ$J&TVQqZ}?pd6|Ls~#~G5b~)9FtcuRcabI*qh)=wIvEU%fh4qK zE<+jTv4u3HUIRNsT3H8apG1C6_E7DHE#q<36 zAho9SzUtVHEGlZCK9C>lB`JfWLQd5uGx}nSIbjR#qQHRMl$Ys>77mm!h7X^)ghIPU zdwbJ-E^rpbw4Rz(U~SA9IR}F5TXh642qap#4P~<_UccW~Y0k6ps)04Prq7iD_)f9Z zAh*Y^`TlA-o*2vbjNv*z4NP#XFt^hMSC|PFO=dfvuL<>Kr(b+0g{91yzD4RW4+cbh zQHTpYW6Pdb5sJ3gi>0R!^Z+m8rjJ+*7BuR0KV)GWR!nO-IhTkJr(TK2$uy=!)g z!3Y?mhH*k#xrDVoHTDpfU_rxZEmkTX@p}WEiR4eep)B3eb`Yn}05qv_{ZqSj`*mQ@ z?EunIwrXvhMz3k`?RS&XTWtl9vVpKEUr3|=9sSUZv=#Zg$?Op6mR&F(2u_!m?qdlGXt&!n_-yj!cu~ zwHxVP{2l#a`tvJxdushWCm6J_eCa|EyCPIpCNay>h+q-(b-YUCglj-3wPc;O&`UfY zKN8L5pBtJ_6+aR-J8CDO^j3IZwvwWQ&p39yu3t=6i>{i=VWmJe0EMca;!)Gy3LR21 z#^y|#_O;=H#RSVm;$C_fU_-JfG!9W|4s22abN&Qc{I=2mXIoVmv9IzLRU9XTfrLhThk`TG^~LQnjh zRrs2jsy#wkbJtt!jNXP5qyXBGvQF6TDv|$IXq&R%pNx)=c6pgNNZRNx#LS;t-!lSks4>f$7 z+dMY;dPN=XsALK&eaRQ;^&T$Mu}rEZP~3m=Q66_9fuVuT_ThzhYYE!JPZ2D_36$F3 zxls~L`%H+k2?JQ#!9B=mSa=@ioJ$|Azmn%vpA2+lKXW;odWRk=}{=gr*g00Biq{&MY)cH8~d z>Fxjre+;>S4G7(H`cE=HQT0?sf6(ee|7qBz_qcp>8qGC96N8w6u(S(`)C#MjF6xw+lw%OIK9$U(wH{%IZ1!FwMwZq)4ryT)<1dGYaBWape zql)7^uKW(vz%!l{{;jE(v$9cc&&rhttz-%8ibvec`rfySH)W`AHorx9N9xoVO<6%5 z20kCkEH*k;dEMipNi@-WsoY7_!Q1G0{u>JUF?Fa8h-p zddKnBfs5IArZOU3?H5&aud7|%fXth+^1LyYBxp_i7o70DPSxm59w=BM$)#&ZB|o7k z%5t^^^qc-p%DVR3#c7Rb>-x;m4Neo7pGmX6GtJ%n4X@w^KffrDj`iYop$Fb?d&UnW zl=9pEg5sS2g>^LluV6Z}l~E(IO>}y%2{EId-Y^oLMwLgLZK9I-zJhy_;hQ_h3mI=& zQL=&W1VlLx+!zXN{c-Aei@vN=Xye$vnD2$UUHl}+()7KqrW4^a^}hd$+Wu_@>Gfbk z=EM9pDtOf~yZTvMGKw0QcD?*FH@{}T3Z3y-}HX0?vz^fXB+g%9E{+GC>BZwk`yMvn$@4W8XKU@bRw7a5nmON`>4vnB7{;$NAEw)Udd z3TTkNX}w13ajiyUyWHDTa>gW1biqk*NLN?yk|L*+iRr4#L zTd5RU)EhyO%p964v81L1VcDO_xf8$nKQJGw@#*JF(FVRcBTpK8odZ*IO~QgT!Og!I z)kZO*Kt~npJ!XzdX_?%_g1$Gc^bPh2$D9g0luQCVt6~j~gm&EfHXr+yS}YbrfbmGv z3n=GW9~q^Y8lhJnO|goUHNVg+hBtU&_d`-JHDv2WtW-|4TruF*W&u7DYoRxUwp3WS4+Cb411 zsSKoR+YMEm&C7;f!ZQs{Ep}!ttG@=yC#|r!?FT$=eGNqrxkMOy2BnGSmcRRU=j6kT@#TYmrM<7HY z#yOVq)f{&>;-DKm7h+{2xrOc4W>$hL6Lj>iW;4UvMspN(y%-QN2lEOByT#T!K-QV; z&&uUs0cE`e0#8qdgjY-(W<`=bgq@OF@ZGU1E?xa+Irk(npm&=c^u%1l=zS7;nf7pi z)&%RTQf;m~CpGhc+Aq<;(>_+Ec}QhBpnRVO`o=SZX+*|>cu?l}O|5r*SwO>@ zB&`FrGPyE+Jrz~T?>!&bUGSofjm^Cw$GsoQoTzyy$ldY*YwDDQ)YkYQDYRH2qnd+G zWmX-^C`Ib*gjCp_Ll}2V9vE(J*#DwbVeK{4^4P#0pjE~IH z1%v(Q1I~ah)58v-HOyNqnVOB`Ra91qP}+uPAhs?Qs2W&c+A32S$=SGI6DbO zp)*w>u3I6ugYezQJSNm{2i3bBX6XmW)q3y07ah8|IqD4=$NZC$JmR{fM&xnN|kc0n6(S#O@Ugy z!_q|UN$uszRk66b@5Pcl)-#XxCs^#`)eM>$)P9U=q^!Y36R@e&lnjtl9VT#5hM!o9 zY#H~?OMIBMfhaq90?WOHH<^xc7??3@2g-PR5=Q=@+~VWNh4+TD@A71cFu&H_w=cIx zC0wY!!POt_@CYz8?TYsGVU%D7H1DGOdR=)6Om!R(jal!3HTpj$_F|A_udVJQRpKLr zBviQ7Mhoez8`3kbBWX=#QC&$cR1@*H0r{H*ZAU57kt{_o7BaIHhE1P7{0NX}A#|Pa z=_lLs2A_q@_Vo^a_*K_idA`XwrlEvuoyoTsVBnSE;`v4#%;4Rgy8;|A$#o8Qa-J+9 zpsV;5+m^OH%;M?8o3%$HDc13?<-4KxRg87r^nhUn4UcD)QgR!rApFIoDq#(f>e(}( z`RA4WX-ML^XOkP*F z^GFzUu*LTY&iE_E-dVBOhb!Pg)yKhG)%KjlqY*|Heb!5_rj4lT7%`Q(W-ESPBF77E z0&H3Zx>**U8D({+1&6(G{`>Dg=eGw)PHw&Ob+FR8#&fK45<0i86 zSEsFT`&HBaZmdoLSm}^yahsW*%EP2Ye^bYy7PR9zis8ZvlBE2}N<7l&qAPw>VyES- z$RZTu;5tDAgHtItV6n#_(3whUto<=rnlxDn^9XCBmqVoxZR42=o6e3%aQ((ZHSK-m z!~EiFj~lFHTg5<5Q8v9;HkBQABouP}3%mo*C^%`F?#I^1`&LxGMmTYJ9m@6m$KgPKj_3DGf-* z&qbTF&|UD{`1RRoLabgM$5yw|_0!}!AH^s0npP$a!<^ac9~TvACK0MS zk0SFDO`LYE1l08laM>=_tr&&-t6BXYdQHLBHW#QT7#l zvA`bkT&$}v#(pW8FT&Z6b8t(@aNBcNyVgqA*5(FB%h;M%tU{dB>OD73x<}SX&W{B{`Ni$j zc2Kw^XN>CXnd9peSkdc3dhI<5aQVj$N}()6=;;LK>xBLAQLZe6276j|Vq+F^Tq#f7 z3k1W`yMdC7I({!oHr3dW(=d&(`oYlgZml!>#aDu`dF0vH+RBUA7Pl9UnebyM!u~7H zcjx*Q+5_D*JUY#z8TXxU{7iS5CbyL7KI-=A$fkz_*;Rk4-^U=<+{AbyJTo_gDW_}r zB4wtkb93XiOsSf7c^TEx;-6j$ROd-}C1)ll?7ksqbaY?%@hpM)rgM>fY*6X(i$Ge7 z=;aTVOGkvuR9BFM)v-P&G{>)Bn$6nn#8>lnX-!?L$*E~Cq;#sR;WdFT z!h#VRqh5d@nR$?LUCQ?v?l`JsW200~kR^!Hef*P$F6$^GV*^sb;)@KY{$6eJcFZj5Op3Q&LU%-*#L-Fs?Bf)aA5dAnB3>8-3TDn4qoi z4-tN~iaVY$Q9R6(f0UF8gK4|U#+Q%$2GjD%qWp8)dnMx%{c@UAp4Lb?BLGO$V8Hn0(yjw>4V$xNSA4iRSI*YD}ra$;>xs&8l4pdRi^pp}MD zB+QrJ2Z=f8HJU-h(zn1gSBQ9dAN-uBgSKdf(%}XMHDe;q)xA?~Ut-toT%!IYh9)_k z89vzQ3KuZ(dKDfWL|OG{JPTkf(ahF`}82~9$|I2lbHKJ=eJ9N?Ar?;`^K6P zqb$h5r&&UN44u<|@|I>|nodvhlY_gpM-SBVT76mX@hHH!nv=>0s~B$6)x6^k6dDbE zw`qEuKC#F;xJ+UF!r>S5#EwO?)yd2K~R#hGk$D~Ds;nBHX9vhVEoLM zX#F|Wu2rkk!BWnd9nJywLTb5#AlFWS69)$fD%*8A{3|Ek5^KICT{1J1p>7`(lJKH6 zbH$#vM(7(c&5x&;Jif*W!vW$_PqAKD*nxx^6ivsaZtCH)(W4&&|HyQU6wOL5Kcu(G zjG)r3j$^?OZTbV-amD|GwfFvKd;kCc+jFYt=tfbaS|fI-*c7KmNMclMF^-WCgc_k{ z&uQ%~2#HlA_NXmZmla!#8VR*4R;g9mo^M`1eSiL3F7JOJms}o?XY#z?Z};2ndN<}N zKLrUvFpI-nZyri?Ys~DPqumb;@wo05;@Hj3{Ag=M@zFif<~11Wv+35zRRhJ>iDa%m zyA08$tP0xp)6y+(Sx`geEjOjn6;0HjjZLe=NJNh-^|8?aU3taVhM2IV*?%Glv;BPO zUitr%s`Gy+&G6!@(Ikg@^vEynfFEtsL8i&lF|UE*;jHq)^s6NmBH`Ur*$aPNtx~_F z+wnu2QngSHbcqXQt&Nk;iTm4FewhvGlR|yAfK$g0?g=X<=zYO93dA4+j-vu9x7^>< zw3cP~mVTlzuXn=^c%qR}G&?{IJ(cNgIlrW`k#{s^6XTY&@oCOjuiVDfeJJL)e$mv) zD7(QEKt^B==1&YvNCwz(Nx_`%shwR%8|hd!eJHkR+S|U-?PsPKSVOwi!9vBHBuT+yZST6eLZRcC zTx-Y$^1V;>8dv^J+OYm*B`-G6;Po=U)B+?*>;5n;n6;!cXx7OCWs!v@CM z7?-$eB^;?JLE9Z}-ue!B;l}>v$hYwPZ*%~Ts8#gyy}w5Kac9@J2lU&9^-dm2>e-HN zswg)pUJ1?Om|!8*Mpl#JkG?1jD5|rTuOw+&%2})FB6<9>Uq-EMM!s&PYIu*#IScEjHLDbb-oOlVoly}Xc0&z*V#u<3kR z$^~)zc}-gk+ykQ8j&mDZT=LhraA%=F5B|IK(#}|hn?1f&Y;b$y!=U}p^3vUzy!@Wc zKPeIC^9nUr!J#;6vBm`A+Mp)v%QwGgyZ%$n`Lgf)jWCB;Zja-(p@*{yzCuEA`C7vPF( zDFy5SO=QZk7bkgB{MRN%^S<5CzH-4|x?!yD^xNYqrbp3Cz&D2dr7bn%Av3%KJb|!b z*3_(7GOF`512S^mxTy<Hn|$|L>d_1aVKC9C6GLiZtDd0r2oq-vm|hc1 zOX^28!QQV~2Um;MzlRYYYtyanDu6`wRi5UWwtIkk-UEB~4lim@4Kh7Nbh~P6<^l0l z*n<`}$d5bSI6pMf;JAKqj}M{geg=yppg{n~7|fZ^r@{l#EwF_#5Q63k&xz*G$ozMy z)ScRh_>sapdN_P@ILnAox}^v?z3o|5v5{0*1oQ8hSe(9e^P5!NdHzS>)gP}$+2EP)UA z_y|!@@_C*l>&E^{Aw71bh-u|ef6hWN77nJOBv*X757ZGgk6U{gqsc6_D&HXC&u+V@ z>^~oA%Q77xrciV=s)B=*rR~;x>HY6V@a$eV@2X0ZwBeh?9ISNFb72jx0vo8Zn-WmNu^06sdTYA6 zfOpa)$5%fK&Z6Zqpba0s<^45zUXczB%k}5!ILma#n7FQh>AM=67TMrru0v+fuuc7|rJEbzEV;?Uvh} zq$(SM*Zt{e0qQs26N@iEHL6qnZB%Sh$@4H=gXmLTRIy1x$9hYq)3^+aEacJSTZ$(Z z){AVa7uOJ9sRCYq?-q$yBjYaU>(>gy+(5Rz#w}VGItNx=w8oCi1tx4R{uMPmmg=;VBz+(sjvx9KFZ;WpA$mzJxre+@&jokR=2SX z-(7FNK3OY2NjLgV zO3TN|Rn_t`u~t<#9UE(N&Ox0Qg0S1uC6}C`Fu&PhT;AylB8YjRnH}O^Jb5XF&a(KR z0;~1esi4CC;ZrtYiJ?O$G4rCp(!DuHxIc1I#I6o1)K;x9^WC2T|Os;Un0m~ zOF#}OUlz_Hk~+ltBlO>DzWC^*_@LCwLCL=4JFnY9?yh2WNNHhXaNW(5+<4QB3YO(P z(lg+|xVwy_QV^S~oe8+rGUHYaYkdHMr70F%QgV_Pe(2IR(#p%SNz3f-h7YY8sz;MLKdAAvmz6Xdy8GXa9%%yhJV$vd><{3I z6%LpDK=P2eXWWC(nEQS0h+a92?)z^lcy1Y6=X)L28CM;Gi;=TQX*kO*4&CCQMU4?j z=!>7imXvd`!saRU&Q^i3M!HtuImEEFwpS)z#HKDQr_$tikZr3bSbr&^2aIxaeh0%5 zMH|2DYPK$mCEE?=IpEjpH33nc72bvr>1zB!4G~we2X;JQzF)PzC);DkPb4x{LlUfB z;MY(6#UE^EIP)kqn27+m__N-eE`sMoZtTryviO^ALpA+Yp5~q#YK|r2Q#Nx7 zYbubhx$Z<}SOuR^I4MHR@PGhBGTHn9%x6YotT{nX0$bEjSj97wfzOyUbFm207bzZj z`CWwSfk9=8P#~rx2;4kfc+Wm|2u|L@Cg6Q3LsQa}+|kIjQY8mk`C|U634t$Bt>E|f z2z8REfzr=O2#>(U{=z@fWdc3th@LlJto=> zrF^>5^Tik0Q_e}Vc|^IZfPS?Tn(|{kg;!>xhxg#a!}GAn^tHM-!_genKuPla%Q$78 zE5kl2c3Hb}LF=uIl~g9TflEi%D81Z2KxE*Dj*!N1!jSjuWu$6L)|a37T%!XN1MEc9 z_ZBPci%T;|T;bIhDUesn#u%&bvHAN#HIf`T1b9yVVKSNsDQ?wEORK5?T??z+cvWBv zA?@ypoytC`Zw8!b!a&`$`LQA_?Dl@`L+4#l&A8BM9=|$oh0R`5HR|1vh21N1!Oz@OcQjEn zg)c0!BcAY%@U=zy+fuGX?BfiXZ;vrOspB%evl@~^iJ5>Y9^5bAxid z7#&E4A)(q+r3nogC2116kUa!+GhAwNos3M@H_1Y(0BX8IErMiLK?Jv%M5S~XYCo2G zf@PKeUwzJQf;m}WK9+uF#1(rj=WH3X1o}jg-2*qd>D4IC)>Tk{X`?WyEoa$hr6^txp@--Yw|@tgEe<^-2gmkpM%OE^1kMExEQ! zw&cg7!~>f%QIfNt$Xtg_feo~&(WY}w?c-QsQ`I{Vm?Cm!z!cePFZNLOk(zqcPN^KV zp*EfqWb(Rc#iX9RU^U@BXjiCYL~rYHwi#-fr<~FwC@HMjzotjK1eEyLAd_^oDmZD! z$6{{t#{JR7)t!e$QdwQScjW7~y zMalaO&g)0k;3X@$1{hlhJ&FU9{qb>9D1xyV1HW^@@IM&GlOO%t5Xj>G-a0kaNP z>Wb5ydDA@uxfmeGz?k8Wt$OQnGT8%Y8`7K{vPQ!265)6kq3qzjXDkOi4jPU)QAmcPV0+jHMC?m^J3Ng7Gt_@lmc!I^2e%CBQ ztIK>I;rKqI?sM%|9O-d%>Kfi|mP!IbjQb{&v;1WrooeJ3+}sWvUE*h4n`Zzm!t5l- z{=P8_+7zy5)T8oYAj(q{Rlyb}uW$gI(bYSNQ%f#w@Ol6rELKnP4FXu-*Bi=EDb?I* zWz+a1a&C(=BEg`4rp`yCxfTSp?74MkrXQg*LqsFTsWVpR(Hi`cH+Jw0mBQF>LbKxI z;3DOl{qw1LROrtw0=}PY%}8Y56EmAb+3kRgwX`^Es#9cppAgp+MQv&NH@|aHu#L1K zmvv^+WI>{2VKZmi^6JckSXa)`c~{L(pw=zPEl>MQO=mtJ9fSn5L%L2(tDJ>*+rE>I zgUjU52Ygqct=Ylw(q^lxoYG|*DnHCb29itf%(ca^7q6f}GHc-{z+QjSR*b1HP-6nJ z=c1%^Vm*S)(_2)BWJ(tKv5A^KUZ|!Zr<59GSSVMQ*$zzzW%MuE$x#mPrtGhF)x2MK z&N%xqOhitpUthCM zHv4}@Xxl-at}8(ln^rx66kQnPgx0aU0oG&RhpXuD`iAFd$RHGsEImu#pnbXEHrX-M z_w~z|f$0_C6-&q`X&$tySR`A*&iifKb&hh!Bpy?t7TBCi* zmyO5cKPPEx2L{Q-2l#DW=H&8ti%%Cl&FXh|#vI{ux-l8fa_RSD5kNCH)?Hh16T))cLdzVo@t+ z@y4_S*C5b>Z}G&jRn+|7r#4B6b}^iNm8MJYp6od5rRsJS4 zq_Y%*tEp#kkz;dm;}EL~xe{F@n-zWjv}vzNe7s0Ty+CNi73`{ix|Q-YyRX94%=gUK zyS#2yS1-=O)x!G|C4x8eJqV!_32ylwT8gA44kX47Td6w`yqkjz6@^I8Irj?It<1kJ z_qPsyvsjeW&dz|F@n@JkE}a7uw|6|C^59I`zI3UfcS#Yi$v8)JgkJ1IQRY)lpENhv zTluwZPxHV#KI#q1`ocC}wE|*sVJXNbegtsq8gv^yBBrz)DwC`Hspl<=L;98`&ImJx zr>PWV-9Nq1SMOyry`%7kvuG1b{v}dJm=WlWS;^7I>3StxpD|`#l z#QT?Qp=#EG`*JMZY@$hy`t>=lz}<#--zQS(W)b|OTVknY8R3ZoROX17P-0!|c`f;k z91Hqwi`463g8Qz9G0{zKPN31e;CkPRA=`tFWR-=r*AXIWRibV#J1^TW1fwX zkqTq;Ljg-)nY?n#M5n-pr^e90a66WKSSIX}J4p=$@{te)FSua=AHG z8W@JHLfpM0b(ohLC!92HEs6DHPb8WFb0f=^gumW}DWs+GNGIUw=S%wSY{cb|f0Kqr z6-u#phy9|kUh8J^B!ohvNTC4#bGs=+L0701`>9z=Z>uxAGuQe8=qH3=HQmh;)tV!D zMM@IlNAJ}z%!2yijCmc7Mov9bq9e9~zg`4iwAaXl(?f%nIKGW&B z{5ewl1iUsJf1KFNUe%x?((GL(6-yS}yyMn7n^`?pf6>cgHrd^@YU?v)oGtukloJd; zTHjtaVAJj-2H4D?C_i{_npQ@8La0FDgoS0+Tv6q)%zw(ZCk-07WAfI8A|CR=)g$p4hVbX#}{+{tI zT6cz9WF&;;<(Y&h5I-N{h{JR*#Be;s5EYg1ck8dm>VSaG>>vV$tsGZ zT)0%uH1i3K69UL~Kh%^UPNE_V*0%ZFreVBcnIJhBcIlaK1hB^w$!MZ|x8d*V3tR?^+HZtu*SnghkQ8h6JAJ8A1 z_L=RV`Lh{G&U;c>t|Z+zF1sB4YY;esTF75fB|gV*(j;%T_r7&F*U~TdlT!`+Hty@C zVJ7;uDo?HLTM+0gw=gCSk%qtU1ttzNKX|Kx9;a*v%ovkb@VLU?04;=8m;!oB}3BfKza&K^;y{zGsu+%Hc%-TjqsY-vmGN?ZR? z<@3(FBGWAk#B{nSOooJuzu8n_jc&0Iy>vR7O^>2JeY)|N%O z=_h-ftbPnt6T5k*WVr-Mp?y%W>V0SLq9^?f`z*mWFsk7G6dPNiNJ)8O=KwW4Ca|O} zDV6%JInvWybz&id(mtPKT8IXS1(e59LwN$3bkU{=KUAKqM~AH`Y1%yGDf23?Kj>$> zs_6qGG}?d)zXdb-wht32C$X7iU#nj$1BtB~d&V(tWWBCmdau?Fva_6`K23gnGm!m! zgv(M^2S$Bf{PH<2SgGd1XC;gI_o0CYoNm&=&bHy%%JJPJ>wABhPJ#??c;k(7-V~P) zv3oE+mXT^JXi5FL0ck-&M z@s;BDj{ZOyzWI#kSZ=_rIq-x>*gY?BnZ39rAB(Q7a2I{@By;?8`6&I(yGprjwZJ{$ zo-~9e2ZC!~GPZkUrxPpQNaJak30G3^0Z+8DB@F>jch!no;sBNrL=VvkBzZV1?(!`##5w zudrwGlD%~GHkmSdZF^2{`Iaxm!~%J1VeQKKYZvKpiaHjMzH*p#mkQN>8sT9{(HNjI zTmP>oO*+!Xd5(sI0fUx$!I>L4ztxI<5US9qk8URJtwzLoV5G1jQS4JuX`#QMz>}B$ zWxI~ai#aG&X{qXsLzc($QX!SqT^9IZu%A^5n+K6PtDD&pS=eeYrAuNHClmanp4!#Q z_?pWar7vE&$Vw< z>(;b-b-v6ubv#NbZ&p%Y`serPGM?veX^zy9y}{B-I2UTug7ySg@gG?b^!(gcA9V(lTZjR;mkTBf~kyd0Sa!A+oUY>i46CWoz6X}-L{vI0G5Ko>P1ONTsrBizm z?)JQn-Q$-1mOjLnyFY{A2&{z`WTEVhy+2T%Ge>lLN!dcf1aJ*dLbbamWEw7k@89h1 z(=l+n{D}_wgjRbCDQhP5;?aqpK6I7Z4?n+UK8B2by2TN%D2QR29%ZhE?k{0tr<FNvqmj z-M`sr(`06gMJeGtq!X_cu3N{!{&kA6SYLbvIN`^L>+G1Ib&Vb%i8$zzi_mH8a8$XB z<-U<(6~}a!im^|UaUk*mcbJ3eOw23-aaIE?meFk@Jm{$3|KHF=zVhY^clG)7617QT zfmd4hDfJ&3{gOjGEn99$U0I6U9>iXa>_#=xGr7I#G2vSejMve9cu1VqpAH4H*0z-T z^ry!MbTv=MyE&r}c_zr`VdB8sitJj8_M0{LW>}{zv*llXXy|WbJvq(z&SxbpXwn4$ za+v;L;o%K^*a{yJ0Ykq56W8Foljo@I1oo*uh5c*o1zsDk?Z)c?lu1c$E|KrAm9`VX&YKX9?szp*oldPRL;|bPd@Nmax0zy_)M@ zU@#w5I%mllw?=gS#car3jb=X%v*ovs_}?V`cj<14vbl#wE=2q%72>CHN=uybh$P!~ z*Q&j07{76=kmjA2`%0dIu_-F5O>KlhGqxUZlIzom1_KGsAlej;)=F#M6{lba1t6Y$ zaK9SRn^@wUlrF!`r!FU6XC;NQS9wWSaE`!%F+bTxU$GhROINjp=vA{f74=fzsx@~L zUlJ&E0(PcVi&ejVcYtygjBNQLq!Bwj6us5=F9VOA*5fKe@|vV%+`TK;WD>Jn4#E;>cs1?*Ho6iV4li zN8!)g8%Tvx9t&-9X{r{j%|p=_^_H#%sq+@cIaVS&t}hOlhz5a>iRt9ag*Kdl>S4!u z(R!*WFpnZ!7o`D`3oSaQ@8VoU@(muqPOE)A=LaQHbn-v{9*X_!; zg8o4Ml=u9Kz?dIPOOwAQrI^O4D$T5m{EpuzBroOW|Z3uP0#qmKnV9w7Zl1IR_6F3Bs@ z3nDKs=%6U2gYD-VKF$XVMp_`7+xrcBAfp|AQ`m8XBP3{xN3}H(caW=aaKWmH@Cr31 z2GkJIbx+&*P`(R|eFrz#0xW}W4(k7w9id8mIzMGB!PjnQ65WIFY3bARxSnO?R!bN5 zht<>n@>}%0w>w=yZ7Tj}WidrMb_&xz&kD}N*>(8QlGJ_3tT#2bl?|KO(^Z>M;Zb+J zq;cz1pVz8v1H0v!@565UgREHC#Jmw{+yd)emXp6yn{8t*O`cP-2YCn<)g$W-^HP6S zeyyYc+1`>>>woHnMzvpro4#fIVeq}1gvv8-@{%*LDbOJqv7{e9#dPoJ3c{e&SMUWB zC5otr2`+IUgISd{ZDrZCdsb|B=>{uhUt}EXhn<5YHwF1JNv*$pyX`Z^{Ps8Zxt&Ux z6I*vp7BN_(R~`4O(7!8HuBEg1qg@-h-n+FU6jb|9!%hI=X9vLHe*Smo@X_Ym+`|=q zyDEAAI*xthe)2%7X_VFpt4-f&kG|8dd^7rPOA=VuV+E1sGth7J{s8DT65=(e@aoaz zeD32Fr=fmEEwRHxM@g2Ha=B3{2OyEbYmhj6`fbP2N%A`WW7P51E8}ssJiS3v&9p5U zIfwR{?L{+OSxreBMi+wL7bfpCoQ4J`B{$aO$uv>z(x0X~ISG{UrcS}K+5ZNTzY6$H zwM44CKc!6-?SYYV_NS0EE5MgqZT4uTI7HXWPoFmCRsSA(THn8y?aTd!x^Sf|%$!h| zrHoVuKo8eKnUwu+>l#vwUxi;zO?g;q<(S^FDay2rc8}8>s3Cq>RYHRnHige<7RLGv zb@zoQF_p(GsWejif0v@SWn@FsRvG~&C1toZD^ew2O?ssc+82tJgh-%Q8fFJN@-Mt4 z`eKgXB5{o9vJFBq8p~mF@SVf#_B|JF*~@oQTgHcKp|kj`pGSMtuHE4u3C>dcaZe)Z zI7?#y0{q!u3CJmL{a(luHvIbRMQSNqJ8BAb?#3`u!Q0MSC{Ug0D#w(suz z_irmnl;%L2k|FOk`g{8PVAAlqcJCWy zW`=O5YbeRHNGb##Y>BQX=reKAAD-{`#I~+&{IDSdfZEUN+iLWeW+VSf`;)}B&hNgcZ&q%i^ zj%LMB(sz>iNmG&@7_5tMQfYLOA(Km{ik6TZks0Zc`YnST^d|vzRp$#@`aYbxrrtZ{ zt1iTZ|1RanL%h{NtDT;+xpS^0QooXC+RjVJ&&Xi3QhMcftJYAHKh&W%4sspd5Vrn2 zuUhd5)=(G9-7rj44kkf#CNfYS8m(5&ORZhX79nq|+UN3}+w#py&mJd+tTQTUjzI4x zCXFzdLQZs%=8rbQ&f*4Q2U*WPEmlSsSkGQ^R92mwczjUDXDzZ39^zM3XK! ziv4VVugp(aG^w_PPeRuY#1?CVWPgT!`|a?IgO-RbpZY4yKu1YX5^|zo{^XyGan z)(hSy9VulPmha0-iCV)&kS{Bfbds|p5#DM%zgy0s5W_=hs=JpU{9AL)6NZ9%pb@-E zkVug})9>hk(z055+XoV`eQ)7nGm6HcQ9G!gN^_)d<*e$L09SroAw1fyo&0_BySyNWbr_>SJJPAO|7Ifx-A##*T=sP zqApgb;*TAzxT5)vc+*+QO{Zec)L;l2YAei#ID}O7KVybPGIEeK3L?WeFJQAq)wt}7 z`H!(b;^JJ+0wt6=vP2aZ*w+98H6ikTmXQR^h_RS!izjFfTnzDIDjp5i$_S!;dC0$x z@#e;jo9^2a3~!N{_7P0+h|h|$fOZ11yhZC@o}K^Y976i->|twkt@^U#w!sRIg2C$C z7-8Xorz^{rN-uq|K=J+dPNP$efw<;CjZ>2wTazWU|1KFf{NUgp4(PgQrx`E%J8u|_ z@vChZBpkU@oFa;aHz2sM8rlnqiVl8)?o zzUFS_@9?u#Hpr(*k-a0^&+A)d^;lVLj+cB``zQ7(PXhjCW3o|CPS`f-P2Kgh0bg}e zGuJ*3kCe;Y6$BxBd)CVGo~BRg@?Ewr4Ev^Rf~38d&Ge|gyzYxTd5XB$qzCN|3*Yg5 z4$ehS1LP`zM}+FLdC7+^tvpdp2wOWqm6m}A`Gx@?M@$f^z&rC&1jj^TL@xojHv3<@ zSvzzg82Ry@{6@gKw6xW)Vl%cY`4jq29vQPQV3r_S0ThUTJ_W#Q*p~mx>1j@2|M?_! zcHY9j+<1P-N1&?B{$jP(jL5=jPR5Pc`o&OZ2n%d;+P*MU z2=@vpLd{*n0eszur(7ZX^*jkrF@Jlj^?V4(GHF`3F`CBP;9Sj3z2>~}h0rY3Vx*+q z$K>SU*FV>JgLWHYTUSB@??0Np;c4@TxYNkqs8_>(L})sPyEEM!XgF6U8!yuVBrGiZ z-=)3}MZ*(7XR6mneMPZbA0MJxj)+0GZ?yH5EGV+gjwvk(V{c23G(x1$3OF=QG&-cx zeCVQEw~7L$OYcR?iN>?ga<<8V!SXxSfD+TfnSpUU)ipvZa6El=tyrVgq*E?CYQb&$ zkMe}PKlqmqe=FQ-h$SH@hhu6aqi;1V&+P)B6w4p@J*>Uh=mNXq8u zze^l5MZG@tJB%lv{%YwZ2Db_tpRxkmGIuFg%h>ZymR#1~wxcz+t9LIC9OvBsxc@9@ zSuywXDaO&f@o$vjpcx9PbQ5t=N)l`o)?6rdQAj(K@k#>CjFuiZ8XaoDKS~9RvA;uw z%$3X4@62Oi4hJ=2&DCXjyer?BfOtP)xJz^LtRdo05TFy& zqTky@Nb{2ij@5g+JlXmk(vT+^WPMw#Msj69en_fvQsQREYEMv1^k!S}YIpx$6_R^i zSF6UXr?FbSJY>Y`V?AiBc%aWBVT|N4k_{5Zh^(~&u7#pz(k;KhgV_@T2tM_x#AdpZ zD%~1AW#@9IJ4Lf^M!=eUW3ti4O308P3j%w~e=fY*)CSIE!fm}=LwEGrMyxE_LtXxL zSoae%E=R@NdR8;4x9O-s>1HCNjginZ<7rbNf`jl#MfA^}RL8$-4CfdO;L-S{IC~|A6!+ARnMsaUx6bp=Zz$M^ias&^>9?)} zKf4NG_k*5}4gRAf>CluU#k2##y2R8?Gljv?ClxLK_L)zeWB01wZOYX0vt z!~9QpvupGt&cmRFhl7PmZ`}F)ZW>Bze@N?| znIX!SKGGAFA8TmI8vfMFhr1gpJ;1D2wR`!n>iI?PO-w0vTK_PtD|2I;3Eub%c`zWB>Iro8@GCi8+z{P4!}xvuXo8+E7}v{N zIHN4^M%MKoT*bs1E*4iZpcuo#+O@iBk2(I9{Z9KYi}vzH?FAJcHBtq{q1;^#2i!!6 ztzBix{i`UCxh^^eeLA9!A)kOAQ87oe*av*f?BIyaE#n@0g{lu#KGuo~$s*f_0wxOL z=_^1O6ah6Q?}d6HvbR;QmVaPQQH%q2?J4g)*o?$ktAqX9@@Wv$@l2KUJ#Z1|^t!(l zJ7gDr*qz$AlVkb?^hH{)wzcPg_kmevdX2%qk~2J=#(k+2@iA|i&^orzco3YEe6M9Z zdH?BA-iD8OZjbD)r$drxts%bTTzE)3^@YJ;MrQGg=ZPu)5d2y?U4+Qg1&l-b`|FNC zIa-5~d%l~cq9T5g0f(&xaz}g7f3p<_>lO>IVD=o*gy7^9lG>+a&);S~4?E0#}FZsVBKg zHw;y`VSwtSD57QNL;8ZtQg~;-%Xp$bD6`TwiCKj`UgX~Zk6^=iADDO}cIDV)y|=eL z14m$H{q-Vaaa?`jADsVe>MlQ4PuOCqF8|J=X>RexsLtB4=QVEERmeY%WNaXE0Fps3 z#Q+meG*bL{resQe`EQF^Dq!gJg;o|Nj_VJ~B6>N~vff4?rK2T3XL_OZ>Z_cWFfH*k!8Uh8$5P~(YlCtgqNgSa4d)!WLQ=xX8?RnB zK33OnZd9Vkd4ZIC5apa$>F(7}z$eEFZN8(LqleIpRY@rM&PhP0?Y~`b}paV=;7c zyw3^qTj!dNc(NjEt3fu#=&N=tHC;#(IrgH4=4YfeF=9G#Z(bQcy&OA)+4|bM!reA6 zb1(78!9?(A0Nq>l!C}znWo%~mAOwFQKo2Sj`$PKOqv7|RgM~y`Xkz!wmYndgZYibW z7H%BvtM2U(>Ib!0Xg6Eq&_$3hUFuE!|4nlLhuJgchhBCFDVU<`GgDKNwI3=ykvi=I zY@C~bd43ms9XO*nw&`3wmk*@P&xGXJr9xKg2?=~$_gJKArZ5H{L;hi~Q?poW-lpBE zeffc^kaMh$5=ygeuEBGD2AW9d566xG)4tM%69=MKeP$-vt=|c)9xHg!*6$73m{Ep6 zcg;V(;`u02_?Ca(rk#|u72v=wseh##JcL?^(`HV4CB$g4 z7dNeLGq&YAYN^%9n?_D%PUN479_6_C0S!@?+nUsw`KkB%&@g$WDaX$BmOj_?Q|*#w z(q+?z(U!wb&p(I1HEm_+zX{V3j(9ofarm2IYo{vdF5T(n-vdKSPY6KwJ(M1qTR3e- zrd7+09N}+f1kpiqUyGkSN$8;DRA&Nvn^z^W~4-#;w_n>}6BX^JC6&X`olFcew3>X7+@}eLNL!51+w2ke3%J>0m4H<8Ar9<~%;! z(9_-+cC{k+4-Svt_sQEj@XBIIk(juRanpfCv!2KbG(3HIx4|d^RWy^$;?@&VPuUqV z@j1M&=ACe9%!{wKwAo{=#0c$ksN#{%_W>d(3lND|O;{ah<%>?*j<%>GMCjjF5mr=5 z0yHN{?%TJ)k_XbbwC81S$tk~O0f?YT;w{WJ!IWFr9KU->D*5&H@3!b_wHoL63w54* zGx>_C{BAOq*(SLAIM;dMuL@1eXQ6x~GJ%I%puaO(cuLbn%KVX+8}OZ=OXl}#)^rb1 z-Oi&=IV!s?j5NUpBOMvx(dDSF0hnht+osGie#ZxF)}|ew{_%#aD}MZqQL|39){jys?UT5{l!k}aGSX`* zu3^wt?B@&NIeA{x;p{C%xJCqX^+rmp2W;;5_= zCm!Xt4JWFp=r`@+h{!Cy(%e=Dr*#ruO_m*I$}ONH~_YQN{# zf9W;Ww~y+roQ(S(<#|UYw?oVN@ua1Jwu3p`E&l0Bs;k}#F*Y&9MR3BN0lJknI{h7E zu|T7jDa9mBn;Ui@MrN%IlE)$^`6v2>LnXjPGP=4^JU(+m6Q0(;r=p{q9G5)oXY$?d zRohufMcGbIIahp zw?sk<&EpN`1av&V_G<}F=FIQfRC{6eN`-5lbet6}nlk4zsb4+iU0NTt6aK#I^fJPkHo{3W= z_x^WG?$`3{XS|(2uYMoCKlx|tlAx7dvY+f7_ls)$tK*ZrFMb#92BB@(_(6yY)Q#ZRYsBODbHI z9_lJ4PZi^i5D-71&nKs>=#Chk$Ob12PoZy|Xr}b(&fY~yhgW#Z%lGY-BXw(Aib;FK z_r*O}PIu>C4E?5Zo#)~1^N(Q8>N~Shc)}@`inxn>hWs_Gcx6F^KSNKZjm~X zo3)_%d5SD0@3RDIwYN|C0n1o%KpfgEGW2yPuI2*mgKQ@_PDlUMZYNVY^K<7~&D>WJ z*K5vq0e35MZ~|ZNwi@ZrcE(eJ^zw784bD%YI5IA#`I$EG~~k&P3QmjDql8xIgt zUl$>4DzD5?CDpO5khCa6t}lN}cE`H$aE|@esw#ak#7el1B?!khM?gOTBt6Whnu?x{ z;lGGH#D$)S;1_jL45r1Cy9(FK&kM6wrZ|pja?obz8Wd=!>Xz@X%vIM65~0wTP@(tV zC3!B~QsF}_Ef1^~oP*S^r-af8v*035v$rJAcqTYwXB0LQy(Ar{;na=3h;tYY{%V$) z)EgHRm2mdD{QaUPc;iXBdw2QFQ}e+r>%B@@ftJ8c@nB;wvxhj_WL-**>7pX>W>a}w z$sy=Km4`Ds592vGX2`M2c*8ruTx@uI)KbF!*~+S5NqgD-uj{~ksMd{{jlLyp=-VFg zR*%b${ThS+-v3K;CzFU2+K|+ot17nPZ(d0*+BaYu)?tHm!j(j*wZ<{b` zjgj_jI}7n9o(?=N#eVT=wbdKs6W-=Cc5O6SN2KwZ4B=JPHk0S_F!%I6@b)$)->1nxm{&-;;oB*^SdGJbgV*Cj!P`5Qv)!k|Z4^y-`n*YX4iH-TSWiaPw#U$1r-s z)b5X+P@>V7=Key-Xu=9ln>1KA;6jDx9z7p;HW@4p3kTmt)9Xg5J!hOV=;+$W?HH(> zgmA3SA{`HLlb$?0u~vDmNsPsao7AV$XGj`r=7^S;-@g#bYMu{m`E^VoB%|B3vWHFP zLkyH8f6M>-ko%VdshP}_#R8|o!A>dBD|1(NJuCY)MK)RlyQ)ekIysumcu>d>4s6oB zGYObzxR#rL7tLZ<`a36lZ=5#XQQ*KMaO%kmo)ww8Ibb@zJ?{l6QttWgyX{ri%j6fU zcvj!z@Y_2ZH!Q+{7p$g0*{K>{h90;9qW*`o11-T$fku{SAOj2M5Vsj^pZCuv(a8 ze~wJ@Da||@q(6JYoOd4irAvg0?-Qu0Fzej?rL1RVB~f~7fElQx`-$xR`+TSxzOO*- z`3DY;UU7hqtTvCDqrI8c7+v|el1qQbm+8QAhS%OXS_HXDcjmC(BigDi54~(mB;)pEW7x^42}gMrEu)+_Zf` zVhSZl?d=st-l}Iew{rp{GSvD4?ugN&Z!bS@yrp$G_+}vgsh{e~Z~_Uy#%E2rAC0`~ zT*Mt9>>$pqk{V%Q>l_-R8oOQvVBj&G05VG@K3*Yjz8iDNgG92@f)-^*#|4LlW}1V( zLRMj;<)i!6+!G;|gZ%o>4y7Ire1N z<5L(RnZk@thHCeu-kVVa@97?Z57x9Ke>mme6Tdw>XQxrMPVC6gHT253_Di?KrXH-% zKN}K{eTaT-9LAS`!E)AE^UbJ5B*Us>0xH3V`E5;13%_v*czW1LDyq^)HhXdrygl~c z+Usg1iAtmj@;BA)$MFatAf74PM=+Om(!x1sib7Y6z<{DVscbK?bxbcn$-5lc8io7O zQ@h;b+X+LrRL{t^lP=IYV!y>2YzS#Evq`#0QjGvM+zNG(ix-(d7NuV zD~c5JAWTOJtU`6*KeBbA(+wASlATkT$Bp75i5Zs-StA?6vY$U$m50ckd%o;T9Ikos zQLV5BSYO@grlE>)3TCh5#>SCJTA7B`n`s%MikuMFHbVvl6pDizQ1(^!*bGcFOu z8g7M~IEDr8(Qw^kSA+%LcP20`Z=pO=a$v`x6}{ka85+J#lqPssaGe|c(XKBhPwqJk z&7fq#5p6%|%-Y4__I)|_(%WP6E6&1p-$q{e*quK^#mmyyIDh;d;+dzmGVL%jEn(jS z6E63{v%hma3odX>mIc`^xJ14#pk^UWy2;a_!V)}Pc^A*qmih%n*pR|7y~k>Ku10!7 z+*7TzpC)OlbY9pMk@9Sfv)=f$mBi&(6!c%SsUkDav<5_(dX1;mz>;dIO@Nr3N+5>IFOVQD+Y$ z_cL-G#L2_eQZdv*dUsk7r<1m+cjD@u9E{iWpKZA?-rrIU_;M&YGbvx&RU3QNwYuO5 zZ1DA4sbzc$P)CY2x$Y^w5O@GlIC`%0X>{Pnup$1marVluspPvTp&qwM=94Wo@z<$-xzzyuh70ka3uI z4G;iRmaT1V-iJuNGBZe2?I9^~jOb{`x%$QTE&;M0Xk%W1lOaLehC#{~G36&JvIH`| zU(q+dnBUISewC3y0_01p7(x~hloNYtWlLQ({LCIDJEJi+`?8@3`HQLaU1L8R4fLo& zhx0TVw*|5q|B_bDZHrnJy|x+ zjwI_f_av9AV>Ht!d7x6Tp#E)-QYZlWuh;s`DC0r>%$nE#}^3 zRV;*J8z;SS!uv~%(XNw-|d=A&K|7Yjbe-vIQFrk%!6Q<`ZEL>(5OJ z#Bj=)6B6!I{43hd+B>sXL4e~V>E;ZY#F6eNhhL7bwI%@gWR?}N(N1YsRy|~+*Guv^ilM;s` zb}bGh2Q5UzdBu#Qp5w!Z(2h-!%qic@()4wOMml(VMm>q%_1~ln@P>*b@0{NhBCqw) ze4TzUvH#v=<>Mii54x!bZX$eo@B|Ux*Zc8lV#J-!mkgQ7WV2SjLQvgcwh-UNyz-s_ z7KT&CHv4DgdJg(uKUL+ATm1w2rI(T!@Mfd12)?7K`IaYFyIv#xZW1eFN91yo@AhXV zqq?OBe2(KT=mYty1;u9uKjgP9M#dU+Gxi_&zA{wP%~TdbxH+cQ++))ejZ06u(@@ZC zdB#`T`yq6Aq8;1oS=~fcdA%44*$C?-CO7#kW5tNu?cHSA@3#bT4gAH!GfW00#~j~6 zuVGm1YB}z{KgmPvDpzYQFEOhuTn=5eA``LG{pE_M~w4H1=`7o3|PVnf2Kfw%)9lN z*T@m!Q>fgL$n~Io?r+Q^L&h0eLtCKjr-%^m6o)&DgDvLjYkF!4MRK*zzj{~9S_*b4 zVYMS(_0n0RDiaR6a{n3=fjll8n|f5+$WrPclk5mB+zRnEI&F=yav8bR`8>Y2rPNIc zenfnp^FZb40Pgv|p8MK9%SOMCyo~;nhK3^D41boaz1aW+K+$LxV{|<&H7SY47Wb~P z+CB!-45LciB8C0oQ2smAp0fUK{KQ^PQK`^W2~EiIl$F91fuZ&rX6_yZKE&^fWgp%( zY_ZX&!xQo9I(TaXuEQ<1en z86tQI22{3P!Y(9`7t^6!5)L%muo%vfImTY!3+=`+kxfx#np27gYY}o|qr)8c`o zQLpQ=>_%hQ`yNJP)h_{nKPKxU*c$3Kp4v1`ws^dBVeyQI@OYuwG(XDCpo%%ndGDe0 zW%dWd-c<3|(6FefFIg5EEx{zqQ4Sv~*@&Vb*8F?KKcXJ^bCj9aA>19+SdF4{LU6rH z$I&x-Z1)TYA_%>`FiUfTzJ9+4a<#Tk&v_ge&7_?(DtrR9bz*0u0C)VUjNDyho7CBX z0k7dIcq!0S(OERt6y;Q0ROc6J<&$IWn5<_@HEu%BaVycL#zk9@(xQq*`F!zBrWagm zw$9nkp)NtfqJ_ylSB-(O-DW~?@hO>e7nWtAC(1>lohzw+MCeik*097g1FdOGc)p6J znr{acp7BR^uU58Mc8#pU-vhIvXe7=~|cc+2WYL?Kjh-EoBiRp$g`*Djc;g%nW z&oz|Eo??K>&n9~Npg8yWtJ(>Son9W&Xycp#a^hvO6 z57%3pw+HQU^5K=zm!t8=$QT3h`kf3+$jlIF}vH5es7=Yk88ZmsgsIpdmLf@ zXq6`@Q}<0ti@;p zIBpT8rWV_{!R?=UlJ`(#cmti79wmWZ+todlNoms43UOBQeLKeMiTBzvr6($|e=Yow z&Rev@kBi4zN`cKEBzh4nUffE~G+$8E)cpD+C0=Pwe&fcFm$x}qHgSFs&rXW5mb zo?GtLrz*P561{jnE+jGg@x(EEe4`e9BVT`=QPuHhQhrN`)KO_Ac+^IaX3gF|BP$cZ z9+GsdDW*P!*@b?F2wIAV{?#~KW1}O|rQi?=&Cz^$gJ@wge;d5^?Eyc;DPx6Fs^%`u zibBhRBvtC5n@r8xn@U0WL+*)o<}%mi(a^eYSW0-1l|POWa@HCy+DK74-WQEg{Y4Dy zr>FJRVCGJNY%2BmtK1UCV)$byKcb^3>n?tk(2l-aijBCextq{}R{5**xiRNa4DKSk zAHhEoam(A{2+^$@<$Me^XLA*V)~6A}1x<^&*#}WXi?dQdrgu!?N{QP!wNzU^a%~h!~CF zU8+V1_Yh+u8ZV#=SVOuR6W@8b%XbU2?5>`Dt($$HdQ&!syoQt!&pemu%d@}32 zzd1Fn&nv(U-BrrIJ7gAwI7>F6-imBmdgjV}FJJ#gdMKt?#Op38sqIVa{uP@pW*G`g z2pu4XuUvH@1xF&*q^_8+5&c#NT;?e9Fk~xcDKhM6{)I?UXjowf+a1DML>X~L@j`yM zFtp{YeT2Jhtu@>(>a2s4!H;_OW4q>Pw&TyL?wV{iNZ>+XEl8vEdLn(Fhtb`dB&ivb zhSSq~2AHM4f9;lB4=O52zfjzu57ZwV47c9){_DkD5}WbnI*T;ciZ)}}bLOiCHjvl> zhwPFc+sckQ8@uI^eP&ZD6F3Gk!I8BYRE(KpT0cjkL%8 zPP0xdcCcYu9y@4uN|@P*_h7d(ki05ZW-pz{;N7bO_8B4WhCVsNrR(v~5WUR);6#{G zTnYWdhVgzy#}YrLn(T8JRp!aBo^ac={#>^^*u};LDPWOy2xRM{%EPh0#K7jw%6Xuz zK<9|yiGs1|W#F3(aXmjg6Zk!wA*u3pf+yb-Af~WXfm2ycYickoGw*}J*Nw#h&+Ni_TgEmgkhf zanG~2;v@732IP*8LBO9VZSEb7uq0omgI~#L*~#1oN-nta_qb+T`3OA^)}yRNKnl-C zy}t=Wt1QDLxm;9zmhOO`;W2wHu`oPaDzUUya$6JW;-5{5hi*nPDH~?INK0EnxO$J= z_Yf~s?l8=Ck3ehs6hX`Qz7948mn2cKI zpHHG(vLHzgA&uB+zM#l%KFKQ^nwZUr-!2$X{JUbp-nwfxO?#u~}{E9j+ zE%Y$OW2QMgfzf@Ptl3_qR|u@RzZ#1w?Eo~$)K>@G`&xOH3G{?wXqAep@rN|}m1Zv# z(ec@`#nK~D`_{pTC#s2$R!R%VZy1Voi)vltyu-)aR~*B3i^+3;Dg?wVOg<&(w=bE! z=lEb|`M^zXR#2_J^mgO7mV-VqK8^4s8drgd_~0E~ZI-^yD=X(vg^=jEdC7~0Zjr1~ zS&8o_dix=%7+A3iJPhE!5TjBDvvXagz8t+*+p3~lVCHz+-05*7(Q9I6utK-DmSL^? z!ODDWQ4%XVSf?-ioufu-;O^WD5i@#=QOoC#jScxl`*SLKH)_px+^Zk4OHZ;^hG!T% z>Ob{dFh;T}nv{AduPkZNm>kM3#m&DZdu+oR`&xUqv)-o7kS<>)%|Y8=oZ}{b_;wfH z$aan%RA1y7hE6LcCM6}!e`4x44<{8{V_zB7>l!vwn<}xq)TGX1D>czi1`!^w)c{MwDm!dtB;#$ZkRF+?3jQte7Yb z81JYK^(nKCO=WgUazyko3Vl0$M*j%F@YTL#pffgH_gvK*N>!a2@9^7_k$BBz2n513 zS2UQ6lk~pL7I5_KRz9NHI)?Hdyv}@#>8vlVr(t1v+xzyli@;OyBVkGTKe)KQ9;&FX z*iSLh8zh3Wl{Yj(?#=Z4SYjArPggYdgCNm!JcTDmO37+!8j;QsiAQY3Kk1f_XkC*| zNa}C@vUY9E=iExJ4lmNg=iZURl37x+moMDk5f=WFPP_}9!d?^4MRO|77qy-pGgZGF z8|6FLII_F;$krv9xV|KPpB)FJ7uRr{yUqR?BokGY$9CkoFyVQ=~4k}tdoiR)jy`_(H zY6@YFl2oyqf@S}tOP|7Cq{*(`{pS_-Mry0?@Ext?ehLCkmDq50c4#eg2rpjpHnx!+ zMh}Qcb_P=_iuocdTHtWR#p8^UvNJochx7TcTDNJX1e*+yhm(JTINQ_j<0unN*9r8E zE`!)AcV2;Euio}ATe%Da9=kQf8Nw2eM}}17`;4=C9ESWzKO1hvMrrFt*91uew%ds? zRo{!~^^VhsxTtApKt`1wkvoQaPs%r$;eb=ql~UfJN(&%BM!@C|!D;`zW!&ngX# z*E^7iHgt!5v-hQ)!@`lp!h4l}N_(Db)KKtg4nhtEiPwnwc=!m0jGckN&9 zAeQ2J-g@b|a5=%~3z7u{1fh1@2Fw>5PfpGof6|eMw*ltnrhuyYaTqliwj5uo-4V$9 zw&)DV7~WIBbU2dv^xiZ@+H*ZDru{rjcuSI-Aww(^VzM$JpI{t0c=UwtrZDh8&KAKT zCK*Z-xaY0|ARC2?E}`}FIQ=Yuyhh4+%MR~Vx6AZUlF z0gcJj=`%i^v8+T}G_r0+j%Pl>$oQb*TpN z!}#tTKl{N{oUZ05gQ0{~>tR*ldi+Kxai&UZluNB zaAZ-5#kNur_ZY@BV0_K%ZZb;8?I25!Cx*=uu;XS%h6HlX-HCHtPFs?-REBk*Sr8?m zc=-5Z=t*xt{`IkjlQNLmtnQg-SP0V!)cwCYx#^QUI0kb;LwJrb-E)MxkGRFM6kbVA@Q5BgSbskcz+q7(nD1EHqjY?>W{mhW9nFI(2$ zK3g!aXT+IsN9B(y?WIGDRTjdg0M%hd9GEDO*bb6?08@y`reQc!Mu$Ks4N_A{Rz_An zQK)p+c&uU2<4X+zq(2gTam9(VaDJ5GvNC!$iaGwMaqqi&`)n%a5|S~p|G*ma#Xr|K zu!_;h^Pxgw*IVA+63^2jaT z>xmjB`dFP0X`)X8A2_9u4V=s3vP^Zn07Arg3h&h=)XX1mJ?qSH+T66F)wHAN&yMC9 zqz38RD+dI;PG^?(D|i1>R5|g+73r$mqL+$kD`yO`lG8%m|3N?rWk(7lS=sLKIAcm; zoH!=rr$4tOd$xZmnUUIeJ<|453F5XsA<$(*36l=Hmu@T(|PbR5(yRr z^W3p9oGxJ}s_1(A#HqyBy+%m1(Jp^;W-cK>%xCNq*54_%N}PAZN+kzxX%0lHe>(0XxiQ&9_#`oFa94|~VSW+7hv`yij?eUX2Knqy`?1klR+@wauOt5z-f8?pUfuHF(W|7Em zb}__ESXgFeyqw&L+$wNjbhR<=yd;b2izsi*Y|LzmT`-pg`tA9x0yPv*j-^jiqs)w% zO{I+ihRSoBK21zD8%pi!8Cu;ln2`Ij!WA)kzrL0HsH>y#%4Y%P(s$FG7kE!*$vXUa zHqgswP}Ilz%5;5Xe0GR2*JO97gPv|Jc3#z%tG6AO9RHJUMSYbl-&USw?v$+C;-K%P zC*+R^^f37Lv)1?JBZTo<7Yv$ULny%ZnXGc??XExz}{4XCq2Vf))}(p zNL#)Dfj~e~(vF6jeA5YKIDK@8BV7Q`x|c{#h>&IYNoQ_6zjCZFaVe%-Lt2S%(@?gw zi$C2^Sh&n1Rh1ha#}KybwisD365A;<=^^SJA7z6tRQ2v(H5y4b7R(?utRvCeD)BQu{>P5wfkjT{WQVPxaP-}O961glR>hM%!eb1qQ*_;EuS zeP4%fIxvrW&Rwm6y5{dRv>;;H*4dKWlE=E(g?7@&&H7jlX)iEFGLt~;bufL?GP0#ZMt}gEt*5$9%L{c(r)gp6rbwucQ>t{*!wMm1%^Rc&cZu$IBPaK?1s9SP zc6T%Lr+?C^`zcdgV{Y_Epg6+=*CWD*R z7r#!f>2&^RxwzJ`6L^e0K^n^90r`dbf{6GIF$GFS>_mH6cI+8OSIs4uno*LGao)Gt z&*vRB-m_h>9{tH(-^&SM#~WvvDhnE9a357m+gwyLtVkyLD>siJlRCuk%`HrG$6kEc zVQGilki>>96O*Ape}Dk7#H%wNB|2ecHD}aR>R4FhYy&@%oPwXJl6KZ@g@fnbD(1{! z6uis8Lfn5ftB0~1A;FRfdOlnrkg|gBqchHg#wR0guD$)=nXV}2dr!s5Dw{- zv>H-*ySNh`e~#g%fp;8;-sPv^v{>viUBnr>eqNFrVW&%Dl^ymROs=Cv6qSQY;tLk` z`P*Pho5lx+n3&>BGkf%foVitZyF++(OMt0agXBG20oL?1y1BY=rqaU7Z-@1T8nqDB+Kvh3c5zIZbCso9PI-VOoc_8n*@~ zHx`4%uZUHq7%}W}I&LpOl?ZU}<>AEal$3N8J=Cca=n`d(8v?N%QA(RHY%d1gNO)ys zMLEhL3qC=DbHl)wfuTBV+;077L%hU|zrL2Dl{PK9FKaNP=>XNkzsM+w)$v4mrS%(D zH=Snwq&s5gXBeui$(8Nsd*4o!nPg2U8NE+(vn--nDDX{2iDqj9!ezGh!b&!N_y{EK*q&^7p6k_Gh@*N%ye9gHT>fa2BfjK)^GG>Vt^tiA!xa(@W;N}hG zbVFFbzD0YBj%hY=M&8wo_RSZwJ_iO5Sqy4CATcz;;qVQIh^iK>ODVb2hm;`Z+8F=w zoSKQ$BP`V8kJm9SGcR-NN-WzI5L}AW?|k7$(x2wtl*odI4_%tJn|{#1Jz+3)3diG+ zip{E?t^E2={r+(lqpV1wq6)jubrnWLBY2+uN8+nSU@{F(qTU4WA9GVT+FEeX@C%eN zG`ypiUE^&o>iV?LZF&<&xfr0e4BqwbxtlWG6aewJBowjvxCH4082lpEq*+Yy%Og1bIe= znYd7df#lM;I%X5MAYC}QKpXuBFySEdvlc(_%p9O~KSW%|Kz#9KbqEqSYpv_vVA^J# z={L;JXSgAek=Nb?zqE7B)ipU(Xq$Vl;z5lIDz;z(lTV)?jAW#5w)BJ5^h08-Li8|b z?&?T-)@Mb6+B6w1&@-=VqSTT}XPo!9!&9O^m%HP)y>V$w$$@^d(F;*bAFMC`>YWs>y`&q_Xp1vZtO3Hd|&-s#ykTg(t zNHz#0QL^(epqPPEqdgn|NwSXvyoF?;=808$+alz?sYXHX-Oo`U*$CM!2^OXz0@ex+E)@*4E9dyLj}(zhlhxX zOl%AXDgY{7YVxPCpFxoslPLEqE0(4u^2)qo|NNx^fxOOd)9Kr`+L)BeHV=^L770-jPzO z)25yN;NI>{hr+(uJbI93D^(y2tmg)EJ zbl3l%p5%Y~;J+$x)9$HNl+f)KQX-VmU>$^AUSx6ynNgDnWkba>Cr@JI+!K?%GozyTn+M+kb>*KN993QV| zC24F-0t!-oarUrw%o}i{`P~&n_GqrSot%bW`a_J~4b->W~Dc}%Dv)8+Su6sEi z(eWAn_}&fehdjx9TvO41{Z4C`SR}dkMSK3bDwqEGH6r}FBOR3XN?VEk_ecM}68~3u TLT1YGzx{yo|8d8tpVR*f7Xrsq literal 0 HcmV?d00001 From 2eb16221fec68c401e6bc8fd4c1ecd704f5f0ee1 Mon Sep 17 00:00:00 2001 From: ShimonSte Date: Wed, 29 Apr 2026 19:17:23 +0900 Subject: [PATCH 2/5] Document AWS Secrets Manager for Glue connector credentials Add a section explaining how to store ClickHouse credentials in AWS Secrets Manager and reference them via the Glue connection or the secretId connection option, so user and password don't need to be hardcoded in jobs. --- .../data-ingestion/aws-glue/index.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/docs/integrations/data-ingestion/aws-glue/index.md b/docs/integrations/data-ingestion/aws-glue/index.md index a5fc449c72c..6b84f297ab2 100644 --- a/docs/integrations/data-ingestion/aws-glue/index.md +++ b/docs/integrations/data-ingestion/aws-glue/index.md @@ -69,6 +69,66 @@ To add the required jars manually, please follow the following: +## Using AWS Secrets Manager for credentials {#secrets-manager} + +Rather than hardcoding your ClickHouse user and password in the job, store them in [AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/) and reference the secret from your Glue connection or job script. At runtime, Glue fetches the secret and merges its key-value pairs into the connector's connection options. + +### Create the secret {#create-secret} + +In AWS Secrets Manager, create a secret of type **Other type of secret** with key-value pairs whose keys match the connector's option names: + +| Key | Value | +|---|---| +| `user` | your ClickHouse username | +| `password` | your ClickHouse password | + +Any key you put in the secret is forwarded to the connector, so you can also store `host`, `database`, or any other option there if you'd like to keep them out of code. + +### Reference the secret {#reference-secret} + +There are two ways to wire the secret into a job. + +**Option 1: attach it to the Glue connection.** When creating or editing the ClickHouse connection in Glue Studio, set the **AWS secret** field to the secret's name. Any job that uses this connection resolves the secret automatically — no code changes needed. + +**Option 2: pass `secretId` in connection options.** Add `secretId` to the options map and drop the keys the secret provides: + + + + +```python +clickhouse_options = { + "className": "clickhouse", + "secretId": "clickhouse/glue/credentials", + "host": "", + "http_port": "", + "protocol": "https", + "database": "default", + "table": "example_table", + "ssl": "true" +} +``` + + + + +```scala +val clickHouseOptions = JsonOptions(Map( + "className" -> "clickhouse", + "secretId" -> "clickhouse/glue/credentials", + "host" -> "", + "http_port" -> "", + "protocol" -> "https", + "database" -> "default", + "table" -> "example_table", + "ssl" -> "true" +)) +``` + + + + +The secret's `user` and `password` keys are merged into these options at runtime, so you never need to read them in your script. + ## Examples {#example} From 510b9e40c9a866797529795a2f0c9395f735e959 Mon Sep 17 00:00:00 2001 From: ShimonSte Date: Wed, 29 Apr 2026 19:22:08 +0900 Subject: [PATCH 3/5] Add AWS Secrets Manager to Vale headings exception list Product name follows official capitalization per the style guide, matching how AWS Marketplace and AWS Lambda are already handled. --- styles/ClickHouse/Headings.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/styles/ClickHouse/Headings.yml b/styles/ClickHouse/Headings.yml index b4b848095cb..24959cae26d 100644 --- a/styles/ClickHouse/Headings.yml +++ b/styles/ClickHouse/Headings.yml @@ -96,6 +96,7 @@ exceptions: - Linux - MERGETREE - "AWS Marketplace" + - "AWS Secrets Manager" - "Azure Marketplace" - "GCP Marketplace" - Microsoft From 3d2c407abe578c34529e63ba5cdafad9f4df3ab7 Mon Sep 17 00:00:00 2001 From: ShimonSte Date: Wed, 29 Apr 2026 20:14:06 +0900 Subject: [PATCH 4/5] Update marketplace usage instructions screenshot Replace with the current AWS Marketplace "Additional details" view showing the Open Glue Studio link for the ClickHouse connector. --- .../marketplace-usage-instructions.png | Bin 51070 -> 31821 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/static/images/integrations/data-ingestion/aws-glue/marketplace-usage-instructions.png b/static/images/integrations/data-ingestion/aws-glue/marketplace-usage-instructions.png index f7eb987e924e08e403f298fa3a6c8bb8ee37a86b..f10303649322097b36ad306cac8640b5165edb8d 100644 GIT binary patch literal 31821 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�qhEy83Tqj*qW1rBY5bDB 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 PAv3C)p%-ZhMQ|&< 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 TLT1YGzx{yo|8d8tpVR*f7Xrsq From 0039b7ed5d9a2eb6df9baf0e881f9924fa427ceb Mon Sep 17 00:00:00 2001 From: ShimonSte Date: Wed, 29 Apr 2026 20:44:03 +0900 Subject: [PATCH 5/5] Align Glue connector examples with marketplace.spark pattern Update the secrets section's Option 2 and the Examples section to use connection_type="marketplace.spark" and reference the connector by connectionName, matching the script Glue Studio auto-generates. Note that Manual Installation users should keep custom.spark with inline className/host/credentials, and that secretId can be omitted when the secret is already attached to the Glue connection. --- .../data-ingestion/aws-glue/index.md | 115 +++++++----------- 1 file changed, 47 insertions(+), 68 deletions(-) diff --git a/docs/integrations/data-ingestion/aws-glue/index.md b/docs/integrations/data-ingestion/aws-glue/index.md index 6b84f297ab2..d36c60bd93b 100644 --- a/docs/integrations/data-ingestion/aws-glue/index.md +++ b/docs/integrations/data-ingestion/aws-glue/index.md @@ -90,46 +90,51 @@ There are two ways to wire the secret into a job. **Option 1: attach it to the Glue connection.** When creating or editing the ClickHouse connection in Glue Studio, set the **AWS secret** field to the secret's name. Any job that uses this connection resolves the secret automatically — no code changes needed. -**Option 2: pass `secretId` in connection options.** Add `secretId` to the options map and drop the keys the secret provides: +**Option 2: pass `secretId` in connection options.** Use this when the secret isn't attached to the connection. Add `secretId` alongside `connectionName`: ```python -clickhouse_options = { - "className": "clickhouse", - "secretId": "clickhouse/glue/credentials", - "host": "", - "http_port": "", - "protocol": "https", - "database": "default", - "table": "example_table", - "ssl": "true" -} +source = glueContext.create_dynamic_frame.from_options( + connection_type="marketplace.spark", + connection_options={ + "connectionName": "", + "secretId": "clickhouse/glue/credentials", + "database": "default", + "table": "example_table" + }, + transformation_ctx="clickhouse_source" +) ``` ```scala -val clickHouseOptions = JsonOptions(Map( - "className" -> "clickhouse", - "secretId" -> "clickhouse/glue/credentials", - "host" -> "", - "http_port" -> "", - "protocol" -> "https", - "database" -> "default", - "table" -> "example_table", - "ssl" -> "true" -)) +val source = glueContext.getSource( + connectionType = "marketplace.spark", + connectionOptions = JsonOptions(Map( + "connectionName" -> "", + "secretId" -> "clickhouse/glue/credentials", + "database" -> "default", + "table" -> "example_table" + )), + transformationContext = "clickhouseSource" +) ``` -The secret's `user` and `password` keys are merged into these options at runtime, so you never need to read them in your script. +The secret's `user` and `password` keys are merged into the connector options at runtime, so you never need to read them in your script. ## Examples {#example} + +The examples below use `marketplace.spark` and reference the connector by `connectionName`. If you installed the connector manually (Manual Installation tab), use `connection_type="custom.spark"` and pass `className`, `host`, `http_port`, `user`, and `password` directly in the options instead. + +If you attached an AWS secret to the connection itself (Option 1 in [Using AWS Secrets Manager for credentials](#secrets-manager)), drop `secretId` from the options — Glue resolves credentials from the connection automatically. + @@ -154,42 +159,29 @@ object ClickHouseGlueExample { val glueContext = new GlueContext(sc) Job.init(args("JOB_NAME"), glueContext, args.asJava) - val clickHouseOptions = JsonOptions(Map( - "className" -> "clickhouse", - "host" -> "", - "http_port" -> "", - "protocol" -> "https", - "user" -> "default", - "password" -> "", + val readOptions = JsonOptions(Map( + "connectionName" -> "", + "secretId" -> "clickhouse/glue/credentials", "database" -> "default", - "table" -> "example_table", - // for ClickHouse Cloud - "ssl" -> "true" + "table" -> "example_table" )) - // Read from ClickHouse val source = glueContext.getSource( - connectionType = "custom.spark", - connectionOptions = clickHouseOptions, + connectionType = "marketplace.spark", + connectionOptions = readOptions, transformationContext = "clickhouseSource" ) val dyf = source.getDynamicFrame() - // Write to ClickHouse val writeOptions = JsonOptions(Map( - "className" -> "clickhouse", - "host" -> "", - "http_port" -> "", - "protocol" -> "https", - "user" -> "default", - "password" -> "", + "connectionName" -> "", + "secretId" -> "clickhouse/glue/credentials", "database" -> "default", - "table" -> "target_table", - "ssl" -> "true" + "table" -> "target_table" )) glueContext.getSink( - connectionType = "custom.spark", + connectionType = "marketplace.spark", connectionOptions = writeOptions ).writeDynamicFrame(dyf) @@ -216,45 +208,32 @@ logger = glueContext.get_logger() job = Job(glueContext) job.init(args['JOB_NAME'], args) -clickhouse_options = { - "className": "clickhouse", - "host": "", - "http_port": "", - "protocol": "https", - "user": "default", - "password": "", +read_options = { + "connectionName": "", + "secretId": "clickhouse/glue/credentials", "database": "default", - "table": "example_table", - # for ClickHouse Cloud - "ssl": "true" + "table": "example_table" } -# Read from ClickHouse source = glueContext.create_dynamic_frame.from_options( - connection_type="custom.spark", - connection_options=clickhouse_options, + connection_type="marketplace.spark", + connection_options=read_options, transformation_ctx="clickhouse_source" ) dyf = source logger.info(f"Read {dyf.count()} rows from ClickHouse") -# Write to ClickHouse write_options = { - "className": "clickhouse", - "host": "", - "http_port": "", - "protocol": "https", - "user": "default", - "password": "", + "connectionName": "", + "secretId": "clickhouse/glue/credentials", "database": "default", - "table": "target_table", - "ssl": "true" + "table": "target_table" } glueContext.write_dynamic_frame.from_options( frame=dyf, - connection_type="custom.spark", + connection_type="marketplace.spark", connection_options=write_options, transformation_ctx="clickhouse_sink" )