From 74fac39d3fff0e585feb3d2ab89978d58b58c99f Mon Sep 17 00:00:00 2001 From: Michael Mattsson Date: Fri, 13 Sep 2024 00:10:44 -0700 Subject: [PATCH] Docs and release assets for v2.5.1 (#64) * v2.5.1 release Signed-off-by: Michael Mattsson --- Dockerfile | 2 +- INSTALL.md | 14 ++++-- K8s/v2.5.1/hpe-storageclass-nfs.yaml | 25 +++++++++++ K8s/v2.5.1/hpe-storageclass.yaml | 24 ++++++++++ K8s/v2.5.1/truenas-csp.yaml | 38 ++++++++++++++++ K8s/v2.5.1/truenas-secret.yaml | 12 +++++ README.md | 13 +++--- docs/index.yaml | 35 ++++++++++++++- docs/truenas-csp-1.2.0.tgz | Bin 0 -> 24036 bytes e2e/tests/storage-class-rwo.yaml | 2 +- helm/charts/truenas-csp/Chart.lock | 6 +-- helm/charts/truenas-csp/Chart.yaml | 6 +-- helm/charts/truenas-csp/README.md | 11 ++--- .../charts/hpe-csi-driver-2.4.2.tgz | Bin 16438 -> 0 bytes .../charts/hpe-csi-driver-2.5.1.tgz | Bin 0 -> 17511 bytes .../truenas-csp/templates/deployment.yaml | 4 +- helm/charts/truenas-csp/values.schema.json | 42 +++++++----------- helm/charts/truenas-csp/values.yaml | 32 ++++++------- 18 files changed, 200 insertions(+), 66 deletions(-) create mode 100644 K8s/v2.5.1/hpe-storageclass-nfs.yaml create mode 100644 K8s/v2.5.1/hpe-storageclass.yaml create mode 100644 K8s/v2.5.1/truenas-csp.yaml create mode 100644 K8s/v2.5.1/truenas-secret.yaml create mode 100644 docs/truenas-csp-1.2.0.tgz delete mode 100644 helm/charts/truenas-csp/charts/hpe-csi-driver-2.4.2.tgz create mode 100644 helm/charts/truenas-csp/charts/hpe-csi-driver-2.5.1.tgz diff --git a/Dockerfile b/Dockerfile index 423dfc8..e76fd31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM alpine:3.20.2 +FROM alpine:3.20.3 ADD requirements.txt / RUN apk add --no-cache python3 py3-pip && \ python3 -m venv /app && \ diff --git a/INSTALL.md b/INSTALL.md index bb86930..910229b 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -25,14 +25,14 @@ Install HPE CSI Driver using manifests (assumes latest supported Kubernetes vers ``` kubectl create ns hpe-storage -kubectl create -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.2/hpe-linux-config.yaml -kubectl create -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.4.2/hpe-csi-k8s-1.29.yaml +kubectl create -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.5.0/hpe-linux-config.yaml +kubectl create -f https://raw.githubusercontent.com/hpe-storage/co-deployments/master/yaml/csi-driver/v2.5.0/hpe-csi-k8s-1.30.yaml ``` Install the TrueNAS CSP using manifests: ``` -kubectl create -f https://raw.githubusercontent.com/hpe-storage/truenas-csp/master/K8s/v2.4.2/truenas-csp.yaml +kubectl create -f https://raw.githubusercontent.com/hpe-storage/truenas-csp/master/K8s/v2.5.1/truenas-csp.yaml ``` **Note:** Replace `hpe-csi-k8s-.yaml` with your version of Kubernetes. Also change the version of the HPE CSI Driver manifests where applicable. Using mismatching versions of the TrueNAS CSP and the HPE CSI Driver will most likely **NOT** work. @@ -131,3 +131,11 @@ Set `root` to a dataset that will serve as the base dataset where the ZVols will Once the `Secret` and `StorageClass` have been created, all functionality is provided by the HPE CSI Driver and is [documented here](https://scod.hpedev.io/csi_driver/using.html). **Tip:** If `VolumeSnapshots` are needed, follow the guidance in HPE CSI Driver documentation on how to [enable CSI snapshots](https://scod.hpedev.io/csi_driver/using.html#enabling_csi_snapshots) and [how to use them](https://scod.hpedev.io/csi_driver/using.html#using_csi_snapshots). + +## CHAP support + +From v2.5.1 onwards iSCSI CHAP is supported. Follow the [guidance provided by HPE](https://scod.hpedev.io/csi_driver/index.html#iscsi_chap_considerations). Retrofitting CHAP into an existing cluster is not recommended. Bi-directional CHAP is not supported by the HPE CSI Driver and will not work with the TrueNAS CSP. + +CHAP on TrueNAS uses a hardcoded tag (4730274) for the authorization on the appliance. As long as that authorization exist on the appliance, CHAP details will be returned to the CSI driver and attempted to connect to the target. Do not create this tag manually, it will be created by TrueNAS CSP when enabled in the HPE CSI Driver. + +**Important:** If you need to rotate the CHAP authorization it's recommended to scale down all workloads, change the `Secret`, and scale the workloads up again. Otherwise existing iSCSI sessions may break. diff --git a/K8s/v2.5.1/hpe-storageclass-nfs.yaml b/K8s/v2.5.1/hpe-storageclass-nfs.yaml new file mode 100644 index 0000000..0cfca16 --- /dev/null +++ b/K8s/v2.5.1/hpe-storageclass-nfs.yaml @@ -0,0 +1,25 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + annotations: + storageclass.kubernetes.io/is-default-class: "false" + name: hpe-standard-nfs +provisioner: csi.hpe.com +parameters: + csi.storage.k8s.io/controller-expand-secret-name: truenas-secret + csi.storage.k8s.io/controller-expand-secret-namespace: hpe-storage + csi.storage.k8s.io/controller-publish-secret-name: truenas-secret + csi.storage.k8s.io/controller-publish-secret-namespace: hpe-storage + csi.storage.k8s.io/node-publish-secret-name: truenas-secret + csi.storage.k8s.io/node-publish-secret-namespace: hpe-storage + csi.storage.k8s.io/node-stage-secret-name: truenas-secret + csi.storage.k8s.io/node-stage-secret-namespace: hpe-storage + csi.storage.k8s.io/provisioner-secret-name: truenas-secret + csi.storage.k8s.io/provisioner-secret-namespace: hpe-storage + csi.storage.k8s.io/fstype: xfs + nfsResources: "true" + allowOverrides: sparse,compression,deduplication,volblocksize,sync,description + root: zwimming/csi-volumes +reclaimPolicy: Delete +allowVolumeExpansion: true diff --git a/K8s/v2.5.1/hpe-storageclass.yaml b/K8s/v2.5.1/hpe-storageclass.yaml new file mode 100644 index 0000000..ebc877f --- /dev/null +++ b/K8s/v2.5.1/hpe-storageclass.yaml @@ -0,0 +1,24 @@ +--- +apiVersion: storage.k8s.io/v1 +kind: StorageClass +metadata: + annotations: + storageclass.kubernetes.io/is-default-class: "true" + name: hpe-standard +provisioner: csi.hpe.com +parameters: + csi.storage.k8s.io/controller-expand-secret-name: truenas-secret + csi.storage.k8s.io/controller-expand-secret-namespace: hpe-storage + csi.storage.k8s.io/controller-publish-secret-name: truenas-secret + csi.storage.k8s.io/controller-publish-secret-namespace: hpe-storage + csi.storage.k8s.io/node-publish-secret-name: truenas-secret + csi.storage.k8s.io/node-publish-secret-namespace: hpe-storage + csi.storage.k8s.io/node-stage-secret-name: truenas-secret + csi.storage.k8s.io/node-stage-secret-namespace: hpe-storage + csi.storage.k8s.io/provisioner-secret-name: truenas-secret + csi.storage.k8s.io/provisioner-secret-namespace: hpe-storage + csi.storage.k8s.io/fstype: xfs + allowOverrides: sparse,compression,deduplication,volblocksize,sync,description + root: zwimming/csi-volumes +reclaimPolicy: Delete +allowVolumeExpansion: true diff --git a/K8s/v2.5.1/truenas-csp.yaml b/K8s/v2.5.1/truenas-csp.yaml new file mode 100644 index 0000000..23c48f0 --- /dev/null +++ b/K8s/v2.5.1/truenas-csp.yaml @@ -0,0 +1,38 @@ +--- +kind: Service +apiVersion: v1 +metadata: + name: truenas-csp-svc + namespace: hpe-storage + labels: + app: truenas-csp-svc +spec: + ports: + - port: 8080 + protocol: TCP + selector: + app: truenas-csp + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: truenas-csp + namespace: hpe-storage +spec: + selector: + matchLabels: + app: truenas-csp + replicas: 1 + template: + metadata: + labels: + app: truenas-csp + spec: + priorityClassName: system-cluster-critical + containers: + - name: truenas-csp + image: quay.io/datamattsson/truenas-csp:v2.5.1 + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8080 diff --git a/K8s/v2.5.1/truenas-secret.yaml b/K8s/v2.5.1/truenas-secret.yaml new file mode 100644 index 0000000..aa3947e --- /dev/null +++ b/K8s/v2.5.1/truenas-secret.yaml @@ -0,0 +1,12 @@ +--- +apiVersion: v1 +kind: Secret +metadata: + name: truenas-secret + namespace: hpe-storage +stringData: + serviceName: truenas-csp-svc + servicePort: "8080" + username: hpe-csi (username is a no-op) + password: API key or root password of TrueNAS/FreeNAS appliance + backend: Management IP address of TrueNAS/FreeNAS appliance diff --git a/README.md b/README.md index 8dd5518..ce91aa3 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ CSP API endpoints: The [CSP specification](https://github.com/hpe-storage/container-storage-provider) in an open specification that supports iSCSI and Fibre Channel protocols. -As of version 2.2.0 of the HPE CSI Driver, these parts of the CSI spec are currently implemented: +As of version 2.5.1 of the HPE CSI Driver, these parts of the CSI spec are currently implemented: - Dynamic Provisioning - Raw Block Volume @@ -23,13 +23,13 @@ As of version 2.2.0 of the HPE CSI Driver, these parts of the CSI spec are curre - Volume Limits - Volume Stats - Ephemeral Local Volumes (not supported by the TrueNAS CSP, see [limitations](#limitations)) - -Topology is currently not supported by the HPE CSI Driver. +- Basic CSI Topology # Releases -Releases will track the upstream versioning of the HPE CSI Driver for Kubernetes and potential bugfixes in the TrueNAS CSP will be pushed to the same image tag matching the HPE CSI Driver version. +Releases will track the upstream versioning of the HPE CSI Driver for Kubernetes and potential bugfixes in the TrueNAS CSP will be pushed to the same image tag matching the HPE CSI Driver Helm chart version. +* [TrueNAS CSP v2.5.1](https://github.com/hpe-storage/truenas-csp/releases/tag/v2.5.1) for HPE CSI Driver v2.5.1 * [TrueNAS CSP v2.4.2](https://github.com/hpe-storage/truenas-csp/releases/tag/v2.4.2) for HPE CSI Driver v2.4.2 * [TrueNAS CSP v2.4.0](https://github.com/hpe-storage/truenas-csp/releases/tag/v2.4.0) for HPE CSI Driver v2.4.0 * [TrueNAS CSP v2.3.10](https://github.com/hpe-storage/truenas-csp/releases/tag/v2.3.10) for HPE CSI Driver v2.3.0 @@ -83,12 +83,11 @@ These are the known limitations. - **Dataset naming:** The underscore character `_` is used as an internal separator for naming snapshots and datasets. Do NOT use underscores in your pool or dataset names. - **FreeNAS ctl_max_luns:** FreeNAS has an internal limit of 1024 LUNs. That number increments for every new LUN created, even if deleted. The iSCSI Target service won't start and it leads to all sorts of problems. This is the log message on the console: `requested LUN ID 1031 is higher than ctl_max_luns` (this system had two iSCSI Targets). - **FreeNAS iSCSI Target:** On systems with a high degree of churn, especially during e2e testing, the iSCSI Target sometimes croak and needs to be restarted. It's recommended to starve the CSP to ease the API requests against FreeNAS and let failures be handled by CSI driver and Kubernetes (see [Helm chart](https://artifacthub.io/packages/helm/truenas-csp/truenas-csp)). -- **KubeVirt support:** Live migration for KubeVirt is not yet implemented in the CSP. Running KubeVirt without live migration on RWO claims should be fine. This will be implemented in a later released. -- **iSCSI CHAP:** Using CHAP with the HPE CSI Driver will not propagate to the TrueNAS CSP. This will be implemented in a later release of the TrueNAS CSP. +- **CSI spec lag:** `VolumeAttributeClasses` (can be mitigated with the HPE CSI Driver Volume Mutator) and `VolumeGroups` are not implemented yet. # Need help? -Please file an [issue](https://github.com/hpe-storage/truenas-csp/issues). This software is not supported by Hewlett Packard Enterprise. It's a voluntary community effort. +Please file an [issue](https://github.com/hpe-storage/truenas-csp/issues). This software is not supported by Hewlett Packard Enterprise. It's a voluntary community effort # Contributing diff --git a/docs/index.yaml b/docs/index.yaml index 88a8c8c..db2e3c3 100644 --- a/docs/index.yaml +++ b/docs/index.yaml @@ -1,6 +1,39 @@ apiVersion: v1 entries: truenas-csp: + - annotations: + artifacthub.io/license: MIT + artifacthub.io/links: | + - name: HPE CSI Driver for Kubernetes + url: https://scod.hpedev.io + - name: Install + url: https://github.com/hpe-storage/truenas-csp/blob/master/INSTALL.md + artifacthub.io/prerelease: "false" + apiVersion: v2 + appVersion: 2.5.1 + created: "2024-09-13T06:57:31.896152837Z" + dependencies: + - name: hpe-csi-driver + repository: https://hpe-storage.github.io/co-deployments + version: 2.5.1 + description: TrueNAS Container Storage Provider Helm chart for Kubernetes + digest: c60d6b6691b064885c5214e7551d2d9c3d1d6575e6c07aa03b0dc4b18f70e69b + home: https://github.com/hpe-storage/truenas-csp + icon: https://hpe-storage.github.io/truenas-csp/assets/icon.svg + keywords: + - HPE + - Storage + - CSI + maintainers: + - email: michael.mattsson@gmail.com + name: Michael Mattsson + name: truenas-csp + sources: + - https://github.com/hpe-storage/truenas-csp + type: application + urls: + - truenas-csp-1.2.0.tgz + version: 1.2.0 - annotations: artifacthub.io/license: MIT artifacthub.io/links: | @@ -265,4 +298,4 @@ entries: urls: - truenas-csp-1.0.0.tgz version: 1.0.0 -generated: "2024-05-05T17:25:24.564919127Z" +generated: "2024-09-13T06:57:31.894388158Z" diff --git a/docs/truenas-csp-1.2.0.tgz b/docs/truenas-csp-1.2.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..b4a6648ca2a62610731ed2486b84912927328ec1 GIT binary patch literal 24036 zcmV)uK$gEBiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMYcf7>{+AbS37ehRGIb34v4DcO#lZvAfd9=Gl8_L;=-T25x? z0yFhDk_=76342cmiEEOU4c+eIL6hq-Y4NMe5oW{gF2*zZ%9c+M+eVB0AM76-ROJ8u%Z>bh zi09$u7@i`^hJeoC-ofE;--XECJA64gglPBWp$A`jdxsM^*`NG0@jQfnLVIY>+a14r z@uT;`8^f2AeTZE6Vt=x?f3SP_!kVHG#gHLy2zq;iy%+Z2Cwq7AYH&E*KN#-+=p6p| z;_&dt!T#ZY_5M7wc72aN|8Jq6Ai919ux0-5@9*!H=l{#Wi_QFhh{v{VYYUv92~2zj zBnJqEL1PTZ+5%TIOaZ0aY6#BhNBiGCsR5cE`6dc5*Q;`<;XK6d984&W5=7Z>91Avl|y z6Lt|Jib7_|&q4*}9Y2TkcyuuYeh4#9`tg*Ni` z7R534xN6z6CW-G?URo5zx7bBTu1k`TaTK<|C_*ltU_`;)46zxC0R*ZXfU+QFp5O#ozKs>OjN6gi^o z*#v}y0g4!ap{H=+OvAC+0Z;NFp5+-AgOvU2_iimeqLXE#0AvcLJ zn{y=?ePZJM7MRdqW0FKeus0YCIB`vdTo}PI_AwKy-WCABi%BGZ+2H8)YikR{2zqZr ze||{_`vv=m&M8BIBJCE4lkkY1laPNdzI;bfJOsO{c|k70S3;*e_7iT9oLyJ|L?mWI z@Z;defo0)v8Y3zg5QTjHcgejBubKb%Txg_-H5bO_@XetR~1l<{DwnZDW z;ADbB%;vJsT>9r~q*c@&ITbuic{7rrArAQOR7L?1#W+AQ)ZRefM=XYigTbKs_9x?8 zWm3MmP@f)qVf{uPgZ@X|8495D4@$!Iw9%~py*PZiw^!2t4t5U@Hu~Q~JfFoJ>U}Q< zy*C6sZr%<1eLnoQVg(XU`(6wu%pSb#tCBmaBKEXOsrYqCkp1R>($ahladJpfIpktXz2d?i z$B6ghL$+@9QcbkCV|~}t6ifw3l#wcbdg8=PT%;E)FP!{8`N-3Qb8kBpa#&-e|3X_1( zSM(F%#)Z598zm!c3M9U3C6XDdH?nJX}{u{|v5OHR5NdOPeH=n@SuFy>rBu4e)#YOxM@t#RyVe%?o{laSR*Cl}>&Q(!+~^59JA*^U@hZLCQv@LRft= zOz&yCu%3qBGR8W9A4Ni^91QuMybTAJ;Dn0YUR8a{#QKUhUT$CzhP)~+3C55;X zU22tRu;3D21oY&Wa_N#atUodX}eB@VK{Z-Qot^7sm>R)O*0@~I0yqG?c%3J;D zOMg+RPoJ+XL$)TeHgf@Jog8M;YEU1azU3K{713wT?=@w*Xj|!H8Zt4B)-+ZE*80?6 zvHkMsqhnNj8>re<|INymoFtuAi(1DDSa7u{0(xSrMZGrInX+XkQ&;NNJExYQa0%F- zjLKzaT}O3iUG$}Ya^gyN=OQ}f>dNC2Bcj1^!@Fcy%_0)B6$WMD+xY-juy$FtB7$G5)#c7@7UimS}Q zyVdop>G|5Z^zWTYw!^CtIQrA9${K43Cg?^_HPUNAv_*-nN40Bdu$qu6e_mulbkgI@ zHOmWKcj=YEcnB$`HI}P?3shTJs%14zvTEHkaiQ7p2>d7;UVb2Tr%-}xOq|^{-aJqGUmYmk0WK4Z4ta(+xuhtpaduGq8*1fvUu>T}1x>U_&*Q*+D zsd=lQ6^VsvbTdr4!)-6s#rL!{LF$_~ceGmGb__WV{M*j=5PGaCJLLP;?u`4 z)P*-4H?ivvi{;1nI_+bdPWu6)Ss)K;Wekv3%+A+~TO#DC{H$~n_6?iRy%dam&7t?I zXTS=qH9{!6%BXlS-XkvUyCif`#KeyYo+k3lVn2W(oFY3Tg6*bPu+g%UwRPKB;aodI z7u<=<=$nz$SYEeNtna=v$&HMJYey}E+yS{VpBtICaLlyZDG~F*)b?(b;$<~3Pb?y% zV;Ee$M9|OZcA}~IP%mg(Bua}z4&+aI7)tA5_j6F$$>>faVK_$(7Ub*{#Gj3;OUKDO zk+W21d7>5pJu%W&xmR7-vRYVG3S=P_v`8rZOA2m%aVrYqxdeE_Ik?~+n zWA)RYbFA{E@4*HvZ}R>}Eot<@*k!K1t0(kn}B~%5^^M8^*%c^LaxK1(hq~*olqh1wU?d~r5q9tT|e=V zyiF^;pF6#qr3W1F_3L&Cy|arFavU^W3Ps_x;@D9JSwbD?d3-pKc&GmO+7k%4GXm7D zkl!mbhTmu8s-gUA0==K1&*gpGM124N7g0lS#y|k)fWaFCAef*#5a2Lj=^f@X1ay$# z>_Xj24sRj$IkP&tjQ%@GfD1!#2bnvQ*IkQ#^2JD-4L>YA()88^_Fc#E`yn5{(dp&; zvtz>$3V>Z&?$#u*?Ns=K-sjJ~&!5$Fe1=00eFEut`x-IRxd;Z^VzxPA%E^h<`)c5V zyfZ_NZfS5ue`}{?c5QZtIeGE+BlVD{{&X9=|=mIyyT)y);Rlh(lNr9-{D_tF_S17~;mpxnR};U%%$yj|BR7f|1ANioo5m{)QxMQJ(P@ct0o@BNuWpL`i_O zbZD~26O4S10vM~^bEMK_U<#g%=Ykq1=ObR0D*#+VZadc51gOMu5=gdO$+T-S+XVx6 z*!Q{4kx-5&<$6lu`wH7e;^vEVN?=Xtu3X5ciqwAZLUX?Gs^8xW{D-f)4{DBMMhOX| zyy!_h3ojQ$E{bu;CZP8hYX61yO0Z<3-C4~1v%q-Ti1L}Da$51x6r-wGM3(a582K$D zD@x|WTJDZcY57~F9|T`Oj3S>eh`oRBf!=j*@u@_DfP@lD+KiXoWvj%?aohN`fM*9yF&agOTlQI>F#f2*ogSyC~sEL5s|0e>Wfp;Gs&P-HNVXOHK@ zg4Quo7xS3Nm&JT^Az-84$^G*nGh%V9-pYU1Xypf@M=Y3rJPG2MBclqwc; z)Gdpp<>FbJiLzY>FVuUg$%hnj<`wJ&pdtevdv(75$E^S58T{6f4X#E1d$G4y&i{6J zaJaY8{~qGe6WzinqW#-l>jsD35S(N@V5O$$FiXp&CrbrN6w2&AV*Z<^v!6-(FCfIB zhe8Hk@JYtCsiDj<$xTB#1iKahspynY1IXOjYpt1vhN{a;-r%A16r`N4fNR}LA>Uy( z%Vb9B-p14g1xm@2^V*F39R_}({`}9N>5`~D%Xx@NK{hTtQKMHnN|`<2UX1AW<)C=sPgrXMtpPchMv7FTZeW1>#M%0Q;SOtKIQ8Yb7Xe+ijW2M zW#jrtQ76xuV5p$yGb~rlzZEM=k9t}(%U)s^3Zd|}*twKCuiyT9eRBHqyI)J2Um|zZ z5cGC?R*@nFw#eH@e`F}=Swpg99wmI#)Y##34@*0b#~4!u_c;guQ) zuT-yE=8nWSD5kG=4d2)-M$oJIh66+r_Gq@rCw{cLRrr(uh|MKkn)Pe0+=U6O-LWRQ3i1s%VJ<^T#lyvywHFxgv23f#O-QLgK(xByFX= zEPOX#rqX16Yi&ml*Un0nvL7zd+G8t3|6-3>|4;W;){_dlE&uz$i*o+I!@-M9{^tjI zY}>YU8z58vl@Fv@_qXY-yEgq_Cdf5x4dy$1+9GMIrJ!LeQHdlNPZ5*rq_&cp*2ltf zTQoqHQpsODeSy|E|CK*zRWZ;y|91za`Tz38?q>c!$kWMPC*79yLP8Zc$ciOwzSV?@ zK~X9736?GSiWOg@ue@lABzo*|T=voDzcWLAfTtme(OTPRo&Wm>rTM>qcyPFx{}1tO zfeXkOibDz*0dnxc-3*0boM7L>;S@yBy%DYmYYSY>Fa^u=u2=l`UC(%Z0~0~$m3CW*iV z`-oc49eNj8&z&*6v7S3D;J-{|Gz&N>~7}&Lp)m`%iWo}lzu7pLHO zbOui3QP?8z-=C#-GVnR%%p&BWTL+WAOYyZl3$e{%r;SBiC!vf3rV8y6ws$1H@d@-O zNGKO)AKE*dBQeEnmW)L{^I3#!)kI&LHQSD5ZEb;z7>To*6f;CE%g)HUyXOpm*e+%$ z*4~efk6xdGy*+2Jr+-%dPq4e|?Ah=3^G}k}GQt2;;1l--P==x?m7vXZ)dnr^9gG>C zKv#4TlYT1b`&f39&~ zPB*#T-ApJ<0rX=8y?F`(dH+L<@v(jrh(K2r5HI)$aV&kG+=-ZZakSXSl*z>O**zls zbp&G=AckUE2(|($3=7BE4)(27VlC?nxJWC3^793pDnS%KBp0KTY43 zehfgrSYPt2>jt!6lPN%-7z!y@Lp)IohZ7P9a^y$|DDz0dQraJnE?Q|Jj@J}kSzihX z&&w4?NCZ;kI~t6Lc{2wA4sif|00R+iA&?Ne3u5@`jKmD6J%v1uo#XgL%W$q?QQaxZ zv3N(3oB~7-2xDq=jGd9aOIMte-(78&BUt$uZj5+6K(ic7vf5Rc;bC6GigeK6J zGRH$MN&Uny)*%KiqBm&hw+mk(*3a#UY2 zDWI+aNg@w2Bp_R78kWLuqr{@#a@vz3!l2;x(cas(H2Jk~Y&!%RhO*`7&(8@%&z}#$ z1)Kw}t%qV}F#_(mbk;CRL*)u$4pRr5O#o&;P-*X{i`Yl8ScoX5k771J&>JHLdw@Z1 zLwFweXxk~w|Ly$U`LB<M)V#Sk~KwFUu|o z0u*{u24bP1C85sg=o6-l6DePd8YY5=D2`DU3+YId(_q&qMij-j$jdsBx1|A2$0z+( zor*;i%M-84@Ok+X%Qy3}Vg{%&0l=YvN#d)nPGEq23}dDF8Yr7y-63O+K5Ck z=4%uIG9XUGely4r$0V~W9HkrvK@ws%x2y{p6F$K{0x+BdOlgAX4iHzLiFJ^~V1gh^ zV(l`#IZ1@7JA=1EAjN1Qipxf}!81?Flq6mFC(y+{W^=LJrjiDSTuH}BsGs6sPD;2a zCSKyQZAYAj;|M{Y67Ua#L%_?8eCXbYcnr~7P8^r>qZkPhTTgN=dqVsh3S6I1l*Q94 zuZaWxhQJJlQ@|B59DWz=Wg#T|w0V6yOK@tJT zzy}ZABA@d$Hyb&zaspO9^(pU%P4P5LqHTE-A(`S(08&<`C{lz|{?gx0Edv(gal)mi zW&I6FA=OM1K#k7?I8xS&t(PpaQycC>hkR8cUNcUzdC`p^n@{Lu8YUK6!I?mA-a>nmR%me0_F&dOkW`8ckJyTQI(&gYzx; z2z)0`wNJ!d6&?R;r=1;35kXvF6V_CE+v;iw%Q0HeP+)__937ap^kdZi-KfH)7cwgCzt_J_bjxAqKc_a^^`>O&SZ;6Vlh$QY$0v{Xz^ zVNJ5KU`@OGq_l4JA=%w10^(_3|24nal5MoC|A&V!OZWfm4F-D$oAv)8o~_KuFUMI( zo6=>q+J2vk0KgPL@b{xPuWjj7XUG$lhhuSguFqBdTNqo4GJ0z?^Px%18yn_gf%Pj{hq07XnVjfFErU7IW1UeNdT)-s4A z4pD3FYKBCU;0*~eBQZcBO=5KxmA{`s3PJ)nl~6Xqd9*!bjBAUY-k1WVwQ?dqQn{%p zTy>a)>G^EVTOzh4B;Z!|TW(2EN?Z(??my!I(zbphl$|J8T4Uv7Ho`;4X99_Z>0g>g za+}7g9Ng)hP0k6sh!I60>xsD_Z@U3^*hBifJpS$Ig0sR5g-mU~T7n-q<)3P(5|rb+#H1^DngZ!tUEp)e?&WRbZb(z6(DlnlY% zU@!>OivR_}yxaX1i#Mq^vQS~yP=4>nH`uaV8f}L4&o```1eL+M^NSJTACsVvUzlpKW8 z?e-%Wx543>UAmJX;EAn;0<>^Kv;Df7euNWhM_QTNeP`etNJ5;-h!Zi^H6%cJk=tEo z&v_|pN`>jym?Tjf0#a+Sr@U+tlU--v99H0sLKx8*VXO;0suixndy_CIrcOPWKoz;& zb@tQBM^bN#hag5%Oj$g4ZhjP7a1>7qW;#qu-o9`So!v51UdrmQ10+7x6~EbWR_%7r z*&U>C3xsZiS0MC(lL5Iz6#ugefLIm0-F0?%)7pixX@gK0n;!)VYq9@2+yC;GXXhW3 zgp0P(Z2!O5J9tsL|7~w~@8#zHj|X|=&E&oB)g|6T&{KCf@`1M1pp$so_hL9<_TXi| zaNT!$b-AjPW|?($d*Q;vHgDrCa+yM{m!;sL-S_(TjHdcYf};c>i`&I+{F_ zh#}J)C}y*$D^bj+&{FEBPNnoavuhz5CPF3Zcs43{usD=?s3GIw|Jq!8S zO!+JeS;I^q)B!sA^}FwiNg$i=vCmEVZ?y*;!*2+8nHf{+>cs+SN&sV;s9rT;R-K5b zFOkcIYMFvC&_0(Xfc{C$cI`zrXSH{wd1^+kG#$-_(mAMo|Iu^<7GI z@kI@EU2>}0^~IRp!<@`4Um%Z17n{ zFr^zbJMN%)ek&>EnseS6R^jxi$pP24@PbZ@FX+4ggU*XE=)4dEgN$j;uUDH-tRYid zONO?V%xoHCc>FXt(7v>)Pk$Y-Pnx zU$m6HzutDq4%W5D?YX~-y*`rV!NFiK=r`87_x?9#+*+{z4f(Xp{co&r?_F^%Y8rfvkqZX{91J$hlS^ zc6ilhB=iCt3RfDFG4bg+i*%*SE(#Eug|@xxk~l`L%sZ1Ov*8*CWiVEEttS+TLwj)u zeK1zXTjimsIu*n`-nHZ0FgUvPyZG>!bmW!+s;$yKMEMESE`y|ofsa#_{MvyKaq{qy zN2BCi=splNhKP9#3XuVw$iJ>|g8Lv{)!Wj6Z1n~jC>bHy86tT`G)jCQMCMAWFOS_zMIlREac18)}N-BQ^y9Ja28MUOnC;@9z2wDaruh7JWSt*Sh4Fq1V8lX8P zJ20ie9a1F3NG0p@v$!5&ywpHBE|#67CiiJRIptSgVVq3)4;DkNZGhe#j6?oEiepkc zNh^NX4uq-o2^Gm>4p(ZC^5WhhcP0{^$(*B;Y-e8wCPLK42!#Op48?ig5BSd6Yb@NDEXz)DGgj2iR6rn(fUe* zgryPWV=9m1H#E{nP;siKnVuhhZ&nYqji056nE`0!;_RMp-bK+pKbhiiL6(*G28|Jw z=3xd@u_G6=apI!_$KE$n=DTA{kx*4{B4B-y5_#mUzWLQX>b{WU(M2;SEk^~p(O1|E zT#5oYgf1w4SEWx1AiteJ9FP~miG>ad}0-B{_R;N)xGO3$>HT9L5`bh*-@;3`p> zzU+)J+VQjUod&4?wp(EageEg+( zVSV@2ykWa8T_S_HQ7Ilxr7(`cs+xuJT@{s!_3IW|Gfz*wFcNlIEh7W=FRW}B3Hks! zhemwKa8F7BF;ZothivqaZ(0xe4iwZ8T@NwF5H6{K@LC()g#`?+%Tu zl_#filSKCD6Ehl)5Sxl+r-jW7t)BxnRxh0Gt-&Kd!CO=INn7*Ta8kCWWIOKaU~A1+y*q^h3rCa`m}9Yk62YoPA9ypT0ZTTu&x51a-TjipTy==s+TC?!3wfoI0dWY_J0kBH;P(4}@~q(JZ?8^A4*SFwY@;pzFaKS>|L4X2=Ki0DcorG|>lyMR6jO&q3ta`> zGX5`K49fRE?d=|H?tgla=kw?Ob8w4;p}669f_=p04~o#OO>;M$bW`FFJ+_j+@LtNBT~t$QsUNWN2V7!=K#}$?Y!jMTNKCGL*NTw zaT2=Va9{ky!6=zb@F&o-b6_a+#BYh`u}oSIvo^~44q+6D9yr$Dkc2MEGu{U84FzN5 z!h|B3&qzDnA#)^Ruds4HU$YJO`D;z z0El;(Wj8R3Twag@D3Dj!wvw2aEs|MF?Vo&)qQj|JTr<& zD2}?SQdZ7zExcVA!6?Qdn}FV5sQnk(D?yX(F2ZkhzYBb*4KSZRY3@Qup9qp8U%idz3T;lGM|VnuHgisE#NiCi`* zf{q6nlqWRbQ55r09Us2%kgJg@f|TBo*lVhMp~@5iDBf-?N`n>7xL&E?@RChe1P^pkL>>%*gyTA|NQU&wujE|p9edK z`(MA;K!30IvlZa~*!uo2&$gfc`;P7OhyU;Y{Qv&r`t#Q>|M&OLyL&skhYGF*3Ow^H zMpN|Zjfj(Jz+59>Eq7&P^9Yh0Cc|&Iz|d}85CDgQ)#@9p<*GWg>uJ<5(i!S$?FCV< zZPb9i_PZpcav3BzOA};&00;D{g6*-ju*Z8A(f{+8wi|ohGs3jlfBU=T{4e|admH`# zK_1(-t*!E-`}?%lg)~>`s;=%UzTLHMaOe$rRaw&t5QBVa8D@!{`0|$~d*XUA{}K`J zES!+H;Tw{KY$%e9SU}yU@fuH%J9mBbhIsOxavNM^$zH{ur_l@rD2D#O@FZU0S!DjF zAM#-DZZe>G{_nor9~_kC|BJo7P5#FRdHDRV3V^1kP#WkV2I?FPs4d+NTM3c;n#zLA zfl)-cq^U}lDr>4wLZcpn&!0`Uz}K&t7~*CTb|D>tT?=F()$-;Rp}EMQ$@D507)3RW zrqe}L)iC9cUx3mCM?Nv}^WJ4|OP0MhA5}cIP;USue}{qJQ0$8^1VRRWOcl8ly3(uo zpDBgJZ+Uyvk?V3{eO^O)n?hAyV<~e0cD|nJxdAjlVq-(HU26Qv*t+806!-%ENC-nZ`71d=^l_;l(mYev7Z9pp z-Q6n!hVirn(*`|Tj2`s77*YD_`)5ZdCzq$A(RQy|@b=Y#;Vt^aVraX<+hL~+Zz#ub zfJnk#?GLEoD<5(c+iVsi=+RfZhlVoht`B?4m!nr#BqBbU&R=mpF_gwZfIQ5RVrj`N zjcNLz@U~14IkbujrQIRL9ofY!F2#LH+#AGbUxunjG5Iv-?;ZZW%n^FpuQG3FiNuUt zAvGeQB~=Dd;w&+-Jsg+N4tS*t$Y$-R8+km<%+Zm-)2;ER!QE!2?ZWd)%)-zE&!p?) zj|?|;gNvi$y5vsZwy}tI`)68gyB?qnh7+={5u6BllclzcbSO=?-5<;Itt8;(vzZB9 zW`dT6rQ>AKcBH@U`LJP-GU`SSQK^19a)*k?cp99stRAr8j5g6xN?+ZLH_8#;kH93r zz$Ga3B7#Hq>icKMqqFPN^OK9WXXjTYKAHINmc*~}lT3y(5%KImU1`?%)y5%1@h$XU z?GHL}pN^fG1(Ohe8ut6kaAMxf>$ksNzdn6``r6!vHni#Gj@9K_Lb`l+es%Wd^!ogl z(e>GzqhC*3Au47mMpu`?m#oG5jV}WUe>=Lk9-SUvo?cy_AHC^-&!{a0xt1o- zDc~8IRZ+7V+6baXCvDP4Tj80M(+0(~5uSQizx$@&+mv%bA@O|kzFYx-X?Lz-djY6+^;f`8*ew2DuEnN)cviiAgL|lHU zQ_(90EB^U~^wvfFdiv*>L~ts!iy`R!jAf=CaelUJa>%wk#M!o`H4ojI73_JFC$#)E zt%aCtYuaN=+npStNhqg~*8nI^!oI1LhE_Wej*Tj%{x`ys21HBGbXirXOgw6ff*nm4 zmBq*iY#CSg8mvriO&K?LK7ZC_vN;{6I5}Wy|Kx0R^z-Y}>+`oKr`N}C&wqJ)`R3@n zZf~Pk4PP?uWV9far-kf{*4eM`E|0Fx-k#qZVrlZBPAI*3dwzEH_HtEZo{Z&Bk(-DW zl!Od@VkMI@#<$o;6rcp_tEvy$(ytDUh(=?==ly1iy8FFv&J+pDm9eHNt^^q4|15% zRI}5km0jAZZ&)?6F!1`R|JQdvE16QaY5hw~f@)e$akBdoO{!nGTA!OHx4VV{qOx49 zxW+BGmg~(A>r7l}NiXnyGYGwCt!}+gxXU9c)+>g%NTW$wRZB*|2oUulF#6{_2Ii-A z$H25oob|=Ita)a3n0Wusg&`x z6S;mpy}Ew?_Vv3rr=zQ*s~W|qE7|_U$~(A!J)ps~Ur?#kT3e9YjH+W-w?YlS04t` zkxD?}{DW%RzkFyimes38YJ(FR><-h0d~w-nmL+oQzKc(dRI7w)AIj22FG!jgzXCGilPe!?`{ zcQ$pm6mwP6vsFW@1dzpos)|)M;Z&PPJa=qlc3gAOe-iJxmr&|<{#p@|zy&cf=F=gUY2S^za8iDPA zp1d}tGg#s^L+l7gZCF4#*6YPl>I4Cd>cB1rF3PTZQ|4m}vUiZVGp(5&(DS&?Eq*1D zw?fmd4{=awKX0cF6V+;t$zr2)Pc6bI8=*q0UUv7^JvCgsIndZ~S;F-pr5y*nBT3P% zsb3AelXobpYbQNr=(KlCv9PMJ=uBR^Augg#{a!+HaC5t5Kvo%fiMPCO$jE~2j2ES^ zGCa(y&CfXWa5!D}qBB-tX(F;^s-?%c#1<_o^BrnkR#U#tslCzan%cTRf^3W$`hSlr zc6zzg;>-2YOGAfAz0~U4B#j=B_t(>UpEAgjC6F*JybIB}Sq;lttQC{3eRU~bWGwGp zeq>YNsSA(dTzzcGp&jpkOkIC{8tPj0(w2$3QOp)l%uLPZ!maZXurxk3vbbR=*R3ip zL4kW2niRhpiY#HF+z*dzT>vZhnfw!#wX6kRF}H2MRqPV%7l;ft$oJ3R&I{ zYYX5Bcm_ickkFq4JlO_5f*y+L3`aohvSJbfOaTfxa8HfdYJ#VYhK*!$C(~N#e-_z@pO~PqaTGtGDyG?8gENq{;^%&d77lrb!f$n5mdC zaTC}57?D~7%`0Lmh*h9Ky$&c~Eun!mxiDA6ri%mk;gMQk!Fnj17WH~P=;%ERZV$Mf z`9wV@_qU_BZsqWyJShuW0}o-*=J;2-R`E;J`$-;Ek+>g)SYObdx=~$OeAl8gq^9~k zY7K=ZR@NH|(4N5BQ^4ox=nh4+o{IKR9K0u^KN!bwqd{ymh>ZsEjcX7OVwpay$@!qR z4J@P)(x3OJzUy+92!iH-*=PIM&LAK()4ZFdhelKJ>sC*)ixgE#5q0rdu#I3v& z_n5n6--t?f?~aF*o7XHnwnT1bE+xdo3`uBvXaW;o+ustuI*XdcWKCg`u35@_^SgFB zf&NuC>~w~Bnj3Z$V>1~rMdeUYQ3WW9~XH& zz|%oZGv}TTQUy(O{b+GW>p6I{y3b{~GlX5;H!JI$T^)^UIwHBae!5mq=p*X5_jOW5 zt;wZ>#m0rOIp@Qw=Zx2=3#eu55$xp!8qgCvtQB;0Zw9`u4lJyiEO(MU>dsb=eQ1A; z&!YD~==Z*Ky#u28{)fR}uX6vx{^8-v&HWD#@n`}vz4E8qgehGB)MeVFK(w3ThTw~B zef|udIlo{ZQRi30KySi->Q~J5w(~1%UVyJ(ADd`@qGyr$FYo{3MHjjKrFH(l*gYJS z?|(UXvC04SAdk9QDkQ9YkFNuLAF&u74hDlvm)hFe0!Q*aI2a5Deev~pbdfH)U~6lu zxD2<86Rjb+4&S<+T~T`WEs=T41T4*f6_GgA&G^qD_;K*#Kva!l!iY=!A-FoesN@L~ zfI-gwmUdZ|)j&a6gO^HacP`(oNU$7})o4|MvlcSdP$?x7iNUiLX4^KGkbt*!YH~8> z*Oh3LJjq^mOev>feIE(s3gDFsh7Q5*a>?Zi(BxB2zDc9T9CF(CHKve@x@3=2L3`x{ za!n~|4E=3LB_T_5)>t)*GL1TAky!bz@k;iF(rBs~@Ef7*1o=q#{9A5R|LyJQ>iXpL z_37%@;b+o7Z!H_Hi=u!~Ewo-wzUWQSwO0qPbUUeG)-0LAw_J0njJY&gE@^M6-m+~k zn5I{+(bDARZpkP6ETaEMF|u(;8T5U7M##;Y?El?^!C~3{e>vFb{}1x$>d}~MFa69X z`=4ZN(3E;*l?Z(OYHOU)t16mKe$BFjNxvQruM5MFF#QtW-VFJHLuY-?a=jtY+S=j2 zlV}=4m1Vb3)|Q(rb|jYG-Vlt@gv3a&t}S+FFbQ|WUo>%DkryJ<>zdWF?xX-_C2k>- z6!otdagJrFvT=^`6kAm#D!U~;$0|dkDH+#s=98{Z$+e>10113*`%&7#c@|{V`cAM6=bbN{^xPw)pfc-3)QN8)6Tps)92;M_3`Vo)AK8ptn&JQUDRbc z+&?g9XRE^a`Q7EHCbMgAZ%}pb{Y&RS-FQ_uUe%3PweYmtf0w66CvQ%jz+1YFX8UjN zCAaws_TTQy-Q7+8mj`*az;73);COTfl%r=tV({0@IR$=0egFhxSk~1Hfe($ve}6V( zETY4HpSr|zW)bqxt%FJ5rTAL$6X)qq&Wr{AHt^9c;(91==gvorfeYx~z}N$)AwzK# zV~T|C0OL7Oh8*Au*M!6Y1&jc3oxO*E$dxnHI$xYdMn!s454Mv`z$gi0FmW*>urah9DfO~@GxaD9w&0i<7j1*z_P)m zEdOqtge=(sqt~Y+Zf9QpcKTYLQp1b_4{?;}HgHK0B@BsGUZheEk;{81(Y)^g+a@|CEz0A`~+cV?-@m^5;HyrVK~$KVN};XU`b`(W@AF+m>~SCMf36 zKOB=Ff((l!+;i~%fRXIOfP_AL)lu;x4Z5OIqbxvB|ZPkVV1!?09ss&FA76@g@_B zyd6N;48+7MV$OE}P23rPv?3nC+mWa@L69XeqCz-)Fv>Ymt|;M_ z>Dnwp*UDvaEySnR*K*ss>`mWEX{$?BE>Ty-B>fmf1$_8~l)<)%R4zq>YIjDwkRp3R ze4pI$;bB5p`j|2)oZYlGe;vUX28f|pu$}lU1UUyPCt7-3_Ezecmh}Z(q?JJV`2tQ5 zbz>X}%+~O5fU^DkmG#B0f1186^%wwtvA%#(lwJ{K`OUBZ3m?}<%x5WQZZC{Q3kG_urwIdd%;!R6=!U^hZ5aHtRO1U^kneZYU{KogSl=j| z6Ay90K;i&~E-KOhCX57-VYeVD_>{+^K0g1rIt_kB?7i?zj2L88qk-Y03w@t2`dpimYk2!Gv}5pwgk1T^D`Yg_ z@|BkWX%RMq36v*HX!7m(6B5_>{N6EmZU4|=`w zE9(pJ$@De4MZT%RYcdr^tM7ng7=kf3VYvDVKH_jfc)vX~PNw_^i=m77k2@HL9|eLR zQ5=(46BJ(nuU5gJ0ec;U;*@E=fC1MG)OV2~9(ZYreBq7jEDSS%<>d4NgZxZly2+4N zIPyGkp&Inn28W<^$)w2vfD7VPXMm2u=dXrQ&@d?Y0C@#50Xw(NCjp*@Tzxg8(T+jp zlFMk2z7Tg6)Y)~NiO`OL?uyK5z^4Hdeh~G&&OUENPWuMX@6L4TGoE}2L zaAN^+MU^wWj{|NK3VSI>Am1n|u1vqgBuJIiIShP>LB7vbLD|fSTo$(Q++w3pc0+3w z%AAED!BzW@k6Xmo4$ z=Mr1Xz1<)CWSshRXUGras8Y@CyA3ATN0NLJvp7aHBGQeRdY&szA>?5OFyn|$upA5& z-r|@Dp`aDc+=CJ=(KiR2kh{<)(92(e{#+=)8GgzZ zPR$!`47wzUNGN=jx)U6sT2G;f2^TK(EpR5A68^Xp z1>ZGZWs4dKMpPH$dg+)yvxGfJ+!QkA3s{z-vD|Z(C7wIvTE-f zMPlKTEKpU0Bd;G4z^yY4SG6%BP}Uny`(w)>d1U9;?Ac)fqe{p0ucdut*}fdc=g)`W z=Xpx_9UU7geVr*CeV^M{*(f{UYyvQ!abl%QhyA1QSqpZTh86_9F=DWndgK9v(;Y$3 zkG7q@``^yro&U0VxsPg7B8^E0J`TlAeJLq2cxrD)FvL4?@SwyGCkaY{eGt?X;=UxQ z(o+f^ajD#OzaAsXuA>;b47;59#U<9)>0)xNU1Qzfq9j1J3vUr*)P|vFqfe0!<>h*G zn>Qa4mSsaw=OefrIKDjLQ<~i&6ao)VCP-X3D2bhJUhGJglrPiDnCdY3oOqkWx!8m0 zJ%mDB>JtKe!jvgXUCEz@`Qjmp<9s8@!4|*&Vb{# z=j=KI%lcUy1j(2~e#SHhhdjxYxeHz(!sUVJ;~1$~tF%lwV zv7HAJ3->O#L;+z49Fu4cnh0?_f<51PjgURkhBj%lJO%U;AC?H&Zk|2=G z-_xXD&yf;UYjA?6fFfq6ZQFKw^(TgRYTZdF ziq#F{ZL7Rm;JG5yPciD>?(&(}cS(4QVwUl#P?uEa3D+x9Pxn8_7|3gNfh)alwyn#%F#i+a+AjGI(*c~-=>0tAU z_c^vgc{9h5aWeFaw_#r2?p?dFC&&76@yYLYe0-#;_f0-NPTIAh$h*$34J}|MCWYiv zBZCW7xu_c$6yvHknpdf6n?-fBtYIou3~DMEz@dmG*^%qHTuIb!3i1G?AmaK+!DPx1 zkfAj1grG4*m3*HgOAb8udPavPi)2;mSH#?9)j*nw3F979$j#N9||FMoT9a(=A$X}`)O#C1Kv?2!`LR! zl>t<|sYwwLG68dvNGD?!{Sy-}aT(oF!IA0g&%5fV(3c=cLd@otbs;?z!ixdJIlz=A zi0%O4Et7#%acaQlPP92mgg0phZ-tQ+FYI!V?QDZ*o-~ybW1rK`;_#0I#~9J3Ztnn! z5cseFsr5Ft9q@P6E9g@K{y}gEcuON6x;H|Z5hN4NB|iBD^K&#N#J{1y^$AsWC*~|m zxR`Lj-w@zxFCdAyVE*Hl(#JpUfR9@;tVPKf@kVGlO5^#sBX=yfa;E+0fDxXCAc+8E z-~;8T<-OB-UHs7BmTpfn#i6LEzQ|%O2{gO7^rfE#OR1>DaB5k9L(&^5oIMkSJT6L7 zhhrYSC=3S9Dia)f8h3G)x`Ux`e`OW8EunZ3AsBSC?l$zq>j+|J4b+Roq}DP?8F-v5P{AlvTzJGLD^cHd8WTcYHbX zWhq@DK8m0_Luq|s?E*FP1kb)cJ3c)hovwng0wH-?5ykn2PsRW1JniQ{QWelnFV?qH zov&*fE$9FDU%sr~|M+rq{{KN9b#k}+Qz#8&fF$vd@ECEe8i3l;?XZhygRA-e^2=$C zg@g1``A1JO_h^2U7+3(Lx4c~808s{mXb8eYT!E5ZWSgana7qaQXHa$H(*;JbG|BI={daHU3Khh3!HLgFZEa| z?}ysb=&QIfp*W7Dhjik@siPhDMcxqbxt_s$8_Hce;npKz?hQ?|)dVoUkv0)uL{fDp z^~|QAdsIARZsZC7pkL+v-kU>@)w}C`WVjWm_9lylnyj{d4Tc|^f+XNy6}># zAU%aB@)SPOsKXS*D3T#(nac!*%CIV38v_8F^I@Va=9-88L5_AKUVr6!2j<3^tgp0| ztod|#zC0aW<-5iLMP=q?MQLZeGM=r+ix(+SDs{SZ@ef^wVoVu!g|-XD{7yMHRly~r zL9RB(6_V8sD1Y!Dq3LxQ#n+e$8{_PMots?3VgtV1t^m(aV20m7GW|1*V>qvT4H4s( z-XfT%Rh|I$NrJ1aTE(2(tnc2Poutl>S~MF`xx0%N8sWeF?cxaxae9i#0M{1uGrUem z*f=xg1h!gRu*HP6YN|_Dx2OVL7ex$t=am(w*DEYE;?K;tO^4va@0JwP$a|kHG9P|V z*Z=PNU#knSR>x@8|8@tvyL%=5@8IQNf203B#IsI~tDC}Q&Ol|>zS@!#)wP zO^TQq0eMNvjKu65YIh>oqK1d9My>4|RocW6fTGq`tF+Y#sr>cUCp&kv+UaJ!orE_b zxeM(HM!rW29Rfvtp&%M(5i*WusaR=YN!Jywwp?Zc3&`riMu`J?#IBRr2HA>JSpgbq z)OSi%h4B=X@9=2s&XuSEj`-RIPNaXOVF|3ks-ZWAwmY}kq185uC@`W$dDT#DAv2cZ zl!($?%xX{>+gde2$K^Ph)}w3201qDghtU5eaSUNW=XIrOK)y>Lj2D4c?>k!$joST(%F@(OEm9wsR>Nu+SjaGLX z)i!Buc6-0cr@Q~JDOR$%jW++^;Gp9F8|-cJe>}+Z@czFtAFappC+`FirwB|wzjC8x zZy(UzeYaEmr}g%MqRocB}qyWop!PSm+~b46^u zwc9Gjt+xgvrJ}tU%F44I9U6b5W^Z;#S|?+>rDQ0PhOn!Q^6e;$RE2ctM0m3dW(#l9 z<2{(RW7cS*t;y7?8&N~Q@)4zl9(GkvYs(4Avxt7Y8XolpRG@-*48?w%+8i!3)#uEZ!5Efgmbl{@Zl_t$i)sETx;J zwD4?}(#=vTpUqNg>g#4HElQC4bNp@mdwYLHwq@F_ z81U_y^Xr=l3rvK~O!$+|1k?AYr=fS$|C+C*X=$TH|9iQ=SKj}9ad@~n|M4Kt!|Q)l zR$7l5IMRJ(CT+0VuqaWt3rzpayTDIa>8p%m_f?OUyr1&^(#_IWdY*toyGEZe;E;K= zZ_9qo{HiWYySQUli|}2Oi<8Fg`{liyivEHGDp8|4H(sH`x;&v7!b>|t7e;z@oE5wU zXk215a8^C@yDSz95w46!*c4)FnDiUdYqK0}mLnrUHp`KL0Gs7#vm7me#{$byeW|DC z1^L%~y83^LCir#1mUewesmgLs1)W!Wlc!Ckt^FT|TL?$ls=S2l9RmWxKagb0%W#&-r=4tJ;MAlIU z9Hou9bwrjArXrs>Hz{NVacMGURHnnhA%H-OOw5)TbqAXPIMTtZ^bdK;gnVfWR9t zUku<3hMr8OjLV!<<-)oS*B~ucfqHD0x|Ojq;HEnoJ7Jd#=^~CW%O82sV71kT3l_Sl zEd-*YH)w9lUIs9dH;0!7C6()?1~ot;gKN4#6r++wDjbURnN1@2hfKbZ-yUuvPsx0( z9=x_o0#Ey(v7J>5wc@`jc%2?w_j(G?TJ(P@?`jQzmh->6hcEZb`v2ZW|9_arwr%hb z20+Rp4{iZy`cIt=Ad9qE0jdLyW zIf#)UQW9$LRB~6D3Ic}{G6Y%*g>>#@$vgU4x(O1~zK3p+--i*l1*V})S`m0#S!UrM z)}ZeEaF6;F)W04Fw%k9F51CC)B5?08u zcou?V7$E-`QY7hJ8MZZ1pOcx|oT}aEpUSTq`WG(S&L@t%TiZB`m1$Nsu;$H^vrb8_ z-vekeIV;_0H#^11cd$J9Q)?GZQ@g0KuWE)H02>U|?xv{$UX8K3q(W*;Sln_>iEDslW>a7^U_qS`3+fD6(0ry!O1BnXPc!Odjx{0AWL8jEqC}dRR!v%` zzIV-=aRsQq3G2ASUZkOxhPHl4QDR%Wi6o>^6eBy!)>|3yX6aJ{S7a&@TkaxxY7itM zyYoUD#`;I&b|#K0IiJj^y##}sG&y6lQll$3 zxMm%+RtxIbm-3>IJz?Ic@5*z|{8Me5+@zgIRtwn8S9B!m*rtyO93nG2GYd z@c-6Fe#oaK{^M|Ouv@H1V>1}lJ=Dyu?J^bK4-Mi9z zmrxY{kU7eV`*E;>qkO*EaEQlqYOdYq*P39j&MObpic!wDS1Pio+iy7+NH_0?VL7hx z001~)D9%m`)_E_Ry8^l!O*fj&q&oLZ3qjgW0~f@RhWri)5-#Jb5K~OR?SNTUwuqhs zj)fM>G;FxaRFQ%UPn9yud&o4~VIlPMYQ{(;lLxHIa+x!%JNk9Dh0%Pd;iWYh8C-)(W9#c^CJL0d zi(MseaGvSKut0TPX7qF5EkmdmO^1!8$H(P94u2(f5^WsX{9Ef51&1SqMC-;`1(fXm z5O|Owb7Ku`9L*qY>#&T9U!!UJ@=sx?JB1}x}5u{cCtNw1U+SE}f+r1H_sAPBSGz4)r*-#f)ouk>94^HGTAd)ZXAN4qpusSn zHmD!m>S=?jkT9wzL+jnXq4M7I#rtFP;X@7ax(8JWFxVIxeP;`r8%*2N~7>78Vrk^yy!oR+OVFGrR{@`Wq4wWw#=(&~Fasnk0`u;BMg2>i~Y@eLvXUGff8s-5H>W z3KJAhWQ-_RisWqY5qSOX{D)Pjks?t~g@fI_dnLmk2};nlhax_;Ct&a3u$B^1I4XMd zxe!>P=UThh+yw}c$NiddTPW6g%b53NaC;n zLZTKo@Z1ih62Q)n--u?DkauARL_UHPamziNA`sy4TD5TY z0)fzHLb1dy0yv}$LC-ul;}kM&n3l~Wk}VXbQE_9;unYZ~VToemB`yPy$-N9@AU!7^ zBkHEttlL?u^$e$g*LUo{dlKk>_wKKU&`%(UVoZ3kf6C}|t&hg})TwWn)OU~YSx557ySgdPed?G3_~g|N-pStd`8BI#dBVUhyXeMo$g4d=&Rl3 zi9y*lCfB^7YZf#xd5fO33Nge|RUKflFzy~?YST`tC|&b*t|dLBQ3bSc?7cd#zr=-3`p-18_OOZ5I7wN8q-PBJB z^FI40qff;w1<-X#oCX&iy?%Ej2U)FCbK%r<8NNk*%3$b?=MK26qlSQcJ)U3l+6(i5 z%7j0?j>H~%J&6j<+#i)#A|)AcXUM%--+ImaszBEFktOjxO88Lhl&TX^CefDKhByQ+ zq%xFSt?xde@~qV_$IFtyL$}u)OtVy1Sk5IKtna@2ofqxB8z&)4dP5KDc zVQyr3R8em|NM&qo0PMZ{d)qd)C_2AZe+91GxsAK6hwV6N_1*06xVGE+Oyc<1N#@SZ z?v^1Ek}xI-769dF+Wzn7!-FJ9f)71ycf=oBM+6tvT3A>wECACGbsUB}F2yrMduLNf zd3O$d?=S0n`u%?Y)ytRi|NVYH|No=o*N1;OeEF(>e0+3#`0C^@{ll02qyAq&e~mbl zJ`v-P{-wWiUwPu5$peFcaL6$U*q{Xfq#Tc-!>7@xi%HLc98CzF4*=tY!U?i8ApwUt zV7JJLDCYBzp$j=;1JLF)Lha%Q9(GW`&;Xo<(3zsnQMYev6x_1`_`L-H038rO9}U0_ z@(^SQ{ER144^O6?$=3ix)Ej^)=OG*PddwkicN!uW%_M#d54CXPz(rrWQ|^0vp1_e0 zse)+j<%)1*?O=i>mJacIV)kgx^o&`=DMCFTGLC3ZchLzFaB)ZH#EEJhYX#2I6!kRXMPN>mm!&fXhJ!Kb_=r>Nu$2KqO5wbNzJ!EwL|ZV# zpAco31OqTTY{4*0{(01W**$8xh&dF8T>f+leny@T964@dLIDmKhn|On3E)!%e!ji{ zXSbK&T#mJD@waG%Xn=$SO^F!v80%?>L+lNJi)NiE z?xcwRFHJ)WXn}Sihd$(-F%q=YPgyI~Vp7;8)W(ytHOmgkV=LY#^5pFQ40;h_Yjyx? z?ElOD@k!qPADx`+?Ef~NJ#dc3F!DH1Lod}$RwxX0)!G9erkDZD00jRyefPFACREH- zZ>vOG7o4a1Na7~6qn_O$q{NLJ&RQ;JqATIS1lSjU0co;Y0E86#h{E&-=y`}! z_^RLU7k>QS_M_Hn@2=xFtv&D~p}>r+e5QHjkYJ1_5w&)ZyfC`JKAfQI$n&m=hn+cqVd!Boj)V%z^Fkn- zvsUh_0cc;2uL!@Uh@pVDXrl0{xyR0E>-}974{GZln@SFOp(Kh00;TBb+6vt5W>%~prSW}wCCYbPrvC& z5Mn@nLi`i)A|EjhIRg*a^Thmcgt)n2GzYGlkq3Yw4ulsiW{@6H=^==wz#QWQIIa(gMJP zBjm9G`0bA^bQTa7-6Bs8!Irw@#6vW8bU*(hdW7RK7S5}}pyjY|$LK9ETHv%}^yV4; z*v`rB+4y7k|CuvIKJ5OJkzfsdRQvx&uMYdKa{m9x$rT2ZT;~E`?*>>A&vjmIwMn>>3}TFVGJ?m6C}67J%Z`9CHte_LVsf6>zA$ z*8jeJe+6zcUGjM-VUW>3k;CI(wbRrd0G$K_;J4&2)k678?LqE^e5t~QwsxHkiVbue zQPIK(Eb3c*->6j*dbHE1Bz^ukuo9SyD(t=F8z&J$N%NfF-_AS!`R2l}w{tr7^aY5v zg>=*PZ|iWNoaWfkZ^xc~?tSdaw+&xD*Cgw@x2?W=IrFlvcM10#7M6&eVf00dKP(I} ztaMwLX`8rct6c^{IWqEXB{$Q6;aQ+7(0Q7Owpuxy+Z6p8VTy!Ee@TLVCTXvie%UMX8D#9y+3mHFX_ASjI0-d^&OHiTfWA0h#IkHwh@{DV0qRtQ z^ZFYzd1b(40MaBQl!^Jf1q^M*&gi;e^x~&DDL@lD2O8Nr(AeIA#x@T$wtK*$3aryB zPj!V^ud(MfhP;Ud&os#?n=&EK6JUD>YGmI0sgw_(;GJE`rty+a=_gt|M}&9?=BGx| zES1wnqY1J?xEjsnBU~issLf8M)hMnO+#=Pdsy#UA_xruduQpEq_iLoTWM-Dr zU-`ktNjG)gTIf#!F2V%;6{z@ZO{}PN?V#&oVNs!XZK}pBs6Xo6rbWDia+fR1u5+D= z7ru&IcPaTG=NPEZa4;!+DB@q?70BGaUOj=Xj|1U?K~5;(Bz6}-Z0X{aCFNP5fJIcV z4iHL_!&NWL^f(xYlp|L_ix>jv3r9479vFGVxsO-XN?j29c$bcI#o(C1=HkO+^LJ|o zsPvQiAxb`NG)Q_F#5fh%AA>`#9I{6njbbd{U=Yd!3Xt=pFM+w52ExemKxqF+)518# z!K9p&%2WdiB42oY!t;KBbJjk{w+HPjG()rvezCK|nyaugAs0GjNyoQ>c)85!P~@V3 zW9YF>d-OH=6i}a20So)nNuPE3o0XhigR%t-qFNv~eyBheWJOnuT*SmI^lLp{tIQ^? z4B4&ab&+eU)0=>5L~~fvI;SOnK>Pur0304kJ$Cp?7KcEGBbt}?71&l5n?f%1q-gR# zU;q9;pJC@;r=9=mcfS9R;r@$n|L3n?@BOd;=a=6Oj}8uB{qePh_v`gKjPzpz^`j_=8g@oEy-7fHV;QN0gFMb!uc> z8?eNZXUeifm>f+n7*pZ{2wXfKBZ>kJ;;#Xp!XVC})Y$mj%byY_SHleua^o^39}D7; zt2(>?j&&yv?P4Nc^C@O&pLnc(2qA?&67B$IVkQI=X<`ek& zrlu0<*;!qc;$O^XEzO7mtJ5mjBBpv!_*B;Y)Qrew0A`5Jfd}aX0Tj$IC4o#p9_SJx zRc4GC7$eAqv+BdSEOnb<$PoxBV$z2tfkx$e6F#VIMWm3mFPcdks~r|*a$F`5TiQQn z_?2?dRZB6wbw*l}t$r77KN-uRVBiG_m2KG1GsHF!F$&;eik&I&BgTObxibY&!uy8l z@)EiDDY^`at91}_rpS#v>WRlJvmE^V9ez+s`_ z16z#O9}GxXMQ9#oTpG`cPAVBHOZ=<(`T3V>XTn%KT8fzofLbYzTS^iod0sTZ!Ga=t zF8?_a1~CIvi=$8+H1beJVmB?6=?dFYEYzP@F|fQzjyis>vU+p1j?YW0zH+39x@-J!)m>vsI_oN|7ZMsrYKALLW^ScN+zs?~|+l zPxfT?uHJvRxb5;UeDywR_W#Pi^Y#Dz-TvRLJf-75oFXqoly!Ny>Q?Z&^I!TW`TgIo zULGFp#(x{nZ@=}v1vBgqr>phl2`dX4P zc+-4z4LlQ$C@5Wh4v+dc!8P;i!U%>G2Yd|Le`TG&vUU!d>UR-&EBiYmhsFSl>7$P! z5rZoSSxby+C4IdH11(#(OUW|1uKw2N(SY9pMWF{B1ls@62JK;cA$lKMS?!*+Kc)6R z{juXvccl|yYV7~v@vFT3e|_@$<<92i3U}MVXNHJNZ#YX9f$!{YFx-vL z;SwH;coP!$G8mKh!8;NKd>~IEX#uch5?(110GP=_h_`r*oVnwncf>{V$ifb|79TN= z0xth~5l)ehDD*V4n)k+^k3H$0&{L}a;}_{dz|uCLX8*s?_F4UZ)PMQ<^-lk93XXax@lxuNUvrV2 zF-7$Xk5qSnlYci+QcjP>Qu1gVPZ@zwUdVYR$aeKSpE;gLK zIkEhTzHkaVj?61`V%3sux8)gkoEH#{DaSq{5r1>sXBIldj6$@-rxZb#y*YeUq@lo3 z6wLArRdTPnm|OeOQzt0|b{Ot4;@l(7dTN<6q~yz7{N5G6=Y_&N;?R)4{Go}zgI^=U zb5f-|Rp~Vsgh1h}FzL9M=Fs-VN7s-~>ruBV0LW$9_Hk!_jD(mgCtI2N4SL)FAq^+J zeJ(dq1?JEJLNkM<3(UKEd%IeS-M2O|_Cv?b_R9gPGXkW&s|5E-fK#oib->|wc_px$ z;7d<%7Qm2A3FpQf->%L->gUzM_BD*bg~9Aq_qcn!1trt0)6I~Roh;kXKD+6dNBxoJ z+u=!el9<|nB8LC<$ktxtFqj>7zu(F{tnYCBWNg^K-%YkM+h^f^2UstK$PCzuA~y|D z@dk;(Ox+xjm5efZ)01iuP&Oe07AZr48xkDwH($RvyS*G>?Zm_{*TzTSk)8Zr;BCY54Zy)5TkR zAI2ER8?Y@S_KfC)3D_f(CQ!-5`t|*Htl~?=on9(ARshowsZ&jAz!-P3Sm97Y>bNr{ zj9ZPM;(o`Ecyd{gde*B5vfT(faojy=YJDu)pb@-h>*RIN7mfnq$*^Z?f_hcLHlZX6 zt-;ua#IDex5Sact1h6UOohUwKQLN1TZ$cC^Iq|iMVm;)YC_XV!Ov&1q@MXIZf^pP+ zwSvesg13^OHF49o<2qM}-M^g|9SgAP&9aVa?F9KDpUaD#ek%r|MIT)FsuG#sNAWA&*DzCg2p3OzCaL+5@>EFuh6wE!dsT5?cz^Sfa$N;d_F%;%+IWp#k&7`?` zH%>Jw=I1M7l5BoV+9vn$RO66*Sc5>J{-?J7OKt>S?LNqw`mg@s%a{53-=p3AFWY$* zssGAVe#uS1tJHiY)m{+!B)CP37JCWNT(Hb*vBECh!3rf^8iINn6?4h?R#nDjHdt!` zmjL|KOSdGB&#!Jv=;pJE+O5nGh{hXrqf2to>&$1zgHrUK!RK!}DV^W^vXBF~XqwP` zO-TqR`V!Rk4_F;>D7UodeRq8gH4-zWrZ*SO?4IhpDzTb>8-Ink(=ptzn!X$5Rii-7 z9Jc}xje?%7m4Q}05P^+urT@Rq*nlA?k{W>o9DU(Ar<39t_Rs{mndz<`$Iv~49RARC z2jFx2_8+&y)AM(iSMBWK8qo8|!*vY&f;rIB@?-Q;SCT13U2mk)a}qx8f~^%JF@q1c zQ>VFb{~IULrl*!k9O;Jo(9xt{Au}Bj8NK=X#re(Ur;D56&Baf{+xKUG8(yD&_<3^+ z#3BZ+TspI%lY^DBKiT7C^MzlwbV1<@9gfRAhViZ=JDO!e04!;@_^!4^f#-8P%ep@3 z*Ckz_BU=rv8lJy>{NZAF_5S=~cy;>j!p49fDe?1a4X7>ZH)vdZBmC3U$DSQp8pw~8 zRu`_LbU1|*R^U;Abz4XQsnM;mjHY{Sew>+*)ga8KrS4k3^5A*jWT88Ahs)BcY zdVBl#_c!MYz%0YFR9~Bu&VHGXJiow(y@cgn~K&rtm%Cp=#=#7~6 z)5VA3r}u9^zPq^naQdOdLu$&lKXCv9Hg9)B;R1dO`_Xj?A6zL?b(&#Vklb* zsi=|oJQQ{?zP_cv8LJxK9#71md}X#&0juTAd#aA-DsrgIR&Ab3OLL@}`V|-PYjk-f z2vf1Ixmu!HyRTI3P^#uvsmZWv?n;0*HD0O0Ytbvw=XR4+3C(QU#1yDs-@z~oElsDG zAL}Nzh0*2eMv9*{s?*4nfTYx-@fbOL0ItZbJ~rK;=^o89rzuH63&tj6Nr>cqp#yO7 z1+!%7&_-^qGNpvFRSQrgki|+*vY#wkbh3M%%u`$cLr2irX#LO2{_7J<{m)EL%j{aa#{jqdM!ZO&no$W8)jfFj=?R8)>jCk{82h<7c(<*(l6@j$adlE-bBH%`95= zS`!VDL8_pClTJf?($nG|!_wBNs8`nG08}Z&ElU4-dham~d9(x)Hru}tpQ}B=q{l>O zK3>sK*7ssqNC*zbq`8!=aDMjE1RR%GHCeGyD=15nY2;KFmQCH|f?U<-es5g;CkpJT z>;9~!ZK(Jk$>rLdy)m}iKW31+zR+r|0acB9|MNu@8}#jM-KHk7vE#5bJ|z~sVkp-g zZ7jiojSNkUUkOK+2(34R=4vwphS=C`USUon#)%*QBriI`>K4~^WOp`ia7_*V)NO9T z+B7t~k9c#*Nos-jz>PYaPu*!eLIBDGY6*BC^d3B5J_XmG&e#FC{=^Qz?HTK?*JulQ zrUCTgGXghau@|*E+m1U|u-q&4P;Ea}3pby%Pp~-^W*m2^MER-dE&GI9BuUgnX9&$E zw=w`604Jgp1w5spwI|fw3!(2w;LQOZ?*k7(7g09FAxLg(#|)rA0C)9Rt)^}2_*cpz zXFMrYNe&^@#evzkO=x9z%`zS~t7|Uon8Ldusg)Er-2MNE@?9<1iiTz}u(E~v@)CKN zfRJYvg(0C_7emSuv^Ep68XZ&{z*z6<3Yc<_Q^H!p->XWruZT^P6^rd7wSaxv7EX(1 zX16+e+re#%tNu?kPqVp&?{)iv+sfN4==^UZeopZ(kXFcolxJlg*M-T7~djiHMgU{1(9-FnI0=EC3eh#M^K_d=0_zMkZPjhLmW^FD%V9kWNzQ}hSK1Y0z>5AF2X^0l9n%-#M zWf~%73Z4!=LXTocj*B|%;_0Afgm6y>sf>5IezXLn_3Q~-JA`5*oM$;nCf{Ewsl;qmeA{EuxsMz|Xv(bP=x zatAgwkv|1w<#UUZQ;MrjB+j0~nmLHL?$BZL)6Cv<;{?J1_`M@2dC~n5dx&*^LL9Wm z;!pD^!}fl9G}24(#~+V9*p{bs{;R_og@Re}^q<=K|MIwhlt2Hc-#^;T|7|>aTSq{6 z{@mp*^gP5VeAVyw6Tf6{Zx5WR-@!@0-|xw{XSdg}^#Xf)ds%x{uTG4PltG(0jgu|r z?OXEZEgP`-2CR_K*v%1t4#0Q)@6=@=AtjtR#2bJQXV-;$!X#jj&IsGa7#j!G7s)=B zy*+THep!)WDJHA&DhFpRY%1YW%qBv?iyC3ux3^G$_f2jJHl~Nw7@Ry$er$N9oPqTw zE|klF*GUF80Ef$6E|-C(p8S=PEUdgk&UnAZE9AnbetVoQgR8wjuIf%F3-i}~?}wfX z9jU`$;C9kJ)#V+Bxvm$v2xM{KYd;G=(J$%KNqK&qRXOUZKcIfmv%*Uck6!6~TFX3K z@~YeXmrLC&%fjU@x6OUGY~KrBXKQ{@)8+1T(KS7#{(nfZk0|UMhmfuq1=RTeCofN4 z=i~qW$V{&*B(wS%Rl{{$-C4?Ki6fKu^pe-FOe$3_~GNtZOQeI?W2Bs7i{i= z&0VnB8_yp2`T7E!-ClxoDFI+i zDEM1)jS=`6c|LHakn&dR!xVwfmCb*7G37jDgI0bsY)>If>*imQ@_ z0zRBUtOkn&N}ytXoFx}zzNgL<$vgZA1?R+xMC>5Ps8q)G!He6o_vicFRtJ2-40G^V z^e@v{98krW#Uyl3eLU13?+b)QA42jx1Ze;srjUQbK!6?q4)iUbf{y|T!FT zhUy)WEOEpXG33A%ZY&-}$`T8-l1b3&fE(5R<0uMvbO3JOUfhZ}^XBJ^x2g^wa|T=_ zP-6SQA$}NfB%Kd=^=W_{L7}?V6jLE8A#ymLAwb4s>|p4DP)z@cU|UES=7eIzS{)^y z$KZty8^C|Q0mt2=ZXZahD025(ts68(R6zfHM*I+RECY@?_ZY7LoHyf4mfulL1V93jzV#E^Rc2%jPfLQ_^G?wZN+Kz886xzw2R1Hd9@ z3Lq<}NAUhuem6#tM-(xs96nq1oNSlXaLbT34bf1CLPM!O4O;Vko4PmtO=(+Gs|t;} zDkkwuKg{4GCS>*!a5;AZ#-XR~XI3hEOgxV~h~eQdkDfAIXREnK^ zEfu){swP^z8EB?l-&X5)a2iBLJy>)1O+ucgmltcMClhK)<(s z2f3<@EUN0A#o)@E)}2lu-gWC}9zzkmgAC0epSvvUITpYdu>|fn?!BgGvzEu!v%RLL z5!uap{=Tl~?-%NHfu7U#i;|vmYZ$9@JHF+gP#*>k%F+xYPJGC*lbP{i>f+n8+sgys zM;^x_-dDQu$J^K_vToy^Q`M68%#`hM48)XSGMabqzP($X=G-m)Db1Fb4)i=>tc4e( zY;QTcOM1@drOXd5eQA&)&jX=)`{M4@dw_FxcL44#$5(`3Q^Zif#lNpa7;?8?#Nc;e zHcflZ)tZ_gh+hKeD@R!lsjNN~<32?J*MUX@*>1PI#MVs4SG`N!zc!ww@^sXz@Fk@2a zImxbCdcKL@iBM3CcFwa-Z`_yC!oZjk-!{%Vx0>xacSCdL17V@{dwH`maO10`WwNf8 z%?Y6VWzMqabbCddFbvzduZX%;fXWxhebFN=dqQTQEv{>9dF zx{6ak)jrO`M3s!F{VAh4pYt_7$d7Z}XX%J8+;eV#Q=0ALyeQEXJ?92EOLN6IH$iP_T}3OSn&O zwA&*Bw|b9D#?v8{Cs$}Wiyb0qtH3x479vQ{Ct|{{To`Pkh!}h@#dq}ZQVMZxpAyMg-I3rgG zmXV7&z+50Y#%eH7FvFBc!8aNwX%mH(q^%3i$wS}~=%%nfL%^UP3RJL%Hb7@rCJGpm znL2^rNc`dB0Q-@j=Ywgk}n@PObwfWaKVR4E$h%cDyzV_@{K?@BDcuyFhj~XthpVm2?+_ zA`_JZMSk*cfjlrq7Q_Q@{MOY%AhSuCaW~+ot?`OAmj zf(%9l!pyh5>?_s(x8Gh7j=ueN0DhRq8Knag8>X^UF&{lo!~q&3qGE&B?=ggkoTyB{x0n>W->>eYRHQD;vyz>jmD*` zFpkAQ%uGaQVq$6<(!LD9YIw}?IqLSieSzCi_psYNRF5IOHm!Op~V) zkpLlA(l|nTR=Hgug!C?q>#)Qg*9k@Y0;Ru|Oa1PYr1c_Nz zt2>f+s)*@8W2s~=KwrcpLLvL*#h${kL!C)S#KikxqzF&wRI$9`mtdG^4sOnV0++#< z2(y5h1SXgxk4FlSQ2CI~g+AXVmE9~`0}`ME;mJ5CSqw6WPic3kE0?d%rZAYOSli*A z46sCF9O!S;>b?iriG9t{P(&hf_leM-#P^l(w+-#r*4E7EaEvE_A>N7m?sVeQs5+^N zePh5-D)UUaI|8BqO-3MMvBnu8G3r`nu>-x_BPWYbTs)r3R_%E7+j6?ngj)f60QYDP z+BauEsXp8v=4ZFpdCcW94d{#$`$OS_wmZTq>k}{Q{1EMe2v@BaW7L}+ika7QNH9Z` zCvqwsI!!zgo==?H{3jU!b<`VhREB7VC>~?vma!#A%LBxM+haoCIKq(=fZsT(4+J_L zj(tQT{^nJ`&qQxMv&b(-FUBn3I8fUDvl2GtdEcC~ocQSpsvL^X$>hse4)KZcqQj@C zBVX+2r>E#3QDGG2^S@G!N`XDlLl+OW_;8bBE8R?_p|J z3>q#Nz=5m+I8gRnSrQJ^Nl~u!{)Io13F;CAwA**;$=jD?#X*7^;#1-Z_ZkT23^ zrW{pYOjGUHLC-8Ul3p(nKW1b38HS2Ig8n;j_V!X|g=NSdB1fop1f6Lb(-`XSuG3+N z3(fvUhI*e5l0SdB1CUOlI83`Uz5P3B(HK(pgTs62ZaK&mkvJfN+bG}^3$lVuN8VlV zBcT9&kzubbG+89@$OkR|-2y=ID7ye7Oz<1%`Z%yQi383zU-T18JoqSiZ>biOZf#n@ z(P~}D6C{B<51@}7B?wGsWyshDVl-Fj4$%UFJMCM^g7!ObdVL9qJaq~1Ddd16>Ciif z$+q$ovODb-_%LK@Hl&3n!oSIv#f_kIj{>&~l0q21mU_KZ0#uR+y6zATry)w}8+6b6 zz%}c%;#5%=oO+BLs5v!7UO0|C?TL?}k39^j;`e6@7abBfDC7pB_X+X>PZfvhM!i^! zbh&kJUr4-Bh$FWZh`tp~vH&Np349>*-XqXus$xpl3@u(fH;%kaO;D1F_>oW_dg;|G zqGMH3Bj8D`Ao@waJiEOX06%BS@Zsc%wpbH&i6_t|O)nzQc9|f4tTdixARg;-F7|a1?EJEx6{2C#qlCYv{ zRS_f;M~HDIdX^c`DV)i$n=YItQ~m6N7p@APBP-1@u{iiO!crGjkbM9cLg4cPtTy}D z?}C45s-VXR_$R>u5Ix;`(7BiHtz?-@h>FQCg*jz^fzL|`GZM5u`__&Wk3 z5CSBU$Kl@XsWKI;6Q$;->7B|@r~?A?oBT#cG6Xa!KBstJ5q&6K$wFuLatCBabi5JK9pgj5RWkq zTtlLS7(GB`2a^v(M5*NuArFixk{l!<3S>@Gd@1EmN+-C!>4JB{y1R%&>?y-|_WtU_ z&E*dtKU`k@)b-s}jAIUz;=)_(pnxGAn~ShqV5hP~fRQnO5KfJ!TA5+dX$YMuiocgR z51?n8l+(ADXBStu7powwK`1%aOzHmlHaqN|!c!78bmDV@J8_t>LLar~e;vIpod0$F zYPbJm8;{<(+x*G22C86^xJc$5MQjE@Y3q8}*}cKVTa0?i;j3pd&3>b^?B_|6J>5zS zT0nc?B=~@R#5nZB0SF?`GY>LM4#e)}jyzU7g$0y}I>j^pUhg-SP2$r*f4;sD+>l9F z@oVTs6nfc?S^zMIgeW;nv;~qBz6KU=51hq^@$7*M;ULC&Z=FNa=i2vl4W4v1Z&jXs z?7>Ob*zSwm0pK)33B31#T8);;VG^V{_4qt~AJTgjSqmc+yGU_rE8BWDZH^Q%n4o4I-jveVCLpi@=$&KB1C1_B%+O)v3(g77ucKx^T zI*+P|z2wq!{7t^IN?ybrs+H*GoynTcE9j$zd&9p5HmdVIy~Rw1U6=po%C>GIt5;FT4#97s2l$n8%+y0qmm)Hx;FiA1}}23}Gpnm8d*CgbR)E-~WF7 z1co>+)3CtpNd8%Vjz`$4c$9u>)%MVl`lwa%xmpjBpFqb!AxG|2!JxL=89OTfnJfUY z0r>n&OIac0eoAcU=U*P%t$H@kva1G*^il2qANCIqbLama9UZ>h?f>4&vrdn@nZs?r zW5w=$*E`=?-}@$oeJ)|!9C14W>X4i%q5KLOM|E`M7cOp9dhO5DX_wn-vR-?s(_W^< z)1UXgbkgK}CocKvM8SPP9)ivoBhO_SfrJA=fcjj< zsMJ?mEF0N1keK9xiLCgdoGAS%q!W}sTBeem5Aq9eDvUcgSNXXLAE5-R3TiBUH}11R zuXP;JU}TT#xTn%ab}Yq5v1@1d6Z6=X`cWn>XW^tAT{|Xc*FS9lk=p=Ru?6s)l<3oZb-^HO9!$ER@!B2S1s@?pC!tx7w)4j|JOgs=l>3mUcKDq|F-dLKmV5(t@UL7 z)Y&p}FOn_im+v&6?E_}IZ#Kby+H4=l#w@Y=j`jEx$ol0*vU${^##o6>X3=e|x2^S( z1Kxz^#JU>~SLE7ceXL?#o2&>@3f_yQt=cixp!0Wn_9h1)m~5<%lq@acjWGId=6V!v z^#}3L$&z?g3>nKq$;Emk|p^WK7%2Vxiz%Eh`)uY&I$z1CTkyOljuXnbMspRnN|p+GyRG(yRvAT;gw+-}`euiyil{Tpu<2e~w=tzRchM zd33nj|Ff0nvGRXwPyLl={Yp38?8zhbh0abcZpiH0me#VA>_1CFFc-x3c z<=MXfSCp>xxPiB3uFU2Q7CV+L%2t8dpLrGd2|Im-acpk&ST6giPC?$8zTEQ!651vH zj0J}zqdm*#HPZwCFl&;IU9G}*O({-BolnbWIW_+!3-m>u`rLp5AJ&x#O%Pr>8M-ji ztK+QUEx_ZPn1RdUrs!p{Scq|XJc6ncQ_G~^g09=s(EtCn$_-pdGZTZr}jQ_2qf$-Tf%EpGf!V3qJ$b;0@ zq%K*MOBH23-BLf-s*O|Bp$` zmPiQgg44J&r;N$!!A#yKFG33Sfjnp%bEYoU!U2H5s7y>uj6Q?U0vws(^(8Xt#Ve_4 zw0k^;c(+Oo-D;-@=1gMdOu<%}foz$msH;-cO~w^yW*Y)mjJGebeV8J7eLu|cPu(Yx zLokj+_>_`pqHb`q3D=ZFo-0DS_?`tRDVXQCGml6VxLF874D?ss_%wCo>O1J=AhvH1 zhd5}9U@`}oDNW^=YCWSZ6cL1x*X98ku+Mx{&Zm0 zNoq>;l@4+Mr!a6mIm2*Xl8RDTMsNwz(h8JgyVR+ig#ovn(b)*QR7q!XOs_ko9k3WMUw)Rmt)7BgV`oA^cTc;gX&{Z(~m` zd@XLg?&K7n@xlj%{wkAodTih8DLjk&|4O+n5&+cf|2=&5`Z(|Zzufu%+j%;j z4%kKj5KGP0BLKtyDT@JAlbR?%6HpljBzeMtDfN&z?ML@d1z{ZR}!o)8J;e}iA6$G z3tUUkx^&bG7LS}`=2{@x#S~ZrSWp(kg0essRPU)$+O0;`;~SZh#G2G+>TY3}<3xPF zwVt%ya_XuV<1$cxmeFy8wMffX2HNH(MTKqYB9hcbAw`|!&hNs2S8JaVxbmhex#TXd zVD|k;-Vwjhg0cD1y4=YM83X$YSB71ySE{7y0#BX4n9*uEz3ZX8!eM9$2K_M=$!DF zP#XbL1V&ihpel1CV1xs87oog9at1xTppvPchGjmib&yW4FO$lb++SfRNeYXW{A!(dgwh6dXIxi=K=F+M~OD;$?&kZ zC;zuJEfpsc770oYBiuAqq94{lNCYkspHUW!x!9@oEi|B2> zZpjt=lXvqwb9r4qC0+*xuJ~KsE$hseVpy~CsBetYsLjfAgqNC{6?RlD`o&t>Q1lj6 znISsaL|F;|K*orJ<&u-kKNrnv@qpZ_OMl9*$tk7YeyV3_f?2(^gu|T@hhw?)cIJMZ z$4Fl@@8(uhrn%iKv;1I_ z>0On*ix{HcB#E-@dK@g^sGetA4)J(N&9&$JYA;wU%gO_7G4l5<=9(;;_FFCm(k%O7 zF~=nt0074v(PXz^S@yD;6wo|qx;J7bP23Bk1Zh7mT##ED(la1PuuQH(PB96$0cJ_t zEP7pVCcRj0U?W_nf)-pDw}zpa49l}=hgr%nGj22Zm|IF>P*)7AhzOQvFSLLaQ&vU= z(ma4ZcA)3Y0f+Y}ka@Z8c5+NP*LH~{lLdmj!Cp=snR^QUL#baeb1hDUSA! zY=u0QG+9PJ71}JHAv0o!h0sqwvsNP6GGIlKOOj#D(JzZFtl>k6EUhWX5FS)qTVKXA z*&x4M>}Y+1)0l+VnD#lrwC@!vTNk-TG8bxH7=dmvX6}F=A@(fmT&3hZ zpD1?sEc-Nx|BZ6+C3b(*@BestT)6-B^>Kd}|8L{jT>Y0tYPOIBFuYOQ=8ydALMot$ zbuJx{Z?ICeSLFt0%c-ubZ2VYw>qlnChn27Kv*3=8q+}}(6lK9y?DQ!2J<8YcHkaV2 zN^w+HZC91xEWGc-uu`iS>^m_xhDu8$`BK8i%v*RRY>(OcK956~2y z^6m=|7vJ?^cMnU7W=cwCO64<+NNJ^T8tvAw0|XQ#vYhx*)NOg8weJIIwiBd^!6myv zn(haw3`I7xC!~B=h#}_7?FlK3Xl>zj#ll_36v$Qu^j%=Gxc|TS?vMKW-%eh?%J2U; zJl>uEyp?A={{I$tf0TGZ_7I?C=Z6LLiYQV7-txN(R^!Bq zdke~U7c3K-fkor9ioFF@g}-Ha^okt@6?+V7Ruan=*%#VrU~;ATK7;yWzYMrlI}LKU z7QQN99IiU7s<_i2H~35KGgxq^LG2oO<>6|xTy$D?o>u8na3SH6Eub|SQo7fmh6DqK zb+?1EY=FX;A#A^n&%uod!iX)%y%q*lAF$a_XjH-F|~r zcN{dhV5+=;=1J~5Xh2cbjc!kH_d!F7Ds~_|**ypiNNcnYVM99+p6*_R28=7+kMIO{ zB&=d@?WHv}h5IG7H)-`vMODp$S;$Q3!!yh=E|~vYqWZtd`hWiX$HSB3*Sq}RHlD5I z|F)g@E6?~#MKY=V%NgkGBWl zbL*?Gz7oHE^;O#uZaJaz_5idoa~N(Ps22>)5XD@+cz`s(!6bfVC>HVd9SkDq3GG6; z+V6&M&u%Z}9Wo4%0E`IX^7uC}LVzK;G~Gko>B$b&f8DMS&bWu97D>R@fa7-*ImGu- z;KCRIUn0;Jum3n$FKss{^q_-$6!4)?%OsLVA{_PsLkRyCr+DN?h+L*VVlt8Z4}MvO!`7fue3Hp+%yBNU;bi$XEA$KdGXRVgQwa@73j z2_>)sfs?!EU|+C4j4z!wa-l&LuM7zvU)@kLtz^ghhmN$=#>mhNQoOc96+wtGLVJ!f_)*ollKu!=#)r(dp($62d!l zr$b4ai=>dLV)}JaH-*%FfD{ci*s38s1OkthhOk<7VBbeB7U8IHfJV@{7v#un-+HKx z!Io2*ps=|?O}g;rl1_koL>9wP7%+KIa>fS~Gm;`s=b{af1#;p&J5Wi{H;2nJgYh9I zL($QY`xQc7<0q}c3~8#011t^W;Ys2)9mI~(Q1mlY{7^|@G6u)}WqFVRSk8ds8h2?0 znb)>Mrgzl9GvpzMleOtDL0=5BYI2Fd~&rskJ+Qby8V096473?ZH70gZ2r>alo zECtYU2#t%2PTzh!RfDYU)LbSt9gb(H$2bh!(Yy<8%D5rn4oCB$_q z+H3XW*|IEf(QGKdRBLsOu;`MHy6{M!G1DQauG)kSNd~~@@bjnHAw=soT@ouWr^A~=U`7GPJGC*^N49!7~`%n{CU$fNiqiX*X4LDlARIpaOLY@&Et; diff --git a/helm/charts/truenas-csp/charts/hpe-csi-driver-2.5.1.tgz b/helm/charts/truenas-csp/charts/hpe-csi-driver-2.5.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..cd6a56e309680915104c1c23b1acc95d8ca0fb32 GIT binary patch literal 17511 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%0AcXf22e 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