library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ lubridate 1.9.3     ✔ tibble    3.2.1
## ✔ purrr     1.0.2     ✔ tidyr     1.3.0
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(dplyr)
library(DT)
## Warning: package 'DT' was built under R version 4.3.3
library(DescTools)
## Warning: package 'DescTools' was built under R version 4.3.3
library(epitools)
library(knitr)
library(tibble)
library(DT)
library(scales)
## 
## Attaching package: 'scales'
## 
## The following object is masked from 'package:purrr':
## 
##     discard
## 
## The following object is masked from 'package:readr':
## 
##     col_factor
library(tidyr)

LỜI CẢM ƠN

Trước hết, em xin được gửi lời cảm ơn chân thành đến ThS. Trần Mạnh Tường, người đã trực tiếp hướng dẫn và tạo điều kiện thuận lợi để em có thể hoàn thành bài tiểu luận của học phần Phân tích dữ liệu định tính. Trong suốt quá trình thực hiện bài, thầy đã dành nhiều thời gian trao đổi, giải đáp thắc mắc và định hướng nghiên cứu một cách cụ thể, giúp em hiểu rõ hơn về nội dung học phần cũng như cách triển khai một bài tiểu luận khoa học.

Nhờ sự tận tâm và hỗ trợ của thầy, em đã có thêm động lực để cố gắng hoàn thiện bài một cách tốt nhất trong khả năng của mình. Tuy nhiên, do còn hạn chế về kiến thức và kinh nghiệm, bài tiểu luận chắc chắn vẫn còn nhiều thiếu sót. Em mong sẽ nhận được những góp ý và xây dựng từ thầy để có thể rút kinh nghiệm, hoàn thiện bản thân trong những lần nghiên cứu sau.

Em xin kính chúc thầy sức khỏe, nhiều niềm vui trong công việc và cuộc sống. Hy vọng trong thời gian tới, em sẽ tiếp tục có cơ hội được học hỏi thêm từ thầy.

Em xin chân thành cảm ơn.


LỜI CAM ĐOAN

Tôi xin cam đoan đây là bài tiểu luận học phần môn Phân tích dữ liệu định tính độc lập của mình. Các kết quả nghiên cứu trong báo cáo này là trung thực. Mọi sự giúp đỡ cho việc thực hiện báo cáo đã được cảm ơn và các thông tin trích dẫn trong báo cáo là có uy tín, có nguồn gốc rõ ràng và được phép công bố.


PHẦN MỞ ĐẦU

1. Lý do chọn đề tài

Trong bối cảnh xã hội hiện đại, khi nhịp sống ngày càng trở nên hối hả và áp lực từ công việc, học tập, các mối quan hệ xã hội không ngừng gia tăng, nhu cầu giải trí đã và đang trở thành một phần không thể thiếu trong đời sống tinh thần của mỗi người. Giải trí không chỉ đơn thuần là một hoạt động để giết thời gian, mà còn đóng vai trò quan trọng trong việc giúp con người tái tạo năng lượng, giải tỏa căng thẳng, cân bằng cảm xúc và duy trì sức khỏe tâm lý. Trong số các hình thức giải trí phổ biến, âm nhạc từ lâu đã khẳng định vị thế đặc biệt nhờ khả năng tác động mạnh mẽ đến cảm xúc, khơi gợi ký ức, kết nối con người với nhau và lan tỏa những thông điệp sâu sắc một cách tự nhiên, giàu tính nghệ thuật.

Cùng với sự phát triển nhanh chóng của công nghệ số và internet, cách con người tiếp cận và tiêu thụ âm nhạc cũng đang thay đổi từng ngày. Thay vì nghe nhạc qua các phương tiện truyền thống như đĩa CD hay radio, ngày nay, người dùng có xu hướng chuyển sang các nền tảng trực tuyến với khả năng cung cấp kho nhạc khổng lồ, truy cập nhanh chóng, tiện lợi mọi lúc mọi nơi và đặc biệt là khả năng cá nhân hóa trải nghiệm nghe nhạc theo sở thích riêng biệt. Trong số đó, Spotify nổi bật như một trong những nền tảng nghe nhạc trực tuyến hàng đầu trên thế giới, không chỉ cung cấp dịch vụ phát nhạc mà còn xây dựng một hệ sinh thái âm nhạc thông minh, tương tác và linh hoạt.

Trước sự thay đổi rõ nét trong hành vi tiêu dùng âm nhạc này, việc nghiên cứu hành vi của người nghe trên các nền tảng số, đặc biệt là Spotify, trở nên vô cùng cần thiết và có ý nghĩa cả về mặt học thuật lẫn thực tiễn. Việc phân tích hành vi người dùng không chỉ giúp hiểu rõ hơn về nhu cầu, thị hiếu và xu hướng thưởng thức âm nhạc trong thời đại số mà còn cung cấp cơ sở dữ liệu quan trọng để các doanh nghiệp công nghệ, công ty âm nhạc hay các nhà phát triển nội dung tối ưu hóa chiến lược sản phẩm, cải thiện trải nghiệm người dùng và xây dựng các hệ thống gợi ý âm nhạc thông minh hơn, sát với nhu cầu thực tế hơn.

Chính từ bối cảnh và nhu cầu thực tiễn đó, đề tài PHÂN TÍCH CÁC YẾU TỐ ẢNH HƯỞNG ĐẾN HÀNH VI NGƯỜI DÙNG TRÊN NỀN TẢNG NGHE NHẠC TRỰC TUYẾN SPOTIFY được lựa chọn với mong muốn tiếp cận một vấn đề hiện đại, gần gũi với đời sống hàng ngày thông qua góc nhìn phân tích dữ liệu. Không chỉ đơn thuần dừng lại ở việc quan sát xu hướng, đề tài còn nhằm rèn luyện khả năng vận dụng các công cụ phân tích định lượng vào thực tiễn, từ đó góp phần đưa ra các đề xuất cụ thể cho việc nâng cao hiệu quả của các nền tảng nghe nhạc số và hiểu rõ hơn về hành vi giải trí của con người trong thời đại công nghệ 4.0.

2. Mục tiêu nghiên cứu

Đề tài hướng đến việc phân tích và khám phá hành vi nghe nhạc của người dùng trên nền tảng trực tuyến Spotify thông qua dữ liệu hành vi thực tế. Cụ thể, nghiên cứu nhằm:

  • Hiểu rõ các đặc điểm hành vi tiêu thụ âm nhạc như: thói quen bỏ qua bài hát, thời gian nghe nhạc trong ngày, mối liên hệ giữa đặc điểm bài hát và sự tương tác của người dùng.

  • Xác định các yếu tố có thể ảnh hưởng đến mức độ tương tác với bài hát như thể loại, độ dài, giai điệu, hay thời điểm nghe.

  • Ứng dụng các kỹ thuật phân tích dữ liệu để khám phá các mẫu hành vi tiêu biểu và đưa ra các gợi ý ban đầu cho việc cá nhân hóa trải nghiệm người dùng.

  • Đề xuất một số hướng ứng dụng thực tiễn từ kết quả nghiên cứu vào hoạt động phát triển nội dung và chiến lược tiếp thị âm nhạc trong môi trường số.

3. Đối tượng và Phạm vi nghiên cứu

  • Đối tượng nghiên cứu: Hành vi nghe nhạc của người dùng trên nền tảng Spotify, được thể hiện thông qua các chỉ số tương tác như: nhu cầu người dùng mua gói cao cấp (premium), nhu cầu người dùng sẵn sàng mua gói cao cấp, thể loại nhạc mà người dùng thích nghe,…

  • Phạm vi nghiên cứu:

    • Không gian: Tập trung vào dữ liệu người dùng của Spotify.

    • Thời gian: Dữ liệu được sử dụng mang tính cắt ngang (snapshot), phản ánh một giai đoạn tương đối ngắn nhưng có ý nghĩa trong việc quan sát hành vi.

4. Kết cấu đề tài

Đề tài được chia thành các phần chính như sau:

  • PHẦN MỞ ĐẦU

  • CHƯƠNG 1. TỔNG QUAN LÝ THUYẾT VÀ DỮ LIỆU NGHIÊN CỨU.

  • CHƯƠNG 2. THỐNG KÊ MÔ TẢ CỦA DỮ LIỆU.

  • CHƯƠNG 3. THỐNG KÊ SUY DIỄN CỦA DỮ LIỆU.

  • CHƯƠNG 4. MÔ HÌNH HỒI QUY.

  • PHẦN KẾT LUẬN.


CHƯƠNG 1. TỔNG QUAN LÝ THUYẾT VÀ DỮ LIỆU NGHIÊN CỨU

1.1 Giới thiệu về Spotify

Spotify là một trong những nền tảng phát nhạc trực tuyến hàng đầu thế giới, được thành lập vào năm 2006 tại Thụy Điển với sứ mệnh thay đổi cách con người khám phá, tiếp cận và thưởng thức âm nhạc trong kỷ nguyên số. Trải qua gần hai thập kỷ phát triển, Spotify đã không ngừng mở rộng quy mô và ảnh hưởng toàn cầu. Tính đến năm 2024, nền tảng này đã thu hút hơn 600 triệu người dùng trên toàn thế giới, trong đó có hơn 200 triệu người là thuê bao trả phí – một con số ấn tượng cho thấy mức độ phổ biến và sức hút mạnh mẽ của dịch vụ này đối với người dùng ở nhiều nhóm tuổi, quốc gia và văn hóa khác nhau.

Không chỉ đơn thuần là một ứng dụng nghe nhạc, Spotify đã trở thành một hệ sinh thái giải trí phong phú, nơi người dùng có thể tiếp cận hàng triệu bài hát, podcast và playlist được cập nhật liên tục, cá nhân hóa theo sở thích, thói quen và tâm trạng. Với giao diện thân thiện, khả năng đồng bộ đa thiết bị cùng hệ thống thuật toán đề xuất được phát triển, Spotify mang đến trải nghiệm nghe nhạc linh hoạt, tiện lợi và gần như “may đo” cho từng cá nhân. Sự thành công của Spotify không chỉ nằm ở kho nội dung đồ sộ, mà còn ở cách nền tảng này sử dụng dữ liệu người dùng để cải thiện liên tục chất lượng dịch vụ và duy trì mức độ tương tác cao.

Việc mỗi lượt nghe, tạm dừng, bỏ qua, chia sẻ, thêm bài hát vào playlist hay thậm chí là thời gian nghe nhạc trong ngày đều được ghi nhận và xử lý thông qua hệ thống dữ liệu lớn đã mở ra một hướng tiếp cận mới trong việc nghiên cứu hành vi tiêu dùng âm nhạc. Spotify chính là ví dụ điển hình cho xu hướng “dữ liệu hóa” trải nghiệm giải trí, nơi mà từng hành vi nhỏ nhất đều có thể trở thành cơ sở để cá nhân hóa trải nghiệm, dự đoán nhu cầu người dùng, và từ đó thúc đẩy hiệu quả kinh doanh cũng như sự hài lòng của khách hàng.

Chính vì vậy, việc phân tích hành vi người dùng trên Spotify không chỉ giúp hiểu rõ hơn về thói quen nghe nhạc trong thời đại số mà còn có ý nghĩa thực tiễn khác. Spotify là một ví dụ rõ ràng cho thấy dữ liệu người dùng có thể được khai thác hiệu quả để cải thiện dịch vụ và tạo lợi thế cạnh tranh. Việc lựa chọn nghiên cứu nền tảng này cho thấy sự quan tâm đến một vấn đề vừa gần gũi, vừa mang tính thời sự trong xã hội hiện nay.

1.2 Những yếu tố có thể ảnh hưởng đến hành vi người dùng trên Spotify

1.2.1 Yếu tố cá nhân (bên trong người dùng)

Hành vi người dùng trên Spotify trước hết bị chi phối bởi các đặc điểm cá nhân như tuổi tác, giới tính, sở thích âm nhạc và thói quen sử dụng công nghệ. Những yếu tố này tạo nên một hệ quy chiếu riêng biệt cho mỗi người dùng, khiến họ có xu hướng lựa chọn nội dung âm nhạc phù hợp với tính cách và lối sống của bản thân. Ví dụ, người trẻ tuổi có thể ưa thích thể loại nhạc sôi động như pop, hip hop hoặc EDM, trong khi người trưởng thành lại hướng về nhạc trữ tình, cổ điển hay acoustic.

Ngoài ra, tâm trạng và cảm xúc cũng đóng vai trò rất lớn trong việc quyết định người dùng nghe gì vào từng thời điểm cụ thể. Khi cảm thấy căng thẳng, họ có thể tìm đến những playlist nhẹ nhàng như “Chill” hoặc “Lofi”; ngược lại, khi tập thể dục hoặc lái xe, những bản nhạc có tiết tấu nhanh sẽ được ưu tiên lựa chọn.

Thói quen sinh hoạt cũng là một yếu tố then chốt: một số người có thói quen nghe nhạc mỗi buổi sáng khi bắt đầu ngày mới, trong khi những người khác chỉ mở nhạc khi làm việc hoặc học bài. Hơn thế nữa, trình độ công nghệ cũng ảnh hưởng đến cách người dùng tương tác với Spotify: người rành công nghệ thường khai thác hiệu quả hơn các tính năng như gợi ý cá nhân hóa, tạo playlist riêng, lưu trữ offline, v.v.

1.2.2 Yếu tố xã hội (tác động từ cộng đồng, môi trường xã hội)

Bên cạnh yếu tố cá nhân, hành vi người dùng còn bị ảnh hưởng mạnh mẽ bởi các tác động xã hội. Một ví dụ tiêu biểu là xu hướng lan truyền trên mạng xã hội. Những bài hát viral trên TikTok, Instagram hay YouTube thường nhanh chóng trở thành “trend” và được người dùng tìm nghe trên Spotify. Sức ảnh hưởng từ bạn bè, cộng đồng cũng không thể xem nhẹ – người dùng có thể chọn nghe nhạc theo gợi ý của người quen, hoặc vì muốn hòa nhập vào một xu hướng đang lan rộng trong cộng đồng.

Ngoài ra, các sự kiện văn hóa – xã hội như Lễ Tình nhân, Giáng sinh, Tết Nguyên đán hoặc các kỳ thi học kỳ, mùa hè, các sự kiện thể thao lớn như World Cup cũng tạo ra nhu cầu nghe nhạc mang tính thời điểm. Spotify thường tận dụng điều này để xây dựng các playlist theo chủ đề như “Valentine Vibes”, “Chill Giáng Sinh”, hay “Summer Hits”.

Hình ảnh nghệ sĩ, thần tượng và xu hướng âm nhạc toàn cầu cũng góp phần định hướng thị hiếu người nghe. Người dùng có thể thay đổi hành vi nghe nhạc chỉ vì một nghệ sĩ ra album mới, hoặc bị thu hút bởi các màn kết hợp quốc tế giữa nghệ sĩ Việt Nam và nghệ sĩ nước ngoài.

1.2.3 Yếu tố công nghệ và nền tảng (Spotify và môi trường kỹ thuật số)

Spotify không đơn thuần là nơi cung cấp bài hát, mà còn là một nền tảng thông minh có khả năng tác động trực tiếp đến hành vi người dùng thông qua thuật toán gợi ý và các chiến lược cá nhân hóa trải nghiệm. Thuật toán này học hỏi từ lịch sử nghe nhạc, các playlist đã lưu, lượt thả tim, lượt bỏ qua bài hát… để đưa ra các gợi ý phù hợp với từng cá nhân. Khi người dùng cảm thấy các đề xuất ngày càng “hợp gu”, họ có xu hướng tin tưởng hơn vào hệ thống và sử dụng ứng dụng thường xuyên hơn.

Bên cạnh đó, Spotify còn sử dụng các chiến dịch truyền thông sáng tạo như “Spotify Wrapped” – nơi người dùng được xem lại thống kê âm nhạc cá nhân của cả năm – để tạo cảm giác gắn bó cá nhân và khuyến khích họ chia sẻ trên mạng xã hội.

Không thể không kể đến các yếu tố kỹ thuật và dịch vụ như giao diện thân thiện, tốc độ tải nhanh, khả năng nghe nhạc không cần kết nối mạng, tính năng chia sẻ playlist và khả năng tích hợp đa nền tảng (smartphone, laptop, smart TV, loa thông minh…). Ngoài ra, chính sách giá linh hoạt (miễn phí, Premium cá nhân, gói sinh viên, gói gia đình…) cũng giúp Spotify tiếp cận đa dạng người dùng ở nhiều tầng lớp khác nhau.

1.3 Các mô hình lựa chọn dữ liệu nhị phân

Khi biến phụ thuộc là biến nhị phân, việc sử dụng mô hình hồi quy tuyến tính truyền thống (OLS) không còn phù hợp vì không đảm bảo tính hợp lý của kết quả dự đoán — cụ thể là giá trị dự báo có thể vượt ra ngoài khoảng từ 0 đến 1. Để giải quyết vấn đề này, một nhóm mô hình được gọi là mô hình hồi quy nhị phân đã được phát triển nhằm mô hình hóa xác suất xảy ra sự kiện quan tâm, tức xác suất Y=1 dựa trên các biến giải thích X.

Thay vì dự đoán trực tiếp giá trị 0 hoặc 1, các mô hình này ước lượng xác suất thuộc về nhóm “1” thông qua việc chuyển đổi một tổ hợp tuyến tính của các biến độc lập thành một giá trị trong khoảng (0, 1). Sự khác biệt giữa các mô hình này chủ yếu nằm ở hàm phân phối tích lũy (CDF) mà chúng sử dụng để ánh xạ tổ hợp tuyến tính đó sang xác suất. Trong thực tiễn, ba mô hình được sử dụng rộng rãi nhất thuộc nhóm này là:

  • Mô hình Logit.

  • Mô hình Probit.

  • Mô hình Complementary Log-log (Clog-log).

1.3.1 Mô hình Logit (Hồi quy Logistic)

Mô hình Logit là một trong những phương pháp phổ biến nhất để phân tích dữ liệu định tính nhị phân. Giả định của mô hình là xác suất xảy ra sự kiện (Y = 1) sẽ tuân theo phân phối logistic.

  • Hàm tuyến tính (Linear Predictor): \[ z = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k \]

  • Hàm liên kết (Link Function): Hàm Logit, được xây dựng dựa trên hàm phân phối tích lũy Logistic: \[ P(Y = 1 | X) = \frac{e^z}{1 + e^z} = \frac{1}{1 + e^{-z}} \]

  • Phương trình ước lượng (Estimation Equation): \[ \ln\left(\frac{P}{1 - P}\right) = \beta_0 + \beta_1 X_1 + \cdots + \beta_k X_k \]

  • Đặc điểm: Mô hình này cho phép giải thích hệ số hồi quy thông qua tỷ lệ chênh (Odds Ratio), là một cách diễn giải trực quan và dễ hiểu. Logistic là phân phối “đầy đặn” hơn so với phân phối chuẩn, có nghĩa là nó ít nhạy cảm hơn với dữ liệu ngoại biên.


1.3.2 Mô hình Probit (Hồi quy Probit)

Mô hình Probit là một lựa chọn thay thế khả thi cho Logit, đặc biệt được dùng nhiều trong kinh tế học. Giả định xác suất lựa chọn tuân theo phân phối chuẩn tích lũy.

  • Hàm tuyến tính: \[ z = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k \]

  • Hàm liên kết: Hàm Probit là hàm phân phối tích lũy chuẩn (CDF của chuẩn tắc), ký hiệu là \(\Phi\): \[ P(Y = 1 | X) = \Phi(z) = \int_{-\infty}^z \frac{1}{\sqrt{2\pi}} e^{-t^2/2} dt \]

  • Đặc điểm: Mặc dù Probit không dễ dàng diễn giải trực tiếp qua Odds Ratio như Logit, nhưng lại phù hợp trong các tình huống cần giả định phân phối chuẩn ẩn. Chênh lệch giữa hai mô hình là rất nhỏ về kết quả nhưng khác biệt về nền tảng lý thuyết.


1.3.3 Mô hình Complementary Log-log (Clog-log)

Mô hình Clog-log thường được sử dụng trong những tình huống có xác suất rất nhỏ hoặc rất lớn, như khi mô hình hóa các sự kiện hiếm.

  • Hàm tuyến tính: \[ z = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \cdots + \beta_k X_k \]

  • Hàm liên kết: Dựa trên phân phối Gumbel (cực trị loại I), hàm liên kết là: \[ P(Y = 1 | X) = 1 - e^{-e^z} \]

  • Đặc điểm: Vì tính chất phi đối xứng, mô hình này phù hợp khi xác suất xảy ra sự kiện không đối xứng (ví dụ như sự kiện hiếm gặp hoặc thành công hiếm). Khác với Logit và Probit đối xứng quanh 0.5, Clog-log thì không.


1.3.4 Các tiêu chí đánh giá mô hình

Sau khi xây dựng các mô hình hồi quy nhị phân, bước tiếp theo là đánh giá và lựa chọn mô hình phù hợp nhất. Trong nghiên cứu này, ba tiêu chí chính được sử dụng gồm: AIC, Brier ScoreMa trận nhầm lẫn (Confusion Matrix).

(1) Tiêu chí AIC (Akaike Information Criterion)

AIC là một chỉ số giúp so sánh giữa các mô hình thống kê, bằng cách kết hợp giữa mức độ khớp của mô hình với dữ liệu (thông qua log-likelihood) và mức độ đơn giản của mô hình (số lượng tham số).

Công thức:
\[ AIC = -2 \log(L) + 2k \]

Trong đó:
- \(L\): Giá trị log-likelihood của mô hình
- \(k\): Tổng số tham số được ước lượng

Ý nghĩa:
- Mô hình có AIC càng thấp thì càng được đánh giá là tốt hơn.
- AIC rất hữu ích để lựa chọn mô hình


(2) Chỉ số Brier Score

Brier Score là một chỉ số đo lường mức độ chính xác trong dự đoán xác suất của mô hình. Cụ thể, nó phản ánh mức chênh lệch bình phương giữa xác suất dự đoán và kết quả thực tế.

Công thức:
\[ \text{Brier Score} = \frac{1}{n} \sum_{i=1}^{n} (p_i - y_i)^2 \]

Trong đó:
- \(p_i\): Xác suất mà mô hình dự đoán cho quan sát thứ \(i\)
- \(y_i\): Giá trị thực tế (0 hoặc 1)
- \(n\): Số lượng quan sát

Ý nghĩa:
- Brier Score càng nhỏ thì dự đoán của mô hình càng gần với thực tế.
- Giá trị của chỉ số này nằm trong khoảng từ 0 (dự đoán hoàn hảo) đến 1 (dự đoán tệ nhất).
- Khác với các chỉ số đánh giá phân loại, Brier Score đánh giá trực tiếp độ chính xác của xác suất dự báo.


(3) Ma trận nhầm lẫn (Confusion Matrix)

Ma trận nhầm lẫn được sử dụng để đánh giá hiệu quả phân loại của mô hình khi áp dụng một ngưỡng xác suất để quyết định giữa hai nhãn (ví dụ: 0 hoặc 1). Dạng bảng như sau:

Dự đoán = 1 Dự đoán = 0
Thực tế = 1 TP (True Positive) FN (False Negative)
Thực tế = 0 FP (False Positive) TN (True Negative)

Từ đó, ta có thể tính ra các chỉ số hiệu suất như:

  • Accuracy (Độ chính xác tổng thể):
    \[ Accuracy = \frac{TP + TN}{TP + TN + FP + FN} \]

  • Precision (Tỷ lệ dự đoán dương chính xác):
    \[ Precision = \frac{TP}{TP + FP} \]

  • Recall (Tỷ lệ bắt đúng thực sự dương):
    \[ Recall = \frac{TP}{TP + FN} \]

  • F1-score (Trung bình điều hòa giữa Precision và Recall):
    \[ F1 = 2 \cdot \frac{Precision \cdot Recall}{Precision + Recall} \]

Ý nghĩa:
- Ma trận nhầm lẫn giúp phân tích kỹ hơn hiệu suất mô hình, nhất là trong các trường hợp dữ liệu không cân bằng (ví dụ khi một lớp xuất hiện ít hơn hẳn lớp còn lại).
- Tùy mục đích phân tích, Precision, Recall hay F1-score có thể được ưu tiên sử dụng thay vì chỉ nhìn vào Accuracy.
- Trong nghiên cứu này, cả ba nhóm chỉ số đều được sử dụng để đánh giá toàn diện hiệu quả mô hình hồi quy nhị phân.

1.4 Mô tả dữ liệu nghiên cứu

Bộ dữ liệu được thu thập để tiến hành phân tích mang tên: Spotify User Behavior Dataset. Dữ liệu được sử dụng trong nghiên cứu là một tập hợp khảo sát về hành vi người dùng trên nền tảng Spotify, bao gồm 520 quan sát được thu thập từ những người nghe nhạc với nhiều đặc điểm khác nhau. Bộ dữ liệu phản ánh toàn diện các khía cạnh liên quan đến thói quen và xu hướng sử dụng Spotify, từ đặc điểm nhân khẩu học đến hành vi tương tác với nội dung âm nhạc và podcast.

Tập dữ liệu mang lại một cái nhìn đa chiều về hành vi tiêu dùng âm nhạc trong môi trường số, đặc biệt là qua lăng kính của người dùng Spotify – một nền tảng âm nhạc toàn cầu đang chiếm lĩnh thị trường. Với cấu trúc bao gồm cả yếu tố định tính và định lượng, dữ liệu này cho phép áp dụng linh hoạt nhiều kỹ thuật phân tích, từ thống kê mô tả cho đến phân nhóm hoặc mô hình hóa hành vi. Đây là cơ sở quan trọng để nghiên cứu có thể tiếp cận một cách toàn diện các xu hướng, sở thích và hành vi thực tế của người dùng, từ đó đưa ra các nhận định sát với thực tiễn và mang tính ứng dụng cao.

1.4.1 Nguồn thu thập dữ liệu

Bộ dữ liệu được sử dụng trong nghiên cứu này được thu thập từ nền tảng Kaggle – một trong những cộng đồng khoa học dữ liệu trực tuyến lớn nhất hiện nay, nơi các nhà nghiên cứu, sinh viên và chuyên gia chia sẻ, thảo luận và khai thác dữ liệu phục vụ cho mục đích học thuật và thực tiễn. Cụ thể, Spotify User Behavior Dataset do người dùng Meera Ajayakumar công bố, phản ánh các kết quả khảo sát về thói quen sử dụng nền tảng Spotify của người nghe nhạc.

Với đặc điểm là một bộ dữ liệu mở, miễn phí và đã được làm sạch tương đối, dữ liệu này cho phép người dùng tiến hành các phân tích hành vi một cách thuận lợi, đồng thời hỗ trợ việc thực hành các kỹ thuật phân tích dữ liệu trên cơ sở tình huống thực tế. Việc sử dụng nguồn dữ liệu từ Kaggle không chỉ đảm bảo tính minh bạch và khả năng tái sử dụng, mà còn góp phần nâng cao tính ứng dụng và thực tiễn của nghiên cứu trong bối cảnh học thuật hiện đại.

1.4.2 Đọc dữ liệu

Tên đầy đủ của bộ dữ liệu là Spotify User Behavior Dataset, nhưng để gọi tên ngắn gọn và dễ hiểu thì tác giả sẽ rút gọn lại tên là bộ dữ liệu Spotify. Ta có thể xem tổng quan bộ dữ liệu như dưới đây:

library(xlsx)
spotify <- read.xlsx("D:/UFM/Spotify_data.xlsx", sheetIndex = 1, header = T)
datatable(spotify)

1.4.3 Kiểm tra cấu trúc tổng quát của dữ liệu

Số biến và Số quan sát

dims <- dim(spotify)

spotify_summary <- data.frame(Thành_phần = c("Số quan sát (hàng)", "Số biến (cột)"),Giá_trị = dims)

kable(spotify_summary, caption = "Số quan sát và số biến của bộ dữ liệu Spotify")
Số quan sát và số biến của bộ dữ liệu Spotify
Thành_phần Giá_trị
Số quan sát (hàng) 520
Số biến (cột) 20

Bộ dữ liệu Spotify được sử dụng trong nghiên cứu bao gồm 520 quan sát tương ứng với 520 người dùng Spotify, cùng với 20 biến đặc trưng phản ánh đa dạng các khía cạnh trong hành vi sử dụng nền tảng nghe nhạc trực tuyến.

Tổng quát dữ liệu

Bộ dữ liệu được sử dụng trong nghiên cứu bao gồm 520 quan sát, tương ứng với 520 người dùng Spotify, cùng với 20 biến đặc trưng phản ánh nhiều khía cạnh trong hành vi và thói quen sử dụng nền tảng nghe nhạc trực tuyến. Trong số đó, phần lớn là biến định tính chiếm hầu hết tổng số biến.

Vì mục tiêu của nghiên cứu là tìm hiểu hành vi người dùng dưới góc độ phân tích dữ liệu định tính, nên các biến định tính đóng vai trò trung tâm trong quá trình phân tích và diễn giải kết quả. Việc tập trung vào các biến định tính không chỉ giúp phản ánh rõ hơn về suy nghĩ, cảm nhận và thói quen tiêu dùng âm nhạc của người dùng, mà còn phù hợp với định hướng phân tích nội dung, phân loại nhóm và khám phá khuôn mẫu hành vi.

Cụ thể các biến có kiểu dữ liệu như sau:

spotify_structure <- tibble::tibble(Tên_biến = names(spotify),Kiểu_dữ_liệu = sapply(spotify, class))

knitr::kable(spotify_structure, caption = "Cấu trúc các biến trong bộ dữ liệu Spotify")
Cấu trúc các biến trong bộ dữ liệu Spotify
Tên_biến Kiểu_dữ_liệu
Age character
Gender character
spotify_usage_period character
spotify_listening_device character
spotify_subscription_plan character
premium_sub_willingness character
preffered_premium_plan character
preferred_listening_content character
fav_music_genre character
music_time_slot character
music_Influencial_mood character
music_lis_frequency character
music_expl_method character
music_recc_rating numeric
pod_lis_frequency character
fav_pod_genre character
preffered_pod_format character
pod_host_preference character
preffered_pod_duration character
pod_variety_satisfaction character

Dựa trên các biến trên, ta có thể tạm thời chia các biến thành các nhóm chính sau:

  • Thông tin nhân khẩu học như Age, Gender.

  • Hành vi sử dụng Spotify như spotify usage period, spotify listening device, spotify subscription plan, premium_sub_willingness.

  • Sở thích nghe nhạc như fav music genre, music time slot, music Influencial mood, music lis frequency, music expl method.

  • Thông tin liên quan đến podcast như pod lis frequency, fav pod genre, preffered pod format, pod host preference, preffered pod duration và pod variety satisfaction.

1.5 Mô tả các biến nghiên cứu

Bộ dữ liệu được sử dụng trong nghiên cứu bao gồm 20 biến, phản ánh các đặc điểm nhân khẩu học cơ bản, thói quen sử dụng Spotify cũng như nhận định, cảm nhận của người dùng về nền tảng này. Các biến được thiết kế đa dạng về mặt định dạng, trong đó đa số là biến định tính. Việc mô tả rõ từng biến giúp làm rõ cách thức thu thập dữ liệu, định dạng dữ liệu đầu vào và định hướng phân tích phù hợp với mục tiêu nghiên cứu. Danh sách chi tiết tên các biến, loại biến và ý nghĩa tương ứng sẽ được trình bày trong bảng sau:

variable_names <- data.frame(STT = seq_along(names(spotify)), Tên_biến = names(spotify))

knitr::kable(variable_names, caption = "Danh sách tên các biến trong bộ dữ liệu Spotify")
Danh sách tên các biến trong bộ dữ liệu Spotify
STT Tên_biến
1 Age
2 Gender
3 spotify_usage_period
4 spotify_listening_device
5 spotify_subscription_plan
6 premium_sub_willingness
7 preffered_premium_plan
8 preferred_listening_content
9 fav_music_genre
10 music_time_slot
11 music_Influencial_mood
12 music_lis_frequency
13 music_expl_method
14 music_recc_rating
15 pod_lis_frequency
16 fav_pod_genre
17 preffered_pod_format
18 pod_host_preference
19 preffered_pod_duration
20 pod_variety_satisfaction

Số lượng và ý nghĩa cụ thể của từng biến như sau:

(1) Age - Nhóm tuổi của người dùng

  • Nhóm tuổi 6-12.

  • Nhóm tuổi 12-20.

  • Nhóm tuổi 20-35.

  • Nhóm tuổi 35-60.

  • Nhóm tuổi trên 60 (60+).

(2) Gender - Giới tính của người dùng

  • Female: Giới tính nữ.

  • Male: Giới tính nam.

  • Others: Giới tính khác.

(3) spotify_usage_period - Thời gian sử dụng Spotify

  • Less than 6 months: sử dụng spotify dưới 6 tháng.

  • 6 months to 1 year: sử dụng spotify từ 6 tháng - 1 năm.

  • 1 year to 2 years: sử dụng spotify từ 1 - 2 năm.

  • More than 2 years: sử dụng spotify trên 2 năm.

(4) spotify_listening_device - Thiết bị chủ yếu được sử dụng để nghe Spotify

  • Hỗn hợp các loại thiết bị điện tử, chủ yếu bao gồm: Computer (máy tính), Laptop, Smart speakers (loa thông minh),…

(5) spotify_subscription_plan - Gói đăng ký Spotify được người dùn sử dụng

  • Free (ad-supported): Gói miễn phí (có quảng cáo).

  • Premium (paid subscription): Gói cao cấp (có trả phí).

(6) premium_sub_willingness - Nhu cầu sẵn sàng đăng ký gói cao cấp hoặc tiếp tục đăng ký gói cao cấp trong tương lai

  • Yes: Sẵn sàng đăng ký gói cao cấp trong tương lai.

  • No: Chưa sẵn sàng đăng ký gói cao cấp trong tương lai.

(7) preffered_premium_plan - Nhu cầu chọn gói cao cấp hoặc sẵn sàng nâng cấp lên gói cao cấp và sẽ trả bao nhiêu cho gói đăng ký đó

  • Student Plan-Rs 59/month: sẵn sàng trả và chọn gói học sinh (59$/ tháng).

  • Individual Plan-Rs 119/ month: sẵn sàng trả và chọn gói cá nhân (119$/ tháng).

  • Duo plan- Rs 149/month: sẵn sàng trả và chọn gói đôi (149$/ tháng).

  • Family Plan-Rs 179/month: sẵn sàng trả và chọn gói gia đình (179$/ tháng).

  • None: Chưa sẵn sàng trả gói cao cấp.

(8) preferred_listening_content - Người dùng thích nghe loại nhạc nào hơn

  • Music: Âm nhạc.

  • Podcast: Tệp âm thanh kỹ thuật số với đa dạng nội dung.

(9) fav_music_genre - Thể loại nhạc mà người dùng thích nghe**

  • Đa dạng các thể loại âm nhạc như: Pop, Kpop, Rock, Melody, Rap,…

(10) music_time_slot - Khung giờ yêu thích của người dùng để nghe nhạc

  • Morning: Yêu thích nghe nhạc vào buổi sáng.

  • Afternoon: Yêu thích nghe nhạc vào buổi chiều.

  • Night: Yêu thích nghe nhạc vào buổi tối.

(11) music_Influencial_mood - Tình huống hoặc tâm trạng nào sẽ ảnh hưởng mạnh mẽ nhất đến lựa chọn âm nhạc của người dùng

  • Các tâm trạng được người dùng đưa ra đa dạng gồm để thư giãn, giảm căng thẳng, lấy động lực, khi buồn,…

(12) music_lis_frequency - Người dùng thường xuyên nghe nhạc nhất vào thời điểm nào

  • Các thời điểm được người dùng đưa ra đa dạng gồm khi làm việc, khi học, khi đi du lịch, trong thời gian nghỉ, khi đi tập,…

(13) music_expl_method - Người dùng khám phá nhạc mới trên Spotify như thế nào

  • Người dùng thường khám phá nhạc mới thông qua bạn bè, các gợi ý, các trang mạng xã hội, radio,…

(14) music_recc_rating - Người dùng đánh giá các đề xuất âm nhạc trên Spotify như thế nào

  • Người dùng đánh giá các đề xuất âm nhạc từ thang 1 đến 5.

(15) pod_lis_frequency - Người dùng nghe Podcast thường xuyên như thế nào

  • Daily: Người dùng nghe Podcast mỗi ngày.

  • Several times a week: Người dùng nghe Podcast nhiều lần trong 1 tuần.

  • Once a week: Người dùng nghe Podcast 1 lần 1 tuần.

  • Rarely: Người dùng hiếm khi nghe Podcast.

  • Never: Người dùng không bao giờ nghe Podcast.

(16) fav_pod_genre - Người dùng thích thể loại podcast nào

  • Các thể loại podcast mà người dùng thích nghe: Hài, Thể thao, Đời sống và Sức khỏe,…

(17) preffered_pod_format - Người dùng thích định dạng podcast nào

  • Conversational: Định dạng đàm thoại.

  • Educational: Định dạng giáo dục.

  • Interview: Định dạng phỏng vấn.

  • Story telling: Định dạng kể chuyện.

  • None: Không có định dạng yêu thích nào.

(18) pod_host_preference - Người dùng có xu hướng nghe podcast từ những người không quen biết hơn hay thích podcast do những người nổi tiếng dẫn chương trình hơn

  • unknown Podcasters: Những người dẫn không rõ danh tính.

  • Well known individuals: Những người dẫn là người nổi tiếng.

  • Both: Cả 2 người dẫn trên.

  • None: Không ai cả.

(19) preffered_pod_duration - Người dùng thích các tập podcast ngắn hơn (dưới 30 phút) hay các tập podcast dài hơn (trên 30 phút)

  • Longer: Thích các tập podcast dài hơn (trên 30 phút).

  • Shorter: Thích các tập podcast ngắn hơn (dưới 30 phút).

  • Both: Thích cả 2 dạng podcast dài và ngắn.

  • None: Không thích dạng nào cả.

(20) pod_variety_satisfaction - Người dùng có hài lòng với sự đa dạng và tính khả dụng của podcast trên Spotify không

  • Very Satisfied: Rất hài lòng.

  • Satisfied: Hài lòng.

  • Ok: Tạm hài lòng.

  • Dissatisfied: Không hài lòng.

  • Very Dissatisfied: Rất không hài lòng.


1.6 Xác định biến phụ thuộc và biến độc lập

1.6.1 Biến phụ thuộc

Trong nghiên cứu này, biến premium sub willingness được lựa chọn làm biến phụ thuộc, biến này thể hiện mức độ sẵn sàng trả phí để nâng cấp tài khoản Spotify lên gói Premium . Lý do lựa chọn biến này là vì nó đại diện cho ý định tiêu dùng có trả phí, một yếu tố quan trọng phản ánh hành vi tiêu dùng và giá trị cảm nhận của người dùng đối với nền tảng âm nhạc trực tuyến.

Việc phân tích các yếu tố ảnh hưởng đến quyết định sẵn sàng chi trả cho dịch vụ Premium sẽ giúp hiểu rõ hơn về động lực và rào cản trong hành vi người tiêu dùng, từ đó cung cấp cơ sở dữ liệu hữu ích cho các chiến lược tiếp thị, định giá và phát triển sản phẩm của các nền tảng âm nhạc số. Ngoài ra, trong bối cảnh ngày càng nhiều dịch vụ miễn phí cạnh tranh với dịch vụ trả phí, việc nghiên cứu yếu tố thúc đẩy người dùng chuyển sang sử dụng phiên bản cao cấp là một vấn đề mang tính thực tiễn và có giá trị ứng dụng cao.

  • Câu trả lời Yes là sẵn sàng đăng ký gói cao cấp trong tương lai.

  • Câu trả lời No là chưa sẵn sàng đăng ký gói cao cấp trong tương lai.

1.6.2 Biến độc lập

Trong số các biến còn lại có trong bộ dữ liệu, nghiên cứu lựa chọn 4 biến làm biến độc lập gồm: spotify usage period, spotify subscription plan, preffered premium plan và preferred listening content. Đây là những biến được cho là có mối liên hệ chặt chẽ nhất với khả năng sẵn sàng đăng ký gói Premium của người dùng.

  • Biến spotify_usage_period phản ánh khoảng thời gian mà người dùng đã gắn bó với nền tảng Spotify. Người dùng sử dụng trong thời gian dài có thể phát sinh nhu cầu nâng cấp để có trải nghiệm tốt hơn, do đã hình thành thói quen và mức độ gắn bó cao với nền tảng. Các câu trả lời ghi nhận được gồm:

    • Less than 6 months: sử dụng spotify dưới 6 tháng.

    • 6 months to 1 year: sử dụng spotify từ 6 tháng - 1 năm.

    • 1 year to 2 years: sử dụng spotify từ 1 - 2 năm.

    • More than 2 years: : sử dụng spotify trên 2 năm.

  • Biến spotify_subscription_plan cho biết loại gói hiện tại đăng ký của người dùng (miễn phí hay trả phí). Đây là yếu tố trực tiếp phản ánh hành vi tiêu dùng hiện tại, từ đó ảnh hưởng đến khả năng tiếp tục duy trì hoặc chuyển đổi sang gói cao hơn. Các gói bao gồm:

    • Free (ad-supported): Gói miễn phí (có quảng cáo).

    • Premium (paid subscription): Gói cao cấp (có trả phí).

  • Biến preffered_premium_plan thể hiện lựa chọn ưu tiên của người dùng nếu có ý định trả phí, chẳng hạn như gói cá nhân, sinh viên hay gia đình. Việc người dùng đã có định hướng rõ ràng về loại gói cho thấy tiềm năng cao trong việc sẵn sàng chi trả. Các gói với giá tiền cụ thể như sau:

    • Student Plan-Rs 59/month: sẵn sàng trả và chọn gói học sinh (59$/ tháng).

    • Individual Plan-Rs 119/ month: sẵn sàng trả và chọn gói cá nhân (119$/ tháng).

    • Duo plan- Rs 149/month: sẵn sàng trả và chọn gói đôi (149$/ tháng).

    • Family Plan-Rs 179/month: sẵn sàng trả và chọn gói gia đình (179$/ tháng).

    • None: Chưa sẵn sàng trả gói cao cấp.

  • Biến preferred_listening_content phân biệt giữa người dùng ưu tiên nghe nhạc và người thích podcast. Mỗi nhóm có thể có nhu cầu sử dụng Premium khác nhau, ví dụ người nghe nhạc thường xuyên có thể quan tâm hơn đến chất lượng âm thanh và trải nghiệm không quảng cáo – những yếu tố thúc đẩy nhu cầu nâng cấp tài khoản.

    • Music: Âm nhạc.

    • Podcast: Tệp âm thanh kỹ thuật số với đa dạng nội dung.

Với 4 biến này, nghiên cứu kỳ vọng sẽ xác định được các yếu tố quan trọng ảnh hưởng đến hành vi nâng cấp tài khoản của người dùng, từ đó hỗ trợ các nền tảng âm nhạc số trong việc xây dựng chính sách thu hút và duy trì người dùng trả phí.


CHƯƠNG 2. THỐNG KÊ MÔ TẢ

2.1 Thống kê mô tả cho 1 biến

2.1.1 Biến phụ thuộc premium sub willingness

Đầu tiên là thống kê mô tả của biến phụ thuộc premium sub willingness, biến đại diện cho mức độ sẵn sàng đăng ký gói Spotify Premium của người dùng, ta có thể xem kết quả thống kê tần số và tần suất như sau:

# Tính tần số và tần suất
bangtso1 <- table(spotify$premium_sub_willingness)
bangtsuat1 <- prop.table(bangtso1)

# Tạo bảng dữ liệu
bang1 <- data.frame(
  "Giá trị" = names(bangtso1),
  "Tần số" = as.vector(bangtso1),
  "Tần suất (%)" = round(as.vector(bangtsuat1) * 100, 2))

# Hiển thị bảng bằng DT
datatable(bang1, caption = "Bảng: Thống kê biến premium_sub_willingness")

Biến premium sub willingness thể hiện mức độ sẵn sàng trả phí để đăng ký gói Spotify Premium của người dùng. Đây là một biến nhị phân với hai giá trị Yes và No, cụ thể:

  • Yes (sẵn sàng): 186 người (chiếm 35.77%)

  • No (chưa sẵn sàng): 334 người (chiếm 64,23%)

Kết quả cho thấy đa số người dùng (hơn 64%) không sẵn sàng trả phí để sử dụng dịch vụ Premium, trong khi chỉ khoảng 35.77% người dùng thể hiện sự sẵn sàng đăng ký. Điều này phản ánh rào cản lớn trong hành vi chi trả của người dùng Spotify.

Sự chênh lệch đáng kể giữa hai nhóm cho thấy vẫn còn rào cản lớn trong việc chuyển đổi người dùng miễn phí sang trả phí. Người dùng có thể vẫn chưa cảm nhận được sự khác biệt rõ ràng giữa phiên bản miễn phí và Premium, hoặc cảm thấy rằng các tính năng Premium không đủ hấp dẫn để chi tiền. Ngoài ra, nhân khẩu học, thu nhập cá nhân, hành vi nghe nhạc, và các yếu tố trải nghiệm người dùng cũng có thể ảnh hưởng mạnh mẽ đến quyết định này.

Việc phân tích biến này không chỉ giúp mô hình nghiên cứu chính xác hơn, mà còn cung cấp gợi ý cụ thể cho chiến lược kinh doanh nhằm tăng tỷ lệ chuyển đổi người dùng sang Premium trong tương lai.

Ta có thể trực quan hóa kết quả thống kê thành biểu đồ như dưới đây:

spotify %>% group_by(premium_sub_willingness) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = premium_sub_willingness)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    labs(caption = "Biểu đồ tròn thể hiện mức độ sẵn sàng đăng ký gói Spotify Premium của người dùng") +
    theme_void()

2.1.2 Biến spotify usage period

Ta đến với thống kê mô tả của biến spotify usage period, đây là biến nói về khoảng thời gian mà người dùng đã sử dụng Spotify, ta có thể xem kết quả thống kê tần số và tần suất như sau:

# Tính tần số và tần suất
bangtso2 <- table(spotify$spotify_usage_period)
bangtsuat2 <- prop.table(bangtso2)

# Tạo bảng dữ liệu
bang2 <- data.frame(
  "Giá trị" = names(bangtso2),
  "Tần số" = as.vector(bangtso2),
  "Tần suất (%)" = round(as.vector(bangtsuat2) * 100, 2))

# Hiển thị bảng bằng DT
datatable(bang2, caption = "Bảng: Thống kê biến spotify_usage_period")

Biến spotify_usage_period được chia thành 4 nhóm chính bao gồm:

  • Less than 6 months: 91 người (chiếm 17.5%)

  • 6 months to 1 year: 119 người (22.89%)

  • 1 year to 2 years: 141 người (27.12%)

  • More than 2 years: 169 người (32.5%)

Kết quả cho thấy phần lớn người dùng trong bộ dữ liệu đã sử dụng Spotify từ 1 năm trở lên (chiếm gần 60%), trong đó nhóm có thời gian sử dụng hơn 2 năm chiếm tỷ lệ lớn nhất (32.5%). Ngược lại, nhóm người dùng mới (dưới 6 tháng) chiếm tỷ lệ thấp nhất (17.5%).

Điều này gợi ý rằng thời gian sử dụng nền tảng có thể là một yếu tố quan trọng ảnh hưởng đến sự sẵn sàng đăng ký gói Premium. Người dùng sử dụng Spotify lâu dài có khả năng đã hình thành thói quen sử dụng, mức độ hài lòng cao và có xu hướng nâng cấp dịch vụ để tối ưu hóa trải nghiệm. Trong khi đó, người dùng mới có thể còn đang ở giai đoạn khám phá và do dự trong việc chi trả.

Do đó, spotify_usage_period là một biến tiềm năng có tác động đến biến phụ thuộc premium_sub_willingness, và hoàn toàn hợp lý khi đưa vào mô hình phân tích nhằm kiểm định mức độ ảnh hưởng này.

Ta có thể trực quan hóa kết quả thống kê thành biểu đồ cột như dưới đây:

spotify %>% group_by(spotify_usage_period) %>% summarise(n = n()) %>%
  ggplot(aes(x = spotify_usage_period, y = n))+
  geom_col(fill='pink')+
  labs(x="Thời gian mà người dùng đã sử dụng Spotify", y = "Số lượng người dùng")+
  labs(caption = "Biểu đồ thời gian mà người dùng đã sử dụng Spotify")+
  geom_text(aes(label =n), vjust=2, color = 'black')

2.1.3 Biến spotify subscription plan

Ta đến với thống kê mô tả tiếp theo của biến spotify subscription plan, đây là biến thể hiện loại gói dịch vụ mà người dùng hiện đang sử dụng, ta có thể xem kết quả thống kê tần số và tần suất như sau:

# Tính tần số và tần suất
bangtso3 <- table(spotify$spotify_subscription_plan)
bangtsuat3 <- prop.table(bangtso3)

# Tạo bảng dữ liệu
bang3 <- data.frame(
  "Giá trị" = names(bangtso3),
  "Tần số" = as.vector(bangtso3),
  "Tần suất (%)" = round(as.vector(bangtsuat3) * 100, 2))

# Hiển thị bảng bằng DT
datatable(bang3, caption = "Bảng: Thống kê biến spotify_subscription_plan")

Biến spotify subscription plan được chia làm 2 nhóm:

  • Free (ad-supported): 424 người (chiếm 81.54%)

  • Premium (paid subscription): 96 người (chiếm 18.46%)

Số liệu cho thấy đa số người dùng (hơn 80%) đang sử dụng gói miễn phí có quảng cáo. Trong khi đó, chỉ một phần nhỏ người dùng đã lựa chọn gói trả phí Premium. Điều này phản ánh xu hướng phổ biến là người dùng thường ưu tiên trải nghiệm miễn phí trước khi quyết định nâng cấp.

Tuy nhiên, chính sự khác biệt giữa hai nhóm này lại rất có giá trị trong phân tích. Những người đã sử dụng gói Premium có thể được xem là đã chấp nhận chi trả để cải thiện trải nghiệm, và từ đó có thể liên quan chặt chẽ đến mức độ sẵn sàng đăng ký hoặc duy trì Premium trong tương lai.

Do đó, biến spotify subscription plan là một yếu tố trực tiếp phản ánh hành vi tiêu dùng dịch vụ của người dùng và có khả năng ảnh hưởng đáng kể đến biến phụ thuộc premium_sub_willingness. Việc đưa biến này vào mô hình phân tích là hoàn toàn hợp lý nhằm tìm hiểu xem loại gói hiện tại có ảnh hưởng như thế nào đến quyết định đăng ký Premium.

Ta có thể trực quan hóa kết quả thống kê thành biểu đồ tròn như dưới đây:

spotify %>% group_by(spotify_subscription_plan) %>% summarise(n = n()) %>%
  ggplot(aes(x = '', y = n,fill = spotify_subscription_plan)) +
    geom_col(color = 'black') +
    coord_polar('y') +
    geom_text(aes(x = 1.3, label = n),position = position_stack(vjust = .5)) +
    labs(caption = "Biểu đồ tròn thể hiện loại gói dịch vụ mà người dùng hiện đang sử dụng") +
    theme_void()

2.1.4 Biến preffered premium plan

Biến preffered premium plan là biến phản ánh loại gói Premium mà người dùng ưa thích hoặc mong muốn đăng ký nếu có cơ hội, ta có thể xem kết quả thống kê tần số và tần suất như sau:

# Tính tần số và tần suất
bangtso4 <- table(spotify$preffered_premium_plan)
bangtsuat4 <- prop.table(bangtso4)

# Tạo bảng dữ liệu
bang4 <- data.frame(
  "Giá trị" = names(bangtso4),
  "Tần số" = as.vector(bangtso4),
  "Tần suất (%)" = round(as.vector(bangtsuat4) * 100, 2))

# Hiển thị bảng bằng DT
datatable(bang4, caption = "Bảng: Thống kê biến preffered_premium_plan")

Biến preffered premium plan có kết quả thống kê như sau:

  • Individual Plan – Rs 119/month: 95 người (chiếm 18,27%)

  • Student Plan – Rs 59/month: 94 người (chiếm 18,07%)

  • Duo Plan – Rs 149/month: 84 người (chiếm 16,15%)

  • Family Plan – Rs 179/month: 39 người (chiếm 7,5%)

  • None (không chọn gói nào): 208 người (chiếm 40%)

Ta thấy rằng có đến 40% người dùng không quan tâm hoặc không có nhu cầu chọn bất kỳ gói Premium nào, trong khi 60% còn lại có sự phân bổ khá đồng đều giữa các gói. Gói cá nhân và gói sinh viên được ưa chuộng nhất (khoảng 18% mỗi loại), có thể do chi phí thấp và phù hợp với người dùng cá nhân hoặc sinh viên. Gói Duo và Family ít phổ biến hơn, có thể do giá cao hoặc người dùng không có nhu cầu chia sẻ tài khoản.

Nhìn chung, biến này phản ánh mức độ quan tâm của người dùng đến các lựa chọn trả phí cụ thể, từ đó có khả năng liên quan trực tiếp đến hành vi hoặc xu hướng đăng ký Premium thực sự trong tương lai. Người dùng càng có sự quan tâm rõ ràng đến các gói Premium cụ thể thì mức độ sẵn sàng đăng ký Premium (premium_sub_willingness) có thể càng cao. Vì vậy, biến preffered_premium_plan là một yếu tố hợp lý để đưa vào mô hình nhằm kiểm định mối liên hệ giữa loại gói mong muốn và quyết định đăng ký Premium.

Ta có thể trực quan hóa kết quả thống kê thành biểu đồ như dưới đây:

spotify %>% group_by(preffered_premium_plan) %>% summarise(n = n()) %>%
  mutate(percent = n / sum(n)) %>%
  ggplot(aes(x = percent, y = reorder(preffered_premium_plan, percent))) +
  geom_col(fill = 'skyblue') +
  scale_x_continuous(labels = percent_format(accuracy = 0.01)) +
  geom_text(aes(label = paste0(round(percent * 100, 2), "%")),
            hjust = 1, color = 'black') +
  labs(x = "Số lượng người dùng", y = "Loại gói Premium mà người dùng ưa thích hoặc mong muốn đăng ký", y="Số lượng người dùng", caption = "Biểu đồ thể hiện loại gói Premium mà người dùng ưa thích hoặc mong muốn đăng ký")

2.1.5 Biến preferred listening content

Biến preferred listening content là biến nội dung người dùng ưu tiên lựa chọn khi sử dụng Spotify, cụ thể là giữa nghe nhạc (Music) và nghe podcast (Podcast), ta có thể xem kết quả thống kê tần số và tần suất như sau:

# Tính tần số và tần suất
bangtso5 <- table(spotify$preferred_listening_content)
bangtsuat5 <- prop.table(bangtso5)

# Tạo bảng dữ liệu
bang5 <- data.frame(
  "Giá trị" = names(bangtso5),
  "Tần số" = as.vector(bangtso5),
  "Tần suất (%)" = round(as.vector(bangtsuat5) * 100, 2))

# Hiển thị bảng bằng DT
datatable(bang5, caption = "Bảng: Thống kê biến preferred_listening_content")

Biến preferred_listening_content có kết quả thống kê như sau:

  • Music: 410 người (chiếm 78,85%)

  • Podcast: 110 người (chiếm 21,15%)

Kết quả cho thấy phần lớn người dùng (gần 79%) ưu tiên nghe nhạc, trong khi chỉ khoảng 21% có xu hướng nghe podcast. Điều này phản ánh thực tế rằng Spotify được sử dụng phổ biến nhất với mục đích giải trí âm nhạc truyền thống, còn podcast vẫn chỉ là một hình thức nội dung phụ với lượng người dùng ít hơn.

Tuy nhiên, biến này có thể đóng vai trò quan trọng trong việc dự đoán xu hướng đăng ký gói Premium, bởi người dùng ưu tiên nghe nhạc có thể quan tâm đến việc loại bỏ quảng cáo, chất lượng âm thanh cao hơn – các lợi ích nổi bật của gói Premium. Trong khi đó, người dùng nghe podcast có thể ít bị ảnh hưởng bởi quảng cáo hoặc chất lượng âm thanh, do đó mức độ sẵn sàng trả phí có thể thấp hơn.

Do đó, việc đưa biến preferred_listening_content vào mô hình là hoàn toàn hợp lý, giúp kiểm định liệu nội dung ưu tiên có ảnh hưởng đến quyết định đăng ký Premium hay không.

Ta có thể trực quan hóa kết quả thống kê thành biểu đồ tròn như dưới đây:

spotify %>% group_by(preferred_listening_content) %>% summarise(n = n()) %>%
  mutate(perc = round(n / sum(n) * 100, 1)) %>%
  ggplot(aes(x = "", y = perc, fill = preferred_listening_content)) +
    geom_col(color = 'black') +
    coord_polar("y") +
    geom_text(aes(x = 1.3, label = paste0(perc, "%")), 
              position = position_stack(vjust = 0.5)) +
    labs(caption = "Biểu đồ tròn về tỷ lệ người dùng ưu tiên lựa chọn khi sử dụng Spotify") +
    theme_void()


2.2 Thống kê mô tả cho 2 biến

Để hiểu rõ hơn về các yếu tố có thể ảnh hưởng đến ý định trả phí cho gói Premium của người dùng Spotify, phần này sẽ tiến hành thống kê mô tả và quan sát mối liên hệ giữa biến phụ thuộc này với một số biến độc lập quan trọng. Việc phân tích từng cặp biến sẽ giúp làm rõ xu hướng hành vi của người dùng, từ đó cung cấp cơ sở dữ liệu định hướng cho các mô hình phân tích sâu hơn ở phần tiếp theo.

2.2.1 Cặp biến premium sub willingness và biến spotify usage period

Cặp biến này giúp kiểm tra xem thời gian sử dụng Spotify của người dùng có mối liên hệ nào với mức độ sẵn sàng đăng ký Premium hay không. Người dùng đã gắn bó lâu dài có thể nhận thấy giá trị nhiều hơn từ dịch vụ và do đó có xu hướng trả phí cao hơn – hoặc ngược lại. Việc phân tích mối quan hệ này sẽ cung cấp gợi ý về chiến lược tiếp cận theo nhóm tuổi sử dụng ứng dụng.

bangcheo1 <- table(spotify$premium_sub_willingness, spotify$spotify_usage_period)
bangcheo1_tong <- addmargins(bangcheo1)
kable(bangcheo1_tong, caption = "Bảng tần số chéo của premium_sub_willingness và spotify_usage_period")
Bảng tần số chéo của premium_sub_willingness và spotify_usage_period
1 year to 2 years 6 months to 1 year Less than 6 months More than 2 years Sum
No 84 67 76 107 334
Yes 57 52 15 62 186
Sum 141 119 91 169 520
kable(prop.table(table(spotify$premium_sub_willingness, spotify$spotify_usage_period)), caption = "Bảng tần suất của premium_sub_willingness và spotify_usage_period")
Bảng tần suất của premium_sub_willingness và spotify_usage_period
1 year to 2 years 6 months to 1 year Less than 6 months More than 2 years
No 0.1615385 0.1288462 0.1461538 0.2057692
Yes 0.1096154 0.1000000 0.0288462 0.1192308

Ta rút ra một số nhận xét sau:

  • Người dùng sử dụng Spotify từ 1 đến 2 năm chiếm tỷ lệ cao nhất về mặt số lượng người sẵn sàng đăng ký Premium (57 người, tương đương 10.96% toàn bộ mẫu).

  • Nhóm sử dụng trên 2 năm có số lượng người sẵn sàng đăng ký cũng tương đối cao (62 người, chiếm 11.92% toàn mẫu).

  • Ngược lại, nhóm người dùng mới (dưới 6 tháng) có tỷ lệ sẵn sàng đăng ký Premium rất thấp (15 người, chiếm 2.88% toàn mẫu).

  • Từ đó cho thấy người dùng sử dụng Spotify càng lâu thì càng có xu hướng sẵn sàng đăng ký Premium.

2.2.2 Cặp biến premium sub willingness và biến spotify subscription plan

Thông qua cặp biến này, ta xem xét liệu người đang dùng gói miễn phí (Free) có xu hướng ít sẵn sàng trả phí hơn so với nhóm đã từng trải nghiệm hoặc đang sử dụng gói Premium hay không. Kết quả từ đây sẽ giúp Spotify đánh giá hiệu quả của phiên bản miễn phí trong việc nuôi dưỡng hành vi chuyển đổi sang trả phí.

bangcheo2 <- table(spotify$premium_sub_willingness, spotify$spotify_subscription_plan)
bangcheo2_tong <- addmargins(bangcheo2)
kable(bangcheo2_tong, caption = "Bảng tần số chéo của premium_sub_willingness và biến spotify_subscription_plan")
Bảng tần số chéo của premium_sub_willingness và biến spotify_subscription_plan
Free (ad-supported) Premium (paid subscription) Sum
No 310 24 334
Yes 114 72 186
Sum 424 96 520
kable(prop.table(table(spotify$premium_sub_willingness, spotify$spotify_subscription_plan)), caption = "Bảng tần suất của premium_sub_willingness và spotify_subscription_plan")
Bảng tần suất của premium_sub_willingness và spotify_subscription_plan
Free (ad-supported) Premium (paid subscription)
No 0.5961538 0.0461538
Yes 0.2192308 0.1384615

Ta rút ra một số nhận xét sau:

  • Trong nhóm người đang sử dụng gói Free, có 310 người không sẵn sàng trả phí (chiếm 59.6%) và 114 người sẵn sàng trả phí (chiếm 21.9%).

  • Trong nhóm người đang sử dụng gói Premium, có 24 người không sẵn sàng tiếp tục trả phí (chiếm 4.6%) và 72 người vẫn sẵn sàng duy trì trả phí (chiếm 13.8%).

  • Ta thấy đa số người dùng gói Free chưa sẵn sàng chuyển sang trả phí, trong khi đó, phần lớn người dùng gói Premium thể hiện xu hướng duy trì việc trả phí.

  • Từ đó ta thấy người đang sử dụng Premium có xu hướng sẵn sàng tiếp tục chi trả cao hơn nhiều so với người đang sử dụng gói Free. Do đó, từ góc độ chiến lược, Spotify có thể tận dụng điều này để thiết kế các chương trình trải nghiệm Premium dùng thử, hoặc tăng cường giáo dục người dùng Free về giá trị của Premium.

2.2.3 Cặp biến premium sub willingness và biến preffered premium plan

Cặp biến này giúp tìm hiểu mối liên hệ giữa gói Premium mong muốn của người dùng (ví dụ như gói cá nhân, gói sinh viên, gói gia đình) và ý định sẵn sàng trả phí. Phân tích này cho phép nhận biết nhu cầu thực tế và mức độ phù hợp của các gói hiện tại với người dùng, từ đó làm cơ sở để đề xuất gói linh hoạt hơn, phù hợp với từng phân khúc thị trường.

bangcheo3 <- table(spotify$premium_sub_willingness, spotify$preffered_premium_plan)
bangcheo3_tong <- addmargins(bangcheo3)
kable(bangcheo3_tong, caption = "Bảng tần số chéo của premium_sub_willingness và biến preffered_premium_plan")
Bảng tần số chéo của premium_sub_willingness và biến preffered_premium_plan
Duo plan- Rs 149/month Family Plan-Rs 179/month Individual Plan- Rs 119/ month None Student Plan-Rs 59/month Sum
No 32 13 26 203 60 334
Yes 52 26 69 5 34 186
Sum 84 39 95 208 94 520
kable(prop.table(table(spotify$premium_sub_willingness, spotify$preffered_premium_plan)), caption = "Bảng tần suất của premium_sub_willingness và preffered_premium_plan")
Bảng tần suất của premium_sub_willingness và preffered_premium_plan
Duo plan- Rs 149/month Family Plan-Rs 179/month Individual Plan- Rs 119/ month None Student Plan-Rs 59/month
No 0.0615385 0.025 0.0500000 0.3903846 0.1153846
Yes 0.1000000 0.050 0.1326923 0.0096154 0.0653846

Ta rút ra một số nhận xét sau:

  • Nhóm “None” - Không chọn gói Premium nào là nhóm chiếm tỷ lệ lớn nhất (208/520 người, ~40%), chỉ 5 người sẵn sàng trả phí, đây là tỷ lệ cực kỳ thấp.

  • Các nhóm người dùng có sự lựa chọn rõ ràng về gói Premium mong muốn (Duo, Family, Individual) có tỷ lệ sẵn sàng chi trả cao hơn hẳn. Điều này cho thấy rằng khi người dùng đã xác định được gói phù hợp với hoàn cảnh cá nhân (cá nhân, cặp đôi, gia đình…), họ có xu hướng sẵn sàng chi trả cao hơn nhiều.

  • Gói Student Plan dù giá rẻ nhưng mức độ sẵn sàng chi trả cũng không cao.

  • Người dùng có sự lựa chọn rõ ràng về gói Premium mong muốn (đặc biệt là Individual, Duo, Family) có xu hướng sẵn sàng trả phí cao hơn rõ rệt so với nhóm không chọn gói nào. Ngược lại, nhóm người không có lựa chọn cụ thể (“None”) có tỷ lệ từ chối cao nhất, cho thấy sự mơ hồ về nhu cầu sẽ làm giảm ý định chi trả.

2.2.4 Cặp biến premium sub willingness và biến preferred listening content

Cuối cùng, việc đối chiếu giữa sở thích nội dung nghe (nghe nhạc hay podcast) và ý định trả phí sẽ giúp làm rõ vai trò của nội dung trong việc ảnh hưởng đến hành vi người dùng. Nhóm người dùng nghe podcast có thể đánh giá cao các tính năng nâng cao như không quảng cáo hoặc khả năng tải xuống offline, trong khi người thích nghe nhạc có thể quan tâm đến chất lượng âm thanh. Đây là dữ liệu quan trọng cho chiến lược cá nhân hóa trải nghiệm Premium.

bangcheo4 <- table(spotify$premium_sub_willingness, spotify$preferred_listening_content)
bangcheo4_tong <- addmargins(bangcheo4)
kable(bangcheo4_tong, caption = "Bảng tần số chéo của premium_sub_willingness và biến preferred_listening_content")
Bảng tần số chéo của premium_sub_willingness và biến preferred_listening_content
Music Podcast Sum
No 292 42 334
Yes 118 68 186
Sum 410 110 520
kable(prop.table(table(spotify$premium_sub_willingness, spotify$preferred_listening_content)), caption = "Bảng tần suất của premium_sub_willingness và preferred_listening_content")
Bảng tần suất của premium_sub_willingness và preferred_listening_content
Music Podcast
No 0.5615385 0.0807692
Yes 0.2269231 0.1307692

Ta rút ra một số nhận xét sau:

  • Trong tổng số 110 người nghe podcast, có đến 68 người (61.8%) sẵn sàng trả phí, trong khi chỉ 42 người (38.2%) không sẵn sàng.

  • Ngược lại, trong nhóm 410 người thích nghe nhạc, chỉ có 118 người (28.8%) sẵn sàng trả phí, trong khi 292 người (71.2%) không sẵn sàng.

  • Điều này cho thấy sự khác biệt đáng kể về hành vi chi trả giữa hai nhóm. Người yêu thích podcast có tỷ lệ sẵn sàng trả phí cao hơn gấp đôi so với nhóm nghe nhạc.

  • Trong khi đó, người thích nghe nhạc có thể chỉ quan tâm đến chất lượng âm thanh hoặc danh sách phát, những yếu tố mà gói miễn phí vẫn đáp ứng ở mức tối thiểu. Vì thế, họ ít có động lực hơn để nâng cấp gói.


2.3 Tỷ số nguy cơ Relative Risk

2.3.1 Cặp biến premium sub willingness và biến spotify subscription plan

riskratio(table(spotify$premium_sub_willingness, spotify$spotify_subscription_plan))
## $data
##        
##         Free (ad-supported) Premium (paid subscription) Total
##   No                    310                          24   334
##   Yes                   114                          72   186
##   Total                 424                          96   520
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate    lower    upper
##   No  1.000000       NA       NA
##   Yes 5.387097 3.519293 8.246204
## 
## $p.value
##      two-sided
##       midp.exact fisher.exact   chi.square
##   No          NA           NA           NA
##   Yes          0 3.118234e-18 6.634787e-19
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Trong số người đang dùng Free vs Premium, ai có nguy cơ (tỷ lệ) sẵn sàng trả phí cao hơn?

Tỷ số nguy cơ là 5.39 chứng tỏ người đang dùng gói Premium có nguy cơ (tỷ lệ khả năng) sẵn sàng tiếp tục trả phí cao hơn gấp khoảng 5.39 lần so với người đang dùng gói Free.

Giá trị P-value của tất cả đều gần bằng 0, điều này có nghĩa rằng sự khác biệt về tỷ lệ sẵn sàng trả phí giữa người dùng gói Premium và gói Free là hoàn toàn có ý nghĩa thống kê.

Nói tóm lại:

  • Kết quả cho thấy rằng việc đang sử dụng gói Premium có liên hệ rất mạnh với khả năng sẵn sàng tiếp tục trả phí. Cụ thể, người đang dùng Premium có khả năng muốn tiếp tục chi trả cao gấp khoảng 5 lần người dùng Free.

  • Đây là một bằng chứng định lượng mạnh mẽ cho thấy trải nghiệm thực tế với gói Premium giúp nuôi dưỡng hành vi chi trả lâu dài.

2.3.2 Cặp biến premium sub willingness và biến preferred listening content

riskratio(table(spotify$premium_sub_willingness, spotify$preferred_listening_content))
## $data
##        
##         Music Podcast Total
##   No      292      42   334
##   Yes     118      68   186
##   Total   410     110   520
## 
## $measure
##      risk ratio with 95% C.I.
##       estimate    lower    upper
##   No  1.000000       NA       NA
##   Yes 2.907322 2.068734 4.085842
## 
## $p.value
##      two-sided
##         midp.exact fisher.exact   chi.square
##   No            NA           NA           NA
##   Yes 3.593192e-10 3.494134e-10 1.371379e-10
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Trong số người đang dùng Free vs Premium, ai có nguy cơ (tỷ lệ) sẵn sàng trả phí cao hơn?

Tỷ số nguy cơ là 2.91 chứng tỏ người nghe Podcast có tỷ lệ sẵn sàng trả phí cao hơn gần 2.91 lần so với người nghe nhạc.

Khoảng tin cậy 95% có nghĩa ta tự tin 95% rằng RR thật nằm trong khoảng này, và vì nó không chứa số 1, nên mối liên hệ là có ý nghĩa thống kê.

Giá trị P-value của tất cả đều cực kỳ nhỏ, cho thấy sự khác biệt trong tỷ lệ sẵn sàng trả phí giữa người nghe Podcast và nghe nhạc là rất có ý nghĩa thống kê. Khó có thể do ngẫu nhiên.

Nói tóm lại là người nghe Podcast có xu hướng sẵn sàng trả phí cao hơn hẳn so với người chỉ nghe nhạc. Cụ thể, họ có khả năng chi trả cao hơn gấp gần 3 lần.


2.4 Tỷ số chênh Odds Ratio

2.4.1 Cặp biến premium sub willingness và biến spotify subscription plan

oddsratio(table(spotify$premium_sub_willingness, spotify$spotify_subscription_plan))
## $data
##        
##         Free (ad-supported) Premium (paid subscription) Total
##   No                    310                          24   334
##   Yes                   114                          72   186
##   Total                 424                          96   520
## 
## $measure
##      odds ratio with 95% C.I.
##       estimate    lower    upper
##   No  1.000000       NA       NA
##   Yes 8.087587 4.919184 13.71732
## 
## $p.value
##      two-sided
##       midp.exact fisher.exact   chi.square
##   No          NA           NA           NA
##   Yes          0 3.118234e-18 6.634787e-19
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Phân tích tỷ số chênh cho cùng cặp biến cũng cho ra kết quả rất đáng chú ý. Odds Ratio được ước lượng là 8.09, nghĩa là người dùng hiện đang sử dụng gói Premium có tỷ lệ cược sẵn sàng trả phí cao hơn gấp 8 lần so với người dùng gói Free.

Khoảng tin cậy 95% cho OR nằm trong khoảng từ 4.92 đến 13.72 và giá trị p là 3.1e-18 một lần nữa khẳng định mối liên hệ này là có ý nghĩa thống kê rất mạnh. Đây là một kết quả củng cố thêm cho nhận định trước đó từ phân tích RR.

Cả hai chỉ số RR và OR đều cho thấy rằng việc người dùng đang sử dụng gói Premium hiện tại có mối liên hệ rất mạnh mẽ với xu hướng sẵn sàng trả phí trong tương lai.

2.4.2 Cặp biến premium sub willingness và biến preferred listening content

oddsratio(table(spotify$premium_sub_willingness, spotify$preferred_listening_content))
## $data
##        
##         Music Podcast Total
##   No      292      42   334
##   Yes     118      68   186
##   Total   410     110   520
## 
## $measure
##      odds ratio with 95% C.I.
##       estimate    lower    upper
##   No  1.000000       NA       NA
##   Yes 3.989116 2.577639 6.240037
## 
## $p.value
##      two-sided
##         midp.exact fisher.exact   chi.square
##   No            NA           NA           NA
##   Yes 3.593192e-10 3.494134e-10 1.371379e-10
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Phân tích mối liên hệ giữa mức độ sẵn sàng trả phí và loại nội dung nghe ưa thích gồm hai nhóm là Music và Podcast cho thấy Odds Ratio là 3.99. Nghĩa là những người yêu thích Podcast có tỷ lệ cược sẵn sàng trả phí cao gấp khoảng 4 lần so với những người thích nghe nhạc.

Khoảng tin cậy 95% cho Odds Ratio nằm trong khoảng từ 2.58 đến 6.24, đủ hẹp và hoàn toàn lớn hơn 1, khẳng định rằng mối liên hệ này là có ý nghĩa thống kê.

Giá trị p rất nhỏ (≈ 1.37e-10), cho thấy sự khác biệt này là đáng kể và không phải do ngẫu nhiên.

Kết quả này cho thấy nội dung ưa thích có ảnh hưởng đến xu hướng sẵn sàng chi trả, trong đó người thích Podcast thể hiện sự sẵn sàng trả phí cao hơn rõ rệt so với người thích Music. Điều này có thể được lý giải bởi việc Podcast thường có giá trị nội dung cao, độc quyền hoặc mang tính cá nhân hóa, khiến người nghe cảm thấy đáng để chi tiền hơn so với âm nhạc – vốn có thể dễ dàng tìm thấy miễn phí.


CHƯƠNG 3. THỐNG KÊ SUY DIỄN

3.1 Kiểm định tính độc lập cho 2 biến định tính

3.1.1 Cặp biến premium sub willingness và biến spotify usage period

Ta thực hiện kiểm định Chi-squared như sau:

chisq.test(table(spotify$premium_sub_willingness, spotify$spotify_usage_period))
## 
##  Pearson's Chi-squared test
## 
## data:  table(spotify$premium_sub_willingness, spotify$spotify_usage_period)
## X-squared = 19.38, df = 3, p-value = 0.0002281

Đặt giả thiết:

  • \(H_0\): Không có mối liên hệ giữa Nhu cầu đăng ký gói premium và thời gian sử dụng Spotify

  • \(H_1\): Có mối liên hệ giữa Nhu cầu đăng ký gói premium và thời gian sử dụng Spotify

p-value = 0.0002281 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là có mối liên hệ giữa nhu cầu đăng ký gói premium với thời gian sử dụng Spotify

3.1.2 Cặp biến premium sub willingness và biến spotify subscription plan

Ta có kết quả kiểm định Chi-squared như sau:

chisq.test(table(spotify$premium_sub_willingness, spotify$spotify_subscription_plan))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(spotify$premium_sub_willingness, spotify$spotify_subscription_plan)
## X-squared = 76.789, df = 1, p-value < 2.2e-16

Đặt giả thiết:

  • \(H_0\): Không có mối liên hệ giữa Nhu cầu đăng ký gói premium và gói đăng ký Spotify được người dùng sử dụng.

  • \(H_1\): Có mối liên hệ giữa Nhu cầu đăng ký gói premium và gói đăng ký Spotify được người dùng sử dụng.

p-value = 2.2e-16 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là có mối liên hệ giữa Nhu cầu đăng ký gói premium và gói đăng ký Spotify được người dùng sử dụng.

3.1.3 Cặp biến premium sub willingness và biến preffered premium plan

Ta có kết quả kiểm định Chi-squared như sau:

chisq.test(table(spotify$premium_sub_willingness, spotify$preffered_premium_plan))
## 
##  Pearson's Chi-squared test
## 
## data:  table(spotify$premium_sub_willingness, spotify$preffered_premium_plan)
## X-squared = 198.16, df = 4, p-value < 2.2e-16

Đặt giả thiết:

  • \(H_0\): Không có mối liên hệ giữa Nhu cầu đăng ký gói premium và nhu cầu chọn gói cao cấp.

  • \(H_1\): Có mối liên hệ giữa Nhu cầu đăng ký gói premium và Nhu cầu chọn gói cao cấp.

p-value = 2.2e-16 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là có mối liên hệ giữa Nhu cầu đăng ký gói premium và Nhu cầu chọn gói cao cấp.

3.1.4 Cặp biến premium sub willingness và biến preferred listening content

Ta có kết quả kiểm định Chi-squared như sau:

chisq.test(table(spotify$premium_sub_willingness, spotify$preferred_listening_content))
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  table(spotify$premium_sub_willingness, spotify$preferred_listening_content)
## X-squared = 39.779, df = 1, p-value = 2.844e-10

Đặt giả thiết:

  • \(H_0\): Không có mối liên hệ giữa Nhu cầu đăng ký gói premium và loại nhạc người dùng thích nghe.

  • \(H_1\): Có mối liên hệ giữa Nhu cầu đăng ký gói premium và loại nhạc người dùng thích nghe.

p-value = 2.844e-10 < 0.05 nên ta bác bỏ \(H_0\) và chấp nhận \(H_1\), đồng nghĩa là có mối liên hệ giữa Nhu cầu đăng ký gói premium và loại nhạc người dùng thích nghe.


3.2 Khoảng ước lượng cho tỷ lệ

Ta sẽ tiến hành ước lượng tỷ lệ số người dụng đồng ý mua gói Premium, hay nói cách khác là số người dùng trả lời “Yes” trong biến premium sub willingness.

prop.test(sum(spotify$premium_sub_willingness == "Yes"), nrow(spotify), conf.level = 0.95)
## 
##  1-sample proportions test with continuity correction
## 
## data:  sum(spotify$premium_sub_willingness == "Yes") out of nrow(spotify), null probability 0.5
## X-squared = 41.556, df = 1, p-value = 1.146e-10
## alternative hypothesis: true p is not equal to 0.5
## 95 percent confidence interval:
##  0.3167461 0.4007742
## sample estimates:
##         p 
## 0.3576923

Đặt giả thiết:

  • \(H_0\): Tỷ lệ người dùng sẵn sàng đăng ký gói Premium bằng 50%.

  • \(H_1\): Tỷ lệ người dùng sẵn sàng đăng ký gói Premium khác 50%.

Kết quả kiểm định cho thấy tỷ lệ người dùng sẵn sàng đăng ký gói Premium trên Spotify là khoảng 35.77%, với khoảng tin cậy 95% dao động từ 31.67% đến 40.07%.

Giá trị p rất nhỏ (1.146e-10 < 0.05) cho thấy sự khác biệt giữa tỷ lệ này và mức giả định 50% là có ý nghĩa thống kê. Do đó, có đủ bằng chứng để bác bỏ giả thuyết rằng 50% người dùng sẵn sàng trả phí. Nói cách khác, tỷ lệ thực tế thấp hơn đáng kể so với kỳ vọng 50%.

Điều này gợi ý rằng đa phần người dùng hiện chưa có xu hướng sẵn sàng chi trả cho phiên bản Premium, và Spotify cần có chiến lược cải thiện nhận thức giá trị, chính sách ưu đãi, hoặc nâng cao trải nghiệm miễn phí để thúc đẩy hành vi chuyển đổi.


CHƯƠNG 4. MÔ HÌNH HỒI QUY

4.1 Mô hình hồi quy Logit

Trước tiên ta sẽ quy biến phụ thuộc thành biến nhi phân, rồi sau đó tiến hành hồi quy

spotify1 <- spotify
spotify1$premium <- ifelse(spotify1$premium_sub_willingness == "Yes",1,0)

Để tìm hiểu các yếu tố ảnh hưởng đến mức độ sẵn sàng đăng ký Spotify Premium, mô hình hồi quy logistic đã được xây dựng với biến phụ thuộc là premium (nhị phân: Yes/No) và các biến độc lập bao gồm: spotify usage period, spotify subscription plan, preffered premium plan và preferred listening content.

mohinh1 <- glm(premium ~ spotify_usage_period + spotify_subscription_plan + preffered_premium_plan + preferred_listening_content, data = spotify1,family = binomial(link = "logit"))
summary(mohinh1)
## 
## Call:
## glm(formula = premium ~ spotify_usage_period + spotify_subscription_plan + 
##     preffered_premium_plan + preferred_listening_content, family = binomial(link = "logit"), 
##     data = spotify1)
## 
## Coefficients:
##                                                      Estimate Std. Error
## (Intercept)                                          -0.27764    0.35281
## spotify_usage_period6 months to 1 year               -0.05126    0.33355
## spotify_usage_periodLess than 6 months               -0.71354    0.41763
## spotify_usage_periodMore than 2 years                 0.34918    0.32452
## spotify_subscription_planPremium (paid subscription)  1.11829    0.31453
## preffered_premium_planFamily Plan-Rs 179/month        0.10363    0.43949
## preffered_premium_planIndividual Plan- Rs 119/ month  0.75000    0.35913
## preffered_premium_planNone                           -3.66467    0.52499
## preffered_premium_planStudent Plan-Rs 59/month       -0.54918    0.35280
## preferred_listening_contentPodcast                    0.98930    0.31308
##                                                      z value Pr(>|z|)    
## (Intercept)                                           -0.787 0.431311    
## spotify_usage_period6 months to 1 year                -0.154 0.877870    
## spotify_usage_periodLess than 6 months                -1.709 0.087537 .  
## spotify_usage_periodMore than 2 years                  1.076 0.281940    
## spotify_subscription_planPremium (paid subscription)   3.555 0.000377 ***
## preffered_premium_planFamily Plan-Rs 179/month         0.236 0.813594    
## preffered_premium_planIndividual Plan- Rs 119/ month   2.088 0.036764 *  
## preffered_premium_planNone                            -6.980 2.94e-12 ***
## preffered_premium_planStudent Plan-Rs 59/month        -1.557 0.119555    
## preferred_listening_contentPodcast                     3.160 0.001578 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 678.16  on 519  degrees of freedom
## Residual deviance: 408.60  on 510  degrees of freedom
## AIC: 428.6
## 
## Number of Fisher Scoring iterations: 6

Kết quả mô hình cho thấy có một số biến độc lập có ý nghĩa thống kê ở mức ý nghĩa 1%, 5% và 10%. Cụ thể:

  • Biến spotify_subscription_planPremium (paid subscription) có hệ số ước lượng dương (1.11829) và có ý nghĩa rất cao với giá trị p-value < 0.001. Điều này cho thấy người dùng hiện đang sử dụng gói trả phí của Spotify có xu hướng sẵn sàng tiếp tục đăng ký Premium cao hơn đáng kể so với người dùng miễn phí (đối tượng tham chiếu).

  • Trong nhóm biến preffered_premium_plan, các phương án mà người dùng ưu tiên đăng ký gói Premium trong tương lai cũng có ảnh hưởng rõ rệt:

    • Người dùng chọn gói Individual Plan – Rs 119/month có hệ số dương (2.088) và có ý nghĩa thống kê ở mức 5% (p = 0.03676), cho thấy đây là nhóm có xu hướng sẵn sàng cao hơn.

    • Ngược lại, người chọn “None” (không có nhu cầu với bất kỳ gói nào) có hệ số âm lớn (-6.980) và p-value gần bằng 0, cho thấy họ rất không sẵn sàng đăng ký Premium, như kỳ vọng.

    • Những người ưu tiên gói Student Plan – Rs 59/month cũng có xu hướng sẵn sàng đăng ký, với p-value ~ 0.12 (gần mức ý nghĩa 10%).

  • Biến preferred_listening_contentPodcast cũng có hệ số dương (3.160) và có ý nghĩa thống kê cao (p = 0.001578), cho thấy những người thích nghe podcast có khả năng cao hơn trong việc đăng ký Premium.

Trong khi đó, các biến liên quan đến thời gian sử dụng Spotify như spotify_usage_period không có ý nghĩa thống kê đáng kể ở các mức thông thường (p > 0.1), cho thấy thời gian gắn bó với nền tảng không nhất thiết phản ánh xu hướng sẵn sàng trả phí.

Kết quả phân tích cho thấy các yếu tố liên quan đến hiện trạng tài khoản, nhu cầu chọn gói Premium cụ thể, và loại nội dung nghe ưa thích là những yếu tố quan trọng có ảnh hưởng rõ rệt đến hành vi sẵn sàng trả phí của người dùng Spotify. Những kết quả này không chỉ có ý nghĩa thống kê mà còn mang lại giá trị thực tiễn trong việc định hướng chiến lược tiếp thị và cá nhân hóa trải nghiệm người dùng.

4.2 Mô hình hồi quy Probit

Để kiểm tra lại mức độ ảnh hưởng của các yếu tố đến hành vi sẵn sàng đăng ký Spotify Premium, một mô hình hồi quy nhị phân với liên kết probit đã được xây dựng (tương tự như logit). Mô hình sử dụng cùng các biến độc lập gồm: thời gian sử dụng Spotify (spotify_usage_period), loại tài khoản hiện tại (spotify_subscription_plan), gói Premium ưa thích (preffered_premium_plan) và nội dung nghe yêu thích (preferred_listening_content).

mohinh2 <- glm(premium ~ spotify_usage_period + spotify_subscription_plan + preffered_premium_plan + preferred_listening_content, data = spotify1,family = binomial(link = "probit"))
summary(mohinh2)
## 
## Call:
## glm(formula = premium ~ spotify_usage_period + spotify_subscription_plan + 
##     preffered_premium_plan + preferred_listening_content, family = binomial(link = "probit"), 
##     data = spotify1)
## 
## Coefficients:
##                                                      Estimate Std. Error
## (Intercept)                                          -0.16627    0.21100
## spotify_usage_period6 months to 1 year               -0.03328    0.19497
## spotify_usage_periodLess than 6 months               -0.39254    0.24441
## spotify_usage_periodMore than 2 years                 0.25284    0.18844
## spotify_subscription_planPremium (paid subscription)  0.67686    0.18003
## preffered_premium_planFamily Plan-Rs 179/month        0.03707    0.26367
## preffered_premium_planIndividual Plan- Rs 119/ month  0.45665    0.21475
## preffered_premium_planNone                           -1.98233    0.25300
## preffered_premium_planStudent Plan-Rs 59/month       -0.35805    0.21325
## preferred_listening_contentPodcast                    0.57120    0.18080
##                                                      z value Pr(>|z|)    
## (Intercept)                                           -0.788  0.43071    
## spotify_usage_period6 months to 1 year                -0.171  0.86446    
## spotify_usage_periodLess than 6 months                -1.606  0.10827    
## spotify_usage_periodMore than 2 years                  1.342  0.17966    
## spotify_subscription_planPremium (paid subscription)   3.760  0.00017 ***
## preffered_premium_planFamily Plan-Rs 179/month         0.141  0.88818    
## preffered_premium_planIndividual Plan- Rs 119/ month   2.126  0.03347 *  
## preffered_premium_planNone                            -7.835 4.68e-15 ***
## preffered_premium_planStudent Plan-Rs 59/month        -1.679  0.09315 .  
## preferred_listening_contentPodcast                     3.159  0.00158 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 678.16  on 519  degrees of freedom
## Residual deviance: 408.17  on 510  degrees of freedom
## AIC: 428.17
## 
## Number of Fisher Scoring iterations: 6

Kết quả phân tích hệ số:

  • Biến spotify_subscription_planPremium (paid subscription) tiếp tục có ảnh hưởng rất đáng kể đến hành vi sẵn sàng trả phí, với hệ số dương (0.67686) và p-value < 0.001. Kết quả này phù hợp với kỳ vọng: người dùng hiện đang sử dụng gói trả phí có khả năng tiếp tục đăng ký Premium cao hơn đáng kể so với nhóm tài khoản miễn phí.

  • Trong nhóm preffered_premium_plan:

    • Người dùng chọn gói Individual Plan – Rs 119/month có hệ số ước lượng dương (0.45665) và có ý nghĩa thống kê ở mức 5% (p = 0.03347), thể hiện xu hướng sẵn sàng trả phí cao hơn nhóm tham chiếu.

    • Người không có nhu cầu chọn gói nào (None) có hệ số âm lớn (-1.98233) và p-value gần bằng 0, cho thấy rất không có khả năng đăng ký Premium – kết quả này hoàn toàn phù hợp với kỳ vọng lý thuyết.

    • Những người chọn Student Plan – Rs 59/month có hệ số âm (-0.35805) và p-value = 0.09315, cho thấy có thể có xu hướng ít sẵn sàng hơn, tuy nhiên chỉ có ý nghĩa ở mức 10%.

  • Biến preferred_listening_contentPodcast tiếp tục có ảnh hưởng tích cực (hệ số = 0.57120) và có ý nghĩa thống kê ở mức 1% (p = 0.00158). Điều này cho thấy người thích nghe podcast có khả năng cao hơn trong việc đăng ký Spotify Premium – một xu hướng đáng chú ý về thói quen tiêu dùng âm thanh.

  • Các biến về thời gian sử dụng (spotify_usage_period) đều không có ý nghĩa thống kê đáng kể (p > 0.1). Như vậy, thời lượng gắn bó với nền tảng Spotify không phải là yếu tố chính ảnh hưởng đến hành vi sẵn sàng trả phí.

Mô hình hồi quy Probit tiếp tục khẳng định rằng các yếu tố ảnh hưởng mạnh mẽ nhất đến hành vi sẵn sàng đăng ký Spotify Premium là tình trạng tài khoản hiện tại, sự ưu tiên đối với các gói Premium cụ thể, và loại nội dung nghe yêu thích. Việc sử dụng mô hình Probit nhằm kiểm tra tính nhất quán với mô hình Logit, và kết quả cho thấy các yếu tố quan trọng vẫn giữ nguyên tính chất và ý nghĩa thống kê, từ đó làm tăng độ tin cậy cho kết luận nghiên cứu.

4.3 Mô hình hồi quy Cloglog

Ta tiếp tục với mô hình hồi quy Cloglog

mohinh3 <- glm(premium ~ spotify_usage_period + spotify_subscription_plan + preffered_premium_plan + preferred_listening_content, data = spotify1,family = binomial(link = "cloglog"))
summary(mohinh3)
## 
## Call:
## glm(formula = premium ~ spotify_usage_period + spotify_subscription_plan + 
##     preffered_premium_plan + preferred_listening_content, family = binomial(link = "cloglog"), 
##     data = spotify1)
## 
## Coefficients:
##                                                      Estimate Std. Error
## (Intercept)                                          -0.62814    0.23952
## spotify_usage_period6 months to 1 year               -0.07162    0.21304
## spotify_usage_periodLess than 6 months               -0.53477    0.30616
## spotify_usage_periodMore than 2 years                 0.30084    0.21060
## spotify_subscription_planPremium (paid subscription)  0.66573    0.17548
## preffered_premium_planFamily Plan-Rs 179/month        0.01362    0.27062
## preffered_premium_planIndividual Plan- Rs 119/ month  0.58217    0.22100
## preffered_premium_planNone                           -3.22752    0.48208
## preffered_premium_planStudent Plan-Rs 59/month       -0.35067    0.24749
## preferred_listening_contentPodcast                    0.71319    0.19612
##                                                      z value Pr(>|z|)    
## (Intercept)                                           -2.622 0.008731 ** 
## spotify_usage_period6 months to 1 year                -0.336 0.736726    
## spotify_usage_periodLess than 6 months                -1.747 0.080692 .  
## spotify_usage_periodMore than 2 years                  1.428 0.153156    
## spotify_subscription_planPremium (paid subscription)   3.794 0.000148 ***
## preffered_premium_planFamily Plan-Rs 179/month         0.050 0.959851    
## preffered_premium_planIndividual Plan- Rs 119/ month   2.634 0.008431 ** 
## preffered_premium_planNone                            -6.695 2.16e-11 ***
## preffered_premium_planStudent Plan-Rs 59/month        -1.417 0.156513    
## preferred_listening_contentPodcast                     3.636 0.000276 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 678.16  on 519  degrees of freedom
## Residual deviance: 406.52  on 510  degrees of freedom
## AIC: 426.52
## 
## Number of Fisher Scoring iterations: 7

Kết quả phân tích hệ số:

  • Biến spotify_subscription_planPremium (paid subscription) tiếp tục có hệ số dương (0.66573) và ý nghĩa thống kê rất cao với p-value < 0.001. Kết quả này cho thấy người dùng hiện tại đang sử dụng tài khoản Premium có khả năng sẵn sàng tiếp tục đăng ký cao hơn hẳn so với người dùng miễn phí – một phát hiện nhất quán với các mô hình trước.

  • Trong nhóm preffered_premium_plan:

    • Người dùng chọn gói Individual Plan – Rs 119/month có hệ số dương (0.58217) và có ý nghĩa ở mức 1% (p = 0.008431), phản ánh mức độ sẵn sàng đăng ký cao hơn so với nhóm tham chiếu.

    • Người không chọn bất kỳ gói nào (None) có hệ số âm rất lớn (-3.22752) và p-value gần như bằng 0, cho thấy gần như không có khả năng sẵn sàng trả phí. Đây là một kết quả hợp lý về mặt logic.

    • Người chọn Student Plan – Rs 59/month có hệ số âm (-0.35067), tuy nhiên p-value = 0.156 cho thấy chưa đủ bằng chứng thống kê rõ ràng về tác động.

  • Biến preferred_listening_contentPodcast có hệ số dương khá lớn (0.71319) và ý nghĩa rất cao (p = 0.000276). Điều này cho thấy người dùng thích nghe podcast có khả năng cao hơn trong việc sẵn sàng trả phí – một xu hướng ngày càng phổ biến trong hành vi tiêu dùng nội dung âm thanh.

  • Các biến về thời gian sử dụng Spotify (spotify_usage_period) tiếp tục không có ý nghĩa thống kê ở mọi mức ý nghĩa. Điều này cho thấy thời gian sử dụng nền tảng không phải là yếu tố chi phối hành vi sẵn sàng đăng ký Premium.

4.4 So sánh và lựa chọn mô hình

4.4.1 Tổng hợp kết quả mô hình

Bảng 4.X: So sánh hệ số hồi quy giữa 3 mô hình (Logit, Probit, Clog-log)

Biến độc lập Logit Estimate p-value Probit Estimate p-value Clog-log Estimate p-value
(Intercept) -0.278 0.431 -0.167 0.431 -0.628 0.008
spotify_usage_period: 6 months–1 year -0.051 0.879 -0.033 0.865 -0.072 0.737
spotify_usage_period: < 6 months -0.713 0.088 -0.392 0.108 -0.535 0.082
spotify_usage_period: > 2 years 0.349 0.282 0.253 0.179 0.300 0.154
subscription_plan: Premium (paid) 1.182 0.000 0.677 0.000 0.666 0.000
preferred_plan: Family (Rs 179/month) 0.104 0.814 0.037 0.889 0.014 0.960
preferred_plan: Individual (Rs 119/month) 0.750 0.037 0.457 0.033 0.582 0.008
preferred_plan: None -3.665 0.000 -1.983 0.000 -3.227 0.000
preferred_plan: Student (Rs 59/month) -0.549 0.120 -0.358 0.093 -0.351 0.156
preferred_listening: Podcast 0.989 0.002 0.571 0.001 0.713 0.000

* p < 0.1, ** p < 0.05, *** p < 0.01

Dựa trên bảng tổng hợp kết quả hồi quy từ ba mô hình (Logit, Probit, Clog-log), ta có thể rút ra một số nhận định quan trọng về tác động của các biến độc lập đến xác suất người dùng lựa chọn gói Premium trên Spotify như sau:

(1) Gói đăng ký hiện tại: Premium (paid subscription)

Biến này có hệ số hồi quy dương và có ý nghĩa thống kê cao (p < 0.01) ở cả ba mô hình. Điều này cho thấy rằng người dùng đã đăng ký gói Premium trước đó có khả năng tiếp tục lựa chọn gói Premium cao hơn hẳn so với những người không đăng ký. Đây là biến có tác động mạnh mẽ và nhất quán nhất trong toàn bộ mô hình.

(2) Kế hoạch gói Premium mong muốn: “None”

Biến này có hệ số âm rất lớn và mang ý nghĩa thống kê cao (p < 0.01) ở tất cả mô hình. Điều này phản ánh đúng thực tế rằng người dùng không có nhu cầu với bất kỳ gói Premium nào thì xác suất chọn Premium gần như bằng 0. Đây cũng là một trong những biến có sức ảnh hưởng âm rõ rệt nhất.

(3) Kế hoạch mong muốn: Gói cá nhân (Individual – 119k/tháng)

Hệ số của biến này dương và có ý nghĩa thống kê (p < 0.05) trong cả ba mô hình. Điều này cho thấy rằng nếu người dùng có nhu cầu với gói cá nhân thì khả năng họ chọn Premium cao hơn rõ rệt so với các nhóm khác. Điều này có thể gợi ý rằng gói cá nhân là phân khúc thị trường hiệu quả nhất để thu hút người dùng nâng cấp.

(4) Nội dung nghe ưa thích: Podcast

Biến này có hệ số dương và ý nghĩa thống kê cao (p < 0.01 hoặc < 0.05) trong tất cả mô hình. Điều này chỉ ra rằng người dùng có xu hướng thích nghe podcast có xác suất chọn Premium cao hơn đáng kể, có thể do họ mong muốn tiếp cận nội dung độc quyền hoặc không bị gián đoạn bởi quảng cáo.

(5) Thời gian sử dụng Spotify: Dưới 6 tháng

Biến này mang hệ số âm trong cả ba mô hình, và gần đạt mức ý nghĩa thống kê trong mô hình Clog-log (p = 0.082). Điều này cho thấy người dùng mới (mới sử dụng dưới 6 tháng) có xu hướng chưa sẵn sàng chi trả cho Premium, có thể vì chưa thấy rõ giá trị của việc nâng cấp.

(6) Thời gian sử dụng: Trên 2 năm

Mặc dù hệ số dương trong cả ba mô hình, biến này không có ý nghĩa thống kê trong bất kỳ mô hình nào. Tuy nhiên, xu hướng tăng vẫn đáng lưu ý – người dùng lâu năm có thể nhận ra giá trị sử dụng lâu dài và cân nhắc nâng cấp, nhưng không đủ mạnh để kết luận chắc chắn.

(7) Các biến còn lại

  • Gói mong muốn: Student Plan (59k/tháng) có hệ số âm và không ý nghĩa thống kê, điều này cho thấy đối tượng sinh viên có xu hướng ít chọn Premium hơn, có thể do nhạy cảm về giá.

  • Gói mong muốn: Family Plan không có tác động rõ rệt và không mang ý nghĩa thống kê trong cả ba mô hình.

  • Thời gian dùng từ 6 tháng đến 1 năm không có ảnh hưởng đáng kể và không có ý nghĩa thống kê.

Qua phân tích chi tiết, có thể nhận thấy một số yếu tố ảnh hưởng rõ rệt và nhất quán đến hành vi chọn gói Premium của người dùng Spotify, bao gồm:
- Việc đã từng đăng ký gói Premium,

  • Nhu cầu chọn gói cá nhân,

  • Sở thích nghe podcast,

  • Và ngược lại, người không có nhu cầu nâng cấp hay mới sử dụng dưới 6 tháng có xác suất chọn Premium rất thấp.

Kết quả này cung cấp cơ sở đáng tin cậy để Spotify có thể điều chỉnh chiến lược tiếp thị, tập trung vào nhóm người dùng tiềm năng như người thích podcast và người có nhu cầu sử dụng cá nhân – đồng thời xây dựng trải nghiệm giúp người dùng mới thấy rõ giá trị của việc nâng cấp lên Premium.

4.4.2 So sánh kết quả các mô hình

Sau khi tiến hành xây dựng ba mô hình hồi quy nhị phân bao gồm Logit, Probit và Clog-log, bước tiếp theo trong quá trình nghiên cứu là so sánh hiệu quả dự báo của các mô hình để lựa chọn mô hình tối ưu. Việc đánh giá được thực hiện dựa trên ba tiêu chí phổ biến và được chấp nhận rộng rãi trong nghiên cứu định lượng: AIC (Akaike Information Criterion), BIC (Bayesian Information Criterion)Brier Score.

Bảng dưới đây trình bày chi tiết các giá trị của ba tiêu chí đánh giá được tính toán cho từng mô hình:

Tiêu chí đánh giá Mô hình Logit Mô hình Probit Mô hình Clog-log
AIC 428.60 428.17 426.52
BIC 468.26 467.84 466.19
Brier Score 0.104 0.103 0.101
  • AIC (Akaike Information Criterion): AIC là chỉ số đo lường mức độ phù hợp của mô hình với dữ liệu thực tế, đồng thời có tính đến số lượng tham số nhằm tránh tình trạng mô hình quá phức tạp (overfitting). Trong kết quả thu được, mô hình Clog-log có giá trị AIC thấp nhất (426.52), cho thấy đây là mô hình phù hợp nhất trong việc cân bằng giữa độ chính xác và mức độ đơn giản của mô hình.

  • BIC (Bayesian Information Criterion): Tương tự AIC nhưng có mức phạt cao hơn cho mô hình có nhiều biến, BIC là một tiêu chí thận trọng hơn trong việc đánh giá hiệu quả mô hình. Kết quả BIC cũng cho thấy mô hình Clog-log là lựa chọn tối ưu với BIC = 466.19 – thấp hơn cả Logit và Probit.

  • Brier Score: Đây là chỉ số đo lường sai số trung bình bình phương giữa xác suất dự báo và giá trị thực tế (0 hoặc 1). Brier Score càng nhỏ, độ chính xác của xác suất dự báo càng cao. Mô hình Clog-log tiếp tục thể hiện ưu thế khi có Brier Score thấp nhất (0.101), trong khi Logit và Probit lần lượt là 0.104 và 0.103.

4.4.3 Nhận xét và lựa chọn mô hình

Dựa trên ba tiêu chí đánh giá, có thể thấy rằng mô hình Clog-log consistently outperform các mô hình còn lại về cả độ phù hợp (AIC và BIC) lẫn độ chính xác trong dự báo xác suất (Brier Score). Điều này cho thấy hàm liên kết Complementary Log-log là lựa chọn phù hợp nhất cho bài toán dự đoán khả năng chọn gói Premium của người dùng Spotify.

Về mặt bản chất, mô hình Clog-log thường được đánh giá là phù hợp hơn trong các tình huống mà xác suất xảy ra sự kiện cần dự đoán (ở đây là chọn gói Premium) có xu hướng rất thấp hoặc rất cao, tức là không đối xứng quanh 0.5. Điều này khá phù hợp với bối cảnh nghiên cứu vì hành vi nâng cấp lên gói trả phí của người dùng có thể không phân bố đồng đều – chỉ một phần nhỏ người dùng thực sự lựa chọn đăng ký Premium.

Mặc dù mô hình Logit và Probit cũng cho kết quả khá tương đồng, nhưng giá trị AIC và Brier Score của chúng đều cao hơn mô hình Clog-log, cho thấy mức độ dự báo kém hơn nhẹ. Hơn nữa, sự khác biệt về BIC càng củng cố lựa chọn ưu tiên mô hình Clog-log.


PHẦN KẾT LUẬN

1. Kết luận từ mô hình hồi quy

Sau khi tiến hành xây dựng và phân tích ba mô hình hồi quy nhị phân sử dụng các hàm liên kết khác nhau (logit, probit và cloglog), có thể nhận thấy một số yếu tố có ảnh hưởng rõ rệt và nhất quán đến hành vi sẵn sàng đăng ký gói Spotify Premium của người dùng.

Yếu tố có ảnh hưởng mạnh mẽ và rõ ràng nhất trong cả ba mô hình chính là loại tài khoản hiện tại của người dùng (spotify_subscription_plan). Cụ thể, biến Premium (paid subscription) có hệ số dương và mang ý nghĩa thống kê rất cao (p-value < 0.001) ở cả ba mô hình. Điều này cho thấy, người dùng hiện đang sử dụng gói Premium miễn phí dùng thử hoặc có trải nghiệm trả phí trước đây sẽ có xác suất cao hơn đáng kể trong việc sẵn sàng tiếp tục đăng ký dịch vụ này. Đây là một phát hiện quan trọng, bởi nó phản ánh hiệu quả của chiến lược trải nghiệm dịch vụ miễn phí hoặc có giới hạn của Spotify trong việc thúc đẩy hành vi tiêu dùng trả phí.

Tiếp theo, biến preffered_premium_plan – đại diện cho gói Premium mà người dùng mong muốn – cũng có ảnh hưởng đến hành vi đăng ký, nhưng mức độ ảnh hưởng có sự khác biệt giữa các nhóm. Đáng chú ý là nhóm người dùng chọn gói “Individual Plan – Rs 119/month” có hệ số dương và mang ý nghĩa thống kê ở mức 5% đến 1% trong cả ba mô hình. Điều này cho thấy đây là nhóm người dùng mục tiêu tiềm năng, có xu hướng cao chuyển sang trả phí. Ngược lại, nhóm không chọn bất kỳ gói nào (giá trị None) có hệ số âm rất lớn và ý nghĩa thống kê cực kỳ cao (p-value gần như bằng 0), cho thấy rào cản lớn trong việc chuyển đổi họ sang người dùng trả phí.

Cuối cùng, biến preferred_listening_content – đại diện cho nội dung nghe yêu thích – cũng cho thấy ảnh hưởng đáng kể đến hành vi đăng ký. Những người có sở thích nghe Podcast có hệ số dương và có ý nghĩa thống kê ở mức cao (p < 0.01 hoặc p < 0.001), phản ánh xu hướng người tiêu dùng hiện đại đánh giá cao các nội dung chuyên biệt và sẵn sàng chi trả để tiếp cận chúng chất lượng hơn.

Trong khi đó, biến thời gian sử dụng Spotify (spotify_usage_period) tuy được đưa vào mô hình nhưng không mang ý nghĩa thống kê trong bất kỳ mô hình nào. Điều này cho thấy việc sử dụng Spotify trong thời gian dài hay ngắn không có ảnh hưởng rõ rệt đến khả năng đăng ký gói Premium – một phát hiện khá thú vị, bởi nó phản ánh rằng thói quen sử dụng chưa đủ để quyết định hành vi chi tiêu, mà yếu tố trải nghiệm và nhu cầu nội dung mới là then chốt.

2. Kết luận chung

Trong bối cảnh nền tảng nghe nhạc trực tuyến ngày càng phổ biến và mang tính cá nhân hóa cao như Spotify, việc hiểu rõ hành vi và xu hướng tiêu dùng âm nhạc của người dùng trở thành một yếu tố then chốt để phát triển sản phẩm, tối ưu dịch vụ và nâng cao tỷ lệ chuyển đổi sang mô hình thu phí. Thông qua việc phân tích dữ liệu định tính từ 520 người dùng Spotify, bài tiểu luận đã tiến hành mô tả và kiểm định mối quan hệ giữa các đặc điểm người dùng và hành vi sẵn sàng đăng ký gói Premium – một dạng hành vi tiêu dùng trả phí điển hình.

Bằng cách áp dụng ba mô hình hồi quy nhị phân (logit, probit và cloglog), kết quả phân tích đã xác định được một số yếu tố ảnh hưởng có ý nghĩa thống kê và thực tiễn đến hành vi đăng ký Premium. Trong đó, trải nghiệm trước với gói Premium và gói đăng ký mong muốn là những yếu tố nổi bật, cho thấy vai trò quan trọng của chiến lược dùng thử và thiết kế gói giá phù hợp. Bên cạnh đó, loại nội dung yêu thích – đặc biệt là Podcast – cũng góp phần định hình hành vi chi trả của người dùng. Ngược lại, yếu tố thời gian sử dụng nền tảng tuy được kỳ vọng có ảnh hưởng nhưng thực tế lại không mang ý nghĩa thống kê rõ rệt, cho thấy rằng thói quen sử dụng đơn thuần chưa đủ để thúc đẩy hành vi tiêu dùng có cam kết tài chính.

Kết quả nghiên cứu không chỉ cung cấp cái nhìn thực tiễn về hành vi giải trí của người dùng số, mà còn cho thấy tiềm năng ứng dụng của phân tích dữ liệu định tính và mô hình thống kê trong việc hỗ trợ ra quyết định trong lĩnh vực marketing số, quản lý sản phẩm và tối ưu hóa trải nghiệm người dùng. Đây là minh chứng rõ ràng cho giá trị của dữ liệu hành vi trong việc thiết kế các chiến lược tăng trưởng hiệu quả hơn.

3. Kiến nghị

(1) Tăng cường trải nghiệm thử gói Premium có kiểm soát

Kết quả cho thấy những người đã từng sử dụng gói Premium có xác suất sẵn sàng đăng ký cao hơn hẳn. Điều này chứng minh hiệu ứng trải nghiệm thực tế đóng vai trò quan trọng. Do đó:

  • Spotify nên duy trì chính sách dùng thử miễn phí, nhưng có thể cá nhân hóa thời lượng dựa trên hành vi sử dụng (ví dụ: cho phép người nghe Podcast dùng thử lâu hơn).

  • Tăng cường thông điệp truyền thông nhấn mạnh vào sự khác biệt rõ rệt giữa trải nghiệm miễn phí và trả phí: không quảng cáo, chất lượng âm thanh cao, tải nhạc offline, v.v.

(2) Ưu tiên quảng bá gói “Individual Plan – Rs 119/month

Gói Individual Plan là gói được người dùng thể hiện mức độ sẵn sàng chi trả cao nhất trong phân tích. Điều này gợi ý rằng:

  • Đây là gói “điểm ngọt” (sweet spot) về giá trị với mức chi phí vừa phải, phù hợp với khả năng chi trả của phần lớn người dùng cá nhân.

  • Nên tăng cường các ưu đãi hoặc khuyến mãi ngắn hạn cho gói này để kích thích quyết định chuyển đổi.

  • Tập trung nội dung truyền thông và cá nhân hóa gợi ý gói này đến nhóm người dùng có xu hướng trả phí tiềm năng (ví dụ: người từng nghe Podcast nhiều, hoặc đã từng dùng thử Premium).

(3) Đầu tư và phát triển nội dung Podcast độc quyền

Người dùng yêu thích Podcast có khả năng cao hơn chuyển sang trả phí. Điều này phản ánh rằng:

  • Podcast không chỉ là nội dung giải trí, mà còn là công cụ giữ chân và thúc đẩy người dùng chi trả.

  • Spotify nên phát triển thêm nội dung podcast độc quyền, bản quyền cao cấp, đồng thời hợp tác với người nổi tiếng, chuyên gia, influencer… để tạo chuỗi nội dung podcast giá trị

(4) Phân loại và hạn chế nhóm người “không chọn gói nào

Phân tích chỉ ra rằng nhóm người dùng không quan tâm đến bất kỳ gói Premium nào có xác suất rất thấp chuyển sang trả phí. Thay vì tiếp tục tiêu tốn ngân sách quảng cáo vào nhóm này, nên:

  • Tập trung tài nguyên vào các nhóm đã có tín hiệu quan tâm;

  • Đưa nhóm này vào chiến dịch chăm sóc dài hạn (như gợi ý nội dung mới, podcast miễn phí), tạo sự gắn kết dần dần thay vì thúc ép chuyển đổi ngay.

LS0tDQp0aXRsZTogJ1BIw4JOIFTDjUNIIEPDgUMgWeG6vlUgVOG7kCDhuqJOSCBIxq/hu55ORyDEkOG6vk4gSMOATkggVkkgTkfGr+G7nEkgRMOZTkcgVFLDik4gTuG7gE4gVOG6ok5HIE5HSEUgTkjhuqBDIFRS4buwQyBUVVnhur5OIFNQT1RJRlknDQphdXRob3I6ICdTaW5oIHZpw6puIHRo4buxYyBoaeG7h246IFbFqSBRdeG7s25oIFRyw7pjIFZ5Jw0Kb3V0cHV0OiANCiAgaHRtbF9kb2N1bWVudDoNCiAgICBkZl9wcmludDogcGFnZWQNCiAgICB0aGVtZTogZmxhdGx5DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2Zsb2F0Og0KICAgICAgY29sbGFwc2VkOiBmYWxzZQ0KICAgICAgc21vb3RoX3Njcm9sbDogZmFsc2UNCiAgICBjb2RlX2ZvbGRpbmcgOiBoaWRlDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KLS0tDQoNCmBgYHtyIHNldHVwLCBpbmNsdWRlPUZBTFNFfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0KYGBgDQoNCjxzdHlsZT4NCmJvZHkgew0KdGV4dC1hbGlnbjoganVzdGlmeX0NCg0KaDEgew0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgZm9udC1zaXplOiAzMnB4Ow0KICBmb250LXdlaWdodDogYm9sZDsNCiAgdGV4dC1hbGlnbjogY2VudGVyO30NCg0KaDIgew0KICBmb250LWZhbWlseTogIlRpbWVzIE5ldyBSb21hbiIsIFRpbWVzLCBzZXJpZjsNCiAgZm9udC1zaXplOiAyOHB4Ow0KICBmb250LXdlaWdodDogYm9sZDt9DQoNCmgzIHsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMjRweDsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7fQ0KDQpoNCB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDIwcHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmb250LXN0eWxlOiBpdGFsaWM7fQ0KDQpib2R5IHsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMThweDsNCiAgbGluZS1oZWlnaHQ6IDEuNTsgfQ0KDQpwOm5vdChoMSk6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KSB7DQogIHRleHQtaW5kZW50OiAyZW07fQ0KDQpwIHsNCiAgdGV4dC1hbGlnbjoganVzdGlmeTt9DQoNCi50b2NpZnktaGVhZGVyIHsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7fQ0KPC9zdHlsZT4NCg0KYGBge3J9DQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KERUKQ0KbGlicmFyeShEZXNjVG9vbHMpDQpsaWJyYXJ5KGVwaXRvb2xzKQ0KbGlicmFyeShrbml0cikNCmxpYnJhcnkodGliYmxlKQ0KbGlicmFyeShEVCkNCmxpYnJhcnkoc2NhbGVzKQ0KbGlicmFyeSh0aWR5cikNCmBgYA0KDQoNCiMgKipM4bucSSBD4bqiTSDGoE4qKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUcsaw4bubYyBo4bq/dCwgZW0geGluIMSRxrDhu6NjIGfhu61pIGzhu51pIGPhuqNtIMahbiBjaMOibiB0aMOgbmggxJHhur9uIFRoUy4gVHLhuqduIE3huqFuaCBUxrDhu51uZywgbmfGsOG7nWkgxJHDoyB0cuG7sWMgdGnhur9wIGjGsOG7m25nIGThuqtuIHbDoCB04bqhbyDEkWnhu4F1IGtp4buHbiB0aHXhuq1uIGzhu6NpIMSR4buDIGVtIGPDsyB0aOG7gyBob8OgbiB0aMOgbmggYsOgaSB0aeG7g3UgbHXhuq1uIGPhu6dhIGjhu41jIHBo4bqnbiBQaMOibiB0w61jaCBk4buvIGxp4buHdSDEkeG7i25oIHTDrW5oLiBUcm9uZyBzdeG7kXQgcXXDoSB0csOsbmggdGjhu7FjIGhp4buHbiBiw6BpLCB0aOG6p3kgxJHDoyBkw6BuaCBuaGnhu4F1IHRo4budaSBnaWFuIHRyYW8gxJHhu5VpLCBnaeG6o2kgxJHDoXAgdGjhuq9jIG3huq9jIHbDoCDEkeG7i25oIGjGsOG7m25nIG5naGnDqm4gY+G7qXUgbeG7mXQgY8OhY2ggY+G7pSB0aOG7gywgZ2nDunAgZW0gaGnhu4N1IHLDtSBoxqFuIHbhu4EgbuG7mWkgZHVuZyBo4buNYyBwaOG6p24gY8WpbmcgbmjGsCBjw6FjaCB0cmnhu4NuIGtoYWkgbeG7mXQgYsOgaSB0aeG7g3UgbHXhuq1uIGtob2EgaOG7jWMuDQoNCk5o4budIHPhu7EgdOG6rW4gdMOibSB2w6AgaOG7lyB0cuG7oyBj4bunYSB0aOG6p3ksIGVtIMSRw6MgY8OzIHRow6ptIMSR4buZbmcgbOG7sWMgxJHhu4MgY+G7kSBn4bqvbmcgaG/DoG4gdGhp4buHbiBiw6BpIG3hu5l0IGPDoWNoIHThu5F0IG5o4bqldCB0cm9uZyBraOG6oyBuxINuZyBj4bunYSBtw6xuaC4gVHV5IG5oacOqbiwgZG8gY8OybiBo4bqhbiBjaOG6vyB24buBIGtp4bq/biB0aOG7qWMgdsOgIGtpbmggbmdoaeG7h20sIGLDoGkgdGnhu4N1IGx14bqtbiBjaOG6r2MgY2jhuq9uIHbhuqtuIGPDsm4gbmhp4buBdSB0aGnhur91IHPDs3QuIEVtIG1vbmcgc+G6vSBuaOG6rW4gxJHGsOG7o2Mgbmjhu69uZyBnw7NwIMO9IHbDoCB4w6J5IGThu7FuZyB04burIHRo4bqneSDEkeG7gyBjw7MgdGjhu4MgcsO6dCBraW5oIG5naGnhu4dtLCBob8OgbiB0aGnhu4duIGLhuqNuIHRow6JuIHRyb25nIG5o4buvbmcgbOG6p24gbmdoacOqbiBj4bupdSBzYXUuDQoNCkVtIHhpbiBrw61uaCBjaMO6YyB0aOG6p3kgc+G7qWMga2jhu49lLCBuaGnhu4F1IG5p4buBbSB2dWkgdHJvbmcgY8O0bmcgdmnhu4djIHbDoCBjdeG7mWMgc+G7kW5nLiBIeSB24buNbmcgdHJvbmcgdGjhu51pIGdpYW4gdOG7m2ksIGVtIHPhur0gdGnhur9wIHThu6VjIGPDsyBjxqEgaOG7mWkgxJHGsOG7o2MgaOG7jWMgaOG7j2kgdGjDqm0gdOG7qyB0aOG6p3kuDQoNCkVtIHhpbiBjaMOibiB0aMOgbmggY+G6o20gxqFuLg0KPC9kaXY+DQoNCi0tLQ0KDQojICoqTOG7nEkgQ0FNIMSQT0FOKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVMO0aSB4aW4gY2FtIMSRb2FuIMSRw6J5IGzDoCBiw6BpIHRp4buDdSBsdeG6rW4gaOG7jWMgcGjhuqduIG3DtG4gUGjDom4gdMOtY2ggZOG7ryBsaeG7h3UgxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgY+G7p2EgbcOsbmguIEPDoWMga+G6v3QgcXXhuqMgbmdoacOqbiBj4bupdSB0cm9uZyBiw6FvIGPDoW8gbsOgeSBsw6AgdHJ1bmcgdGjhu7FjLiBN4buNaSBz4buxIGdpw7pwIMSR4buhIGNobyB2aeG7h2MgdGjhu7FjIGhp4buHbiBiw6FvIGPDoW8gxJHDoyDEkcaw4bujYyBj4bqjbSDGoW4gdsOgIGPDoWMgdGjDtG5nIHRpbiB0csOtY2ggZOG6q24gdHJvbmcgYsOhbyBjw6FvIGzDoCBjw7MgdXkgdMOtbiwgY8OzIG5ndeG7k24gZ+G7kWMgcsO1IHLDoG5nIHbDoCDEkcaw4bujYyBwaMOpcCBjw7RuZyBi4buRLg0KPC9kaXY+DQoNCi0tLQ0KDQojICoqUEjhuqZOIE3hu54gxJDhuqZVKioNCg0KIyMgKioxLiBMw70gZG8gY2jhu41uIMSR4buBIHTDoGkqKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUcm9uZyBi4buRaSBj4bqjbmggeMOjIGjhu5lpIGhp4buHbiDEkeG6oWksIGtoaSBuaOG7i3Agc+G7kW5nIG5nw6B5IGPDoG5nIHRy4bufIG7Dqm4gaOG7kWkgaOG6oyB2w6Agw6FwIGzhu7FjIHThu6sgY8O0bmcgdmnhu4djLCBo4buNYyB04bqtcCwgY8OhYyBt4buRaSBxdWFuIGjhu4cgeMOjIGjhu5lpIGtow7RuZyBuZ+G7q25nIGdpYSB0xINuZywgbmh1IGPhuqd1IGdp4bqjaSB0csOtIMSRw6MgdsOgIMSRYW5nIHRy4bufIHRow6BuaCBt4buZdCBwaOG6p24ga2jDtG5nIHRo4buDIHRoaeG6v3UgdHJvbmcgxJHhu51pIHPhu5FuZyB0aW5oIHRo4bqnbiBj4bunYSBt4buXaSBuZ8aw4budaS4gR2nhuqNpIHRyw60ga2jDtG5nIGNo4buJIMSRxqFuIHRodeG6p24gbMOgIG3hu5l0IGhv4bqhdCDEkeG7mW5nIMSR4buDIGdp4bq/dCB0aOG7nWkgZ2lhbiwgbcOgIGPDsm4gxJHDs25nIHZhaSB0csOyIHF1YW4gdHLhu41uZyB0cm9uZyB2aeG7h2MgZ2nDunAgY29uIG5nxrDhu51pIHTDoWkgdOG6oW8gbsSDbmcgbMaw4bujbmcsIGdp4bqjaSB04buPYSBjxINuZyB0aOG6s25nLCBjw6JuIGLhurFuZyBj4bqjbSB4w7pjIHbDoCBkdXkgdHLDrCBz4bupYyBraOG7j2UgdMOibSBsw70uIFRyb25nIHPhu5EgY8OhYyBow6xuaCB0aOG7qWMgZ2nhuqNpIHRyw60gcGjhu5UgYmnhur9uLCDDom0gbmjhuqFjIHThu6sgbMOidSDEkcOjIGto4bqzbmcgxJHhu4tuaCB24buLIHRo4bq/IMSR4bq3YyBiaeG7h3Qgbmjhu50ga2jhuqMgbsSDbmcgdMOhYyDEkeG7mW5nIG3huqFuaCBt4bq9IMSR4bq/biBj4bqjbSB4w7pjLCBraMahaSBn4bujaSBrw70g4bupYywga+G6v3QgbuG7kWkgY29uIG5nxrDhu51pIHbhu5tpIG5oYXUgdsOgIGxhbiB04buPYSBuaOG7r25nIHRow7RuZyDEkWnhu4dwIHPDonUgc+G6r2MgbeG7mXQgY8OhY2ggdOG7sSBuaGnDqm4sIGdpw6B1IHTDrW5oIG5naOG7hyB0aHXhuq10Lg0KDQpDw7luZyB24bubaSBz4buxIHBow6F0IHRyaeG7g24gbmhhbmggY2jDs25nIGPhu6dhIGPDtG5nIG5naOG7hyBz4buRIHbDoCBpbnRlcm5ldCwgY8OhY2ggY29uIG5nxrDhu51pIHRp4bq/cCBj4bqtbiB2w6AgdGnDqnUgdGjhu6Ugw6JtIG5o4bqhYyBjxaluZyDEkWFuZyB0aGF5IMSR4buVaSB04burbmcgbmfDoHkuIFRoYXkgdsOsIG5naGUgbmjhuqFjIHF1YSBjw6FjIHBoxrDGoW5nIHRp4buHbiB0cnV54buBbiB0aOG7kW5nIG5oxrAgxJHEqWEgQ0QgaGF5IHJhZGlvLCBuZ8OgeSBuYXksIG5nxrDhu51pIGTDuW5nIGPDsyB4dSBoxrDhu5tuZyBjaHV54buDbiBzYW5nIGPDoWMgbuG7gW4gdOG6o25nIHRy4buxYyB0dXnhur9uIHbhu5tpIGto4bqjIG7Eg25nIGN1bmcgY+G6pXAga2hvIG5o4bqhYyBraOG7lW5nIGzhu5MsIHRydXkgY+G6rXAgbmhhbmggY2jDs25nLCB0aeG7h24gbOG7o2kgbeG7jWkgbMO6YyBt4buNaSBuxqFpIHbDoCDEkeG6t2MgYmnhu4d0IGzDoCBraOG6oyBuxINuZyBjw6EgbmjDom4gaMOzYSB0cuG6o2kgbmdoaeG7h20gbmdoZSBuaOG6oWMgdGhlbyBz4bufIHRow61jaCByacOqbmcgYmnhu4d0LiBUcm9uZyBz4buRIMSRw7MsIFNwb3RpZnkgbuG7lWkgYuG6rXQgbmjGsCBt4buZdCB0cm9uZyBuaOG7r25nIG7hu4FuIHThuqNuZyBuZ2hlIG5o4bqhYyB0cuG7sWMgdHV54bq/biBow6BuZyDEkeG6p3UgdHLDqm4gdGjhur8gZ2nhu5tpLCBraMO0bmcgY2jhu4kgY3VuZyBj4bqlcCBk4buLY2ggduG7pSBwaMOhdCBuaOG6oWMgbcOgIGPDsm4geMOieSBk4buxbmcgbeG7mXQgaOG7hyBzaW5oIHRow6FpIMOibSBuaOG6oWMgdGjDtG5nIG1pbmgsIHTGsMahbmcgdMOhYyB2w6AgbGluaCBob+G6oXQuDQoNClRyxrDhu5tjIHPhu7EgdGhheSDEkeG7lWkgcsO1IG7DqXQgdHJvbmcgaMOgbmggdmkgdGnDqnUgZMO5bmcgw6JtIG5o4bqhYyBuw6B5LCB2aeG7h2MgbmdoacOqbiBj4bupdSBow6BuaCB2aSBj4bunYSBuZ8aw4budaSBuZ2hlIHRyw6puIGPDoWMgbuG7gW4gdOG6o25nIHPhu5EsIMSR4bq3YyBiaeG7h3QgbMOgIFNwb3RpZnksIHRy4bufIG7Dqm4gdsO0IGPDuW5nIGPhuqduIHRoaeG6v3QgdsOgIGPDsyDDvSBuZ2jEqWEgY+G6oyB24buBIG3hurd0IGjhu41jIHRodeG6rXQgbOG6q24gdGjhu7FjIHRp4buFbi4gVmnhu4djIHBow6JuIHTDrWNoIGjDoG5oIHZpIG5nxrDhu51pIGTDuW5nIGtow7RuZyBjaOG7iSBnacO6cCBoaeG7g3UgcsO1IGjGoW4gduG7gSBuaHUgY+G6p3UsIHRo4buLIGhp4bq/dSB2w6AgeHUgaMaw4bubbmcgdGjGsOG7n25nIHRo4bupYyDDom0gbmjhuqFjIHRyb25nIHRo4budaSDEkeG6oWkgc+G7kSBtw6AgY8OybiBjdW5nIGPhuqVwIGPGoSBz4bufIGThu68gbGnhu4d1IHF1YW4gdHLhu41uZyDEkeG7gyBjw6FjIGRvYW5oIG5naGnhu4dwIGPDtG5nIG5naOG7hywgY8O0bmcgdHkgw6JtIG5o4bqhYyBoYXkgY8OhYyBuaMOgIHBow6F0IHRyaeG7g24gbuG7mWkgZHVuZyB04buRaSDGsHUgaMOzYSBjaGnhur9uIGzGsOG7o2Mgc+G6o24gcGjhuqltLCBj4bqjaSB0aGnhu4duIHRy4bqjaSBuZ2hp4buHbSBuZ8aw4budaSBkw7luZyB2w6AgeMOieSBk4buxbmcgY8OhYyBo4buHIHRo4buRbmcgZ+G7o2kgw70gw6JtIG5o4bqhYyB0aMO0bmcgbWluaCBoxqFuLCBzw6F0IHbhu5tpIG5odSBj4bqndSB0aOG7sWMgdOG6vyBoxqFuLg0KDQpDaMOtbmggdOG7qyBi4buRaSBj4bqjbmggdsOgIG5odSBj4bqndSB0aOG7sWMgdGnhu4VuIMSRw7MsIMSR4buBIHTDoGkgKioqUEjDgk4gVMONQ0ggQ8OBQyBZ4bq+VSBU4buQIOG6ok5IIEjGr+G7nk5HIMSQ4bq+TiBIw4BOSCBWSSBOR8av4bucSSBEw5lORyBUUsOKTiBO4buATiBU4bqiTkcgTkdIRSBOSOG6oEMgVFLhu7BDIFRVWeG6vk4gU1BPVElGWSoqKiDEkcaw4bujYyBs4buxYSBjaOG7jW4gduG7m2kgbW9uZyBtdeG7kW4gdGnhur9wIGPhuq1uIG3hu5l0IHbhuqVuIMSR4buBIGhp4buHbiDEkeG6oWksIGfhuqduIGfFqWkgduG7m2kgxJHhu51pIHPhu5FuZyBow6BuZyBuZ8OgeSB0aMO0bmcgcXVhIGfDs2MgbmjDrG4gcGjDom4gdMOtY2ggZOG7ryBsaeG7h3UuIEtow7RuZyBjaOG7iSDEkcahbiB0aHXhuqduIGThu6tuZyBs4bqhaSDhu58gdmnhu4djIHF1YW4gc8OhdCB4dSBoxrDhu5tuZywgxJHhu4EgdMOgaSBjw7JuIG5o4bqxbSByw6huIGx1eeG7h24ga2jhuqMgbsSDbmcgduG6rW4gZOG7pW5nIGPDoWMgY8O0bmcgY+G7pSBwaMOibiB0w61jaCDEkeG7i25oIGzGsOG7o25nIHbDoG8gdGjhu7FjIHRp4buFbiwgdOG7qyDEkcOzIGfDs3AgcGjhuqduIMSRxrBhIHJhIGPDoWMgxJHhu4EgeHXhuqV0IGPhu6UgdGjhu4MgY2hvIHZp4buHYyBuw6JuZyBjYW8gaGnhu4d1IHF14bqjIGPhu6dhIGPDoWMgbuG7gW4gdOG6o25nIG5naGUgbmjhuqFjIHPhu5EgdsOgIGhp4buDdSByw7UgaMahbiB24buBIGjDoG5oIHZpIGdp4bqjaSB0csOtIGPhu6dhIGNvbiBuZ8aw4budaSB0cm9uZyB0aOG7nWkgxJHhuqFpIGPDtG5nIG5naOG7hyA0LjAuDQo8L2Rpdj4NCg0KIyMgKioyLiBN4bulYyB0acOqdSBuZ2hpw6puIGPhu6l1KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KxJDhu4EgdMOgaSBoxrDhu5tuZyDEkeG6v24gdmnhu4djIHBow6JuIHTDrWNoIHbDoCBraMOhbSBwaMOhIGjDoG5oIHZpIG5naGUgbmjhuqFjIGPhu6dhIG5nxrDhu51pIGTDuW5nIHRyw6puIG7hu4FuIHThuqNuZyB0cuG7sWMgdHV54bq/biBTcG90aWZ5IHRow7RuZyBxdWEgZOG7ryBsaeG7h3UgaMOgbmggdmkgdGjhu7FjIHThur8uIEPhu6UgdGjhu4MsIG5naGnDqm4gY+G7qXUgbmjhurFtOg0KPC9kaXY+DQoNCi0gSGnhu4N1IHLDtSBjw6FjIMSR4bq3YyDEkWnhu4NtIGjDoG5oIHZpIHRpw6p1IHRo4bulIMOibSBuaOG6oWMgbmjGsDogdGjDs2kgcXVlbiBi4buPIHF1YSBiw6BpIGjDoXQsIHRo4budaSBnaWFuIG5naGUgbmjhuqFjIHRyb25nIG5nw6B5LCBt4buRaSBsacOqbiBo4buHIGdp4buvYSDEkeG6t2MgxJFp4buDbSBiw6BpIGjDoXQgdsOgIHPhu7EgdMawxqFuZyB0w6FjIGPhu6dhIG5nxrDhu51pIGTDuW5nLg0KDQotIFjDoWMgxJHhu4tuaCBjw6FjIHnhur91IHThu5EgY8OzIHRo4buDIOG6o25oIGjGsOG7n25nIMSR4bq/biBt4bupYyDEkeG7mSB0xrDGoW5nIHTDoWMgduG7m2kgYsOgaSBow6F0IG5oxrAgdGjhu4MgbG/huqFpLCDEkeG7mSBkw6BpLCBnaWFpIMSRaeG7h3UsIGhheSB0aOG7nWkgxJFp4buDbSBuZ2hlLg0KDQotIOG7qG5nIGThu6VuZyBjw6FjIGvhu7kgdGh14bqtdCBwaMOibiB0w61jaCBk4buvIGxp4buHdSDEkeG7gyBraMOhbSBwaMOhIGPDoWMgbeG6q3UgaMOgbmggdmkgdGnDqnUgYmnhu4N1IHbDoCDEkcawYSByYSBjw6FjIGfhu6NpIMO9IGJhbiDEkeG6p3UgY2hvIHZp4buHYyBjw6EgbmjDom4gaMOzYSB0cuG6o2kgbmdoaeG7h20gbmfGsOG7nWkgZMO5bmcuDQoNCi0gxJDhu4EgeHXhuqV0IG3hu5l0IHPhu5EgaMaw4bubbmcg4bupbmcgZOG7pW5nIHRo4buxYyB0aeG7hW4gdOG7qyBr4bq/dCBxdeG6oyBuZ2hpw6puIGPhu6l1IHbDoG8gaG/huqF0IMSR4buZbmcgcGjDoXQgdHJp4buDbiBu4buZaSBkdW5nIHbDoCBjaGnhur9uIGzGsOG7o2MgdGnhur9wIHRo4buLIMOibSBuaOG6oWMgdHJvbmcgbcO0aSB0csaw4budbmcgc+G7kS4NCg0KIyMgKiozLiDEkOG7kWkgdMaw4bujbmcgdsOgIFBo4bqhbSB2aSBuZ2hpw6puIGPhu6l1KioNCg0KLSAqKsSQ4buRaSB0xrDhu6NuZyBuZ2hpw6puIGPhu6l1OioqIEjDoG5oIHZpIG5naGUgbmjhuqFjIGPhu6dhIG5nxrDhu51pIGTDuW5nIHRyw6puIG7hu4FuIHThuqNuZyBTcG90aWZ5LCDEkcaw4bujYyB0aOG7gyBoaeG7h24gdGjDtG5nIHF1YSBjw6FjIGNo4buJIHPhu5EgdMawxqFuZyB0w6FjIG5oxrA6IG5odSBj4bqndSBuZ8aw4budaSBkw7luZyBtdWEgZ8OzaSBjYW8gY+G6pXAgKHByZW1pdW0pLCBuaHUgY+G6p3UgbmfGsOG7nWkgZMO5bmcgc+G6tW4gc8OgbmcgbXVhIGfDs2kgY2FvIGPhuqVwLCB0aOG7gyBsb+G6oWkgbmjhuqFjIG3DoCBuZ8aw4budaSBkw7luZyB0aMOtY2ggbmdoZSwuLi4NCg0KLSAqKlBo4bqhbSB2aSBuZ2hpw6puIGPhu6l1OioqDQoNCiAgIC0gKipLaMO0bmcgZ2lhbjoqKiBU4bqtcCB0cnVuZyB2w6BvIGThu68gbGnhu4d1IG5nxrDhu51pIGTDuW5nIGPhu6dhIFNwb3RpZnkuDQoNCiAgIC0gKipUaOG7nWkgZ2lhbjoqKiBE4buvIGxp4buHdSDEkcaw4bujYyBz4butIGThu6VuZyBtYW5nIHTDrW5oIGPhuq90IG5nYW5nIChzbmFwc2hvdCksIHBo4bqjbiDDoW5oIG3hu5l0IGdpYWkgxJFv4bqhbiB0xrDGoW5nIMSR4buRaSBuZ+G6r24gbmjGsG5nIGPDsyDDvSBuZ2jEqWEgdHJvbmcgdmnhu4djIHF1YW4gc8OhdCBow6BuaCB2aS4NCg0KIyMgKio0LiBL4bq/dCBj4bqldSDEkeG7gSB0w6BpKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KxJDhu4EgdMOgaSDEkcaw4bujYyBjaGlhIHRow6BuaCBjw6FjIHBo4bqnbiBjaMOtbmggbmjGsCBzYXU6DQo8L2Rpdj4NCg0KLSAqKlBI4bqmTiBN4bueIMSQ4bqmVSoqDQoNCi0gKipDSMavxqBORyAxLiBU4buUTkcgUVVBTiBMw50gVEhVWeG6vlQgVsOAIEThu64gTEnhu4ZVIE5HSEnDik4gQ+G7qFUuKioNCg0KLSAqKkNIxq/GoE5HIDIuIFRI4buQTkcgS8OKIE3DlCBU4bqiIEPhu6ZBIEThu64gTEnhu4ZVLioqDQoNCi0gKipDSMavxqBORyAzLiBUSOG7kE5HIEvDiiBTVVkgREnhu4ROIEPhu6ZBIEThu64gTEnhu4ZVLioqDQoNCi0gKipDSMavxqBORyA0LiBNw5QgSMOMTkggSOG7kkkgUVVZLioqDQoNCi0gKipQSOG6pk4gS+G6vlQgTFXhuqxOLioqDQoNCi0tLQ0KDQojICoqQ0jGr8agTkcgMS4gVOG7lE5HIFFVQU4gTMOdIFRIVVnhur5UIFbDgCBE4buuIExJ4buGVSBOR0hJw4pOIEPhu6hVKioNCg0KIyMgKioxLjEgR2nhu5tpIHRoaeG7h3UgduG7gSBTcG90aWZ5KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KU3BvdGlmeSBsw6AgbeG7mXQgdHJvbmcgbmjhu69uZyBu4buBbiB04bqjbmcgcGjDoXQgbmjhuqFjIHRy4buxYyB0dXnhur9uIGjDoG5nIMSR4bqndSB0aOG6vyBnaeG7m2ksIMSRxrDhu6NjIHRow6BuaCBs4bqtcCB2w6BvIG7Eg20gMjAwNiB04bqhaSBUaOG7pXkgxJBp4buDbiB24bubaSBz4bupIG3hu4duaCB0aGF5IMSR4buVaSBjw6FjaCBjb24gbmfGsOG7nWkga2jDoW0gcGjDoSwgdGnhur9wIGPhuq1uIHbDoCB0aMaw4bufbmcgdGjhu6ljIMOibSBuaOG6oWMgdHJvbmcga+G7tyBuZ3V5w6puIHPhu5EuIFRy4bqjaSBxdWEgZ+G6p24gaGFpIHRo4bqtcCBr4bu3IHBow6F0IHRyaeG7g24sIFNwb3RpZnkgxJHDoyBraMO0bmcgbmfhu6tuZyBt4bufIHLhu5luZyBxdXkgbcO0IHbDoCDhuqNuaCBoxrDhu59uZyB0b8OgbiBj4bqndS4gVMOtbmggxJHhur9uIG7Eg20gMjAyNCwgbuG7gW4gdOG6o25nIG7DoHkgxJHDoyB0aHUgaMO6dCBoxqFuIDYwMCB0cmnhu4d1IG5nxrDhu51pIGTDuW5nIHRyw6puIHRvw6BuIHRo4bq/IGdp4bubaSwgdHJvbmcgxJHDsyBjw7MgaMahbiAyMDAgdHJp4buHdSBuZ8aw4budaSBsw6AgdGh1w6ogYmFvIHRy4bqjIHBow60g4oCTIG3hu5l0IGNvbiBz4buRIOG6pW4gdMaw4bujbmcgY2hvIHRo4bqleSBt4bupYyDEkeG7mSBwaOG7lSBiaeG6v24gdsOgIHPhu6ljIGjDunQgbeG6oW5oIG3hur0gY+G7p2EgZOG7i2NoIHbhu6UgbsOgeSDEkeG7kWkgduG7m2kgbmfGsOG7nWkgZMO5bmcg4bufIG5oaeG7gXUgbmjDs20gdHXhu5VpLCBxdeG7kWMgZ2lhIHbDoCB2xINuIGjDs2Ega2jDoWMgbmhhdS4NCg0KS2jDtG5nIGNo4buJIMSRxqFuIHRodeG6p24gbMOgIG3hu5l0IOG7qW5nIGThu6VuZyBuZ2hlIG5o4bqhYywgU3BvdGlmeSDEkcOjIHRy4bufIHRow6BuaCBt4buZdCBo4buHIHNpbmggdGjDoWkgZ2nhuqNpIHRyw60gcGhvbmcgcGjDuiwgbsahaSBuZ8aw4budaSBkw7luZyBjw7MgdGjhu4MgdGnhur9wIGPhuq1uIGjDoG5nIHRyaeG7h3UgYsOgaSBow6F0LCBwb2RjYXN0IHbDoCBwbGF5bGlzdCDEkcaw4bujYyBj4bqtcCBuaOG6rXQgbGnDqm4gdOG7pWMsIGPDoSBuaMOibiBow7NhIHRoZW8gc+G7nyB0aMOtY2gsIHRow7NpIHF1ZW4gdsOgIHTDom0gdHLhuqFuZy4gVuG7m2kgZ2lhbyBkaeG7h24gdGjDom4gdGhp4buHbiwga2jhuqMgbsSDbmcgxJHhu5NuZyBi4buZIMSRYSB0aGnhur90IGLhu4sgY8O5bmcgaOG7hyB0aOG7kW5nIHRodeG6rXQgdG/DoW4gxJHhu4EgeHXhuqV0IMSRxrDhu6NjIHBow6F0IHRyaeG7g24sIFNwb3RpZnkgbWFuZyDEkeG6v24gdHLhuqNpIG5naGnhu4dtIG5naGUgbmjhuqFjIGxpbmggaG/huqF0LCB0aeG7h24gbOG7o2kgdsOgIGfhuqduIG5oxrAgIm1heSDEkW8iIGNobyB04burbmcgY8OhIG5ow6JuLiBT4buxIHRow6BuaCBjw7RuZyBj4bunYSBTcG90aWZ5IGtow7RuZyBjaOG7iSBu4bqxbSDhu58ga2hvIG7hu5lpIGR1bmcgxJHhu5Mgc+G7mSwgbcOgIGPDsm4g4bufIGPDoWNoIG7hu4FuIHThuqNuZyBuw6B5IHPhu60gZOG7pW5nIGThu68gbGnhu4d1IG5nxrDhu51pIGTDuW5nIMSR4buDIGPhuqNpIHRoaeG7h24gbGnDqm4gdOG7pWMgY2jhuqV0IGzGsOG7o25nIGThu4tjaCB24bulIHbDoCBkdXkgdHLDrCBt4bupYyDEkeG7mSB0xrDGoW5nIHTDoWMgY2FvLg0KDQpWaeG7h2MgbeG7l2kgbMaw4bujdCBuZ2hlLCB04bqhbSBk4burbmcsIGLhu48gcXVhLCBjaGlhIHPhurssIHRow6ptIGLDoGkgaMOhdCB2w6BvIHBsYXlsaXN0IGhheSB0aOG6rW0gY2jDrSBsw6AgdGjhu51pIGdpYW4gbmdoZSBuaOG6oWMgdHJvbmcgbmfDoHkgxJHhu4F1IMSRxrDhu6NjIGdoaSBuaOG6rW4gdsOgIHjhu60gbMO9IHRow7RuZyBxdWEgaOG7hyB0aOG7kW5nIGThu68gbGnhu4d1IGzhu5tuIMSRw6MgbeG7nyByYSBt4buZdCBoxrDhu5tuZyB0aeG6v3AgY+G6rW4gbeG7m2kgdHJvbmcgdmnhu4djIG5naGnDqm4gY+G7qXUgaMOgbmggdmkgdGnDqnUgZMO5bmcgw6JtIG5o4bqhYy4gU3BvdGlmeSBjaMOtbmggbMOgIHbDrSBk4bulIMSRaeG7g24gaMOsbmggY2hvIHh1IGjGsOG7m25nICJk4buvIGxp4buHdSBow7NhIiB0cuG6o2kgbmdoaeG7h20gZ2nhuqNpIHRyw60sIG7GoWkgbcOgIHThu6tuZyBow6BuaCB2aSBuaOG7jyBuaOG6pXQgxJHhu4F1IGPDsyB0aOG7gyB0cuG7nyB0aMOgbmggY8ahIHPhu58gxJHhu4MgY8OhIG5ow6JuIGjDs2EgdHLhuqNpIG5naGnhu4dtLCBk4buxIMSRb8OhbiBuaHUgY+G6p3UgbmfGsOG7nWkgZMO5bmcsIHbDoCB04burIMSRw7MgdGjDumMgxJHhuql5IGhp4buHdSBxdeG6oyBraW5oIGRvYW5oIGPFqW5nIG5oxrAgc+G7sSBow6BpIGzDsm5nIGPhu6dhIGtow6FjaCBow6BuZy4NCg0KQ2jDrW5oIHbDrCB24bqteSwgdmnhu4djIHBow6JuIHTDrWNoIGjDoG5oIHZpIG5nxrDhu51pIGTDuW5nIHRyw6puIFNwb3RpZnkga2jDtG5nIGNo4buJIGdpw7pwIGhp4buDdSByw7UgaMahbiB24buBIHRow7NpIHF1ZW4gbmdoZSBuaOG6oWMgdHJvbmcgdGjhu51pIMSR4bqhaSBz4buRIG3DoCBjw7JuIGPDsyDDvSBuZ2jEqWEgdGjhu7FjIHRp4buFbiBraMOhYy4gU3BvdGlmeSBsw6AgbeG7mXQgdsOtIGThu6UgcsO1IHLDoG5nIGNobyB0aOG6pXkgZOG7ryBsaeG7h3UgbmfGsOG7nWkgZMO5bmcgY8OzIHRo4buDIMSRxrDhu6NjIGtoYWkgdGjDoWMgaGnhu4d1IHF14bqjIMSR4buDIGPhuqNpIHRoaeG7h24gZOG7i2NoIHbhu6UgdsOgIHThuqFvIGzhu6NpIHRo4bq/IGPhuqFuaCB0cmFuaC4gVmnhu4djIGzhu7FhIGNo4buNbiBuZ2hpw6puIGPhu6l1IG7hu4FuIHThuqNuZyBuw6B5IGNobyB0aOG6pXkgc+G7sSBxdWFuIHTDom0gxJHhur9uIG3hu5l0IHbhuqVuIMSR4buBIHbhu6thIGfhuqduIGfFqWksIHbhu6thIG1hbmcgdMOtbmggdGjhu51pIHPhu7EgdHJvbmcgeMOjIGjhu5lpIGhp4buHbiBuYXkuDQo8L2Rpdj4NCg0KIyMgKioxLjIgTmjhu69uZyB54bq/dSB04buRIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gaMOgbmggdmkgbmfGsOG7nWkgZMO5bmcgdHLDqm4gU3BvdGlmeSoqDQoNCiMjICoqMS4yLjEgWeG6v3UgdOG7kSBjw6EgbmjDom4gKGLDqm4gdHJvbmcgbmfGsOG7nWkgZMO5bmcpKioNCg0KSMOgbmggdmkgbmfGsOG7nWkgZMO5bmcgdHLDqm4gU3BvdGlmeSB0csaw4bubYyBo4bq/dCBi4buLIGNoaSBwaOG7kWkgYuG7n2kgY8OhYyDEkeG6t2MgxJFp4buDbSBjw6EgbmjDom4gbmjGsCB0deG7lWkgdMOhYywgZ2nhu5tpIHTDrW5oLCBz4bufIHRow61jaCDDom0gbmjhuqFjIHbDoCB0aMOzaSBxdWVuIHPhu60gZOG7pW5nIGPDtG5nIG5naOG7hy4gTmjhu69uZyB54bq/dSB04buRIG7DoHkgdOG6oW8gbsOqbiBt4buZdCBo4buHIHF1eSBjaGnhur91IHJpw6puZyBiaeG7h3QgY2hvIG3hu5dpIG5nxrDhu51pIGTDuW5nLCBraGnhur9uIGjhu40gY8OzIHh1IGjGsOG7m25nIGzhu7FhIGNo4buNbiBu4buZaSBkdW5nIMOibSBuaOG6oWMgcGjDuSBo4bujcCB24bubaSB0w61uaCBjw6FjaCB2w6AgbOG7kWkgc+G7kW5nIGPhu6dhIGLhuqNuIHRow6JuLiBWw60gZOG7pSwgbmfGsOG7nWkgdHLhursgdHXhu5VpIGPDsyB0aOG7gyDGsGEgdGjDrWNoIHRo4buDIGxv4bqhaSBuaOG6oWMgc8O0aSDEkeG7mW5nIG5oxrAgcG9wLCBoaXAgaG9wIGhv4bq3YyBFRE0sIHRyb25nIGtoaSBuZ8aw4budaSB0csaw4bufbmcgdGjDoG5oIGzhuqFpIGjGsOG7m25nIHbhu4EgbmjhuqFjIHRy4buvIHTDrG5oLCBj4buVIMSRaeG7g24gaGF5IGFjb3VzdGljLg0KDQpOZ2/DoGkgcmEsIHTDom0gdHLhuqFuZyB2w6AgY+G6o20geMO6YyBjxaluZyDEkcOzbmcgdmFpIHRyw7IgcuG6pXQgbOG7m24gdHJvbmcgdmnhu4djIHF1eeG6v3QgxJHhu4tuaCBuZ8aw4budaSBkw7luZyBuZ2hlIGfDrCB2w6BvIHThu6tuZyB0aOG7nWkgxJFp4buDbSBj4bulIHRo4buDLiBLaGkgY+G6o20gdGjhuqV5IGPEg25nIHRo4bqzbmcsIGjhu40gY8OzIHRo4buDIHTDrG0gxJHhur9uIG5o4buvbmcgcGxheWxpc3QgbmjhurkgbmjDoG5nIG5oxrAg4oCcQ2hpbGzigJ0gaG/hurdjIOKAnExvZmnigJ07IG5nxrDhu6NjIGzhuqFpLCBraGkgdOG6rXAgdGjhu4MgZOG7pWMgaG/hurdjIGzDoWkgeGUsIG5o4buvbmcgYuG6o24gbmjhuqFjIGPDsyB0aeG6v3QgdOG6pXUgbmhhbmggc+G6vSDEkcaw4bujYyDGsHUgdGnDqm4gbOG7sWEgY2jhu41uLg0KDQpUaMOzaSBxdWVuIHNpbmggaG/huqF0IGPFqW5nIGzDoCBt4buZdCB54bq/dSB04buRIHRoZW4gY2jhu5F0OiBt4buZdCBz4buRIG5nxrDhu51pIGPDsyB0aMOzaSBxdWVuIG5naGUgbmjhuqFjIG3hu5dpIGJ14buVaSBzw6FuZyBraGkgYuG6r3QgxJHhuqd1IG5nw6B5IG3hu5tpLCB0cm9uZyBraGkgbmjhu69uZyBuZ8aw4budaSBraMOhYyBjaOG7iSBt4bufIG5o4bqhYyBraGkgbMOgbSB2aeG7h2MgaG/hurdjIGjhu41jIGLDoGkuIEjGoW4gdGjhur8gbuG7r2EsIHRyw6xuaCDEkeG7mSBjw7RuZyBuZ2jhu4cgY8Wpbmcg4bqjbmggaMaw4bufbmcgxJHhur9uIGPDoWNoIG5nxrDhu51pIGTDuW5nIHTGsMahbmcgdMOhYyB24bubaSBTcG90aWZ5OiBuZ8aw4budaSByw6BuaCBjw7RuZyBuZ2jhu4cgdGjGsOG7nW5nIGtoYWkgdGjDoWMgaGnhu4d1IHF14bqjIGjGoW4gY8OhYyB0w61uaCBuxINuZyBuaMawIGfhu6NpIMO9IGPDoSBuaMOibiBow7NhLCB04bqhbyBwbGF5bGlzdCByacOqbmcsIGzGsHUgdHLhu68gb2ZmbGluZSwgdi52Lg0KDQojIyAqKjEuMi4yIFnhur91IHThu5EgeMOjIGjhu5lpICh0w6FjIMSR4buZbmcgdOG7qyBj4buZbmcgxJHhu5NuZywgbcO0aSB0csaw4budbmcgeMOjIGjhu5lpKSoqDQoNCkLDqm4gY+G6oW5oIHnhur91IHThu5EgY8OhIG5ow6JuLCBow6BuaCB2aSBuZ8aw4budaSBkw7luZyBjw7JuIGLhu4sg4bqjbmggaMaw4bufbmcgbeG6oW5oIG3hur0gYuG7n2kgY8OhYyB0w6FjIMSR4buZbmcgeMOjIGjhu5lpLiBN4buZdCB2w60gZOG7pSB0acOqdSBiaeG7g3UgbMOgIHh1IGjGsOG7m25nIGxhbiB0cnV54buBbiB0csOqbiBt4bqhbmcgeMOjIGjhu5lpLiBOaOG7r25nIGLDoGkgaMOhdCB2aXJhbCB0csOqbiBUaWtUb2ssIEluc3RhZ3JhbSBoYXkgWW91VHViZSB0aMaw4budbmcgbmhhbmggY2jDs25nIHRy4bufIHRow6BuaCAidHJlbmQiIHbDoCDEkcaw4bujYyBuZ8aw4budaSBkw7luZyB0w6xtIG5naGUgdHLDqm4gU3BvdGlmeS4gU+G7qWMg4bqjbmggaMaw4bufbmcgdOG7qyBi4bqhbiBiw6gsIGPhu5luZyDEkeG7k25nIGPFqW5nIGtow7RuZyB0aOG7gyB4ZW0gbmjhurkg4oCTIG5nxrDhu51pIGTDuW5nIGPDsyB0aOG7gyBjaOG7jW4gbmdoZSBuaOG6oWMgdGhlbyBn4bujaSDDvSBj4bunYSBuZ8aw4budaSBxdWVuLCBob+G6t2MgdsOsIG114buRbiBow7JhIG5o4bqtcCB2w6BvIG3hu5l0IHh1IGjGsOG7m25nIMSRYW5nIGxhbiBy4buZbmcgdHJvbmcgY+G7mW5nIMSR4buTbmcuDQoNCk5nb8OgaSByYSwgY8OhYyBz4buxIGtp4buHbiB2xINuIGjDs2Eg4oCTIHjDoyBo4buZaSBuaMawIEzhu4UgVMOsbmggbmjDom4sIEdpw6FuZyBzaW5oLCBU4bq/dCBOZ3V5w6puIMSRw6FuIGhv4bq3YyBjw6FjIGvhu7MgdGhpIGjhu41jIGvhu7MsIG3DuWEgaMOoLCBjw6FjIHPhu7Ega2nhu4duIHRo4buDIHRoYW8gbOG7m24gbmjGsCBXb3JsZCBDdXAgY8WpbmcgdOG6oW8gcmEgbmh1IGPhuqd1IG5naGUgbmjhuqFjIG1hbmcgdMOtbmggdGjhu51pIMSRaeG7g20uIFNwb3RpZnkgdGjGsOG7nW5nIHThuq1uIGThu6VuZyDEkWnhu4F1IG7DoHkgxJHhu4MgeMOieSBk4buxbmcgY8OhYyBwbGF5bGlzdCB0aGVvIGNo4bunIMSR4buBIG5oxrAg4oCcVmFsZW50aW5lIFZpYmVz4oCdLCDigJxDaGlsbCBHacOhbmcgU2luaOKAnSwgaGF5IOKAnFN1bW1lciBIaXRz4oCdLg0KDQpIw6xuaCDhuqNuaCBuZ2jhu4cgc8SpLCB0aOG6p24gdMaw4bujbmcgdsOgIHh1IGjGsOG7m25nIMOibSBuaOG6oWMgdG/DoG4gY+G6p3UgY8WpbmcgZ8OzcCBwaOG6p24gxJHhu4tuaCBoxrDhu5tuZyB0aOG7iyBoaeG6v3UgbmfGsOG7nWkgbmdoZS4gTmfGsOG7nWkgZMO5bmcgY8OzIHRo4buDIHRoYXkgxJHhu5VpIGjDoG5oIHZpIG5naGUgbmjhuqFjIGNo4buJIHbDrCBt4buZdCBuZ2jhu4cgc8SpIHJhIGFsYnVtIG3hu5tpLCBob+G6t2MgYuG7iyB0aHUgaMO6dCBi4bufaSBjw6FjIG3DoG4ga+G6v3QgaOG7o3AgcXXhu5FjIHThur8gZ2nhu69hIG5naOG7hyBzxKkgVmnhu4d0IE5hbSB2w6Agbmdo4buHIHPEqSBuxrDhu5tjIG5nb8OgaS4NCg0KIyMgKioxLjIuMyBZ4bq/dSB04buRIGPDtG5nIG5naOG7hyB2w6AgbuG7gW4gdOG6o25nIChTcG90aWZ5IHbDoCBtw7RpIHRyxrDhu51uZyBr4bu5IHRodeG6rXQgc+G7kSkqKg0KDQpTcG90aWZ5IGtow7RuZyDEkcahbiB0aHXhuqduIGzDoCBuxqFpIGN1bmcgY+G6pXAgYsOgaSBow6F0LCBtw6AgY8OybiBsw6AgbeG7mXQgbuG7gW4gdOG6o25nIHRow7RuZyBtaW5oIGPDsyBraOG6oyBuxINuZyB0w6FjIMSR4buZbmcgdHLhu7FjIHRp4bq/cCDEkeG6v24gaMOgbmggdmkgbmfGsOG7nWkgZMO5bmcgdGjDtG5nIHF1YSB0aHXhuq10IHRvw6FuIGfhu6NpIMO9IHbDoCBjw6FjIGNoaeG6v24gbMaw4bujYyBjw6EgbmjDom4gaMOzYSB0cuG6o2kgbmdoaeG7h20uIFRodeG6rXQgdG/DoW4gbsOgeSBo4buNYyBo4buPaSB04burIGzhu4tjaCBz4butIG5naGUgbmjhuqFjLCBjw6FjIHBsYXlsaXN0IMSRw6MgbMawdSwgbMaw4bujdCB0aOG6oyB0aW0sIGzGsOG7o3QgYuG7jyBxdWEgYsOgaSBow6F04oCmIMSR4buDIMSRxrBhIHJhIGPDoWMgZ+G7o2kgw70gcGjDuSBo4bujcCB24bubaSB04burbmcgY8OhIG5ow6JuLiBLaGkgbmfGsOG7nWkgZMO5bmcgY+G6o20gdGjhuqV5IGPDoWMgxJHhu4EgeHXhuqV0IG5nw6B5IGPDoG5nICJo4bujcCBndSIsIGjhu40gY8OzIHh1IGjGsOG7m25nIHRpbiB0xrDhu59uZyBoxqFuIHbDoG8gaOG7hyB0aOG7kW5nIHbDoCBz4butIGThu6VuZyDhu6luZyBk4bulbmcgdGjGsOG7nW5nIHh1ecOqbiBoxqFuLg0KDQpCw6puIGPhuqFuaCDEkcOzLCBTcG90aWZ5IGPDsm4gc+G7rSBk4bulbmcgY8OhYyBjaGnhur9uIGThu4tjaCB0cnV54buBbiB0aMO0bmcgc8OhbmcgdOG6oW8gbmjGsCDigJxTcG90aWZ5IFdyYXBwZWTigJ0g4oCTIG7GoWkgbmfGsOG7nWkgZMO5bmcgxJHGsOG7o2MgeGVtIGzhuqFpIHRo4buRbmcga8OqIMOibSBuaOG6oWMgY8OhIG5ow6JuIGPhu6dhIGPhuqMgbsSDbSDigJMgxJHhu4MgdOG6oW8gY+G6o20gZ2nDoWMgZ+G6r24gYsOzIGPDoSBuaMOibiB2w6Aga2h1eeG6v24ga2jDrWNoIGjhu40gY2hpYSBz4bq7IHRyw6puIG3huqFuZyB4w6MgaOG7mWkuDQoNCktow7RuZyB0aOG7gyBraMO0bmcga+G7gyDEkeG6v24gY8OhYyB54bq/dSB04buRIGvhu7kgdGh14bqtdCB2w6AgZOG7i2NoIHbhu6UgbmjGsCBnaWFvIGRp4buHbiB0aMOibiB0aGnhu4duLCB04buRYyDEkeG7mSB04bqjaSBuaGFuaCwga2jhuqMgbsSDbmcgbmdoZSBuaOG6oWMga2jDtG5nIGPhuqduIGvhur90IG7hu5FpIG3huqFuZywgdMOtbmggbsSDbmcgY2hpYSBz4bq7IHBsYXlsaXN0IHbDoCBraOG6oyBuxINuZyB0w61jaCBo4bujcCDEkWEgbuG7gW4gdOG6o25nIChzbWFydHBob25lLCBsYXB0b3AsIHNtYXJ0IFRWLCBsb2EgdGjDtG5nIG1pbmguLi4pLiBOZ2/DoGkgcmEsIGNow61uaCBzw6FjaCBnacOhIGxpbmggaG/huqF0IChtaeG7hW4gcGjDrSwgUHJlbWl1bSBjw6EgbmjDom4sIGfDs2kgc2luaCB2acOqbiwgZ8OzaSBnaWEgxJHDrG5oLi4uKSBjxaluZyBnacO6cCBTcG90aWZ5IHRp4bq/cCBj4bqtbiDEkWEgZOG6oW5nIG5nxrDhu51pIGTDuW5nIOG7nyBuaGnhu4F1IHThuqduZyBs4bubcCBraMOhYyBuaGF1Lg0KDQojIyAqKjEuMyBDw6FjIG3DtCBow6xuaCBs4buxYSBjaOG7jW4gZOG7ryBsaeG7h3Ugbmjhu4sgcGjDom4qKg0KDQpLaGkgYmnhur9uIHBo4bulIHRodeG7mWMgbMOgIGJp4bq/biBuaOG7iyBwaMOibiwgdmnhu4djIHPhu60gZOG7pW5nIG3DtCBow6xuaCBo4buTaSBxdXkgdHV54bq/biB0w61uaCB0cnV54buBbiB0aOG7kW5nIChPTFMpIGtow7RuZyBjw7JuIHBow7kgaOG7o3AgdsOsIGtow7RuZyDEkeG6o20gYuG6o28gdMOtbmggaOG7o3AgbMO9IGPhu6dhIGvhur90IHF14bqjIGThu7EgxJFvw6FuIOKAlCBj4bulIHRo4buDIGzDoCBnacOhIHRy4buLIGThu7EgYsOhbyBjw7MgdGjhu4Mgdsaw4bujdCByYSBuZ2/DoGkga2hv4bqjbmcgdOG7qyAwIMSR4bq/biAxLiDEkOG7gyBnaeG6o2kgcXV54bq/dCB24bqlbiDEkeG7gSBuw6B5LCBt4buZdCBuaMOzbSBtw7QgaMOsbmggxJHGsOG7o2MgZ+G7jWkgbMOgIG3DtCBow6xuaCBo4buTaSBxdXkgbmjhu4sgcGjDom4gxJHDoyDEkcaw4bujYyBwaMOhdCB0cmnhu4NuIG5o4bqxbSBtw7QgaMOsbmggaMOzYSB4w6FjIHN14bqldCB44bqjeSByYSBz4buxIGtp4buHbiBxdWFuIHTDom0sIHThu6ljIHjDoWMgc3XhuqV0IFk9MSBk4buxYSB0csOqbiBjw6FjIGJp4bq/biBnaeG6o2kgdGjDrWNoIFguDQoNClRoYXkgdsOsIGThu7EgxJFvw6FuIHRy4buxYyB0aeG6v3AgZ2nDoSB0cuG7iyAwIGhv4bq3YyAxLCBjw6FjIG3DtCBow6xuaCBuw6B5IMaw4bubYyBsxrDhu6NuZyB4w6FjIHN14bqldCB0aHXhu5ljIHbhu4EgbmjDs20g4oCcMeKAnSB0aMO0bmcgcXVhIHZp4buHYyBjaHV54buDbiDEkeG7lWkgbeG7mXQgdOG7lSBo4bujcCB0dXnhur9uIHTDrW5oIGPhu6dhIGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCB0aMOgbmggbeG7mXQgZ2nDoSB0cuG7iyB0cm9uZyBraG/huqNuZyAoMCwgMSkuIFPhu7Ega2jDoWMgYmnhu4d0IGdp4buvYSBjw6FjIG3DtCBow6xuaCBuw6B5IGNo4bunIHnhur91IG7hurFtIOG7nyBow6BtIHBow6JuIHBo4buRaSB0w61jaCBsxal5IChDREYpIG3DoCBjaMO6bmcgc+G7rSBk4bulbmcgxJHhu4Mgw6FuaCB44bqhIHThu5UgaOG7o3AgdHV54bq/biB0w61uaCDEkcOzIHNhbmcgeMOhYyBzdeG6pXQuIFRyb25nIHRo4buxYyB0aeG7hW4sIGJhIG3DtCBow6xuaCDEkcaw4bujYyBz4butIGThu6VuZyBy4buZbmcgcsOjaSBuaOG6pXQgdGh14buZYyBuaMOzbSBuw6B5IGzDoDoNCg0KLSBNw7QgaMOsbmggTG9naXQuDQoNCi0gTcO0IGjDrG5oIFByb2JpdC4NCg0KLSBNw7QgaMOsbmggQ29tcGxlbWVudGFyeSBMb2ctbG9nIChDbG9nLWxvZykuDQoNCiMjIyAqKjEuMy4xIE3DtCBow6xuaCBMb2dpdCAoSOG7k2kgcXV5IExvZ2lzdGljKSoqDQoNCk3DtCBow6xuaCBMb2dpdCBsw6AgbeG7mXQgdHJvbmcgbmjhu69uZyBwaMawxqFuZyBwaMOhcCBwaOG7lSBiaeG6v24gbmjhuqV0IMSR4buDIHBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmggbmjhu4sgcGjDom4uIEdp4bqjIMSR4buLbmggY+G7p2EgbcO0IGjDrG5oIGzDoCB4w6FjIHN14bqldCB44bqjeSByYSBz4buxIGtp4buHbiAoWSA9IDEpIHPhur0gdHXDom4gdGhlbyBwaMOibiBwaOG7kWkgbG9naXN0aWMuDQoNCi0gKipIw6BtIHR1eeG6v24gdMOtbmggKExpbmVhciBQcmVkaWN0b3IpOioqDQokJA0KeiA9IFxiZXRhXzAgKyBcYmV0YV8xIFhfMSArIFxiZXRhXzIgWF8yICsgXGNkb3RzICsgXGJldGFfayBYX2sNCiQkDQoNCi0gKipIw6BtIGxpw6puIGvhur90IChMaW5rIEZ1bmN0aW9uKToqKiBIw6BtIExvZ2l0LCDEkcaw4bujYyB4w6J5IGThu7FuZyBk4buxYSB0csOqbiBow6BtIHBow6JuIHBo4buRaSB0w61jaCBsxal5IExvZ2lzdGljOg0KJCQNClAoWSA9IDEgfCBYKSA9IFxmcmFje2Veen17MSArIGVeen0gPSBcZnJhY3sxfXsxICsgZV57LXp9fQ0KJCQNCg0KLSAqKlBoxrDGoW5nIHRyw6xuaCDGsOG7m2MgbMaw4bujbmcgKEVzdGltYXRpb24gRXF1YXRpb24pOioqDQokJA0KXGxuXGxlZnQoXGZyYWN7UH17MSAtIFB9XHJpZ2h0KSA9IFxiZXRhXzAgKyBcYmV0YV8xIFhfMSArIFxjZG90cyArIFxiZXRhX2sgWF9rDQokJA0KDQotICoqxJDhurdjIMSRaeG7g206KiogTcO0IGjDrG5oIG7DoHkgY2hvIHBow6lwIGdp4bqjaSB0aMOtY2ggaOG7hyBz4buRIGjhu5NpIHF1eSB0aMO0bmcgcXVhICoqdOG7tyBs4buHIGNow6puaCAoT2RkcyBSYXRpbykqKiwgbMOgIG3hu5l0IGPDoWNoIGRp4buFbiBnaeG6o2kgdHLhu7FjIHF1YW4gdsOgIGThu4UgaGnhu4N1LiBMb2dpc3RpYyBsw6AgcGjDom4gcGjhu5FpIOKAnMSR4bqneSDEkeG6t27igJ0gaMahbiBzbyB24bubaSBwaMOibiBwaOG7kWkgY2h14bqpbiwgY8OzIG5naMSpYSBsw6AgbsOzIMOtdCBuaOG6oXkgY+G6o20gaMahbiB24bubaSBk4buvIGxp4buHdSBuZ2/huqFpIGJpw6puLg0KDQotLS0NCg0KIyMjICoqMS4zLjIgTcO0IGjDrG5oIFByb2JpdCAoSOG7k2kgcXV5IFByb2JpdCkqKg0KDQpNw7QgaMOsbmggUHJvYml0IGzDoCBt4buZdCBs4buxYSBjaOG7jW4gdGhheSB0aOG6vyBraOG6oyB0aGkgY2hvIExvZ2l0LCDEkeG6t2MgYmnhu4d0IMSRxrDhu6NjIGTDuW5nIG5oaeG7gXUgdHJvbmcga2luaCB04bq/IGjhu41jLiBHaeG6oyDEkeG7i25oIHjDoWMgc3XhuqV0IGzhu7FhIGNo4buNbiB0dcOibiB0aGVvIHBow6JuIHBo4buRaSBjaHXhuqluIHTDrWNoIGzFqXkuDQoNCi0gKipIw6BtIHR1eeG6v24gdMOtbmg6KioNCiQkDQp6ID0gXGJldGFfMCArIFxiZXRhXzEgWF8xICsgXGJldGFfMiBYXzIgKyBcY2RvdHMgKyBcYmV0YV9rIFhfaw0KJCQNCg0KLSAqKkjDoG0gbGnDqm4ga+G6v3Q6KiogSMOgbSBQcm9iaXQgbMOgIGjDoG0gcGjDom4gcGjhu5FpIHTDrWNoIGzFqXkgY2h14bqpbiAoQ0RGIGPhu6dhIGNodeG6qW4gdOG6r2MpLCBrw70gaGnhu4d1IGzDoCAkXFBoaSQ6DQokJA0KUChZID0gMSB8IFgpID0gXFBoaSh6KSA9IFxpbnRfey1caW5mdHl9XnogXGZyYWN7MX17XHNxcnR7MlxwaX19IGVeey10XjIvMn0gZHQNCiQkDQoNCi0gKirEkOG6t2MgxJFp4buDbToqKiBN4bq3YyBkw7kgUHJvYml0IGtow7RuZyBk4buFIGTDoG5nIGRp4buFbiBnaeG6o2kgdHLhu7FjIHRp4bq/cCBxdWEgT2RkcyBSYXRpbyBuaMawIExvZ2l0LCBuaMawbmcgbOG6oWkgcGjDuSBo4bujcCB0cm9uZyBjw6FjIHTDrG5oIGh14buRbmcgY+G6p24gZ2nhuqMgxJHhu4tuaCBwaMOibiBwaOG7kWkgY2h14bqpbiDhuqluLiBDaMOqbmggbOG7h2NoIGdp4buvYSBoYWkgbcO0IGjDrG5oIGzDoCBy4bqldCBuaOG7jyB24buBIGvhur90IHF14bqjIG5oxrBuZyBraMOhYyBiaeG7h3QgduG7gSBu4buBbiB04bqjbmcgbMO9IHRodXnhur90Lg0KDQotLS0NCg0KIyMjICoqMS4zLjMgTcO0IGjDrG5oIENvbXBsZW1lbnRhcnkgTG9nLWxvZyAoQ2xvZy1sb2cpKioNCg0KTcO0IGjDrG5oIENsb2ctbG9nIHRoxrDhu51uZyDEkcaw4bujYyBz4butIGThu6VuZyB0cm9uZyBuaOG7r25nIHTDrG5oIGh14buRbmcgY8OzIHjDoWMgc3XhuqV0IHLhuqV0IG5o4buPIGhv4bq3YyBy4bqldCBs4bubbiwgbmjGsCBraGkgbcO0IGjDrG5oIGjDs2EgY8OhYyBz4buxIGtp4buHbiBoaeG6v20uDQoNCi0gKipIw6BtIHR1eeG6v24gdMOtbmg6KioNCiQkDQp6ID0gXGJldGFfMCArIFxiZXRhXzEgWF8xICsgXGJldGFfMiBYXzIgKyBcY2RvdHMgKyBcYmV0YV9rIFhfaw0KJCQNCg0KLSAqKkjDoG0gbGnDqm4ga+G6v3Q6KiogROG7sWEgdHLDqm4gcGjDom4gcGjhu5FpIEd1bWJlbCAoY+G7sWMgdHLhu4sgbG/huqFpIEkpLCBow6BtIGxpw6puIGvhur90IGzDoDoNCiQkDQpQKFkgPSAxIHwgWCkgPSAxIC0gZV57LWVeen0NCiQkDQoNCi0gKirEkOG6t2MgxJFp4buDbToqKiBWw6wgdMOtbmggY2jhuqV0IHBoaSDEkeG7kWkgeOG7qW5nLCBtw7QgaMOsbmggbsOgeSBwaMO5IGjhu6NwIGtoaSB4w6FjIHN14bqldCB44bqjeSByYSBz4buxIGtp4buHbiBraMO0bmcgxJHhu5FpIHjhu6luZyAodsOtIGThu6UgbmjGsCBz4buxIGtp4buHbiBoaeG6v20gZ+G6t3AgaG/hurdjIHRow6BuaCBjw7RuZyBoaeG6v20pLiBLaMOhYyB24bubaSBMb2dpdCB2w6AgUHJvYml0IMSR4buRaSB44bupbmcgcXVhbmggMC41LCBDbG9nLWxvZyB0aMOsIGtow7RuZy4NCg0KLS0tDQoNCiMjIyAqKjEuMy40IEPDoWMgdGnDqnUgY2jDrSDEkcOhbmggZ2nDoSBtw7QgaMOsbmgqKg0KDQpTYXUga2hpIHjDonkgZOG7sW5nIGPDoWMgbcO0IGjDrG5oIGjhu5NpIHF1eSBuaOG7iyBwaMOibiwgYsaw4bubYyB0aeG6v3AgdGhlbyBsw6AgxJHDoW5oIGdpw6EgdsOgIGzhu7FhIGNo4buNbiBtw7QgaMOsbmggcGjDuSBo4bujcCBuaOG6pXQuIFRyb25nIG5naGnDqm4gY+G7qXUgbsOgeSwgYmEgdGnDqnUgY2jDrSBjaMOtbmggxJHGsOG7o2Mgc+G7rSBk4bulbmcgZ+G7k206ICoqQUlDKiosICoqQnJpZXIgU2NvcmUqKiB2w6AgKipNYSB0cuG6rW4gbmjhuqdtIGzhuqtuIChDb25mdXNpb24gTWF0cml4KSoqLg0KDQojIyMjICoqKDEpIFRpw6p1IGNow60gQUlDIChBa2Fpa2UgSW5mb3JtYXRpb24gQ3JpdGVyaW9uKSoqDQoNCkFJQyBsw6AgbeG7mXQgY2jhu4kgc+G7kSBnacO6cCBzbyBzw6FuaCBnaeG7r2EgY8OhYyBtw7QgaMOsbmggdGjhu5FuZyBrw6osIGLhurFuZyBjw6FjaCBr4bq/dCBo4bujcCBnaeG7r2EgbeG7qWMgxJHhu5kga2jhu5twIGPhu6dhIG3DtCBow6xuaCB24bubaSBk4buvIGxp4buHdSAodGjDtG5nIHF1YSBsb2ctbGlrZWxpaG9vZCkgdsOgIG3hu6ljIMSR4buZIMSRxqFuIGdp4bqjbiBj4bunYSBtw7QgaMOsbmggKHPhu5EgbMaw4bujbmcgdGhhbSBz4buRKS4NCg0KQ8O0bmcgdGjhu6ljOiAgDQokJA0KQUlDID0gLTIgXGxvZyhMKSArIDJrDQokJA0KDQpUcm9uZyDEkcOzOiAgDQotIFwoIEwgXCk6IEdpw6EgdHLhu4sgbG9nLWxpa2VsaWhvb2QgY+G7p2EgbcO0IGjDrG5oICANCi0gXCggayBcKTogVOG7lW5nIHPhu5EgdGhhbSBz4buRIMSRxrDhu6NjIMaw4bubYyBsxrDhu6NuZw0KDQoqKsOdIG5naMSpYToqKiAgDQotIE3DtCBow6xuaCBjw7MgQUlDIGPDoG5nIHRo4bqlcCB0aMOsIGPDoG5nIMSRxrDhu6NjIMSRw6FuaCBnacOhIGzDoCB04buRdCBoxqFuLiAgDQotIEFJQyBy4bqldCBo4buvdSDDrWNoIMSR4buDIGzhu7FhIGNo4buNbiBtw7QgaMOsbmgNCg0KLS0tDQoNCiMjIyMgKiooMikgQ2jhu4kgc+G7kSBCcmllciBTY29yZSoqDQoNCkJyaWVyIFNjb3JlIGzDoCBt4buZdCBjaOG7iSBz4buRIMSRbyBsxrDhu51uZyBt4bupYyDEkeG7mSBjaMOtbmggeMOhYyB0cm9uZyBk4buxIMSRb8OhbiB4w6FjIHN14bqldCBj4bunYSBtw7QgaMOsbmguIEPhu6UgdGjhu4MsIG7DsyBwaOG6o24gw6FuaCBt4bupYyBjaMOqbmggbOG7h2NoIGLDrG5oIHBoxrDGoW5nIGdp4buvYSB4w6FjIHN14bqldCBk4buxIMSRb8OhbiB2w6Aga+G6v3QgcXXhuqMgdGjhu7FjIHThur8uDQoNCkPDtG5nIHRo4bupYzogIA0KJCQNClx0ZXh0e0JyaWVyIFNjb3JlfSA9IFxmcmFjezF9e259IFxzdW1fe2k9MX1ee259IChwX2kgLSB5X2kpXjINCiQkDQoNClRyb25nIMSRw7M6ICANCi0gXCggcF9pIFwpOiBYw6FjIHN14bqldCBtw6AgbcO0IGjDrG5oIGThu7EgxJFvw6FuIGNobyBxdWFuIHPDoXQgdGjhu6kgXCggaSBcKSAgDQotIFwoIHlfaSBcKTogR2nDoSB0cuG7iyB0aOG7sWMgdOG6vyAoMCBob+G6t2MgMSkgIA0KLSBcKCBuIFwpOiBT4buRIGzGsOG7o25nIHF1YW4gc8OhdA0KDQoqKsOdIG5naMSpYToqKiAgDQotIEJyaWVyIFNjb3JlIGPDoG5nIG5o4buPIHRow6wgZOG7sSDEkW/DoW4gY+G7p2EgbcO0IGjDrG5oIGPDoG5nIGfhuqduIHbhu5tpIHRo4buxYyB04bq/LiAgDQotIEdpw6EgdHLhu4sgY+G7p2EgY2jhu4kgc+G7kSBuw6B5IG7hurFtIHRyb25nIGtob+G6o25nIHThu6sgMCAoZOG7sSDEkW/DoW4gaG/DoG4gaOG6o28pIMSR4bq/biAxIChk4buxIMSRb8OhbiB04buHIG5o4bqldCkuICANCi0gS2jDoWMgduG7m2kgY8OhYyBjaOG7iSBz4buRIMSRw6FuaCBnacOhIHBow6JuIGxv4bqhaSwgQnJpZXIgU2NvcmUgxJHDoW5oIGdpw6EgdHLhu7FjIHRp4bq/cCDEkeG7mSBjaMOtbmggeMOhYyBj4bunYSB4w6FjIHN14bqldCBk4buxIGLDoW8uDQoNCi0tLQ0KDQojIyMjICoqKDMpIE1hIHRy4bqtbiBuaOG6p20gbOG6q24gKENvbmZ1c2lvbiBNYXRyaXgpKioNCg0KTWEgdHLhuq1uIG5o4bqnbSBs4bqrbiDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyDEkcOhbmggZ2nDoSBoaeG7h3UgcXXhuqMgcGjDom4gbG/huqFpIGPhu6dhIG3DtCBow6xuaCBraGkgw6FwIGThu6VuZyBt4buZdCBuZ8aw4buhbmcgeMOhYyBzdeG6pXQgxJHhu4MgcXV54bq/dCDEkeG7i25oIGdp4buvYSBoYWkgbmjDo24gKHbDrSBk4bulOiAwIGhv4bq3YyAxKS4gROG6oW5nIGLhuqNuZyBuaMawIHNhdToNCg0KfCAgICAgICAgICAgICAgIHwgROG7sSDEkW/DoW4gPSAxIHwgROG7sSDEkW/DoW4gPSAwIHwNCnwtLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfA0KfCBUaOG7sWMgdOG6vyA9IDEgICB8IFRQIChUcnVlIFBvc2l0aXZlKSB8IEZOIChGYWxzZSBOZWdhdGl2ZSkgfA0KfCBUaOG7sWMgdOG6vyA9IDAgICB8IEZQIChGYWxzZSBQb3NpdGl2ZSkgfCBUTiAoVHJ1ZSBOZWdhdGl2ZSkgfA0KDQpU4burIMSRw7MsIHRhIGPDsyB0aOG7gyB0w61uaCByYSBjw6FjIGNo4buJIHPhu5EgaGnhu4d1IHN14bqldCBuaMawOg0KDQotICoqQWNjdXJhY3kgKMSQ4buZIGNow61uaCB4w6FjIHThu5VuZyB0aOG7gyk6KiogIA0KJCQNCkFjY3VyYWN5ID0gXGZyYWN7VFAgKyBUTn17VFAgKyBUTiArIEZQICsgRk59DQokJA0KDQotICoqUHJlY2lzaW9uIChU4bu3IGzhu4cgZOG7sSDEkW/DoW4gZMawxqFuZyBjaMOtbmggeMOhYyk6KiogIA0KJCQNClByZWNpc2lvbiA9IFxmcmFje1RQfXtUUCArIEZQfQ0KJCQNCg0KLSAqKlJlY2FsbCAoVOG7tyBs4buHIGLhuq90IMSRw7puZyB0aOG7sWMgc+G7sSBkxrDGoW5nKToqKiAgDQokJA0KUmVjYWxsID0gXGZyYWN7VFB9e1RQICsgRk59DQokJA0KDQotICoqRjEtc2NvcmUgKFRydW5nIGLDrG5oIMSRaeG7gXUgaMOyYSBnaeG7r2EgUHJlY2lzaW9uIHbDoCBSZWNhbGwpOioqICANCiQkDQpGMSA9IDIgXGNkb3QgXGZyYWN7UHJlY2lzaW9uIFxjZG90IFJlY2FsbH17UHJlY2lzaW9uICsgUmVjYWxsfQ0KJCQNCg0KKirDnSBuZ2jEqWE6KiogIA0KLSBNYSB0cuG6rW4gbmjhuqdtIGzhuqtuIGdpw7pwIHBow6JuIHTDrWNoIGvhu7kgaMahbiBoaeG7h3Ugc3XhuqV0IG3DtCBow6xuaCwgbmjhuqV0IGzDoCB0cm9uZyBjw6FjIHRyxrDhu51uZyBo4bujcCBk4buvIGxp4buHdSBraMO0bmcgY8OibiBi4bqxbmcgKHbDrSBk4bulIGtoaSBt4buZdCBs4bubcCB4deG6pXQgaGnhu4duIMOtdCBoxqFuIGjhurNuIGzhu5twIGPDsm4gbOG6oWkpLiAgDQotIFTDuXkgbeG7pWMgxJHDrWNoIHBow6JuIHTDrWNoLCBQcmVjaXNpb24sIFJlY2FsbCBoYXkgRjEtc2NvcmUgY8OzIHRo4buDIMSRxrDhu6NjIMawdSB0acOqbiBz4butIGThu6VuZyB0aGF5IHbDrCBjaOG7iSBuaMOsbiB2w6BvIEFjY3VyYWN5LiAgDQotIFRyb25nIG5naGnDqm4gY+G7qXUgbsOgeSwgY+G6oyBiYSBuaMOzbSBjaOG7iSBz4buRIMSR4buBdSDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyDEkcOhbmggZ2nDoSB0b8OgbiBkaeG7h24gaGnhu4d1IHF14bqjIG3DtCBow6xuaCBo4buTaSBxdXkgbmjhu4sgcGjDom4uDQoNCg0KIyMgKioxLjQgTcO0IHThuqMgZOG7ryBsaeG7h3UgbmdoacOqbiBj4bupdSoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkLhu5kgZOG7ryBsaeG7h3UgxJHGsOG7o2MgdGh1IHRo4bqtcCDEkeG7gyB0aeG6v24gaMOgbmggcGjDom4gdMOtY2ggbWFuZyB0w6puOiAqKipTcG90aWZ5IFVzZXIgQmVoYXZpb3IgRGF0YXNldCoqKi4gROG7ryBsaeG7h3UgxJHGsOG7o2Mgc+G7rSBk4bulbmcgdHJvbmcgbmdoacOqbiBj4bupdSBsw6AgbeG7mXQgdOG6rXAgaOG7o3Aga2jhuqNvIHPDoXQgduG7gSBow6BuaCB2aSBuZ8aw4budaSBkw7luZyB0csOqbiBu4buBbiB04bqjbmcgU3BvdGlmeSwgYmFvIGfhu5NtIDUyMCBxdWFuIHPDoXQgxJHGsOG7o2MgdGh1IHRo4bqtcCB04burIG5o4buvbmcgbmfGsOG7nWkgbmdoZSBuaOG6oWMgduG7m2kgbmhp4buBdSDEkeG6t2MgxJFp4buDbSBraMOhYyBuaGF1LiBC4buZIGThu68gbGnhu4d1IHBo4bqjbiDDoW5oIHRvw6BuIGRp4buHbiBjw6FjIGtow61hIGPhuqFuaCBsacOqbiBxdWFuIMSR4bq/biB0aMOzaSBxdWVuIHbDoCB4dSBoxrDhu5tuZyBz4butIGThu6VuZyBTcG90aWZ5LCB04burIMSR4bq3YyDEkWnhu4NtIG5ow6JuIGto4bqpdSBo4buNYyDEkeG6v24gaMOgbmggdmkgdMawxqFuZyB0w6FjIHbhu5tpIG7hu5lpIGR1bmcgw6JtIG5o4bqhYyB2w6AgcG9kY2FzdC4NCg0KVOG6rXAgZOG7ryBsaeG7h3UgbWFuZyBs4bqhaSBt4buZdCBjw6FpIG5ow6xuIMSRYSBjaGnhu4F1IHbhu4EgaMOgbmggdmkgdGnDqnUgZMO5bmcgw6JtIG5o4bqhYyB0cm9uZyBtw7RpIHRyxrDhu51uZyBz4buRLCDEkeG6t2MgYmnhu4d0IGzDoCBxdWEgbMSDbmcga8OtbmggY+G7p2EgbmfGsOG7nWkgZMO5bmcgU3BvdGlmeSDigJMgbeG7mXQgbuG7gW4gdOG6o25nIMOibSBuaOG6oWMgdG/DoG4gY+G6p3UgxJFhbmcgY2hp4bq/bSBsxKluaCB0aOG7iyB0csaw4budbmcuIFbhu5tpIGPhuqV1IHRyw7pjIGJhbyBn4buTbSBj4bqjIHnhur91IHThu5EgxJHhu4tuaCB0w61uaCB2w6AgxJHhu4tuaCBsxrDhu6NuZywgZOG7ryBsaeG7h3UgbsOgeSBjaG8gcGjDqXAgw6FwIGThu6VuZyBsaW5oIGhv4bqhdCBuaGnhu4F1IGvhu7kgdGh14bqtdCBwaMOibiB0w61jaCwgdOG7qyB0aOG7kW5nIGvDqiBtw7QgdOG6oyBjaG8gxJHhur9uIHBow6JuIG5ow7NtIGhv4bq3YyBtw7QgaMOsbmggaMOzYSBow6BuaCB2aS4gxJDDonkgbMOgIGPGoSBz4bufIHF1YW4gdHLhu41uZyDEkeG7gyBuZ2hpw6puIGPhu6l1IGPDsyB0aOG7gyB0aeG6v3AgY+G6rW4gbeG7mXQgY8OhY2ggdG/DoG4gZGnhu4duIGPDoWMgeHUgaMaw4bubbmcsIHPhu58gdGjDrWNoIHbDoCBow6BuaCB2aSB0aOG7sWMgdOG6vyBj4bunYSBuZ8aw4budaSBkw7luZywgdOG7qyDEkcOzIMSRxrBhIHJhIGPDoWMgbmjhuq1uIMSR4buLbmggc8OhdCB24bubaSB0aOG7sWMgdGnhu4VuIHbDoCBtYW5nIHTDrW5oIOG7qW5nIGThu6VuZyBjYW8uDQo8L2Rpdj4NCg0KIyMjICoqMS40LjEgTmd14buTbiB0aHUgdGjhuq1wIGThu68gbGnhu4d1KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KQuG7mSBk4buvIGxp4buHdSDEkcaw4bujYyBz4butIGThu6VuZyB0cm9uZyBuZ2hpw6puIGPhu6l1IG7DoHkgxJHGsOG7o2MgdGh1IHRo4bqtcCB04burIG7hu4FuIHThuqNuZyBbS2FnZ2xlXShodHRwczovL3d3dy5rYWdnbGUuY29tLykg4oCTIG3hu5l0IHRyb25nIG5o4buvbmcgY+G7mW5nIMSR4buTbmcga2hvYSBo4buNYyBk4buvIGxp4buHdSB0cuG7sWMgdHV54bq/biBs4bubbiBuaOG6pXQgaGnhu4duIG5heSwgbsahaSBjw6FjIG5ow6AgbmdoacOqbiBj4bupdSwgc2luaCB2acOqbiB2w6AgY2h1ecOqbiBnaWEgY2hpYSBz4bq7LCB0aOG6o28gbHXhuq1uIHbDoCBraGFpIHRow6FjIGThu68gbGnhu4d1IHBo4bulYyB24bulIGNobyBt4bulYyDEkcOtY2ggaOG7jWMgdGh14bqtdCB2w6AgdGjhu7FjIHRp4buFbi4gQ+G7pSB0aOG7gywgW1Nwb3RpZnkgVXNlciBCZWhhdmlvciBEYXRhc2V0XShodHRwczovL3d3dy5rYWdnbGUuY29tL2RhdGFzZXRzL21lZXJhYWpheWFrdW1hci9zcG90aWZ5LXVzZXItYmVoYXZpb3ItZGF0YXNldCkgZG8gbmfGsOG7nWkgZMO5bmcgTWVlcmEgQWpheWFrdW1hciBjw7RuZyBi4buRLCBwaOG6o24gw6FuaCBjw6FjIGvhur90IHF14bqjIGto4bqjbyBzw6F0IHbhu4EgdGjDs2kgcXVlbiBz4butIGThu6VuZyBu4buBbiB04bqjbmcgU3BvdGlmeSBj4bunYSBuZ8aw4budaSBuZ2hlIG5o4bqhYy4NCg0KVuG7m2kgxJHhurdjIMSRaeG7g20gbMOgIG3hu5l0IGLhu5kgZOG7ryBsaeG7h3UgbeG7nywgbWnhu4VuIHBow60gdsOgIMSRw6MgxJHGsOG7o2MgbMOgbSBz4bqhY2ggdMawxqFuZyDEkeG7kWksIGThu68gbGnhu4d1IG7DoHkgY2hvIHBow6lwIG5nxrDhu51pIGTDuW5nIHRp4bq/biBow6BuaCBjw6FjIHBow6JuIHTDrWNoIGjDoG5oIHZpIG3hu5l0IGPDoWNoIHRodeG6rW4gbOG7o2ksIMSR4buTbmcgdGjhu51pIGjhu5cgdHLhu6Mgdmnhu4djIHRo4buxYyBow6BuaCBjw6FjIGvhu7kgdGh14bqtdCBwaMOibiB0w61jaCBk4buvIGxp4buHdSB0csOqbiBjxqEgc+G7nyB0w6xuaCBodeG7kW5nIHRo4buxYyB04bq/LiBWaeG7h2Mgc+G7rSBk4bulbmcgbmd14buTbiBk4buvIGxp4buHdSB04burIEthZ2dsZSBraMO0bmcgY2jhu4kgxJHhuqNtIGLhuqNvIHTDrW5oIG1pbmggYuG6oWNoIHbDoCBraOG6oyBuxINuZyB0w6FpIHPhu60gZOG7pW5nLCBtw6AgY8OybiBnw7NwIHBo4bqnbiBuw6JuZyBjYW8gdMOtbmgg4bupbmcgZOG7pW5nIHbDoCB0aOG7sWMgdGnhu4VuIGPhu6dhIG5naGnDqm4gY+G7qXUgdHJvbmcgYuG7kWkgY+G6o25oIGjhu41jIHRodeG6rXQgaGnhu4duIMSR4bqhaS4NCjwvZGl2Pg0KDQojIyMgKioxLjQuMiDEkOG7jWMgZOG7ryBsaeG7h3UqKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUw6puIMSR4bqneSDEkeG7pyBj4bunYSBi4buZIGThu68gbGnhu4d1IGzDoCAqKlNwb3RpZnkgVXNlciBCZWhhdmlvciBEYXRhc2V0KiosIG5oxrBuZyDEkeG7gyBn4buNaSB0w6puIG5n4bqvbiBn4buNbiB2w6AgZOG7hSBoaeG7g3UgdGjDrCB0w6FjIGdp4bqjIHPhur0gcsO6dCBn4buNbiBs4bqhaSB0w6puIGzDoCBi4buZIGThu68gbGnhu4d1ICoqU3BvdGlmeSoqLiBUYSBjw7MgdGjhu4MgeGVtIHThu5VuZyBxdWFuIGLhu5kgZOG7ryBsaeG7h3UgbmjGsCBkxrDhu5tpIMSRw6J5Og0KPC9kaXY+DQoNCmBgYHtyfQ0KbGlicmFyeSh4bHN4KQ0Kc3BvdGlmeSA8LSByZWFkLnhsc3goIkQ6L1VGTS9TcG90aWZ5X2RhdGEueGxzeCIsIHNoZWV0SW5kZXggPSAxLCBoZWFkZXIgPSBUKQ0KYGBgDQoNCmBgYHtyfQ0KZGF0YXRhYmxlKHNwb3RpZnkpDQpgYGANCg0KDQoNCiMjIyAqKjEuNC4zIEtp4buDbSB0cmEgY+G6pXUgdHLDumMgdOG7lW5nIHF1w6F0IGPhu6dhIGThu68gbGnhu4d1KioNCg0KIyMjIyAqKlPhu5EgYmnhur9uIHbDoCBT4buRIHF1YW4gc8OhdCoqDQoNCmBgYHtyfQ0KZGltcyA8LSBkaW0oc3BvdGlmeSkNCg0Kc3BvdGlmeV9zdW1tYXJ5IDwtIGRhdGEuZnJhbWUoVGjDoG5oX3Bo4bqnbiA9IGMoIlPhu5EgcXVhbiBzw6F0IChow6BuZykiLCAiU+G7kSBiaeG6v24gKGPhu5l0KSIpLEdpw6FfdHLhu4sgPSBkaW1zKQ0KDQprYWJsZShzcG90aWZ5X3N1bW1hcnksIGNhcHRpb24gPSAiU+G7kSBxdWFuIHPDoXQgdsOgIHPhu5EgYmnhur9uIGPhu6dhIGLhu5kgZOG7ryBsaeG7h3UgU3BvdGlmeSIpDQpgYGANCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KQuG7mSBk4buvIGxp4buHdSBTcG90aWZ5IMSRxrDhu6NjIHPhu60gZOG7pW5nIHRyb25nIG5naGnDqm4gY+G7qXUgYmFvIGfhu5NtIDUyMCBxdWFuIHPDoXQgdMawxqFuZyDhu6luZyB24bubaSA1MjAgbmfGsOG7nWkgZMO5bmcgU3BvdGlmeSwgY8O5bmcgduG7m2kgMjAgYmnhur9uIMSR4bq3YyB0csawbmcgcGjhuqNuIMOhbmggxJFhIGThuqFuZyBjw6FjIGtow61hIGPhuqFuaCB0cm9uZyBow6BuaCB2aSBz4butIGThu6VuZyBu4buBbiB04bqjbmcgbmdoZSBuaOG6oWMgdHLhu7FjIHR1eeG6v24uDQo8L2Rpdj4NCg0KDQojIyMjICoqVOG7lW5nIHF1w6F0IGThu68gbGnhu4d1KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KQuG7mSBk4buvIGxp4buHdSDEkcaw4bujYyBz4butIGThu6VuZyB0cm9uZyBuZ2hpw6puIGPhu6l1IGJhbyBn4buTbSA1MjAgcXVhbiBzw6F0LCB0xrDGoW5nIOG7qW5nIHbhu5tpIDUyMCBuZ8aw4budaSBkw7luZyBTcG90aWZ5LCBjw7luZyB24bubaSAyMCBiaeG6v24gxJHhurdjIHRyxrBuZyBwaOG6o24gw6FuaCBuaGnhu4F1IGtow61hIGPhuqFuaCB0cm9uZyBow6BuaCB2aSB2w6AgdGjDs2kgcXVlbiBz4butIGThu6VuZyBu4buBbiB04bqjbmcgbmdoZSBuaOG6oWMgdHLhu7FjIHR1eeG6v24uIFRyb25nIHPhu5EgxJHDsywgcGjhuqduIGzhu5tuIGzDoCBiaeG6v24gxJHhu4tuaCB0w61uaCBjaGnhur9tIGjhuqd1IGjhur90IHThu5VuZyBz4buRIGJp4bq/bi4NCg0KVsOsIG3hu6VjIHRpw6p1IGPhu6dhIG5naGnDqm4gY+G7qXUgbMOgIHTDrG0gaGnhu4N1IGjDoG5oIHZpIG5nxrDhu51pIGTDuW5nIGTGsOG7m2kgZ8OzYyDEkeG7mSBwaMOibiB0w61jaCBk4buvIGxp4buHdSDEkeG7i25oIHTDrW5oLCBuw6puIGPDoWMgYmnhur9uIMSR4buLbmggdMOtbmggxJHDs25nIHZhaSB0csOyIHRydW5nIHTDom0gdHJvbmcgcXXDoSB0csOsbmggcGjDom4gdMOtY2ggdsOgIGRp4buFbiBnaeG6o2kga+G6v3QgcXXhuqMuIFZp4buHYyB04bqtcCB0cnVuZyB2w6BvIGPDoWMgYmnhur9uIMSR4buLbmggdMOtbmgga2jDtG5nIGNo4buJIGdpw7pwIHBo4bqjbiDDoW5oIHLDtSBoxqFuIHbhu4Egc3V5IG5naMSpLCBj4bqjbSBuaOG6rW4gdsOgIHRow7NpIHF1ZW4gdGnDqnUgZMO5bmcgw6JtIG5o4bqhYyBj4bunYSBuZ8aw4budaSBkw7luZywgbcOgIGPDsm4gcGjDuSBo4bujcCB24bubaSDEkeG7i25oIGjGsOG7m25nIHBow6JuIHTDrWNoIG7hu5lpIGR1bmcsIHBow6JuIGxv4bqhaSBuaMOzbSB2w6Aga2jDoW0gcGjDoSBraHXDtG4gbeG6q3UgaMOgbmggdmkuDQoNCkPhu6UgdGjhu4MgY8OhYyBiaeG6v24gY8OzIGtp4buDdSBk4buvIGxp4buHdSBuaMawIHNhdToNCjwvZGl2Pg0KDQpgYGB7cn0NCnNwb3RpZnlfc3RydWN0dXJlIDwtIHRpYmJsZTo6dGliYmxlKFTDqm5fYmnhur9uID0gbmFtZXMoc3BvdGlmeSksS2nhu4N1X2Thu69fbGnhu4d1ID0gc2FwcGx5KHNwb3RpZnksIGNsYXNzKSkNCg0Ka25pdHI6OmthYmxlKHNwb3RpZnlfc3RydWN0dXJlLCBjYXB0aW9uID0gIkPhuqV1IHRyw7pjIGPDoWMgYmnhur9uIHRyb25nIGLhu5kgZOG7ryBsaeG7h3UgU3BvdGlmeSIpDQpgYGANCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KROG7sWEgdHLDqm4gY8OhYyBiaeG6v24gIHRyw6puLCB0YSBjw7MgdGjhu4MgdOG6oW0gdGjhu51pIGNoaWEgY8OhYyBiaeG6v24gdGjDoG5oIGPDoWMgbmjDs20gY2jDrW5oIHNhdToNCjwvZGl2Pg0KDQotICoqVGjDtG5nIHRpbiBuaMOibiBraOG6qXUgaOG7jWMqKiBuaMawIEFnZSwgR2VuZGVyLg0KDQotICoqSMOgbmggdmkgc+G7rSBk4bulbmcgU3BvdGlmeSoqIG5oxrAgc3BvdGlmeSB1c2FnZSBwZXJpb2QsIHNwb3RpZnkgbGlzdGVuaW5nIGRldmljZSwgc3BvdGlmeSBzdWJzY3JpcHRpb24gcGxhbiwgcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MuDQoNCi0gKipT4bufIHRow61jaCBuZ2hlIG5o4bqhYyoqIG5oxrAgZmF2IG11c2ljIGdlbnJlLCBtdXNpYyB0aW1lIHNsb3QsIG11c2ljIEluZmx1ZW5jaWFsIG1vb2QsIG11c2ljIGxpcyBmcmVxdWVuY3ksIG11c2ljIGV4cGwgbWV0aG9kLg0KDQotICoqVGjDtG5nIHRpbiBsacOqbiBxdWFuIMSR4bq/biBwb2RjYXN0KiogbmjGsCBwb2QgbGlzIGZyZXF1ZW5jeSwgZmF2IHBvZCBnZW5yZSwgcHJlZmZlcmVkIHBvZCBmb3JtYXQsIHBvZCBob3N0IHByZWZlcmVuY2UsIHByZWZmZXJlZCBwb2QgZHVyYXRpb24gdsOgIHBvZCB2YXJpZXR5IHNhdGlzZmFjdGlvbi4NCg0KIyMgKioxLjUgTcO0IHThuqMgY8OhYyBiaeG6v24gbmdoacOqbiBj4bupdSoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkLhu5kgZOG7ryBsaeG7h3UgxJHGsOG7o2Mgc+G7rSBk4bulbmcgdHJvbmcgbmdoacOqbiBj4bupdSBiYW8gZ+G7k20gMjAgYmnhur9uLCBwaOG6o24gw6FuaCBjw6FjIMSR4bq3YyDEkWnhu4NtIG5ow6JuIGto4bqpdSBo4buNYyBjxqEgYuG6o24sIHRow7NpIHF1ZW4gc+G7rSBk4bulbmcgU3BvdGlmeSBjxaluZyBuaMawIG5o4bqtbiDEkeG7i25oLCBj4bqjbSBuaOG6rW4gY+G7p2EgbmfGsOG7nWkgZMO5bmcgduG7gSBu4buBbiB04bqjbmcgbsOgeS4gQ8OhYyBiaeG6v24gxJHGsOG7o2MgdGhp4bq/dCBr4bq/IMSRYSBk4bqhbmcgduG7gSBt4bq3dCDEkeG7i25oIGThuqFuZywgdHJvbmcgxJHDsyDEkWEgc+G7kSBsw6AgYmnhur9uIMSR4buLbmggdMOtbmguIFZp4buHYyBtw7QgdOG6oyByw7UgdOG7q25nIGJp4bq/biBnacO6cCBsw6BtIHLDtSBjw6FjaCB0aOG7qWMgdGh1IHRo4bqtcCBk4buvIGxp4buHdSwgxJHhu4tuaCBk4bqhbmcgZOG7ryBsaeG7h3UgxJHhuqd1IHbDoG8gdsOgIMSR4buLbmggaMaw4bubbmcgcGjDom4gdMOtY2ggcGjDuSBo4bujcCB24bubaSBt4bulYyB0acOqdSBuZ2hpw6puIGPhu6l1LiBEYW5oIHPDoWNoIGNoaSB0aeG6v3QgdMOqbiBjw6FjIGJp4bq/biwgbG/huqFpIGJp4bq/biB2w6Agw70gbmdoxKlhIHTGsMahbmcg4bupbmcgc+G6vSDEkcaw4bujYyB0csOsbmggYsOgeSB0cm9uZyBi4bqjbmcgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KdmFyaWFibGVfbmFtZXMgPC0gZGF0YS5mcmFtZShTVFQgPSBzZXFfYWxvbmcobmFtZXMoc3BvdGlmeSkpLCBUw6puX2Jp4bq/biA9IG5hbWVzKHNwb3RpZnkpKQ0KDQprbml0cjo6a2FibGUodmFyaWFibGVfbmFtZXMsIGNhcHRpb24gPSAiRGFuaCBzw6FjaCB0w6puIGPDoWMgYmnhur9uIHRyb25nIGLhu5kgZOG7ryBsaeG7h3UgU3BvdGlmeSIpDQpgYGANCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KKipT4buRIGzGsOG7o25nIHbDoCDDvSBuZ2jEqWEgY+G7pSB0aOG7gyBj4bunYSB04burbmcgYmnhur9uIG5oxrAgc2F1OioqDQo8L2Rpdj4NCg0KIyMjIyAqKigxKSBBZ2UgLSBOaMOzbSB0deG7lWkgY+G7p2EgbmfGsOG7nWkgZMO5bmcqKg0KDQotIE5ow7NtIHR14buVaSA2LTEyLg0KDQotIE5ow7NtIHR14buVaSAxMi0yMC4NCg0KLSBOaMOzbSB0deG7lWkgMjAtMzUuDQoNCi0gTmjDs20gdHXhu5VpIDM1LTYwLg0KDQotIE5ow7NtIHR14buVaSB0csOqbiA2MCAoNjArKS4NCg0KIyMjIyAqKigyKSBHZW5kZXIgLSBHaeG7m2kgdMOtbmggY+G7p2EgbmfGsOG7nWkgZMO5bmcqKg0KDQotIEZlbWFsZTogR2nhu5tpIHTDrW5oIG7hu68uDQoNCi0gTWFsZTogR2nhu5tpIHTDrW5oIG5hbS4NCg0KLSBPdGhlcnM6IEdp4bubaSB0w61uaCBraMOhYy4NCg0KIyMjIyAqKigzKSBzcG90aWZ5X3VzYWdlX3BlcmlvZCAtIFRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkqKg0KDQotIExlc3MgdGhhbiA2IG1vbnRoczogc+G7rSBk4bulbmcgc3BvdGlmeSBkxrDhu5tpIDYgdGjDoW5nLg0KDQotIDYgbW9udGhzIHRvIDEgeWVhcjogc+G7rSBk4bulbmcgc3BvdGlmeSB04burIDYgdGjDoW5nIC0gMSBuxINtLg0KDQotIDEgeWVhciB0byAyIHllYXJzOiBz4butIGThu6VuZyBzcG90aWZ5IHThu6sgMSAtIDIgbsSDbS4NCg0KLSBNb3JlIHRoYW4gMiB5ZWFyczogc+G7rSBk4bulbmcgc3BvdGlmeSB0csOqbiAyIG7Eg20uDQoNCiMjIyMgKiooNCkgc3BvdGlmeV9saXN0ZW5pbmdfZGV2aWNlIC0gVGhp4bq/dCBi4buLIGNo4bunIHnhur91IMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIG5naGUgU3BvdGlmeSoqDQoNCi0gSOG7l24gaOG7o3AgY8OhYyBsb+G6oWkgdGhp4bq/dCBi4buLIMSRaeG7h24gdOG7rSwgY2jhu6cgeeG6v3UgYmFvIGfhu5NtOiBDb21wdXRlciAobcOheSB0w61uaCksIExhcHRvcCwgU21hcnQgc3BlYWtlcnMgKGxvYSB0aMO0bmcgbWluaCksLi4uDQoNCiMjIyMgKiooNSkgc3BvdGlmeV9zdWJzY3JpcHRpb25fcGxhbiAtIEfDs2kgxJHEg25nIGvDvSBTcG90aWZ5IMSRxrDhu6NjIG5nxrDhu51pIGTDuW4gc+G7rSBk4bulbmcqKg0KDQotIEZyZWUgKGFkLXN1cHBvcnRlZCk6IEfDs2kgbWnhu4VuIHBow60gKGPDsyBxdeG6o25nIGPDoW8pLg0KDQotIFByZW1pdW0gKHBhaWQgc3Vic2NyaXB0aW9uKTogR8OzaSBjYW8gY+G6pXAgKGPDsyB0cuG6oyBwaMOtKS4gDQoNCiMjIyMgKiooNikgcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MgLSBOaHUgY+G6p3Ugc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIGNhbyBj4bqlcCBob+G6t2MgdGnhur9wIHThu6VjIMSRxINuZyBrw70gZ8OzaSBjYW8gY+G6pXAgdHJvbmcgdMawxqFuZyBsYWkqKg0KDQotIFllczogU+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIGNhbyBj4bqlcCB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KLSBObzogQ2jGsGEgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIGNhbyBj4bqlcCB0cm9uZyB0xrDGoW5nIGxhaS4NCg0KIyMjIyAqKig3KSBwcmVmZmVyZWRfcHJlbWl1bV9wbGFuIC0gTmh1IGPhuqd1IGNo4buNbiBnw7NpIGNhbyBj4bqlcCBob+G6t2Mgc+G6tW4gc8OgbmcgbsOibmcgY+G6pXAgbMOqbiBnw7NpIGNhbyBj4bqlcCB2w6Agc+G6vSB0cuG6oyBiYW8gbmhpw6p1IGNobyBnw7NpIMSRxINuZyBrw70gxJHDsyoqDQoNCi0gU3R1ZGVudCBQbGFuLVJzIDU5L21vbnRoOiBz4bq1biBzw6BuZyB0cuG6oyB2w6AgY2jhu41uIGfDs2kgaOG7jWMgc2luaCAoNTkkLyB0aMOhbmcpLg0KDQotIEluZGl2aWR1YWwgUGxhbi1ScyAxMTkvIG1vbnRoOiBz4bq1biBzw6BuZyB0cuG6oyB2w6AgY2jhu41uIGfDs2kgY8OhIG5ow6JuICgxMTkkLyB0aMOhbmcpLg0KDQotIER1byBwbGFuLSBScyAxNDkvbW9udGg6IHPhurVuIHPDoG5nIHRy4bqjIHbDoCBjaOG7jW4gZ8OzaSDEkcO0aSAoMTQ5JC8gdGjDoW5nKS4NCg0KLSBGYW1pbHkgUGxhbi1ScyAxNzkvbW9udGg6IHPhurVuIHPDoG5nIHRy4bqjIHbDoCBjaOG7jW4gZ8OzaSBnaWEgxJHDrG5oICgxNzkkLyB0aMOhbmcpLg0KDQotIE5vbmU6IENoxrBhIHPhurVuIHPDoG5nIHRy4bqjIGfDs2kgY2FvIGPhuqVwLg0KDQojIyMjICoqKDgpIHByZWZlcnJlZF9saXN0ZW5pbmdfY29udGVudCAtIE5nxrDhu51pIGTDuW5nIHRow61jaCBuZ2hlIGxv4bqhaSBuaOG6oWMgbsOgbyBoxqFuKioNCg0KLSBNdXNpYzogw4JtIG5o4bqhYy4NCg0KLSBQb2RjYXN0OiBU4buHcCDDom0gdGhhbmgga+G7uSB0aHXhuq10IHPhu5EgduG7m2kgxJFhIGThuqFuZyBu4buZaSBkdW5nLg0KDQojIyMjICoqKDkpIGZhdl9tdXNpY19nZW5yZSoqIC0gVGjhu4MgbG/huqFpIG5o4bqhYyBtw6AgbmfGsOG7nWkgZMO5bmcgdGjDrWNoIG5naGUqKg0KDQotIMSQYSBk4bqhbmcgY8OhYyB0aOG7gyBsb+G6oWkgw6JtIG5o4bqhYyBuaMawOiBQb3AsIEtwb3AsIFJvY2ssIE1lbG9keSwgUmFwLC4uLg0KDQojIyMjICoqKDEwKSBtdXNpY190aW1lX3Nsb3QgLSBLaHVuZyBnaeG7nSB5w6p1IHRow61jaCBj4bunYSBuZ8aw4budaSBkw7luZyDEkeG7gyBuZ2hlIG5o4bqhYyoqDQoNCi0gTW9ybmluZzogWcOqdSB0aMOtY2ggbmdoZSBuaOG6oWMgdsOgbyBideG7lWkgc8OhbmcuDQoNCi0gQWZ0ZXJub29uOiBZw6p1IHRow61jaCBuZ2hlIG5o4bqhYyB2w6BvIGJ14buVaSBjaGnhu4F1Lg0KDQotIE5pZ2h0OiBZw6p1IHRow61jaCBuZ2hlIG5o4bqhYyB2w6BvIGJ14buVaSB04buRaS4NCg0KIyMjIyAqKigxMSkgbXVzaWNfSW5mbHVlbmNpYWxfbW9vZCAtIFTDrG5oIGh14buRbmcgaG/hurdjIHTDom0gdHLhuqFuZyBuw6BvIHPhur0g4bqjbmggaMaw4bufbmcgbeG6oW5oIG3hur0gbmjhuqV0IMSR4bq/biBs4buxYSBjaOG7jW4gw6JtIG5o4bqhYyBj4bunYSBuZ8aw4budaSBkw7luZyoqDQoNCi0gQ8OhYyB0w6JtIHRy4bqhbmcgxJHGsOG7o2MgbmfGsOG7nWkgZMO5bmcgxJHGsGEgcmEgxJFhIGThuqFuZyBn4buTbSDEkeG7gyB0aMawIGdpw6NuLCBnaeG6o20gY8SDbmcgdGjhurNuZywgbOG6pXkgxJHhu5luZyBs4buxYywga2hpIGJ14buTbiwuLi4NCg0KIyMjIyAqKigxMikgbXVzaWNfbGlzX2ZyZXF1ZW5jeSAtIE5nxrDhu51pIGTDuW5nIHRoxrDhu51uZyB4dXnDqm4gbmdoZSBuaOG6oWMgbmjhuqV0IHbDoG8gdGjhu51pIMSRaeG7g20gbsOgbyoqDQoNCi0gQ8OhYyB0aOG7nWkgxJFp4buDbSDEkcaw4bujYyBuZ8aw4budaSBkw7luZyDEkcawYSByYSDEkWEgZOG6oW5nIGfhu5NtIGtoaSBsw6BtIHZp4buHYywga2hpIGjhu41jLCBraGkgxJFpIGR1IGzhu4tjaCwgdHJvbmcgdGjhu51pIGdpYW4gbmdo4buJLCBraGkgxJFpIHThuq1wLC4uLg0KDQojIyMjICoqKDEzKSBtdXNpY19leHBsX21ldGhvZCAtIE5nxrDhu51pIGTDuW5nIGtow6FtIHBow6EgbmjhuqFjIG3hu5tpIHRyw6puIFNwb3RpZnkgbmjGsCB0aOG6vyBuw6BvKioNCg0KLSBOZ8aw4budaSBkw7luZyB0aMaw4budbmcga2jDoW0gcGjDoSBuaOG6oWMgbeG7m2kgdGjDtG5nIHF1YSBi4bqhbiBiw6gsIGPDoWMgZ+G7o2kgw70sIGPDoWMgdHJhbmcgbeG6oW5nIHjDoyBo4buZaSwgcmFkaW8sLi4uDQoNCiMjIyMgKiooMTQpIG11c2ljX3JlY2NfcmF0aW5nIC0gTmfGsOG7nWkgZMO5bmcgxJHDoW5oIGdpw6EgY8OhYyDEkeG7gSB4deG6pXQgw6JtIG5o4bqhYyB0csOqbiBTcG90aWZ5IG5oxrAgdGjhur8gbsOgbyoqDQoNCi0gTmfGsOG7nWkgZMO5bmcgxJHDoW5oIGdpw6EgY8OhYyDEkeG7gSB4deG6pXQgw6JtIG5o4bqhYyB04burIHRoYW5nIDEgxJHhur9uIDUuDQoNCiMjIyMgKiooMTUpIHBvZF9saXNfZnJlcXVlbmN5IC0gTmfGsOG7nWkgZMO5bmcgbmdoZSBQb2RjYXN0IHRoxrDhu51uZyB4dXnDqm4gbmjGsCB0aOG6vyBuw6BvKioNCg0KLSBEYWlseTogTmfGsOG7nWkgZMO5bmcgbmdoZSBQb2RjYXN0IG3hu5dpIG5nw6B5Lg0KDQotIFNldmVyYWwgdGltZXMgYSB3ZWVrOiBOZ8aw4budaSBkw7luZyBuZ2hlIFBvZGNhc3Qgbmhp4buBdSBs4bqnbiB0cm9uZyAxIHR14bqnbi4NCg0KLSBPbmNlIGEgd2VlazogTmfGsOG7nWkgZMO5bmcgbmdoZSBQb2RjYXN0IDEgbOG6p24gMSB0deG6p24uDQoNCi0gUmFyZWx5OiBOZ8aw4budaSBkw7luZyBoaeG6v20ga2hpIG5naGUgUG9kY2FzdC4NCg0KLSBOZXZlcjogTmfGsOG7nWkgZMO5bmcga2jDtG5nIGJhbyBnaeG7nSBuZ2hlIFBvZGNhc3QuDQoNCiMjIyMgKiooMTYpIGZhdl9wb2RfZ2VucmUgLSBOZ8aw4budaSBkw7luZyB0aMOtY2ggdGjhu4MgbG/huqFpIHBvZGNhc3QgbsOgbyoqDQoNCi0gQ8OhYyB0aOG7gyBsb+G6oWkgcG9kY2FzdCBtw6AgbmfGsOG7nWkgZMO5bmcgdGjDrWNoIG5naGU6IEjDoGksIFRo4buDIHRoYW8sIMSQ4budaSBz4buRbmcgdsOgIFPhu6ljIGto4buPZSwuLi4NCg0KIyMjIyAqKigxNykgcHJlZmZlcmVkX3BvZF9mb3JtYXQgLSBOZ8aw4budaSBkw7luZyB0aMOtY2ggxJHhu4tuaCBk4bqhbmcgcG9kY2FzdCBuw6BvKioNCg0KLSBDb252ZXJzYXRpb25hbDogxJDhu4tuaCBk4bqhbmcgxJHDoG0gdGhv4bqhaS4NCg0KLSBFZHVjYXRpb25hbDogxJDhu4tuaCBk4bqhbmcgZ2nDoW8gZOG7pWMuDQoNCi0gSW50ZXJ2aWV3OiDEkOG7i25oIGThuqFuZyBwaOG7j25nIHbhuqVuLg0KDQotIFN0b3J5IHRlbGxpbmc6IMSQ4buLbmggZOG6oW5nIGvhu4MgY2h1eeG7h24uDQoNCi0gTm9uZTogS2jDtG5nIGPDsyDEkeG7i25oIGThuqFuZyB5w6p1IHRow61jaCBuw6BvLg0KDQojIyMjICoqKDE4KSBwb2RfaG9zdF9wcmVmZXJlbmNlIC0gTmfGsOG7nWkgZMO5bmcgY8OzIHh1IGjGsOG7m25nIG5naGUgcG9kY2FzdCB04burIG5o4buvbmcgbmfGsOG7nWkga2jDtG5nIHF1ZW4gYmnhur90IGjGoW4gaGF5IHRow61jaCBwb2RjYXN0IGRvIG5o4buvbmcgbmfGsOG7nWkgbuG7lWkgdGnhur9uZyBk4bqrbiBjaMawxqFuZyB0csOsbmggaMahbioqDQoNCi0gdW5rbm93biBQb2RjYXN0ZXJzOiBOaOG7r25nIG5nxrDhu51pIGThuqtuIGtow7RuZyByw7UgZGFuaCB0w61uaC4NCg0KLSBXZWxsIGtub3duIGluZGl2aWR1YWxzOiBOaOG7r25nIG5nxrDhu51pIGThuqtuIGzDoCBuZ8aw4budaSBu4buVaSB0aeG6v25nLg0KDQotIEJvdGg6IEPhuqMgMiBuZ8aw4budaSBk4bqrbiB0csOqbi4NCg0KLSBOb25lOiBLaMO0bmcgYWkgY+G6oy4NCg0KIyMjIyAqKigxOSkgcHJlZmZlcmVkX3BvZF9kdXJhdGlvbiAtICBOZ8aw4budaSBkw7luZyB0aMOtY2ggY8OhYyB04bqtcCBwb2RjYXN0IG5n4bqvbiBoxqFuIChkxrDhu5tpIDMwIHBow7p0KSBoYXkgY8OhYyB04bqtcCBwb2RjYXN0IGTDoGkgaMahbiAodHLDqm4gMzAgcGjDunQpKioNCg0KLSBMb25nZXI6IFRow61jaCBjw6FjIHThuq1wIHBvZGNhc3QgZMOgaSBoxqFuICh0csOqbiAzMCBwaMO6dCkuDQoNCi0gU2hvcnRlcjogVGjDrWNoIGPDoWMgdOG6rXAgcG9kY2FzdCBuZ+G6r24gaMahbiAoZMaw4bubaSAzMCBwaMO6dCkuDQoNCi0gQm90aDogVGjDrWNoIGPhuqMgMiBk4bqhbmcgcG9kY2FzdCBkw6BpIHbDoCBuZ+G6r24uDQoNCi0gTm9uZTogS2jDtG5nIHRow61jaCBk4bqhbmcgbsOgbyBj4bqjLg0KDQojIyMjICoqKDIwKSBwb2RfdmFyaWV0eV9zYXRpc2ZhY3Rpb24gLSBOZ8aw4budaSBkw7luZyBjw7MgaMOgaSBsw7JuZyB24bubaSBz4buxIMSRYSBk4bqhbmcgdsOgIHTDrW5oIGto4bqjIGThu6VuZyBj4bunYSBwb2RjYXN0IHRyw6puIFNwb3RpZnkga2jDtG5nKioNCg0KLSBWZXJ5IFNhdGlzZmllZDogUuG6pXQgaMOgaSBsw7JuZy4NCg0KLSBTYXRpc2ZpZWQ6IEjDoGkgbMOybmcuDQoNCi0gT2s6IFThuqFtIGjDoGkgbMOybmcuDQoNCi0gRGlzc2F0aXNmaWVkOiBLaMO0bmcgaMOgaSBsw7JuZy4NCg0KLSBWZXJ5IERpc3NhdGlzZmllZDogUuG6pXQga2jDtG5nIGjDoGkgbMOybmcuDQoNCi0tLQ0KDQojIyAqKjEuNiBYw6FjIMSR4buLbmggYmnhur9uIHBo4bulIHRodeG7mWMgdsOgIGJp4bq/biDEkeG7mWMgbOG6rXAqKg0KDQojIyMgKioxLjYuMSBCaeG6v24gcGjhu6UgdGh14buZYyoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRyb25nIG5naGnDqm4gY+G7qXUgbsOgeSwgYmnhur9uICoqcHJlbWl1bSBzdWIgIHdpbGxpbmduZXNzKiogxJHGsOG7o2MgbOG7sWEgY2jhu41uIGzDoG0gYmnhur9uIHBo4bulIHRodeG7mWMsIGJp4bq/biBuw6B5IHRo4buDIGhp4buHbiBt4bupYyDEkeG7mSBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIMSR4buDIG7Dom5nIGPhuqVwIHTDoGkga2hv4bqjbiBTcG90aWZ5IGzDqm4gZ8OzaSBQcmVtaXVtIC4gTMO9IGRvIGzhu7FhIGNo4buNbiBiaeG6v24gbsOgeSBsw6AgdsOsIG7DsyDEkeG6oWkgZGnhu4duIGNobyDDvSDEkeG7i25oIHRpw6p1IGTDuW5nIGPDsyB0cuG6oyBwaMOtLCBt4buZdCB54bq/dSB04buRIHF1YW4gdHLhu41uZyBwaOG6o24gw6FuaCBow6BuaCB2aSB0acOqdSBkw7luZyB2w6AgZ2nDoSB0cuG7iyBj4bqjbSBuaOG6rW4gY+G7p2EgbmfGsOG7nWkgZMO5bmcgxJHhu5FpIHbhu5tpIG7hu4FuIHThuqNuZyDDom0gbmjhuqFjIHRy4buxYyB0dXnhur9uLg0KDQpWaeG7h2MgcGjDom4gdMOtY2ggY8OhYyB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIMSR4bq/biBxdXnhur90IMSR4buLbmggc+G6tW4gc8OgbmcgY2hpIHRy4bqjIGNobyBk4buLY2ggduG7pSBQcmVtaXVtIHPhur0gZ2nDunAgaGnhu4N1IHLDtSBoxqFuIHbhu4EgxJHhu5luZyBs4buxYyB2w6AgcsOgbyBj4bqjbiB0cm9uZyBow6BuaCB2aSBuZ8aw4budaSB0acOqdSBkw7luZywgdOG7qyDEkcOzIGN1bmcgY+G6pXAgY8ahIHPhu58gZOG7ryBsaeG7h3UgaOG7r3Ugw61jaCBjaG8gY8OhYyBjaGnhur9uIGzGsOG7o2MgdGnhur9wIHRo4buLLCDEkeG7i25oIGdpw6EgdsOgIHBow6F0IHRyaeG7g24gc+G6o24gcGjhuqltIGPhu6dhIGPDoWMgbuG7gW4gdOG6o25nIMOibSBuaOG6oWMgc+G7kS4gTmdvw6BpIHJhLCB0cm9uZyBi4buRaSBj4bqjbmggbmfDoHkgY8Ogbmcgbmhp4buBdSBk4buLY2ggduG7pSBtaeG7hW4gcGjDrSBj4bqhbmggdHJhbmggduG7m2kgZOG7i2NoIHbhu6UgdHLhuqMgcGjDrSwgdmnhu4djIG5naGnDqm4gY+G7qXUgeeG6v3UgdOG7kSB0aMO6YyDEkeG6qXkgbmfGsOG7nWkgZMO5bmcgY2h1eeG7g24gc2FuZyBz4butIGThu6VuZyBwaGnDqm4gYuG6o24gY2FvIGPhuqVwIGzDoCBt4buZdCB24bqlbiDEkeG7gSBtYW5nIHTDrW5oIHRo4buxYyB0aeG7hW4gdsOgIGPDsyBnacOhIHRy4buLIOG7qW5nIGThu6VuZyBjYW8uDQo8L2Rpdj4NCg0KLSBDw6J1IHRy4bqjIGzhu51pICoqWWVzKiogbMOgIHPhurVuIHPDoG5nIMSRxINuZyBrw70gZ8OzaSBjYW8gY+G6pXAgdHJvbmcgdMawxqFuZyBsYWkuDQoNCi0gQ8OidSB0cuG6oyBs4budaSAqKk5vKiogbMOgIGNoxrBhIHPhurVuIHPDoG5nIMSRxINuZyBrw70gZ8OzaSBjYW8gY+G6pXAgdHJvbmcgdMawxqFuZyBsYWkuDQoNCiMjIyAqKjEuNi4yIEJp4bq/biDEkeG7mWMgbOG6rXAqKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUcm9uZyBz4buRIGPDoWMgYmnhur9uIGPDsm4gbOG6oWkgY8OzIHRyb25nIGLhu5kgZOG7ryBsaeG7h3UsIG5naGnDqm4gY+G7qXUgbOG7sWEgY2jhu41uICoqNCBiaeG6v24gbMOgbSBiaeG6v24gxJHhu5ljIGzhuq1wKiogZ+G7k206IHNwb3RpZnkgdXNhZ2UgcGVyaW9kLCBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuLCBwcmVmZmVyZWQgcHJlbWl1bSBwbGFuIHbDoCBwcmVmZXJyZWQgbGlzdGVuaW5nIGNvbnRlbnQuIMSQw6J5IGzDoCBuaOG7r25nIGJp4bq/biDEkcaw4bujYyBjaG8gbMOgIGPDsyBt4buRaSBsacOqbiBo4buHIGNo4bq3dCBjaOG6vSBuaOG6pXQgduG7m2kga2jhuqMgbsSDbmcgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIFByZW1pdW0gY+G7p2EgbmfGsOG7nWkgZMO5bmcuDQo8L2Rpdj4NCg0KLSAqKkJp4bq/biBzcG90aWZ5X3VzYWdlX3BlcmlvZCoqIHBo4bqjbiDDoW5oIGtob+G6o25nIHRo4budaSBnaWFuIG3DoCBuZ8aw4budaSBkw7luZyDEkcOjIGfhuq9uIGLDsyB24bubaSBu4buBbiB04bqjbmcgU3BvdGlmeS4gTmfGsOG7nWkgZMO5bmcgc+G7rSBk4bulbmcgdHJvbmcgdGjhu51pIGdpYW4gZMOgaSBjw7MgdGjhu4MgcGjDoXQgc2luaCBuaHUgY+G6p3UgbsOibmcgY+G6pXAgxJHhu4MgY8OzIHRy4bqjaSBuZ2hp4buHbSB04buRdCBoxqFuLCBkbyDEkcOjIGjDrG5oIHRow6BuaCB0aMOzaSBxdWVuIHbDoCBt4bupYyDEkeG7mSBn4bqvbiBiw7MgY2FvIHbhu5tpIG7hu4FuIHThuqNuZy4gQ8OhYyBjw6J1IHRy4bqjIGzhu51pIGdoaSBuaOG6rW4gxJHGsOG7o2MgZ+G7k206DQoNCiAgIC0gKipMZXNzIHRoYW4gNiBtb250aHM6Kiogc+G7rSBk4bulbmcgc3BvdGlmeSBkxrDhu5tpIDYgdGjDoW5nLg0KDQogICAtICoqNiBtb250aHMgdG8gMSB5ZWFyOioqIHPhu60gZOG7pW5nIHNwb3RpZnkgdOG7qyA2IHRow6FuZyAtIDEgbsSDbS4NCg0KICAgLSAqKjEgeWVhciB0byAyIHllYXJzOioqIHPhu60gZOG7pW5nIHNwb3RpZnkgdOG7qyAxIC0gMiBuxINtLg0KDQogICAtICoqTW9yZSB0aGFuIDIgeWVhcnM6IDoqKiBz4butIGThu6VuZyBzcG90aWZ5IHRyw6puIDIgbsSDbS4NCg0KLSAqKkJp4bq/biBzcG90aWZ5X3N1YnNjcmlwdGlvbl9wbGFuKiogY2hvIGJp4bq/dCBsb+G6oWkgZ8OzaSBoaeG7h24gdOG6oWkgxJHEg25nIGvDvSBj4bunYSBuZ8aw4budaSBkw7luZyAobWnhu4VuIHBow60gaGF5IHRy4bqjIHBow60pLiDEkMOieSBsw6AgeeG6v3UgdOG7kSB0cuG7sWMgdGnhur9wIHBo4bqjbiDDoW5oIGjDoG5oIHZpIHRpw6p1IGTDuW5nIGhp4buHbiB04bqhaSwgdOG7qyDEkcOzIOG6o25oIGjGsOG7n25nIMSR4bq/biBraOG6oyBuxINuZyB0aeG6v3AgdOG7pWMgZHV5IHRyw6wgaG/hurdjIGNodXnhu4NuIMSR4buVaSBzYW5nIGfDs2kgY2FvIGjGoW4uIEPDoWMgZ8OzaSBiYW8gZ+G7k206DQoNCiAgIC0gKipGcmVlIChhZC1zdXBwb3J0ZWQpOioqIEfDs2kgbWnhu4VuIHBow60gKGPDsyBxdeG6o25nIGPDoW8pLg0KDQogICAtICoqUHJlbWl1bSAocGFpZCBzdWJzY3JpcHRpb24pOioqIEfDs2kgY2FvIGPhuqVwIChjw7MgdHLhuqMgcGjDrSkuDQoNCi0gKipCaeG6v24gcHJlZmZlcmVkX3ByZW1pdW1fcGxhbioqIHRo4buDIGhp4buHbiBs4buxYSBjaOG7jW4gxrB1IHRpw6puIGPhu6dhIG5nxrDhu51pIGTDuW5nIG7hur91IGPDsyDDvSDEkeG7i25oIHRy4bqjIHBow60sIGNo4bqzbmcgaOG6oW4gbmjGsCBnw7NpIGPDoSBuaMOibiwgc2luaCB2acOqbiBoYXkgZ2lhIMSRw6xuaC4gVmnhu4djIG5nxrDhu51pIGTDuW5nIMSRw6MgY8OzIMSR4buLbmggaMaw4bubbmcgcsO1IHLDoG5nIHbhu4EgbG/huqFpIGfDs2kgY2hvIHRo4bqleSB0aeG7gW0gbsSDbmcgY2FvIHRyb25nIHZp4buHYyBz4bq1biBzw6BuZyBjaGkgdHLhuqMuIEPDoWMgZ8OzaSB24bubaSBnacOhIHRp4buBbiBj4bulIHRo4buDIG5oxrAgc2F1Og0KDQogICAtICoqU3R1ZGVudCBQbGFuLVJzIDU5L21vbnRoOioqIHPhurVuIHPDoG5nIHRy4bqjIHbDoCBjaOG7jW4gZ8OzaSBo4buNYyBzaW5oICg1OSQvIHRow6FuZykuDQoNCiAgIC0gKipJbmRpdmlkdWFsIFBsYW4tUnMgMTE5LyBtb250aDoqKiBz4bq1biBzw6BuZyB0cuG6oyB2w6AgY2jhu41uIGfDs2kgY8OhIG5ow6JuICgxMTkkLyB0aMOhbmcpLg0KDQogICAtICoqRHVvIHBsYW4tIFJzIDE0OS9tb250aDoqKiBz4bq1biBzw6BuZyB0cuG6oyB2w6AgY2jhu41uIGfDs2kgxJHDtGkgKDE0OSQvIHRow6FuZykuDQoNCiAgIC0gKipGYW1pbHkgUGxhbi1ScyAxNzkvbW9udGg6Kiogc+G6tW4gc8OgbmcgdHLhuqMgdsOgIGNo4buNbiBnw7NpIGdpYSDEkcOsbmggKDE3OSQvIHRow6FuZykuDQoNCiAgIC0gKipOb25lOioqIENoxrBhIHPhurVuIHPDoG5nIHRy4bqjIGfDs2kgY2FvIGPhuqVwLg0KDQotICoqQmnhur9uIHByZWZlcnJlZF9saXN0ZW5pbmdfY29udGVudCoqIHBow6JuIGJp4buHdCBnaeG7r2EgbmfGsOG7nWkgZMO5bmcgxrB1IHRpw6puIG5naGUgbmjhuqFjIHbDoCBuZ8aw4budaSB0aMOtY2ggcG9kY2FzdC4gTeG7l2kgbmjDs20gY8OzIHRo4buDIGPDsyBuaHUgY+G6p3Ugc+G7rSBk4bulbmcgUHJlbWl1bSBraMOhYyBuaGF1LCB2w60gZOG7pSBuZ8aw4budaSBuZ2hlIG5o4bqhYyB0aMaw4budbmcgeHV5w6puIGPDsyB0aOG7gyBxdWFuIHTDom0gaMahbiDEkeG6v24gY2jhuqV0IGzGsOG7o25nIMOibSB0aGFuaCB2w6AgdHLhuqNpIG5naGnhu4dtIGtow7RuZyBxdeG6o25nIGPDoW8g4oCTIG5o4buvbmcgeeG6v3UgdOG7kSB0aMO6YyDEkeG6qXkgbmh1IGPhuqd1IG7Dom5nIGPhuqVwIHTDoGkga2hv4bqjbi4NCg0KICAgLSAqKk11c2ljOioqIMOCbSBuaOG6oWMuDQoNCiAgIC0gKipQb2RjYXN0OioqIFThu4dwIMOibSB0aGFuaCBr4bu5IHRodeG6rXQgc+G7kSB24bubaSDEkWEgZOG6oW5nIG7hu5lpIGR1bmcuDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClbhu5tpIDQgYmnhur9uIG7DoHksIG5naGnDqm4gY+G7qXUga+G7syB24buNbmcgc+G6vSB4w6FjIMSR4buLbmggxJHGsOG7o2MgY8OhYyB54bq/dSB04buRIHF1YW4gdHLhu41uZyDhuqNuaCBoxrDhu59uZyDEkeG6v24gaMOgbmggdmkgbsOibmcgY+G6pXAgdMOgaSBraG/huqNuIGPhu6dhIG5nxrDhu51pIGTDuW5nLCB04burIMSRw7MgaOG7lyB0cuG7oyBjw6FjIG7hu4FuIHThuqNuZyDDom0gbmjhuqFjIHPhu5EgdHJvbmcgdmnhu4djIHjDonkgZOG7sW5nIGNow61uaCBzw6FjaCB0aHUgaMO6dCB2w6AgZHV5IHRyw6wgbmfGsOG7nWkgZMO5bmcgdHLhuqMgcGjDrS4NCjwvZGl2Pg0KDQotLS0NCg0KIyAqKkNIxq/GoE5HIDIuIFRI4buQTkcgS8OKIE3DlCBU4bqiKioNCg0KIyMgKioyLjEgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIDEgYmnhur9uKioNCg0KIyMjICoqMi4xLjEgQmnhur9uIHBo4bulIHRodeG7mWMgcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MqKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQrEkOG6p3UgdGnDqm4gbMOgIHRo4buRbmcga8OqIG3DtCB04bqjIGPhu6dhIGJp4bq/biBwaOG7pSB0aHXhu5ljIHByZW1pdW0gc3ViIHdpbGxpbmduZXNzLCBiaeG6v24gxJHhuqFpIGRp4buHbiBjaG8gbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIFNwb3RpZnkgUHJlbWl1bSBj4bunYSBuZ8aw4budaSBkw7luZywgdGEgY8OzIHRo4buDIHhlbSBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiB04bqnbiBz4buRIHbDoCB04bqnbiBzdeG6pXQgbmjGsCBzYXU6DQo8L2Rpdj4NCg0KYGBge3J9DQojIFTDrW5oIHThuqduIHPhu5EgdsOgIHThuqduIHN14bqldA0KYmFuZ3RzbzEgPC0gdGFibGUoc3BvdGlmeSRwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcykNCmJhbmd0c3VhdDEgPC0gcHJvcC50YWJsZShiYW5ndHNvMSkNCg0KIyBU4bqhbyBi4bqjbmcgZOG7ryBsaeG7h3UNCmJhbmcxIDwtIGRhdGEuZnJhbWUoDQogICJHacOhIHRy4buLIiA9IG5hbWVzKGJhbmd0c28xKSwNCiAgIlThuqduIHPhu5EiID0gYXMudmVjdG9yKGJhbmd0c28xKSwNCiAgIlThuqduIHN14bqldCAoJSkiID0gcm91bmQoYXMudmVjdG9yKGJhbmd0c3VhdDEpICogMTAwLCAyKSkNCg0KIyBIaeG7g24gdGjhu4sgYuG6o25nIGLhurFuZyBEVA0KZGF0YXRhYmxlKGJhbmcxLCBjYXB0aW9uID0gIkLhuqNuZzogVGjhu5FuZyBrw6ogYmnhur9uIHByZW1pdW1fc3ViX3dpbGxpbmduZXNzIikNCmBgYA0KDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkJp4bq/biBwcmVtaXVtIHN1YiB3aWxsaW5nbmVzcyB0aOG7gyBoaeG7h24gbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSDEkeG7gyDEkcSDbmcga8O9IGfDs2kgU3BvdGlmeSBQcmVtaXVtIGPhu6dhIG5nxrDhu51pIGTDuW5nLiDEkMOieSBsw6AgbeG7mXQgYmnhur9uIG5o4buLIHBow6JuIHbhu5tpIGhhaSBnacOhIHRy4buLIFllcyB2w6AgTm8sIGPhu6UgdGjhu4M6DQo8L2Rpdj4NCg0KLSAqKlllcyAoc+G6tW4gc8OgbmcpOioqIDE4NiBuZ8aw4budaSAoY2hp4bq/bSAzNS43NyUpDQoNCi0gKipObyAoY2jGsGEgc+G6tW4gc8OgbmcpOioqIDMzNCBuZ8aw4budaSAoY2hp4bq/bSA2NCwyMyUpDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkvhur90IHF14bqjIGNobyB0aOG6pXkgxJFhIHPhu5EgbmfGsOG7nWkgZMO5bmcgKGjGoW4gNjQlKSBraMO0bmcgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSDEkeG7gyBz4butIGThu6VuZyBk4buLY2ggduG7pSBQcmVtaXVtLCB0cm9uZyBraGkgY2jhu4kga2hv4bqjbmcgMzUuNzclIG5nxrDhu51pIGTDuW5nIHRo4buDIGhp4buHbiBz4buxIHPhurVuIHPDoG5nIMSRxINuZyBrw70uIMSQaeG7gXUgbsOgeSBwaOG6o24gw6FuaCByw6BvIGPhuqNuIGzhu5tuIHRyb25nIGjDoG5oIHZpIGNoaSB0cuG6oyBj4bunYSBuZ8aw4budaSBkw7luZyBTcG90aWZ5Lg0KDQpT4buxIGNow6puaCBs4buHY2ggxJHDoW5nIGvhu4MgZ2nhu69hIGhhaSBuaMOzbSBjaG8gdGjhuqV5IHbhuqtuIGPDsm4gcsOgbyBj4bqjbiBs4bubbiB0cm9uZyB2aeG7h2MgY2h1eeG7g24gxJHhu5VpIG5nxrDhu51pIGTDuW5nIG1p4buFbiBwaMOtIHNhbmcgdHLhuqMgcGjDrS4gTmfGsOG7nWkgZMO5bmcgY8OzIHRo4buDIHbhuqtuIGNoxrBhIGPhuqNtIG5o4bqtbiDEkcaw4bujYyBz4buxIGtow6FjIGJp4buHdCByw7UgcsOgbmcgZ2nhu69hIHBoacOqbiBi4bqjbiBtaeG7hW4gcGjDrSB2w6AgUHJlbWl1bSwgaG/hurdjIGPhuqNtIHRo4bqleSBy4bqxbmcgY8OhYyB0w61uaCBuxINuZyBQcmVtaXVtIGtow7RuZyDEkeG7pyBo4bqlcCBk4bqrbiDEkeG7gyBjaGkgdGnhu4FuLiBOZ2/DoGkgcmEsIG5ow6JuIGto4bqpdSBo4buNYywgdGh1IG5o4bqtcCBjw6EgbmjDom4sIGjDoG5oIHZpIG5naGUgbmjhuqFjLCB2w6AgY8OhYyB54bq/dSB04buRIHRy4bqjaSBuZ2hp4buHbSBuZ8aw4budaSBkw7luZyBjxaluZyBjw7MgdGjhu4Mg4bqjbmggaMaw4bufbmcgbeG6oW5oIG3hur0gxJHhur9uIHF1eeG6v3QgxJHhu4tuaCBuw6B5Lg0KDQpWaeG7h2MgcGjDom4gdMOtY2ggYmnhur9uIG7DoHkga2jDtG5nIGNo4buJIGdpw7pwIG3DtCBow6xuaCBuZ2hpw6puIGPhu6l1IGNow61uaCB4w6FjIGjGoW4sIG3DoCBjw7JuIGN1bmcgY+G6pXAgZ+G7o2kgw70gY+G7pSB0aOG7gyBjaG8gY2hp4bq/biBsxrDhu6NjIGtpbmggZG9hbmggbmjhurFtIHTEg25nIHThu7cgbOG7hyBjaHV54buDbiDEkeG7lWkgbmfGsOG7nWkgZMO5bmcgc2FuZyBQcmVtaXVtIHRyb25nIHTGsMahbmcgbGFpLg0KDQpUYSBjw7MgdGjhu4MgdHLhu7FjIHF1YW4gaMOzYSBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiB0aMOgbmggYmnhu4N1IMSR4buTIG5oxrAgZMaw4bubaSDEkcOieToNCjwvZGl2Pg0KDQpgYGB7cn0NCnNwb3RpZnkgJT4lIGdyb3VwX2J5KHByZW1pdW1fc3ViX3dpbGxpbmduZXNzKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSAnJywgeSA9IG4sZmlsbCA9IHByZW1pdW1fc3ViX3dpbGxpbmduZXNzKSkgKw0KICAgIGdlb21fY29sKGNvbG9yID0gJ2JsYWNrJykgKw0KICAgIGNvb3JkX3BvbGFyKCd5JykgKw0KICAgIGdlb21fdGV4dChhZXMoeCA9IDEuMywgbGFiZWwgPSBuKSxwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gLjUpKSArDQogICAgbGFicyhjYXB0aW9uID0gIkJp4buDdSDEkeG7kyB0csOybiB0aOG7gyBoaeG7h24gbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIFNwb3RpZnkgUHJlbWl1bSBj4bunYSBuZ8aw4budaSBkw7luZyIpICsNCiAgICB0aGVtZV92b2lkKCkNCmBgYA0KDQoNCiMjIyAqKjIuMS4yIEJp4bq/biBzcG90aWZ5IHVzYWdlIHBlcmlvZCoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRhIMSR4bq/biB24bubaSB0aOG7kW5nIGvDqiBtw7QgdOG6oyBj4bunYSBiaeG6v24gc3BvdGlmeSB1c2FnZSBwZXJpb2QsIMSRw6J5IGzDoCBiaeG6v24gbsOzaSB24buBIGtob+G6o25nIHRo4budaSBnaWFuIG3DoCBuZ8aw4budaSBkw7luZyDEkcOjIHPhu60gZOG7pW5nIFNwb3RpZnksIHRhIGPDsyB0aOG7gyB4ZW0ga+G6v3QgcXXhuqMgdGjhu5FuZyBrw6ogdOG6p24gc+G7kSB2w6AgdOG6p24gc3XhuqV0IG5oxrAgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KIyBUw61uaCB04bqnbiBz4buRIHbDoCB04bqnbiBzdeG6pXQNCmJhbmd0c28yIDwtIHRhYmxlKHNwb3RpZnkkc3BvdGlmeV91c2FnZV9wZXJpb2QpDQpiYW5ndHN1YXQyIDwtIHByb3AudGFibGUoYmFuZ3RzbzIpDQoNCiMgVOG6oW8gYuG6o25nIGThu68gbGnhu4d1DQpiYW5nMiA8LSBkYXRhLmZyYW1lKA0KICAiR2nDoSB0cuG7iyIgPSBuYW1lcyhiYW5ndHNvMiksDQogICJU4bqnbiBz4buRIiA9IGFzLnZlY3RvcihiYW5ndHNvMiksDQogICJU4bqnbiBzdeG6pXQgKCUpIiA9IHJvdW5kKGFzLnZlY3RvcihiYW5ndHN1YXQyKSAqIDEwMCwgMikpDQoNCiMgSGnhu4NuIHRo4buLIGLhuqNuZyBi4bqxbmcgRFQNCmRhdGF0YWJsZShiYW5nMiwgY2FwdGlvbiA9ICJC4bqjbmc6IFRo4buRbmcga8OqIGJp4bq/biBzcG90aWZ5X3VzYWdlX3BlcmlvZCIpDQpgYGANCg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpCaeG6v24gc3BvdGlmeV91c2FnZV9wZXJpb2QgxJHGsOG7o2MgY2hpYSB0aMOgbmggNCBuaMOzbSBjaMOtbmggYmFvIGfhu5NtOg0KPC9kaXY+DQoNCi0gKipMZXNzIHRoYW4gNiBtb250aHM6KiogOTEgbmfGsOG7nWkgKGNoaeG6v20gMTcuNSUpDQoNCi0gKio2IG1vbnRocyB0byAxIHllYXI6KiogMTE5IG5nxrDhu51pICgyMi44OSUpDQoNCi0gKioxIHllYXIgdG8gMiB5ZWFyczoqKiAxNDEgbmfGsOG7nWkgKDI3LjEyJSkNCg0KLSAqKk1vcmUgdGhhbiAyIHllYXJzOioqIDE2OSBuZ8aw4budaSAoMzIuNSUpDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkvhur90IHF14bqjIGNobyB0aOG6pXkgcGjhuqduIGzhu5tuIG5nxrDhu51pIGTDuW5nIHRyb25nIGLhu5kgZOG7ryBsaeG7h3UgxJHDoyBz4butIGThu6VuZyBTcG90aWZ5IHThu6sgMSBuxINtIHRy4bufIGzDqm4gKGNoaeG6v20gZ+G6p24gNjAlKSwgdHJvbmcgxJHDsyBuaMOzbSBjw7MgdGjhu51pIGdpYW4gc+G7rSBk4bulbmcgaMahbiAyIG7Eg20gY2hp4bq/bSB04bu3IGzhu4cgbOG7m24gbmjhuqV0ICgzMi41JSkuIE5nxrDhu6NjIGzhuqFpLCBuaMOzbSBuZ8aw4budaSBkw7luZyBt4bubaSAoZMaw4bubaSA2IHRow6FuZykgY2hp4bq/bSB04bu3IGzhu4cgdGjhuqVwIG5o4bqldCAoMTcuNSUpLg0KDQrEkGnhu4F1IG7DoHkgZ+G7o2kgw70gcuG6sW5nIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIG7hu4FuIHThuqNuZyBjw7MgdGjhu4MgbMOgIG3hu5l0IHnhur91IHThu5EgcXVhbiB0cuG7jW5nIOG6o25oIGjGsOG7n25nIMSR4bq/biBz4buxIHPhurVuIHPDoG5nIMSRxINuZyBrw70gZ8OzaSBQcmVtaXVtLiBOZ8aw4budaSBkw7luZyBz4butIGThu6VuZyBTcG90aWZ5IGzDonUgZMOgaSBjw7Mga2jhuqMgbsSDbmcgxJHDoyBow6xuaCB0aMOgbmggdGjDs2kgcXVlbiBz4butIGThu6VuZywgbeG7qWMgxJHhu5kgaMOgaSBsw7JuZyBjYW8gdsOgIGPDsyB4dSBoxrDhu5tuZyBuw6JuZyBj4bqlcCBk4buLY2ggduG7pSDEkeG7gyB04buRaSDGsHUgaMOzYSB0cuG6o2kgbmdoaeG7h20uIFRyb25nIGtoaSDEkcOzLCBuZ8aw4budaSBkw7luZyBt4bubaSBjw7MgdGjhu4MgY8OybiDEkWFuZyDhu58gZ2lhaSDEkW/huqFuIGtow6FtIHBow6EgdsOgIGRvIGThu7EgdHJvbmcgdmnhu4djIGNoaSB0cuG6oy4NCg0KRG8gxJHDsywgc3BvdGlmeV91c2FnZV9wZXJpb2QgbMOgIG3hu5l0IGJp4bq/biB0aeG7gW0gbsSDbmcgY8OzIHTDoWMgxJHhu5luZyDEkeG6v24gYmnhur9uIHBo4bulIHRodeG7mWMgcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MsIHbDoCBob8OgbiB0b8OgbiBo4bujcCBsw70ga2hpIMSRxrBhIHbDoG8gbcO0IGjDrG5oIHBow6JuIHTDrWNoIG5o4bqxbSBraeG7g20gxJHhu4tuaCBt4bupYyDEkeG7mSDhuqNuaCBoxrDhu59uZyBuw6B5Lg0KDQpUYSBjw7MgdGjhu4MgdHLhu7FjIHF1YW4gaMOzYSBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiB0aMOgbmggYmnhu4N1IMSR4buTIGPhu5l0IG5oxrAgZMaw4bubaSDEkcOieToNCjwvZGl2Pg0KDQpgYGB7cn0NCnNwb3RpZnkgJT4lIGdyb3VwX2J5KHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPSBzcG90aWZ5X3VzYWdlX3BlcmlvZCwgeSA9IG4pKSsNCiAgZ2VvbV9jb2woZmlsbD0ncGluaycpKw0KICBsYWJzKHg9IlRo4budaSBnaWFuIG3DoCBuZ8aw4budaSBkw7luZyDEkcOjIHPhu60gZOG7pW5nIFNwb3RpZnkiLCB5ID0gIlPhu5EgbMaw4bujbmcgbmfGsOG7nWkgZMO5bmciKSsNCiAgbGFicyhjYXB0aW9uID0gIkJp4buDdSDEkeG7kyB0aOG7nWkgZ2lhbiBtw6AgbmfGsOG7nWkgZMO5bmcgxJHDoyBz4butIGThu6VuZyBTcG90aWZ5IikrDQogIGdlb21fdGV4dChhZXMobGFiZWwgPW4pLCB2anVzdD0yLCBjb2xvciA9ICdibGFjaycpDQpgYGANCg0KDQoNCiMjIyAqKjIuMS4zIEJp4bq/biBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVGEgxJHhur9uIHbhu5tpIHRo4buRbmcga8OqIG3DtCB04bqjIHRp4bq/cCB0aGVvIGPhu6dhIGJp4bq/biBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuLCDEkcOieSBsw6AgYmnhur9uIHRo4buDIGhp4buHbiBsb+G6oWkgZ8OzaSBk4buLY2ggduG7pSBtw6AgbmfGsOG7nWkgZMO5bmcgaGnhu4duIMSRYW5nIHPhu60gZOG7pW5nLCB0YSBjw7MgdGjhu4MgeGVtIGvhur90IHF14bqjIHRo4buRbmcga8OqIHThuqduIHPhu5EgdsOgIHThuqduIHN14bqldCBuaMawIHNhdToNCjwvZGl2Pg0KDQpgYGB7cn0NCiMgVMOtbmggdOG6p24gc+G7kSB2w6AgdOG6p24gc3XhuqV0DQpiYW5ndHNvMyA8LSB0YWJsZShzcG90aWZ5JHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pDQpiYW5ndHN1YXQzIDwtIHByb3AudGFibGUoYmFuZ3RzbzMpDQoNCiMgVOG6oW8gYuG6o25nIGThu68gbGnhu4d1DQpiYW5nMyA8LSBkYXRhLmZyYW1lKA0KICAiR2nDoSB0cuG7iyIgPSBuYW1lcyhiYW5ndHNvMyksDQogICJU4bqnbiBz4buRIiA9IGFzLnZlY3RvcihiYW5ndHNvMyksDQogICJU4bqnbiBzdeG6pXQgKCUpIiA9IHJvdW5kKGFzLnZlY3RvcihiYW5ndHN1YXQzKSAqIDEwMCwgMikpDQoNCiMgSGnhu4NuIHRo4buLIGLhuqNuZyBi4bqxbmcgRFQNCmRhdGF0YWJsZShiYW5nMywgY2FwdGlvbiA9ICJC4bqjbmc6IFRo4buRbmcga8OqIGJp4bq/biBzcG90aWZ5X3N1YnNjcmlwdGlvbl9wbGFuIikNCmBgYA0KDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkJp4bq/biBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuIMSRxrDhu6NjIGNoaWEgbMOgbSAyIG5ow7NtOg0KPC9kaXY+DQoNCi0gKipGcmVlIChhZC1zdXBwb3J0ZWQpKio6IDQyNCBuZ8aw4budaSAoY2hp4bq/bSA4MS41NCUpDQoNCi0gKipQcmVtaXVtIChwYWlkIHN1YnNjcmlwdGlvbikqKjogOTYgbmfGsOG7nWkgKGNoaeG6v20gMTguNDYlKQ0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpT4buRIGxp4buHdSBjaG8gdGjhuqV5IMSRYSBz4buRIG5nxrDhu51pIGTDuW5nIChoxqFuIDgwJSkgxJFhbmcgc+G7rSBk4bulbmcgZ8OzaSBtaeG7hW4gcGjDrSBjw7MgcXXhuqNuZyBjw6FvLiBUcm9uZyBraGkgxJHDsywgY2jhu4kgbeG7mXQgcGjhuqduIG5o4buPIG5nxrDhu51pIGTDuW5nIMSRw6MgbOG7sWEgY2jhu41uIGfDs2kgdHLhuqMgcGjDrSBQcmVtaXVtLiDEkGnhu4F1IG7DoHkgcGjhuqNuIMOhbmggeHUgaMaw4bubbmcgcGjhu5UgYmnhur9uIGzDoCBuZ8aw4budaSBkw7luZyB0aMaw4budbmcgxrB1IHRpw6puIHRy4bqjaSBuZ2hp4buHbSBtaeG7hW4gcGjDrSB0csaw4bubYyBraGkgcXV54bq/dCDEkeG7i25oIG7Dom5nIGPhuqVwLg0KDQpUdXkgbmhpw6puLCBjaMOtbmggc+G7sSBraMOhYyBiaeG7h3QgZ2nhu69hIGhhaSBuaMOzbSBuw6B5IGzhuqFpIHLhuqV0IGPDsyBnacOhIHRy4buLIHRyb25nIHBow6JuIHTDrWNoLiBOaOG7r25nIG5nxrDhu51pIMSRw6Mgc+G7rSBk4bulbmcgZ8OzaSBQcmVtaXVtIGPDsyB0aOG7gyDEkcaw4bujYyB4ZW0gbMOgIMSRw6MgY2jhuqVwIG5o4bqtbiBjaGkgdHLhuqMgxJHhu4MgY+G6o2kgdGhp4buHbiB0cuG6o2kgbmdoaeG7h20sIHbDoCB04burIMSRw7MgY8OzIHRo4buDIGxpw6puIHF1YW4gY2jhurd0IGNo4bq9IMSR4bq/biBt4bupYyDEkeG7mSBz4bq1biBzw6BuZyDEkcSDbmcga8O9IGhv4bq3YyBkdXkgdHLDrCBQcmVtaXVtIHRyb25nIHTGsMahbmcgbGFpLg0KDQpEbyDEkcOzLCBiaeG6v24gc3BvdGlmeSBzdWJzY3JpcHRpb24gcGxhbiBsw6AgbeG7mXQgeeG6v3UgdOG7kSB0cuG7sWMgdGnhur9wIHBo4bqjbiDDoW5oIGjDoG5oIHZpIHRpw6p1IGTDuW5nIGThu4tjaCB24bulIGPhu6dhIG5nxrDhu51pIGTDuW5nIHbDoCBjw7Mga2jhuqMgbsSDbmcg4bqjbmggaMaw4bufbmcgxJHDoW5nIGvhu4MgxJHhur9uIGJp4bq/biBwaOG7pSB0aHXhu5ljIHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLiBWaeG7h2MgxJHGsGEgYmnhur9uIG7DoHkgdsOgbyBtw7QgaMOsbmggcGjDom4gdMOtY2ggbMOgIGhvw6BuIHRvw6BuIGjhu6NwIGzDvSBuaOG6sW0gdMOsbSBoaeG7g3UgeGVtIGxv4bqhaSBnw7NpIGhp4buHbiB04bqhaSBjw7Mg4bqjbmggaMaw4bufbmcgbmjGsCB0aOG6vyBuw6BvIMSR4bq/biBxdXnhur90IMSR4buLbmggxJHEg25nIGvDvSBQcmVtaXVtLg0KDQpUYSBjw7MgdGjhu4MgdHLhu7FjIHF1YW4gaMOzYSBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiB0aMOgbmggYmnhu4N1IMSR4buTIHRyw7JuIG5oxrAgZMaw4bubaSDEkcOieToNCjwvZGl2Pg0KDQpgYGB7cn0NCnNwb3RpZnkgJT4lIGdyb3VwX2J5KHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pICU+JSBzdW1tYXJpc2UobiA9IG4oKSkgJT4lDQogIGdncGxvdChhZXMoeCA9ICcnLCB5ID0gbixmaWxsID0gc3BvdGlmeV9zdWJzY3JpcHRpb25fcGxhbikpICsNCiAgICBnZW9tX2NvbChjb2xvciA9ICdibGFjaycpICsNCiAgICBjb29yZF9wb2xhcigneScpICsNCiAgICBnZW9tX3RleHQoYWVzKHggPSAxLjMsIGxhYmVsID0gbikscG9zaXRpb24gPSBwb3NpdGlvbl9zdGFjayh2anVzdCA9IC41KSkgKw0KICAgIGxhYnMoY2FwdGlvbiA9ICJCaeG7g3UgxJHhu5MgdHLDsm4gdGjhu4MgaGnhu4duIGxv4bqhaSBnw7NpIGThu4tjaCB24bulIG3DoCBuZ8aw4budaSBkw7luZyBoaeG7h24gxJFhbmcgc+G7rSBk4bulbmciKSArDQogICAgdGhlbWVfdm9pZCgpDQpgYGANCg0KDQojIyMgKioyLjEuNCBCaeG6v24gcHJlZmZlcmVkIHByZW1pdW0gcGxhbioqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkJp4bq/biBwcmVmZmVyZWQgcHJlbWl1bSBwbGFuIGzDoCBiaeG6v24gcGjhuqNuIMOhbmggbG/huqFpIGfDs2kgUHJlbWl1bSBtw6AgbmfGsOG7nWkgZMO5bmcgxrBhIHRow61jaCBob+G6t2MgbW9uZyBtdeG7kW4gxJHEg25nIGvDvSBu4bq/dSBjw7MgY8ahIGjhu5lpLCB0YSBjw7MgdGjhu4MgeGVtIGvhur90IHF14bqjIHRo4buRbmcga8OqIHThuqduIHPhu5EgdsOgIHThuqduIHN14bqldCBuaMawIHNhdToNCjwvZGl2Pg0KDQpgYGB7cn0NCiMgVMOtbmggdOG6p24gc+G7kSB2w6AgdOG6p24gc3XhuqV0DQpiYW5ndHNvNCA8LSB0YWJsZShzcG90aWZ5JHByZWZmZXJlZF9wcmVtaXVtX3BsYW4pDQpiYW5ndHN1YXQ0IDwtIHByb3AudGFibGUoYmFuZ3RzbzQpDQoNCiMgVOG6oW8gYuG6o25nIGThu68gbGnhu4d1DQpiYW5nNCA8LSBkYXRhLmZyYW1lKA0KICAiR2nDoSB0cuG7iyIgPSBuYW1lcyhiYW5ndHNvNCksDQogICJU4bqnbiBz4buRIiA9IGFzLnZlY3RvcihiYW5ndHNvNCksDQogICJU4bqnbiBzdeG6pXQgKCUpIiA9IHJvdW5kKGFzLnZlY3RvcihiYW5ndHN1YXQ0KSAqIDEwMCwgMikpDQoNCiMgSGnhu4NuIHRo4buLIGLhuqNuZyBi4bqxbmcgRFQNCmRhdGF0YWJsZShiYW5nNCwgY2FwdGlvbiA9ICJC4bqjbmc6IFRo4buRbmcga8OqIGJp4bq/biBwcmVmZmVyZWRfcHJlbWl1bV9wbGFuIikNCmBgYA0KDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkJp4bq/biBwcmVmZmVyZWQgcHJlbWl1bSBwbGFuIGPDsyBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiBuaMawIHNhdToNCjwvZGl2Pg0KDQotICoqSW5kaXZpZHVhbCBQbGFuIOKAkyBScyAxMTkvbW9udGgqKjogOTUgbmfGsOG7nWkgKGNoaeG6v20gMTgsMjclKQ0KDQotICoqU3R1ZGVudCBQbGFuIOKAkyBScyA1OS9tb250aCoqOiA5NCBuZ8aw4budaSAoY2hp4bq/bSAxOCwwNyUpDQoNCi0gKipEdW8gUGxhbiDigJMgUnMgMTQ5L21vbnRoKio6IDg0IG5nxrDhu51pIChjaGnhur9tIDE2LDE1JSkNCg0KLSAqKkZhbWlseSBQbGFuIOKAkyBScyAxNzkvbW9udGgqKjogMzkgbmfGsOG7nWkgKGNoaeG6v20gNyw1JSkNCg0KLSAqKk5vbmUgKGtow7RuZyBjaOG7jW4gZ8OzaSBuw6BvKSoqOiAyMDggbmfGsOG7nWkgKGNoaeG6v20gNDAlKQ0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUYSB0aOG6pXkgcuG6sW5nIGPDsyDEkeG6v24gNDAlIG5nxrDhu51pIGTDuW5nIGtow7RuZyBxdWFuIHTDom0gaG/hurdjIGtow7RuZyBjw7Mgbmh1IGPhuqd1IGNo4buNbiBi4bqldCBr4buzIGfDs2kgUHJlbWl1bSBuw6BvLCB0cm9uZyBraGkgNjAlIGPDsm4gbOG6oWkgY8OzIHPhu7EgcGjDom4gYuG7lSBraMOhIMSR4buTbmcgxJHhu4F1IGdp4buvYSBjw6FjIGfDs2kuIEfDs2kgY8OhIG5ow6JuIHbDoCBnw7NpIHNpbmggdmnDqm4gxJHGsOG7o2MgxrBhIGNodeG7mW5nIG5o4bqldCAoa2hv4bqjbmcgMTglIG3hu5dpIGxv4bqhaSksIGPDsyB0aOG7gyBkbyBjaGkgcGjDrSB0aOG6pXAgdsOgIHBow7kgaOG7o3AgduG7m2kgbmfGsOG7nWkgZMO5bmcgY8OhIG5ow6JuIGhv4bq3YyBzaW5oIHZpw6puLiBHw7NpIER1byB2w6AgRmFtaWx5IMOtdCBwaOG7lSBiaeG6v24gaMahbiwgY8OzIHRo4buDIGRvIGdpw6EgY2FvIGhv4bq3YyBuZ8aw4budaSBkw7luZyBraMO0bmcgY8OzIG5odSBj4bqndSBjaGlhIHPhursgdMOgaSBraG/huqNuLg0KDQpOaMOsbiBjaHVuZywgYmnhur9uIG7DoHkgcGjhuqNuIMOhbmggbeG7qWMgxJHhu5kgcXVhbiB0w6JtIGPhu6dhIG5nxrDhu51pIGTDuW5nIMSR4bq/biBjw6FjIGzhu7FhIGNo4buNbiB0cuG6oyBwaMOtIGPhu6UgdGjhu4MsIHThu6sgxJHDsyBjw7Mga2jhuqMgbsSDbmcgbGnDqm4gcXVhbiB0cuG7sWMgdGnhur9wIMSR4bq/biBow6BuaCB2aSBob+G6t2MgeHUgaMaw4bubbmcgxJHEg25nIGvDvSBQcmVtaXVtIHRo4buxYyBz4buxIHRyb25nIHTGsMahbmcgbGFpLiBOZ8aw4budaSBkw7luZyBjw6BuZyBjw7Mgc+G7sSBxdWFuIHTDom0gcsO1IHLDoG5nIMSR4bq/biBjw6FjIGfDs2kgUHJlbWl1bSBj4bulIHRo4buDIHRow6wgbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBQcmVtaXVtIChwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcykgY8OzIHRo4buDIGPDoG5nIGNhby4gVsOsIHbhuq15LCBiaeG6v24gcHJlZmZlcmVkX3ByZW1pdW1fcGxhbiBsw6AgbeG7mXQgeeG6v3UgdOG7kSBo4bujcCBsw70gxJHhu4MgxJHGsGEgdsOgbyBtw7QgaMOsbmggbmjhurFtIGtp4buDbSDEkeG7i25oIG3hu5FpIGxpw6puIGjhu4cgZ2nhu69hIGxv4bqhaSBnw7NpIG1vbmcgbXXhu5FuIHbDoCBxdXnhur90IMSR4buLbmggxJHEg25nIGvDvSBQcmVtaXVtLg0KDQpUYSBjw7MgdGjhu4MgdHLhu7FjIHF1YW4gaMOzYSBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiB0aMOgbmggYmnhu4N1IMSR4buTIG5oxrAgZMaw4bubaSDEkcOieToNCjwvZGl2Pg0KDQpgYGB7cn0NCnNwb3RpZnkgJT4lIGdyb3VwX2J5KHByZWZmZXJlZF9wcmVtaXVtX3BsYW4pICU+JSBzdW1tYXJpc2UobiA9IG4oKSkgJT4lDQogIG11dGF0ZShwZXJjZW50ID0gbiAvIHN1bShuKSkgJT4lDQogIGdncGxvdChhZXMoeCA9IHBlcmNlbnQsIHkgPSByZW9yZGVyKHByZWZmZXJlZF9wcmVtaXVtX3BsYW4sIHBlcmNlbnQpKSkgKw0KICBnZW9tX2NvbChmaWxsID0gJ3NreWJsdWUnKSArDQogIHNjYWxlX3hfY29udGludW91cyhsYWJlbHMgPSBwZXJjZW50X2Zvcm1hdChhY2N1cmFjeSA9IDAuMDEpKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBwYXN0ZTAocm91bmQocGVyY2VudCAqIDEwMCwgMiksICIlIikpLA0KICAgICAgICAgICAgaGp1c3QgPSAxLCBjb2xvciA9ICdibGFjaycpICsNCiAgbGFicyh4ID0gIlPhu5EgbMaw4bujbmcgbmfGsOG7nWkgZMO5bmciLCB5ID0gIkxv4bqhaSBnw7NpIFByZW1pdW0gbcOgIG5nxrDhu51pIGTDuW5nIMawYSB0aMOtY2ggaG/hurdjIG1vbmcgbXXhu5FuIMSRxINuZyBrw70iLCB5PSJT4buRIGzGsOG7o25nIG5nxrDhu51pIGTDuW5nIiwgY2FwdGlvbiA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIGxv4bqhaSBnw7NpIFByZW1pdW0gbcOgIG5nxrDhu51pIGTDuW5nIMawYSB0aMOtY2ggaG/hurdjIG1vbmcgbXXhu5FuIMSRxINuZyBrw70iKQ0KYGBgDQoNCg0KDQojIyMgKioyLjEuNSBCaeG6v24gcHJlZmVycmVkIGxpc3RlbmluZyBjb250ZW50KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KQmnhur9uIHByZWZlcnJlZCBsaXN0ZW5pbmcgY29udGVudCBsw6AgYmnhur9uIG7hu5lpIGR1bmcgbmfGsOG7nWkgZMO5bmcgxrB1IHRpw6puIGzhu7FhIGNo4buNbiBraGkgc+G7rSBk4bulbmcgU3BvdGlmeSwgY+G7pSB0aOG7gyBsw6AgZ2nhu69hIG5naGUgbmjhuqFjIChNdXNpYykgdsOgIG5naGUgcG9kY2FzdCAoUG9kY2FzdCksIHRhIGPDsyB0aOG7gyB4ZW0ga+G6v3QgcXXhuqMgdGjhu5FuZyBrw6ogdOG6p24gc+G7kSB2w6AgdOG6p24gc3XhuqV0IG5oxrAgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KIyBUw61uaCB04bqnbiBz4buRIHbDoCB04bqnbiBzdeG6pXQNCmJhbmd0c281IDwtIHRhYmxlKHNwb3RpZnkkcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50KQ0KYmFuZ3RzdWF0NSA8LSBwcm9wLnRhYmxlKGJhbmd0c281KQ0KDQojIFThuqFvIGLhuqNuZyBk4buvIGxp4buHdQ0KYmFuZzUgPC0gZGF0YS5mcmFtZSgNCiAgIkdpw6EgdHLhu4siID0gbmFtZXMoYmFuZ3RzbzUpLA0KICAiVOG6p24gc+G7kSIgPSBhcy52ZWN0b3IoYmFuZ3RzbzUpLA0KICAiVOG6p24gc3XhuqV0ICglKSIgPSByb3VuZChhcy52ZWN0b3IoYmFuZ3RzdWF0NSkgKiAxMDAsIDIpKQ0KDQojIEhp4buDbiB0aOG7iyBi4bqjbmcgYuG6sW5nIERUDQpkYXRhdGFibGUoYmFuZzUsIGNhcHRpb24gPSAiQuG6o25nOiBUaOG7kW5nIGvDqiBiaeG6v24gcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50IikNCmBgYA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpCaeG6v24gcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50IGPDsyBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiBuaMawIHNhdToNCjwvZGl2Pg0KDQotICoqTXVzaWMqKjogNDEwIG5nxrDhu51pIChjaGnhur9tIDc4LDg1JSkNCg0KLSAqKlBvZGNhc3QqKjogMTEwIG5nxrDhu51pIChjaGnhur9tIDIxLDE1JSkNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KS+G6v3QgcXXhuqMgY2hvIHRo4bqleSBwaOG6p24gbOG7m24gbmfGsOG7nWkgZMO5bmcgKGfhuqduIDc5JSkgxrB1IHRpw6puIG5naGUgbmjhuqFjLCB0cm9uZyBraGkgY2jhu4kga2hv4bqjbmcgMjElIGPDsyB4dSBoxrDhu5tuZyBuZ2hlIHBvZGNhc3QuIMSQaeG7gXUgbsOgeSBwaOG6o24gw6FuaCB0aOG7sWMgdOG6vyBy4bqxbmcgU3BvdGlmeSDEkcaw4bujYyBz4butIGThu6VuZyBwaOG7lSBiaeG6v24gbmjhuqV0IHbhu5tpIG3hu6VjIMSRw61jaCBnaeG6o2kgdHLDrSDDom0gbmjhuqFjIHRydXnhu4FuIHRo4buRbmcsIGPDsm4gcG9kY2FzdCB24bqrbiBjaOG7iSBsw6AgbeG7mXQgaMOsbmggdGjhu6ljIG7hu5lpIGR1bmcgcGjhu6UgduG7m2kgbMaw4bujbmcgbmfGsOG7nWkgZMO5bmcgw610IGjGoW4uDQoNClR1eSBuaGnDqm4sIGJp4bq/biBuw6B5IGPDsyB0aOG7gyDEkcOzbmcgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIHRyb25nIHZp4buHYyBk4buxIMSRb8OhbiB4dSBoxrDhu5tuZyDEkcSDbmcga8O9IGfDs2kgUHJlbWl1bSwgYuG7n2kgbmfGsOG7nWkgZMO5bmcgxrB1IHRpw6puIG5naGUgbmjhuqFjIGPDsyB0aOG7gyBxdWFuIHTDom0gxJHhur9uIHZp4buHYyBsb+G6oWkgYuG7jyBxdeG6o25nIGPDoW8sIGNo4bqldCBsxrDhu6NuZyDDom0gdGhhbmggY2FvIGjGoW4g4oCTIGPDoWMgbOG7o2kgw61jaCBu4buVaSBi4bqtdCBj4bunYSBnw7NpIFByZW1pdW0uIFRyb25nIGtoaSDEkcOzLCBuZ8aw4budaSBkw7luZyBuZ2hlIHBvZGNhc3QgY8OzIHRo4buDIMOtdCBi4buLIOG6o25oIGjGsOG7n25nIGLhu59pIHF14bqjbmcgY8OhbyBob+G6t2MgY2jhuqV0IGzGsOG7o25nIMOibSB0aGFuaCwgZG8gxJHDsyBt4bupYyDEkeG7mSBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGPDsyB0aOG7gyB0aOG6pXAgaMahbi4NCg0KRG8gxJHDsywgdmnhu4djIMSRxrBhIGJp4bq/biBwcmVmZXJyZWRfbGlzdGVuaW5nX2NvbnRlbnQgdsOgbyBtw7QgaMOsbmggbMOgIGhvw6BuIHRvw6BuIGjhu6NwIGzDvSwgZ2nDunAga2nhu4NtIMSR4buLbmggbGnhu4d1IG7hu5lpIGR1bmcgxrB1IHRpw6puIGPDsyDhuqNuaCBoxrDhu59uZyDEkeG6v24gcXV54bq/dCDEkeG7i25oIMSRxINuZyBrw70gUHJlbWl1bSBoYXkga2jDtG5nLg0KDQpUYSBjw7MgdGjhu4MgdHLhu7FjIHF1YW4gaMOzYSBr4bq/dCBxdeG6oyB0aOG7kW5nIGvDqiB0aMOgbmggYmnhu4N1IMSR4buTIHRyw7JuIG5oxrAgZMaw4bubaSDEkcOieToNCjwvZGl2Pg0KDQoNCmBgYHtyfQ0Kc3BvdGlmeSAlPiUgZ3JvdXBfYnkocHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50KSAlPiUgc3VtbWFyaXNlKG4gPSBuKCkpICU+JQ0KICBtdXRhdGUocGVyYyA9IHJvdW5kKG4gLyBzdW0obikgKiAxMDAsIDEpKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gIiIsIHkgPSBwZXJjLCBmaWxsID0gcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50KSkgKw0KICAgIGdlb21fY29sKGNvbG9yID0gJ2JsYWNrJykgKw0KICAgIGNvb3JkX3BvbGFyKCJ5IikgKw0KICAgIGdlb21fdGV4dChhZXMoeCA9IDEuMywgbGFiZWwgPSBwYXN0ZTAocGVyYywgIiUiKSksIA0KICAgICAgICAgICAgICBwb3NpdGlvbiA9IHBvc2l0aW9uX3N0YWNrKHZqdXN0ID0gMC41KSkgKw0KICAgIGxhYnMoY2FwdGlvbiA9ICJCaeG7g3UgxJHhu5MgdHLDsm4gduG7gSB04bu3IGzhu4cgbmfGsOG7nWkgZMO5bmcgxrB1IHRpw6puIGzhu7FhIGNo4buNbiBraGkgc+G7rSBk4bulbmcgU3BvdGlmeSIpICsNCiAgICB0aGVtZV92b2lkKCkNCmBgYA0KDQotLS0NCg0KIyMgKioyLjIgVGjhu5FuZyBrw6ogbcO0IHThuqMgY2hvIDIgYmnhur9uKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KxJDhu4MgaGnhu4N1IHLDtSBoxqFuIHbhu4EgY8OhYyB54bq/dSB04buRIGPDsyB0aOG7gyDhuqNuaCBoxrDhu59uZyDEkeG6v24gw70gxJHhu4tuaCB0cuG6oyBwaMOtIGNobyBnw7NpIFByZW1pdW0gY+G7p2EgbmfGsOG7nWkgZMO5bmcgU3BvdGlmeSwgcGjhuqduIG7DoHkgc+G6vSB0aeG6v24gaMOgbmggdGjhu5FuZyBrw6ogbcO0IHThuqMgdsOgIHF1YW4gc8OhdCBt4buRaSBsacOqbiBo4buHIGdp4buvYSBiaeG6v24gcGjhu6UgdGh14buZYyBuw6B5IHbhu5tpIG3hu5l0IHPhu5EgYmnhur9uIMSR4buZYyBs4bqtcCBxdWFuIHRy4buNbmcuIFZp4buHYyAgcGjDom4gdMOtY2ggdOG7q25nIGPhurdwIGJp4bq/biBz4bq9IGdpw7pwIGzDoG0gcsO1IHh1IGjGsOG7m25nIGjDoG5oIHZpIGPhu6dhIG5nxrDhu51pIGTDuW5nLCB04burIMSRw7MgY3VuZyBj4bqlcCBjxqEgc+G7nyBk4buvIGxp4buHdSDEkeG7i25oIGjGsOG7m25nIGNobyBjw6FjIG3DtCBow6xuaCBwaMOibiB0w61jaCBzw6J1IGjGoW4g4bufIHBo4bqnbiB0aeG6v3AgdGhlby4NCjwvZGl2Pg0KDQojIyMgKioyLjIuMSBD4bq3cCBiaeG6v24gcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MgdsOgIGJp4bq/biBzcG90aWZ5IHVzYWdlIHBlcmlvZCoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkPhurdwIGJp4bq/biBuw6B5IGdpw7pwIGtp4buDbSB0cmEgeGVtIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkgY+G7p2EgbmfGsOG7nWkgZMO5bmcgY8OzIG3hu5FpIGxpw6puIGjhu4cgbsOgbyB24bubaSBt4bupYyDEkeG7mSBz4bq1biBzw6BuZyDEkcSDbmcga8O9IFByZW1pdW0gaGF5IGtow7RuZy4gTmfGsOG7nWkgZMO5bmcgxJHDoyBn4bqvbiBiw7MgbMOidSBkw6BpIGPDsyB0aOG7gyBuaOG6rW4gdGjhuqV5IGdpw6EgdHLhu4sgbmhp4buBdSBoxqFuIHThu6sgZOG7i2NoIHbhu6UgdsOgIGRvIMSRw7MgY8OzIHh1IGjGsOG7m25nIHRy4bqjIHBow60gY2FvIGjGoW4g4oCTIGhv4bq3YyBuZ8aw4bujYyBs4bqhaS4gVmnhu4djIHBow6JuIHTDrWNoIG3hu5FpIHF1YW4gaOG7hyBuw6B5IHPhur0gY3VuZyBj4bqlcCBn4bujaSDDvSB24buBIGNoaeG6v24gbMaw4bujYyB0aeG6v3AgY+G6rW4gdGhlbyBuaMOzbSB0deG7lWkgc+G7rSBk4bulbmcg4bupbmcgZOG7pW5nLg0KPC9kaXY+DQoNCmBgYHtyfQ0KYmFuZ2NoZW8xIDwtIHRhYmxlKHNwb3RpZnkkcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MsIHNwb3RpZnkkc3BvdGlmeV91c2FnZV9wZXJpb2QpDQpiYW5nY2hlbzFfdG9uZyA8LSBhZGRtYXJnaW5zKGJhbmdjaGVvMSkNCmthYmxlKGJhbmdjaGVvMV90b25nLCBjYXB0aW9uID0gIkLhuqNuZyB04bqnbiBz4buRIGNow6lvIGPhu6dhIHByZW1pdW1fc3ViX3dpbGxpbmduZXNzIHbDoCBzcG90aWZ5X3VzYWdlX3BlcmlvZCIpDQpgYGANCg0KDQoNCmBgYHtyfQ0Ka2FibGUocHJvcC50YWJsZSh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSksIGNhcHRpb24gPSAiQuG6o25nIHThuqduIHN14bqldCBj4bunYSBwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcyB2w6Agc3BvdGlmeV91c2FnZV9wZXJpb2QiKQ0KYGBgDQoNCg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUYSByw7p0IHJhIG3hu5l0IHPhu5Egbmjhuq1uIHjDqXQgc2F1Og0KPC9kaXY+DQoNCi0gTmfGsOG7nWkgZMO5bmcgc+G7rSBk4bulbmcgU3BvdGlmeSB04burIDEgxJHhur9uIDIgbsSDbSBjaGnhur9tIHThu7cgbOG7hyBjYW8gbmjhuqV0IHbhu4EgbeG6t3Qgc+G7kSBsxrDhu6NuZyBuZ8aw4budaSBz4bq1biBzw6BuZyDEkcSDbmcga8O9IFByZW1pdW0gKDU3IG5nxrDhu51pLCB0xrDGoW5nIMSRxrDGoW5nIDEwLjk2JSB0b8OgbiBi4buZIG3huqt1KS4NCg0KLSBOaMOzbSBz4butIGThu6VuZyB0csOqbiAyIG7Eg20gY8OzIHPhu5EgbMaw4bujbmcgbmfGsOG7nWkgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBjxaluZyB0xrDGoW5nIMSR4buRaSBjYW8gKDYyIG5nxrDhu51pLCBjaGnhur9tIDExLjkyJSB0b8OgbiBt4bqrdSkuDQoNCi0gTmfGsOG7o2MgbOG6oWksIG5ow7NtIG5nxrDhu51pIGTDuW5nIG3hu5tpIChkxrDhu5tpIDYgdGjDoW5nKSBjw7MgdOG7tyBs4buHIHPhurVuIHPDoG5nIMSRxINuZyBrw70gUHJlbWl1bSBy4bqldCB0aOG6pXAgKDE1IG5nxrDhu51pLCBjaGnhur9tIDIuODglIHRvw6BuIG3huqt1KS4NCg0KLSBU4burIMSRw7MgY2hvIHRo4bqleSBuZ8aw4budaSBkw7luZyBz4butIGThu6VuZyBTcG90aWZ5IGPDoG5nIGzDonUgdGjDrCBjw6BuZyBjw7MgeHUgaMaw4bubbmcgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBQcmVtaXVtLg0KDQoNCiMjIyAqKjIuMi4yIEPhurdwIGJp4bq/biBwcmVtaXVtIHN1YiB3aWxsaW5nbmVzcyB2w6AgYmnhur9uIHNwb3RpZnkgc3Vic2NyaXB0aW9uIHBsYW4qKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUaMO0bmcgcXVhIGPhurdwIGJp4bq/biBuw6B5LCB0YSB4ZW0geMOpdCBsaeG7h3UgbmfGsOG7nWkgxJFhbmcgZMO5bmcgZ8OzaSBtaeG7hW4gcGjDrSAoRnJlZSkgY8OzIHh1IGjGsOG7m25nIMOtdCBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGjGoW4gc28gduG7m2kgbmjDs20gxJHDoyB04burbmcgdHLhuqNpIG5naGnhu4dtIGhv4bq3YyDEkWFuZyBz4butIGThu6VuZyBnw7NpIFByZW1pdW0gaGF5IGtow7RuZy4gS+G6v3QgcXXhuqMgdOG7qyDEkcOieSBz4bq9IGdpw7pwIFNwb3RpZnkgxJHDoW5oIGdpw6EgaGnhu4d1IHF14bqjIGPhu6dhIHBoacOqbiBi4bqjbiBtaeG7hW4gcGjDrSB0cm9uZyB2aeG7h2MgbnXDtGkgZMaw4buhbmcgaMOgbmggdmkgY2h1eeG7g24gxJHhu5VpIHNhbmcgdHLhuqMgcGjDrS4NCjwvZGl2Pg0KDQpgYGB7cn0NCmJhbmdjaGVvMiA8LSB0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pDQpiYW5nY2hlbzJfdG9uZyA8LSBhZGRtYXJnaW5zKGJhbmdjaGVvMikNCmthYmxlKGJhbmdjaGVvMl90b25nLCBjYXB0aW9uID0gIkLhuqNuZyB04bqnbiBz4buRIGNow6lvIGPhu6dhIHByZW1pdW1fc3ViX3dpbGxpbmduZXNzIHbDoCBiaeG6v24gc3BvdGlmeV9zdWJzY3JpcHRpb25fcGxhbiIpDQpgYGANCg0KDQpgYGB7cn0NCmthYmxlKHByb3AudGFibGUodGFibGUoc3BvdGlmeSRwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcywgc3BvdGlmeSRzcG90aWZ5X3N1YnNjcmlwdGlvbl9wbGFuKSksIGNhcHRpb24gPSAiQuG6o25nIHThuqduIHN14bqldCBj4bunYSBwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcyB2w6Agc3BvdGlmeV9zdWJzY3JpcHRpb25fcGxhbiIpDQpgYGANCg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUYSByw7p0IHJhIG3hu5l0IHPhu5Egbmjhuq1uIHjDqXQgc2F1Og0KPC9kaXY+DQoNCi0gVHJvbmcgbmjDs20gbmfGsOG7nWkgxJFhbmcgc+G7rSBk4bulbmcgZ8OzaSBGcmVlLCBjw7MgMzEwIG5nxrDhu51pIGtow7RuZyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIChjaGnhur9tIDU5LjYlKSB2w6AgMTE0IG5nxrDhu51pIHPhurVuIHPDoG5nIHRy4bqjIHBow60gKGNoaeG6v20gMjEuOSUpLg0KDQotIFRyb25nIG5ow7NtIG5nxrDhu51pIMSRYW5nIHPhu60gZOG7pW5nIGfDs2kgUHJlbWl1bSwgY8OzIDI0IG5nxrDhu51pIGtow7RuZyBz4bq1biBzw6BuZyB0aeG6v3AgdOG7pWMgdHLhuqMgcGjDrSAoY2hp4bq/bSA0LjYlKSB2w6AgNzIgbmfGsOG7nWkgduG6q24gc+G6tW4gc8OgbmcgZHV5IHRyw6wgdHLhuqMgcGjDrSAoY2hp4bq/bSAxMy44JSkuDQoNCi0gVGEgdGjhuqV5IMSRYSBz4buRIG5nxrDhu51pIGTDuW5nIGfDs2kgRnJlZSBjaMawYSBz4bq1biBzw6BuZyBjaHV54buDbiBzYW5nIHRy4bqjIHBow60sIHRyb25nIGtoaSDEkcOzLCBwaOG6p24gbOG7m24gbmfGsOG7nWkgZMO5bmcgZ8OzaSBQcmVtaXVtIHRo4buDIGhp4buHbiB4dSBoxrDhu5tuZyBkdXkgdHLDrCB2aeG7h2MgdHLhuqMgcGjDrS4gDQoNCi0gVOG7qyDEkcOzIHRhIHRo4bqleSBuZ8aw4budaSDEkWFuZyBz4butIGThu6VuZyBQcmVtaXVtIGPDsyB4dSBoxrDhu5tuZyBz4bq1biBzw6BuZyB0aeG6v3AgdOG7pWMgY2hpIHRy4bqjIGNhbyBoxqFuIG5oaeG7gXUgc28gduG7m2kgbmfGsOG7nWkgxJFhbmcgc+G7rSBk4bulbmcgZ8OzaSBGcmVlLiBEbyDEkcOzLCB04burIGfDs2MgxJHhu5kgY2hp4bq/biBsxrDhu6NjLCBTcG90aWZ5IGPDsyB0aOG7gyB04bqtbiBk4bulbmcgxJFp4buBdSBuw6B5IMSR4buDIHRoaeG6v3Qga+G6vyBjw6FjIGNoxrDGoW5nIHRyw6xuaCB0cuG6o2kgbmdoaeG7h20gUHJlbWl1bSBkw7luZyB0aOG7rSwgaG/hurdjIHTEg25nIGPGsOG7nW5nIGdpw6FvIGThu6VjIG5nxrDhu51pIGTDuW5nIEZyZWUgduG7gSBnacOhIHRy4buLIGPhu6dhIFByZW1pdW0uIA0KDQoNCiMjIyAqKjIuMi4zIEPhurdwIGJp4bq/biBwcmVtaXVtIHN1YiB3aWxsaW5nbmVzcyB2w6AgYmnhur9uIHByZWZmZXJlZCBwcmVtaXVtIHBsYW4qKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpD4bq3cCBiaeG6v24gbsOgeSBnacO6cCB0w6xtIGhp4buDdSBt4buRaSBsacOqbiBo4buHIGdp4buvYSBnw7NpIFByZW1pdW0gbW9uZyBtdeG7kW4gY+G7p2EgbmfGsOG7nWkgZMO5bmcgKHbDrSBk4bulIG5oxrAgZ8OzaSBjw6EgbmjDom4sIGfDs2kgc2luaCB2acOqbiwgZ8OzaSBnaWEgxJHDrG5oKSB2w6Agw70gxJHhu4tuaCBz4bq1biBzw6BuZyB0cuG6oyBwaMOtLiBQaMOibiB0w61jaCBuw6B5IGNobyBwaMOpcCBuaOG6rW4gYmnhur90IG5odSBj4bqndSB0aOG7sWMgdOG6vyB2w6AgbeG7qWMgxJHhu5kgcGjDuSBo4bujcCBj4bunYSBjw6FjIGfDs2kgaGnhu4duIHThuqFpIHbhu5tpIG5nxrDhu51pIGTDuW5nLCB04burIMSRw7MgbMOgbSBjxqEgc+G7nyDEkeG7gyDEkeG7gSB4deG6pXQgZ8OzaSBsaW5oIGhv4bqhdCBoxqFuLCBwaMO5IGjhu6NwIHbhu5tpIHThu6tuZyBwaMOibiBraMO6YyB0aOG7iyB0csaw4budbmcuDQo8L2Rpdj4NCg0KDQpgYGB7cn0NCmJhbmdjaGVvMyA8LSB0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHByZWZmZXJlZF9wcmVtaXVtX3BsYW4pDQpiYW5nY2hlbzNfdG9uZyA8LSBhZGRtYXJnaW5zKGJhbmdjaGVvMykNCmthYmxlKGJhbmdjaGVvM190b25nLCBjYXB0aW9uID0gIkLhuqNuZyB04bqnbiBz4buRIGNow6lvIGPhu6dhIHByZW1pdW1fc3ViX3dpbGxpbmduZXNzIHbDoCBiaeG6v24gcHJlZmZlcmVkX3ByZW1pdW1fcGxhbiIpDQpgYGANCg0KYGBge3J9DQprYWJsZShwcm9wLnRhYmxlKHRhYmxlKHNwb3RpZnkkcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MsIHNwb3RpZnkkcHJlZmZlcmVkX3ByZW1pdW1fcGxhbikpLCBjYXB0aW9uID0gIkLhuqNuZyB04bqnbiBzdeG6pXQgY+G7p2EgcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MgdsOgIHByZWZmZXJlZF9wcmVtaXVtX3BsYW4iKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRhIHLDunQgcmEgbeG7mXQgc+G7kSBuaOG6rW4geMOpdCBzYXU6DQo8L2Rpdj4NCg0KLSBOaMOzbSAiTm9uZSIgLSBLaMO0bmcgY2jhu41uIGfDs2kgUHJlbWl1bSBuw6BvIGzDoCBuaMOzbSBjaGnhur9tIHThu7cgbOG7hyBs4bubbiBuaOG6pXQgKDIwOC81MjAgbmfGsOG7nWksIH40MCUpLCAgY2jhu4kgNSBuZ8aw4budaSBz4bq1biBzw6BuZyB0cuG6oyBwaMOtLCDEkcOieSBsw6AgdOG7tyBs4buHIGPhu7FjIGvhu7MgdGjhuqVwLg0KDQotIEPDoWMgbmjDs20gbmfGsOG7nWkgZMO5bmcgY8OzIHPhu7EgbOG7sWEgY2jhu41uIHLDtSByw6BuZyB24buBIGfDs2kgUHJlbWl1bSBtb25nIG114buRbiAoRHVvLCBGYW1pbHksIEluZGl2aWR1YWwpIGPDsyB04bu3IGzhu4cgc+G6tW4gc8OgbmcgY2hpIHRy4bqjIGNhbyBoxqFuIGjhurNuLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSBy4bqxbmcga2hpIG5nxrDhu51pIGTDuW5nIMSRw6MgeMOhYyDEkeG7i25oIMSRxrDhu6NjIGfDs2kgcGjDuSBo4bujcCB24bubaSBob8OgbiBj4bqjbmggY8OhIG5ow6JuIChjw6EgbmjDom4sIGPhurdwIMSRw7RpLCBnaWEgxJHDrG5oLi4uKSwgaOG7jSBjw7MgeHUgaMaw4bubbmcgc+G6tW4gc8OgbmcgY2hpIHRy4bqjIGNhbyBoxqFuIG5oaeG7gXUuDQoNCi0gR8OzaSBTdHVkZW50IFBsYW4gZMO5IGdpw6EgcuG6uyBuaMawbmcgbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgY2hpIHRy4bqjIGPFqW5nIGtow7RuZyBjYW8uDQoNCi0gTmfGsOG7nWkgZMO5bmcgY8OzIHPhu7EgbOG7sWEgY2jhu41uIHLDtSByw6BuZyB24buBIGfDs2kgUHJlbWl1bSBtb25nIG114buRbiAoxJHhurdjIGJp4buHdCBsw6AgSW5kaXZpZHVhbCwgRHVvLCBGYW1pbHkpIGPDsyB4dSBoxrDhu5tuZyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGNhbyBoxqFuIHLDtSBy4buHdCBzbyB24bubaSBuaMOzbSBraMO0bmcgY2jhu41uIGfDs2kgbsOgby4gTmfGsOG7o2MgbOG6oWksIG5ow7NtIG5nxrDhu51pIGtow7RuZyBjw7MgbOG7sWEgY2jhu41uIGPhu6UgdGjhu4MgKCJOb25lIikgY8OzIHThu7cgbOG7hyB04burIGNo4buRaSBjYW8gbmjhuqV0LCBjaG8gdGjhuqV5IHPhu7EgbcahIGjhu5MgduG7gSBuaHUgY+G6p3Ugc+G6vSBsw6BtIGdp4bqjbSDDvSDEkeG7i25oIGNoaSB0cuG6oy4NCg0KIyMjICoqMi4yLjQgQ+G6t3AgYmnhur9uIHByZW1pdW0gc3ViIHdpbGxpbmduZXNzIHbDoCBiaeG6v24gcHJlZmVycmVkIGxpc3RlbmluZyBjb250ZW50KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KQ3Xhu5FpIGPDuW5nLCB2aeG7h2MgxJHhu5FpIGNoaeG6v3UgZ2nhu69hIHPhu58gdGjDrWNoIG7hu5lpIGR1bmcgbmdoZSAobmdoZSBuaOG6oWMgaGF5IHBvZGNhc3QpIHbDoCDDvSDEkeG7i25oIHRy4bqjIHBow60gc+G6vSBnacO6cCBsw6BtIHLDtSB2YWkgdHLDsiBj4bunYSBu4buZaSBkdW5nIHRyb25nIHZp4buHYyDhuqNuaCBoxrDhu59uZyDEkeG6v24gaMOgbmggdmkgbmfGsOG7nWkgZMO5bmcuIE5ow7NtIG5nxrDhu51pIGTDuW5nIG5naGUgcG9kY2FzdCBjw7MgdGjhu4MgxJHDoW5oIGdpw6EgY2FvIGPDoWMgdMOtbmggbsSDbmcgbsOibmcgY2FvIG5oxrAga2jDtG5nIHF14bqjbmcgY8OhbyBob+G6t2Mga2jhuqMgbsSDbmcgdOG6o2kgeHXhu5FuZyBvZmZsaW5lLCB0cm9uZyBraGkgbmfGsOG7nWkgdGjDrWNoIG5naGUgbmjhuqFjIGPDsyB0aOG7gyBxdWFuIHTDom0gxJHhur9uIGNo4bqldCBsxrDhu6NuZyDDom0gdGhhbmguIMSQw6J5IGzDoCBk4buvIGxp4buHdSBxdWFuIHRy4buNbmcgY2hvIGNoaeG6v24gbMaw4bujYyBjw6EgbmjDom4gaMOzYSB0cuG6o2kgbmdoaeG7h20gUHJlbWl1bS4NCjwvZGl2Pg0KDQoNCmBgYHtyfQ0KYmFuZ2NoZW80IDwtIHRhYmxlKHNwb3RpZnkkcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MsIHNwb3RpZnkkcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50KQ0KYmFuZ2NoZW80X3RvbmcgPC0gYWRkbWFyZ2lucyhiYW5nY2hlbzQpDQprYWJsZShiYW5nY2hlbzRfdG9uZywgY2FwdGlvbiA9ICJC4bqjbmcgdOG6p24gc+G7kSBjaMOpbyBj4bunYSBwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcyB2w6AgYmnhur9uIHByZWZlcnJlZF9saXN0ZW5pbmdfY29udGVudCIpDQpgYGANCg0KYGBge3J9DQprYWJsZShwcm9wLnRhYmxlKHRhYmxlKHNwb3RpZnkkcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MsIHNwb3RpZnkkcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50KSksIGNhcHRpb24gPSAiQuG6o25nIHThuqduIHN14bqldCBj4bunYSBwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcyB2w6AgcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50IikNCmBgYA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUYSByw7p0IHJhIG3hu5l0IHPhu5Egbmjhuq1uIHjDqXQgc2F1Og0KPC9kaXY+DQoNCi0gVHJvbmcgdOG7lW5nIHPhu5EgMTEwIG5nxrDhu51pIG5naGUgcG9kY2FzdCwgY8OzIMSR4bq/biA2OCBuZ8aw4budaSAoNjEuOCUpIHPhurVuIHPDoG5nIHRy4bqjIHBow60sIHRyb25nIGtoaSBjaOG7iSA0MiBuZ8aw4budaSAoMzguMiUpIGtow7RuZyBz4bq1biBzw6BuZy4NCg0KLSBOZ8aw4bujYyBs4bqhaSwgdHJvbmcgbmjDs20gNDEwIG5nxrDhu51pIHRow61jaCBuZ2hlIG5o4bqhYywgY2jhu4kgY8OzIDExOCBuZ8aw4budaSAoMjguOCUpIHPhurVuIHPDoG5nIHRy4bqjIHBow60sIHRyb25nIGtoaSAyOTIgbmfGsOG7nWkgKDcxLjIlKSBraMO0bmcgc+G6tW4gc8OgbmcuDQoNCi0gxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgc+G7sSBraMOhYyBiaeG7h3QgxJHDoW5nIGvhu4MgduG7gSBow6BuaCB2aSBjaGkgdHLhuqMgZ2nhu69hIGhhaSBuaMOzbS4gTmfGsOG7nWkgecOqdSB0aMOtY2ggcG9kY2FzdCBjw7MgdOG7tyBs4buHIHPhurVuIHPDoG5nIHRy4bqjIHBow60gY2FvIGjGoW4gZ+G6pXAgxJHDtGkgc28gduG7m2kgbmjDs20gbmdoZSBuaOG6oWMuDQoNCi0gVHJvbmcga2hpIMSRw7MsIG5nxrDhu51pIHRow61jaCBuZ2hlIG5o4bqhYyBjw7MgdGjhu4MgY2jhu4kgcXVhbiB0w6JtIMSR4bq/biBjaOG6pXQgbMaw4bujbmcgw6JtIHRoYW5oIGhv4bq3YyBkYW5oIHPDoWNoIHBow6F0LCBuaOG7r25nIHnhur91IHThu5EgbcOgIGfDs2kgbWnhu4VuIHBow60gduG6q24gxJHDoXAg4bupbmcg4bufIG3hu6ljIHThu5FpIHRoaeG7g3UuIFbDrCB0aOG6vywgaOG7jSDDrXQgY8OzIMSR4buZbmcgbOG7sWMgaMahbiDEkeG7gyBuw6JuZyBj4bqlcCBnw7NpLg0KDQotLS0NCg0KIyMgKioyLjMgVOG7tyBz4buRIG5ndXkgY8ahIFJlbGF0aXZlIFJpc2sqKg0KDQojIyMgKioyLjMuMSBD4bq3cCBiaeG6v24gcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MgdsOgIGJp4bq/biBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuKioNCg0KDQpgYGB7cn0NCnJpc2tyYXRpbyh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRyb25nIHPhu5EgbmfGsOG7nWkgxJFhbmcgZMO5bmcgRnJlZSB2cyBQcmVtaXVtLCBhaSBjw7Mgbmd1eSBjxqEgKHThu7cgbOG7hykgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSBjYW8gaMahbj8NCg0KVOG7tyBz4buRIG5ndXkgY8ahIGzDoCA1LjM5IGNo4bupbmcgdOG7jyBuZ8aw4budaSDEkWFuZyBkw7luZyBnw7NpIFByZW1pdW0gY8OzIG5ndXkgY8ahICh04bu3IGzhu4cga2jhuqMgbsSDbmcpIHPhurVuIHPDoG5nIHRp4bq/cCB04bulYyB0cuG6oyBwaMOtIGNhbyBoxqFuIGfhuqVwIGtob+G6o25nIDUuMzkgbOG6p24gc28gduG7m2kgbmfGsOG7nWkgxJFhbmcgZMO5bmcgZ8OzaSBGcmVlLg0KDQpHacOhIHRy4buLIFAtdmFsdWUgY+G7p2EgdOG6pXQgY+G6oyDEkeG7gXUgZ+G6p24gYuG6sW5nIDAsIMSRaeG7gXUgbsOgeSBjw7MgbmdoxKlhIHLhurFuZyBz4buxIGtow6FjIGJp4buHdCB24buBIHThu7cgbOG7hyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGdp4buvYSBuZ8aw4budaSBkw7luZyBnw7NpIFByZW1pdW0gdsOgIGfDs2kgRnJlZSBsw6AgaG/DoG4gdG/DoG4gY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqi4NCg0KTsOzaSB0w7NtIGzhuqFpOg0KPC9kaXY+DQoNCi0gS+G6v3QgcXXhuqMgY2hvIHRo4bqleSBy4bqxbmcgdmnhu4djIMSRYW5nIHPhu60gZOG7pW5nIGfDs2kgUHJlbWl1bSBjw7MgbGnDqm4gaOG7hyBy4bqldCBt4bqhbmggduG7m2kga2jhuqMgbsSDbmcgc+G6tW4gc8OgbmcgdGnhur9wIHThu6VjIHRy4bqjIHBow60uIEPhu6UgdGjhu4MsIG5nxrDhu51pIMSRYW5nIGTDuW5nIFByZW1pdW0gY8OzIGto4bqjIG7Eg25nIG114buRbiB0aeG6v3AgdOG7pWMgY2hpIHRy4bqjIGNhbyBn4bqlcCBraG/huqNuZyA1IGzhuqduIG5nxrDhu51pIGTDuW5nIEZyZWUuDQoNCi0gxJDDonkgbMOgIG3hu5l0IGLhurFuZyBjaOG7qW5nIMSR4buLbmggbMaw4bujbmcgbeG6oW5oIG3hur0gY2hvIHRo4bqleSB0cuG6o2kgbmdoaeG7h20gdGjhu7FjIHThur8gduG7m2kgZ8OzaSBQcmVtaXVtIGdpw7pwIG51w7RpIGTGsOG7oW5nIGjDoG5oIHZpIGNoaSB0cuG6oyBsw6J1IGTDoGkuDQoNCiMjIyAqKjIuMy4yIEPhurdwIGJp4bq/biBwcmVtaXVtIHN1YiB3aWxsaW5nbmVzcyB2w6AgYmnhur9uIHByZWZlcnJlZCBsaXN0ZW5pbmcgY29udGVudCoqDQoNCg0KYGBge3J9DQpyaXNrcmF0aW8odGFibGUoc3BvdGlmeSRwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcywgc3BvdGlmeSRwcmVmZXJyZWRfbGlzdGVuaW5nX2NvbnRlbnQpKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRyb25nIHPhu5EgbmfGsOG7nWkgxJFhbmcgZMO5bmcgRnJlZSB2cyBQcmVtaXVtLCBhaSBjw7Mgbmd1eSBjxqEgKHThu7cgbOG7hykgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSBjYW8gaMahbj8NCg0KVOG7tyBz4buRIG5ndXkgY8ahIGzDoCAyLjkxIGNo4bupbmcgdOG7jyBuZ8aw4budaSBuZ2hlIFBvZGNhc3QgY8OzIHThu7cgbOG7hyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGNhbyBoxqFuIGfhuqduIDIuOTEgbOG6p24gc28gduG7m2kgbmfGsOG7nWkgbmdoZSBuaOG6oWMuDQoNCktob+G6o25nIHRpbiBj4bqteSA5NSUgY8OzIG5naMSpYSB0YSB04buxIHRpbiA5NSUgcuG6sW5nIFJSIHRo4bqtdCBu4bqxbSB0cm9uZyBraG/huqNuZyBuw6B5LCB2w6AgdsOsIG7DsyBraMO0bmcgY2jhu6lhIHPhu5EgMSwgbsOqbiBt4buRaSBsacOqbiBo4buHIGzDoCBjw7Mgw70gbmdoxKlhIHRo4buRbmcga8OqLg0KDQpHacOhIHRy4buLIFAtdmFsdWUgY+G7p2EgdOG6pXQgY+G6oyDEkeG7gXUgY+G7sWMga+G7syBuaOG7jywgY2hvIHRo4bqleSBz4buxIGtow6FjIGJp4buHdCB0cm9uZyB04bu3IGzhu4cgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSBnaeG7r2EgbmfGsOG7nWkgbmdoZSBQb2RjYXN0IHbDoCBuZ2hlIG5o4bqhYyBsw6AgcuG6pXQgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqi4gS2jDsyBjw7MgdGjhu4MgZG8gbmfhuqt1IG5oacOqbi4NCg0KTsOzaSB0w7NtIGzhuqFpIGzDoCBuZ8aw4budaSBuZ2hlIFBvZGNhc3QgY8OzIHh1IGjGsOG7m25nIHPhurVuIHPDoG5nIHRy4bqjIHBow60gY2FvIGjGoW4gaOG6s24gc28gduG7m2kgbmfGsOG7nWkgY2jhu4kgbmdoZSBuaOG6oWMuIEPhu6UgdGjhu4MsIGjhu40gY8OzIGto4bqjIG7Eg25nIGNoaSB0cuG6oyBjYW8gaMahbiBn4bqlcCBn4bqnbiAzIGzhuqduLg0KPC9kaXY+DQoNCi0tLQ0KDQojIyAqKjIuNCBU4bu3IHPhu5EgY2jDqm5oIE9kZHMgUmF0aW8qKg0KDQojIyMgKioyLjQuMSBD4bq3cCBiaeG6v24gcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MgdsOgIGJp4bq/biBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuKioNCg0KDQpgYGB7cn0NCm9kZHNyYXRpbyh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClBow6JuIHTDrWNoIHThu7cgc+G7kSBjaMOqbmggY2hvIGPDuW5nIGPhurdwIGJp4bq/biBjxaluZyBjaG8gcmEga+G6v3QgcXXhuqMgcuG6pXQgxJHDoW5nIGNow7ogw70uIE9kZHMgUmF0aW8gxJHGsOG7o2MgxrDhu5tjIGzGsOG7o25nIGzDoCA4LjA5LCBuZ2jEqWEgbMOgIG5nxrDhu51pIGTDuW5nIGhp4buHbiDEkWFuZyBz4butIGThu6VuZyBnw7NpIFByZW1pdW0gY8OzIHThu7cgbOG7hyBjxrDhu6NjIHPhurVuIHPDoG5nIHRy4bqjIHBow60gY2FvIGjGoW4gZ+G6pXAgOCBs4bqnbiBzbyB24bubaSBuZ8aw4budaSBkw7luZyBnw7NpIEZyZWUuIA0KDQpLaG/huqNuZyB0aW4gY+G6rXkgOTUlIGNobyBPUiBu4bqxbSB0cm9uZyBraG/huqNuZyB04burIDQuOTIgxJHhur9uIDEzLjcyIHbDoCBnacOhIHRy4buLIHAgbMOgIDMuMWUtMTggbeG7mXQgbOG6p24gbuG7r2Ega2jhurNuZyDEkeG7i25oIG3hu5FpIGxpw6puIGjhu4cgbsOgeSBsw6AgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiBy4bqldCBt4bqhbmguIMSQw6J5IGzDoCBt4buZdCBr4bq/dCBxdeG6oyBj4bunbmcgY+G7kSB0aMOqbSBjaG8gbmjhuq1uIMSR4buLbmggdHLGsOG7m2MgxJHDsyB04burIHBow6JuIHTDrWNoIFJSLg0KDQpD4bqjIGhhaSBjaOG7iSBz4buRIFJSIHbDoCBPUiDEkeG7gXUgY2hvIHRo4bqleSBy4bqxbmcgdmnhu4djIG5nxrDhu51pIGTDuW5nIMSRYW5nIHPhu60gZOG7pW5nIGfDs2kgUHJlbWl1bSBoaeG7h24gdOG6oWkgY8OzIG3hu5FpIGxpw6puIGjhu4cgcuG6pXQgbeG6oW5oIG3hur0gduG7m2kgeHUgaMaw4bubbmcgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSB0cm9uZyB0xrDGoW5nIGxhaS4NCjwvZGl2Pg0KDQoNCiMjIyAqKjIuNC4yIEPhurdwIGJp4bq/biBwcmVtaXVtIHN1YiB3aWxsaW5nbmVzcyB2w6AgYmnhur9uIHByZWZlcnJlZCBsaXN0ZW5pbmcgY29udGVudCoqDQoNCg0KYGBge3J9DQpvZGRzcmF0aW8odGFibGUoc3BvdGlmeSRwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcywgc3BvdGlmeSRwcmVmZXJyZWRfbGlzdGVuaW5nX2NvbnRlbnQpKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClBow6JuIHTDrWNoIG3hu5FpIGxpw6puIGjhu4cgZ2nhu69hIG3hu6ljIMSR4buZIHPhurVuIHPDoG5nIHRy4bqjIHBow60gdsOgIGxv4bqhaSBu4buZaSBkdW5nIG5naGUgxrBhIHRow61jaCBn4buTbSBoYWkgbmjDs20gbMOgIE11c2ljIHbDoCBQb2RjYXN0IGNobyB0aOG6pXkgT2RkcyBSYXRpbyBsw6AgMy45OS4gTmdoxKlhIGzDoCBuaOG7r25nIG5nxrDhu51pIHnDqnUgdGjDrWNoIFBvZGNhc3QgY8OzIHThu7cgbOG7hyBjxrDhu6NjIHPhurVuIHPDoG5nIHRy4bqjIHBow60gY2FvIGfhuqVwIGtob+G6o25nIDQgbOG6p24gc28gduG7m2kgbmjhu69uZyBuZ8aw4budaSB0aMOtY2ggbmdoZSBuaOG6oWMuIA0KDQpLaG/huqNuZyB0aW4gY+G6rXkgOTUlIGNobyBPZGRzIFJhdGlvIG7hurFtIHRyb25nIGtob+G6o25nIHThu6sgMi41OCDEkeG6v24gNi4yNCwgxJHhu6cgaOG6uXAgdsOgIGhvw6BuIHRvw6BuIGzhu5tuIGjGoW4gMSwga2jhurNuZyDEkeG7i25oIHLhurFuZyBt4buRaSBsacOqbiBo4buHIG7DoHkgbMOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ouIA0KDQpHacOhIHRy4buLIHAgcuG6pXQgbmjhu48gKOKJiCAxLjM3ZS0xMCksIGNobyB0aOG6pXkgc+G7sSBraMOhYyBiaeG7h3QgbsOgeSBsw6AgxJHDoW5nIGvhu4MgdsOgIGtow7RuZyBwaOG6o2kgZG8gbmfhuqt1IG5oacOqbi4NCg0KS+G6v3QgcXXhuqMgbsOgeSBjaG8gdGjhuqV5IG7hu5lpIGR1bmcgxrBhIHRow61jaCBjw7Mg4bqjbmggaMaw4bufbmcgxJHhur9uIHh1IGjGsOG7m25nIHPhurVuIHPDoG5nIGNoaSB0cuG6oywgdHJvbmcgxJHDsyBuZ8aw4budaSB0aMOtY2ggUG9kY2FzdCB0aOG7gyBoaeG7h24gc+G7sSBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGNhbyBoxqFuIHLDtSBy4buHdCBzbyB24bubaSBuZ8aw4budaSB0aMOtY2ggTXVzaWMuIMSQaeG7gXUgbsOgeSBjw7MgdGjhu4MgxJHGsOG7o2MgbMO9IGdp4bqjaSBi4bufaSB2aeG7h2MgUG9kY2FzdCB0aMaw4budbmcgY8OzIGdpw6EgdHLhu4sgbuG7mWkgZHVuZyBjYW8sIMSR4buZYyBxdXnhu4FuIGhv4bq3YyBtYW5nIHTDrW5oIGPDoSBuaMOibiBow7NhLCBraGnhur9uIG5nxrDhu51pIG5naGUgY+G6o20gdGjhuqV5IMSRw6FuZyDEkeG7gyBjaGkgdGnhu4FuIGjGoW4gc28gduG7m2kgw6JtIG5o4bqhYyDigJMgduG7kW4gY8OzIHRo4buDIGThu4UgZMOgbmcgdMOsbSB0aOG6pXkgbWnhu4VuIHBow60uDQo8L2Rpdj4NCg0KLS0tDQoNCiMgKipDSMavxqBORyAzLiBUSOG7kE5HIEvDiiBTVVkgREnhu4ROKioNCg0KIyMgKiozLjEgS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGNobyAyIGJp4bq/biDEkeG7i25oIHTDrW5oKioNCg0KIyMjICoqMy4xLjEgQ+G6t3AgYmnhur9uIHByZW1pdW0gc3ViIHdpbGxpbmduZXNzIHbDoCBiaeG6v24gc3BvdGlmeSB1c2FnZSBwZXJpb2QqKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUYSB0aOG7sWMgaGnhu4duIGtp4buDbSDEkeG7i25oIENoaS1zcXVhcmVkIG5oxrAgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSkNCmBgYA0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KxJDhurd0IGdp4bqjIHRoaeG6v3Q6DQo8L2Rpdj4NCg0KLSAkSF8wJDogS2jDtG5nIGPDsyBt4buRaSBsacOqbiBo4buHIGdp4buvYSBOaHUgY+G6p3UgxJHEg25nIGvDvSBnw7NpIHByZW1pdW0gdsOgIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkNCg0KLSAkSF8xJDogQ8OzIG3hu5FpIGxpw6puIGjhu4cgZ2nhu69hIE5odSBj4bqndSDEkcSDbmcga8O9IGfDs2kgcHJlbWl1bSB2w6AgdGjhu51pIGdpYW4gc+G7rSBk4bulbmcgU3BvdGlmeQ0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpWw6wgKipwLXZhbHVlID0gMC4wMDAyMjgxIDwgMC4wNSoqIG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkIHbDoCBjaOG6pXAgbmjhuq1uICRIXzEkLCDEkeG7k25nIG5naMSpYSBsw6AgY8OzIG3hu5FpIGxpw6puIGjhu4cgZ2nhu69hIG5odSBj4bqndSDEkcSDbmcga8O9IGfDs2kgcHJlbWl1bSB24bubaSB0aOG7nWkgZ2lhbiBz4butIGThu6VuZyBTcG90aWZ5DQo8L2Rpdj4NCg0KDQojIyMgKiozLjEuMiBD4bq3cCBiaeG6v24gcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MgdsOgIGJp4bq/biBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVGEgY8OzIGvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIENoaS1zcXVhcmVkIG5oxrAgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KPC9kaXY+DQoNCi0gJEhfMCQ6IEtow7RuZyBjw7MgbeG7kWkgbGnDqm4gaOG7hyBnaeG7r2EgTmh1IGPhuqd1IMSRxINuZyBrw70gZ8OzaSBwcmVtaXVtIHbDoCBnw7NpIMSRxINuZyBrw70gU3BvdGlmeSDEkcaw4bujYyBuZ8aw4budaSBkw7luZyBz4butIGThu6VuZy4NCg0KLSAkSF8xJDogQ8OzIG3hu5FpIGxpw6puIGjhu4cgZ2nhu69hIE5odSBj4bqndSDEkcSDbmcga8O9IGfDs2kgcHJlbWl1bSB2w6AgZ8OzaSDEkcSDbmcga8O9IFNwb3RpZnkgxJHGsOG7o2MgbmfGsOG7nWkgZMO5bmcgc+G7rSBk4bulbmcuDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClbDrCAqKnAtdmFsdWUgPSAyLjJlLTE2IDwgMC4wNSoqIG7Dqm4gdGEgYsOhYyBi4buPICRIXzAkIHbDoCBjaOG6pXAgbmjhuq1uICRIXzEkLCDEkeG7k25nIG5naMSpYSBsw6AgY8OzIG3hu5FpIGxpw6puIGjhu4cgZ2nhu69hIE5odSBj4bqndSDEkcSDbmcga8O9IGfDs2kgcHJlbWl1bSB2w6AgZ8OzaSDEkcSDbmcga8O9IFNwb3RpZnkgxJHGsOG7o2MgbmfGsOG7nWkgZMO5bmcgc+G7rSBk4bulbmcuDQo8L2Rpdj4NCg0KDQojIyMgKiozLjEuMyBD4bq3cCBiaeG6v24gcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MgdsOgIGJp4bq/biBwcmVmZmVyZWQgcHJlbWl1bSBwbGFuKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVGEgY8OzIGvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIENoaS1zcXVhcmVkIG5oxrAgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHByZWZmZXJlZF9wcmVtaXVtX3BsYW4pKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KPC9kaXY+DQoNCi0gJEhfMCQ6IEtow7RuZyBjw7MgbeG7kWkgbGnDqm4gaOG7hyBnaeG7r2EgTmh1IGPhuqd1IMSRxINuZyBrw70gZ8OzaSBwcmVtaXVtIHbDoCBuaHUgY+G6p3UgY2jhu41uIGfDs2kgY2FvIGPhuqVwLg0KDQotICRIXzEkOiBDw7MgbeG7kWkgbGnDqm4gaOG7hyBnaeG7r2EgTmh1IGPhuqd1IMSRxINuZyBrw70gZ8OzaSBwcmVtaXVtIHbDoCBOaHUgY+G6p3UgY2jhu41uIGfDs2kgY2FvIGPhuqVwLg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpWw6wgKipwLXZhbHVlID0gMi4yZS0xNiA8IDAuMDUqKiBuw6puIHRhIGLDoWMgYuG7jyAkSF8wJCB2w6AgY2jhuqVwIG5o4bqtbiAkSF8xJCwgxJHhu5NuZyBuZ2jEqWEgbMOgIGPDsyBt4buRaSBsacOqbiBo4buHIGdp4buvYSBOaHUgY+G6p3UgxJHEg25nIGvDvSBnw7NpIHByZW1pdW0gdsOgIE5odSBj4bqndSBjaOG7jW4gZ8OzaSBjYW8gY+G6pXAuDQo8L2Rpdj4NCg0KIyMjICoqMy4xLjQgQ+G6t3AgYmnhur9uIHByZW1pdW0gc3ViIHdpbGxpbmduZXNzIHbDoCBiaeG6v24gcHJlZmVycmVkIGxpc3RlbmluZyBjb250ZW50KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVGEgY8OzIGvhur90IHF14bqjIGtp4buDbSDEkeG7i25oIENoaS1zcXVhcmVkIG5oxrAgc2F1Og0KPC9kaXY+DQoNCmBgYHtyfQ0KY2hpc3EudGVzdCh0YWJsZShzcG90aWZ5JHByZW1pdW1fc3ViX3dpbGxpbmduZXNzLCBzcG90aWZ5JHByZWZlcnJlZF9saXN0ZW5pbmdfY29udGVudCkpDQpgYGANCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KxJDhurd0IGdp4bqjIHRoaeG6v3Q6DQo8L2Rpdj4NCg0KLSAkSF8wJDogS2jDtG5nIGPDsyBt4buRaSBsacOqbiBo4buHIGdp4buvYSBOaHUgY+G6p3UgxJHEg25nIGvDvSBnw7NpIHByZW1pdW0gdsOgIGxv4bqhaSBuaOG6oWMgbmfGsOG7nWkgZMO5bmcgdGjDrWNoIG5naGUuDQoNCi0gJEhfMSQ6IEPDsyBt4buRaSBsacOqbiBo4buHIGdp4buvYSBOaHUgY+G6p3UgxJHEg25nIGvDvSBnw7NpIHByZW1pdW0gdsOgIGxv4bqhaSBuaOG6oWMgbmfGsOG7nWkgZMO5bmcgdGjDrWNoIG5naGUuDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClbDrCAqKnAtdmFsdWUgPSAyLjg0NGUtMTAgPCAwLjA1KiogbsOqbiB0YSBiw6FjIGLhu48gJEhfMCQgdsOgIGNo4bqlcCBuaOG6rW4gJEhfMSQsIMSR4buTbmcgbmdoxKlhIGzDoCBjw7MgbeG7kWkgbGnDqm4gaOG7hyBnaeG7r2EgTmh1IGPhuqd1IMSRxINuZyBrw70gZ8OzaSBwcmVtaXVtIHbDoCBsb+G6oWkgbmjhuqFjIG5nxrDhu51pIGTDuW5nIHRow61jaCBuZ2hlLg0KPC9kaXY+DQoNCi0tLQ0KDQojIyAqKjMuMiBLaG/huqNuZyDGsOG7m2MgbMaw4bujbmcgY2hvIHThu7cgbOG7hyoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRhIHPhur0gdGnhur9uIGjDoG5oIMaw4bubYyBsxrDhu6NuZyB04bu3IGzhu4cgc+G7kSBuZ8aw4budaSBk4bulbmcgxJHhu5NuZyDDvSBtdWEgZ8OzaSBQcmVtaXVtLCBoYXkgbsOzaSBjw6FjaCBraMOhYyBsw6Agc+G7kSBuZ8aw4budaSBkw7luZyB0cuG6oyBs4budaSAqKiJZZXMiKiogdHJvbmcgKipiaeG6v24gcHJlbWl1bSBzdWIgd2lsbGluZ25lc3MqKi4NCjwvZGl2Pg0KDQpgYGB7cn0NCnByb3AudGVzdChzdW0oc3BvdGlmeSRwcmVtaXVtX3N1Yl93aWxsaW5nbmVzcyA9PSAiWWVzIiksIG5yb3coc3BvdGlmeSksIGNvbmYubGV2ZWwgPSAwLjk1KQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCsSQ4bq3dCBnaeG6oyB0aGnhur90Og0KPC9kaXY+DQoNCi0gJEhfMCQ6IFThu7cgbOG7hyBuZ8aw4budaSBkw7luZyBz4bq1biBzw6BuZyDEkcSDbmcga8O9IGfDs2kgUHJlbWl1bSBi4bqxbmcgNTAlLg0KDQotICRIXzEkOiBU4bu3IGzhu4cgbmfGsOG7nWkgZMO5bmcgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIFByZW1pdW0ga2jDoWMgNTAlLg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpL4bq/dCBxdeG6oyBraeG7g20gxJHhu4tuaCBjaG8gdGjhuqV5IHThu7cgbOG7hyBuZ8aw4budaSBkw7luZyBz4bq1biBzw6BuZyDEkcSDbmcga8O9IGfDs2kgUHJlbWl1bSB0csOqbiBTcG90aWZ5IGzDoCBraG/huqNuZyAzNS43NyUsIHbhu5tpIGtob+G6o25nIHRpbiBj4bqteSA5NSUgZGFvIMSR4buZbmcgdOG7qyAzMS42NyUgxJHhur9uIDQwLjA3JS4NCg0KR2nDoSB0cuG7iyBwIHLhuqV0IG5o4buPICgxLjE0NmUtMTAgPCAwLjA1KSBjaG8gdGjhuqV5IHPhu7Ega2jDoWMgYmnhu4d0IGdp4buvYSB04bu3IGzhu4cgbsOgeSB2w6AgbeG7qWMgZ2nhuqMgxJHhu4tuaCA1MCUgbMOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ouIERvIMSRw7MsIGPDsyDEkeG7pyBi4bqxbmcgY2jhu6luZyDEkeG7gyBiw6FjIGLhu48gZ2nhuqMgdGh1eeG6v3QgcuG6sW5nIDUwJSBuZ8aw4budaSBkw7luZyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtLiBOw7NpIGPDoWNoIGtow6FjLCB04bu3IGzhu4cgdGjhu7FjIHThur8gdGjhuqVwIGjGoW4gxJHDoW5nIGvhu4Mgc28gduG7m2kga+G7syB24buNbmcgNTAlLg0KDQrEkGnhu4F1IG7DoHkgZ+G7o2kgw70gcuG6sW5nIMSRYSBwaOG6p24gbmfGsOG7nWkgZMO5bmcgaGnhu4duIGNoxrBhIGPDsyB4dSBoxrDhu5tuZyBz4bq1biBzw6BuZyBjaGkgdHLhuqMgY2hvIHBoacOqbiBi4bqjbiBQcmVtaXVtLCB2w6AgU3BvdGlmeSBj4bqnbiBjw7MgY2hp4bq/biBsxrDhu6NjIGPhuqNpIHRoaeG7h24gbmjhuq1uIHRo4bupYyBnacOhIHRy4buLLCBjaMOtbmggc8OhY2ggxrB1IMSRw6NpLCBob+G6t2MgbsOibmcgY2FvIHRy4bqjaSBuZ2hp4buHbSBtaeG7hW4gcGjDrSDEkeG7gyB0aMO6YyDEkeG6qXkgaMOgbmggdmkgY2h1eeG7g24gxJHhu5VpLg0KPC9kaXY+DQoNCi0tLQ0KDQojICoqQ0jGr8agTkcgNC4gTcOUIEjDjE5IIEjhu5JJIFFVWSoqDQoNCiMjICoqNC4xIE3DtCBow6xuaCBo4buTaSBxdXkgTG9naXQqKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpUcsaw4bubYyB0acOqbiB0YSBz4bq9IHF1eSBiaeG6v24gcGjhu6UgdGh14buZYyB0aMOgbmggYmnhur9uIG5oaSBwaMOibiwgcuG7k2kgc2F1IMSRw7MgdGnhur9uIGjDoG5oIGjhu5NpIHF1eQ0KPC9kaXY+DQoNCmBgYHtyfQ0Kc3BvdGlmeTEgPC0gc3BvdGlmeQ0Kc3BvdGlmeTEkcHJlbWl1bSA8LSBpZmVsc2Uoc3BvdGlmeTEkcHJlbWl1bV9zdWJfd2lsbGluZ25lc3MgPT0gIlllcyIsMSwwKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCsSQ4buDIHTDrG0gaGnhu4N1IGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyDEkeG6v24gbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBTcG90aWZ5IFByZW1pdW0sIG3DtCBow6xuaCBo4buTaSBxdXkgbG9naXN0aWMgxJHDoyDEkcaw4bujYyB4w6J5IGThu7FuZyB24bubaSBiaeG6v24gcGjhu6UgdGh14buZYyBsw6AgcHJlbWl1bSAobmjhu4sgcGjDom46IFllcy9ObykgdsOgIGPDoWMgYmnhur9uIMSR4buZYyBs4bqtcCBiYW8gZ+G7k206IHNwb3RpZnkgdXNhZ2UgcGVyaW9kLCBzcG90aWZ5IHN1YnNjcmlwdGlvbiBwbGFuLCBwcmVmZmVyZWQgcHJlbWl1bSBwbGFuIHbDoCBwcmVmZXJyZWQgbGlzdGVuaW5nIGNvbnRlbnQuDQo8L2Rpdj4NCg0KYGBge3J9DQptb2hpbmgxIDwtIGdsbShwcmVtaXVtIH4gc3BvdGlmeV91c2FnZV9wZXJpb2QgKyBzcG90aWZ5X3N1YnNjcmlwdGlvbl9wbGFuICsgcHJlZmZlcmVkX3ByZW1pdW1fcGxhbiArIHByZWZlcnJlZF9saXN0ZW5pbmdfY29udGVudCwgZGF0YSA9IHNwb3RpZnkxLGZhbWlseSA9IGJpbm9taWFsKGxpbmsgPSAibG9naXQiKSkNCnN1bW1hcnkobW9oaW5oMSkNCmBgYA0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpL4bq/dCBxdeG6oyBtw7QgaMOsbmggY2hvIHRo4bqleSBjw7MgbeG7mXQgc+G7kSBiaeG6v24gxJHhu5ljIGzhuq1wIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6og4bufIG3hu6ljIMO9IG5naMSpYSAxJSwgNSUgdsOgIDEwJS4gQ+G7pSB0aOG7gzoNCjwvZGl2Pg0KDQotICoqQmnhur9uIHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW5QcmVtaXVtIChwYWlkIHN1YnNjcmlwdGlvbikqKiBjw7MgaOG7hyBz4buRIMaw4bubYyBsxrDhu6NuZyBkxrDGoW5nICgxLjExODI5KSB2w6AgY8OzIMO9IG5naMSpYSBy4bqldCBjYW8gduG7m2kgZ2nDoSB0cuG7iyBwLXZhbHVlIDwgMC4wMDEuIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IG5nxrDhu51pIGTDuW5nIGhp4buHbiDEkWFuZyBz4butIGThu6VuZyBnw7NpIHRy4bqjIHBow60gY+G7p2EgU3BvdGlmeSBjw7MgeHUgaMaw4bubbmcgc+G6tW4gc8OgbmcgdGnhur9wIHThu6VjIMSRxINuZyBrw70gUHJlbWl1bSBjYW8gaMahbiDEkcOhbmcga+G7gyBzbyB24bubaSBuZ8aw4budaSBkw7luZyBtaeG7hW4gcGjDrSAoxJHhu5FpIHTGsOG7o25nIHRoYW0gY2hp4bq/dSkuDQoNCi0gVHJvbmcgbmjDs20gKipiaeG6v24gcHJlZmZlcmVkX3ByZW1pdW1fcGxhbioqLCBjw6FjIHBoxrDGoW5nIMOhbiBtw6AgbmfGsOG7nWkgZMO5bmcgxrB1IHRpw6puIMSRxINuZyBrw70gZ8OzaSBQcmVtaXVtIHRyb25nIHTGsMahbmcgbGFpIGPFqW5nIGPDsyDhuqNuaCBoxrDhu59uZyByw7UgcuG7h3Q6DQoNCiAgIC0gTmfGsOG7nWkgZMO5bmcgY2jhu41uIGfDs2kgKipJbmRpdmlkdWFsIFBsYW4g4oCTIFJzIDExOS9tb250aCoqIGPDsyBo4buHIHPhu5EgZMawxqFuZyAoMi4wODgpIHbDoCBjw7Mgw70gbmdoxKlhIHRo4buRbmcga8OqIOG7nyBt4bupYyA1JSAocCA9IDAuMDM2NzYpLCBjaG8gdGjhuqV5IMSRw6J5IGzDoCBuaMOzbSBjw7MgeHUgaMaw4bubbmcgc+G6tW4gc8OgbmcgY2FvIGjGoW4uDQoNCiAgIC0gTmfGsOG7o2MgbOG6oWksIG5nxrDhu51pIGNo4buNbiAqKuKAnE5vbmXigJ0qKiAoa2jDtG5nIGPDsyBuaHUgY+G6p3UgduG7m2kgYuG6pXQga+G7syBnw7NpIG7DoG8pIGPDsyBo4buHIHPhu5Egw6JtIGzhu5tuICgtNi45ODApIHbDoCBwLXZhbHVlIGfhuqduIGLhurFuZyAwLCBjaG8gdGjhuqV5IGjhu40gcuG6pXQga2jDtG5nIHPhurVuIHPDoG5nIMSRxINuZyBrw70gUHJlbWl1bSwgbmjGsCBr4buzIHbhu41uZy4NCg0KICAgLSBOaOG7r25nIG5nxrDhu51pIMawdSB0acOqbiBnw7NpIFN0dWRlbnQgUGxhbiDigJMgUnMgNTkvbW9udGggY8WpbmcgY8OzIHh1IGjGsOG7m25nIHPhurVuIHPDoG5nIMSRxINuZyBrw70sIHbhu5tpIHAtdmFsdWUgfiAwLjEyIChn4bqnbiBt4bupYyDDvSBuZ2jEqWEgMTAlKS4NCg0KLSAqKkJp4bq/biBwcmVmZXJyZWRfbGlzdGVuaW5nX2NvbnRlbnRQb2RjYXN0KiogY8WpbmcgY8OzIGjhu4cgc+G7kSBkxrDGoW5nICgzLjE2MCkgdsOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogY2FvIChwID0gMC4wMDE1NzgpLCBjaG8gdGjhuqV5IG5o4buvbmcgbmfGsOG7nWkgdGjDrWNoIG5naGUgcG9kY2FzdCBjw7Mga2jhuqMgbsSDbmcgY2FvIGjGoW4gdHJvbmcgdmnhu4djIMSRxINuZyBrw70gUHJlbWl1bS4NCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVHJvbmcga2hpIMSRw7MsIGPDoWMgYmnhur9uIGxpw6puIHF1YW4gxJHhur9uIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkgbmjGsCBzcG90aWZ5X3VzYWdlX3BlcmlvZCBraMO0bmcgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiDEkcOhbmcga+G7gyDhu58gY8OhYyBt4bupYyB0aMO0bmcgdGjGsOG7nW5nIChwID4gMC4xKSwgY2hvIHRo4bqleSB0aOG7nWkgZ2lhbiBn4bqvbiBiw7MgduG7m2kgbuG7gW4gdOG6o25nIGtow7RuZyBuaOG6pXQgdGhp4bq/dCBwaOG6o24gw6FuaCB4dSBoxrDhu5tuZyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtLg0KDQpL4bq/dCBxdeG6oyBwaMOibiB0w61jaCBjaG8gdGjhuqV5IGPDoWMgeeG6v3UgdOG7kSBsacOqbiBxdWFuIMSR4bq/biBoaeG7h24gdHLhuqFuZyB0w6BpIGtob+G6o24sIG5odSBj4bqndSBjaOG7jW4gZ8OzaSBQcmVtaXVtIGPhu6UgdGjhu4MsIHbDoCBsb+G6oWkgbuG7mWkgZHVuZyBuZ2hlIMawYSB0aMOtY2ggbMOgIG5o4buvbmcgeeG6v3UgdOG7kSBxdWFuIHRy4buNbmcgY8OzIOG6o25oIGjGsOG7n25nIHLDtSBy4buHdCDEkeG6v24gaMOgbmggdmkgc+G6tW4gc8OgbmcgdHLhuqMgcGjDrSBj4bunYSBuZ8aw4budaSBkw7luZyBTcG90aWZ5LiBOaOG7r25nIGvhur90IHF14bqjIG7DoHkga2jDtG5nIGNo4buJIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogbcOgIGPDsm4gbWFuZyBs4bqhaSBnacOhIHRy4buLIHRo4buxYyB0aeG7hW4gdHJvbmcgdmnhu4djIMSR4buLbmggaMaw4bubbmcgY2hp4bq/biBsxrDhu6NjIHRp4bq/cCB0aOG7iyB2w6AgY8OhIG5ow6JuIGjDs2EgdHLhuqNpIG5naGnhu4dtIG5nxrDhu51pIGTDuW5nLg0KPC9kaXY+DQoNCiMjICoqNC4yIE3DtCBow6xuaCBo4buTaSBxdXkgUHJvYml0KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KxJDhu4Mga2nhu4NtIHRyYSBs4bqhaSBt4bupYyDEkeG7mSDhuqNuaCBoxrDhu59uZyBj4bunYSBjw6FjIHnhur91IHThu5EgxJHhur9uIGjDoG5oIHZpIHPhurVuIHPDoG5nIMSRxINuZyBrw70gU3BvdGlmeSBQcmVtaXVtLCBt4buZdCBtw7QgaMOsbmggaOG7k2kgcXV5IG5o4buLIHBow6JuIHbhu5tpIGxpw6puIGvhur90IHByb2JpdCDEkcOjIMSRxrDhu6NjIHjDonkgZOG7sW5nICh0xrDGoW5nIHThu7EgbmjGsCBsb2dpdCkuIE3DtCBow6xuaCBz4butIGThu6VuZyBjw7luZyBjw6FjIGJp4bq/biDEkeG7mWMgbOG6rXAgZ+G7k206IHRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkgKHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSwgbG/huqFpIHTDoGkga2hv4bqjbiBoaeG7h24gdOG6oWkgKHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4pLCBnw7NpIFByZW1pdW0gxrBhIHRow61jaCAocHJlZmZlcmVkX3ByZW1pdW1fcGxhbikgdsOgIG7hu5lpIGR1bmcgbmdoZSB5w6p1IHRow61jaCAocHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50KS4NCjwvZGl2Pg0KDQoNCmBgYHtyfQ0KbW9oaW5oMiA8LSBnbG0ocHJlbWl1bSB+IHNwb3RpZnlfdXNhZ2VfcGVyaW9kICsgc3BvdGlmeV9zdWJzY3JpcHRpb25fcGxhbiArIHByZWZmZXJlZF9wcmVtaXVtX3BsYW4gKyBwcmVmZXJyZWRfbGlzdGVuaW5nX2NvbnRlbnQsIGRhdGEgPSBzcG90aWZ5MSxmYW1pbHkgPSBiaW5vbWlhbChsaW5rID0gInByb2JpdCIpKQ0Kc3VtbWFyeShtb2hpbmgyKQ0KYGBgDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkvhur90IHF14bqjIHBow6JuIHTDrWNoIGjhu4cgc+G7kToNCjwvZGl2Pg0KDQotICoqQmnhur9uIHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW5QcmVtaXVtIChwYWlkIHN1YnNjcmlwdGlvbikqKiB0aeG6v3AgdOG7pWMgY8OzIOG6o25oIGjGsOG7n25nIHLhuqV0IMSRw6FuZyBr4buDIMSR4bq/biBow6BuaCB2aSBz4bq1biBzw6BuZyB0cuG6oyBwaMOtLCB24bubaSBo4buHIHPhu5EgZMawxqFuZyAoMC42NzY4NikgdsOgIHAtdmFsdWUgPCAwLjAwMS4gS+G6v3QgcXXhuqMgbsOgeSBwaMO5IGjhu6NwIHbhu5tpIGvhu7MgduG7jW5nOiBuZ8aw4budaSBkw7luZyBoaeG7h24gxJFhbmcgc+G7rSBk4bulbmcgZ8OzaSB0cuG6oyBwaMOtIGPDsyBraOG6oyBuxINuZyB0aeG6v3AgdOG7pWMgxJHEg25nIGvDvSBQcmVtaXVtIGNhbyBoxqFuIMSRw6FuZyBr4buDIHNvIHbhu5tpIG5ow7NtIHTDoGkga2hv4bqjbiBtaeG7hW4gcGjDrS4NCg0KLSBUcm9uZyBuaMOzbSAqKnByZWZmZXJlZF9wcmVtaXVtX3BsYW46KioNCg0KICAgLSBOZ8aw4budaSBkw7luZyBjaOG7jW4gZ8OzaSAqKkluZGl2aWR1YWwgUGxhbiDigJMgUnMgMTE5L21vbnRoKiogY8OzIGjhu4cgc+G7kSDGsOG7m2MgbMaw4bujbmcgZMawxqFuZyAoMC40NTY2NSkgdsOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6og4bufIG3hu6ljIDUlIChwID0gMC4wMzM0NyksIHRo4buDIGhp4buHbiB4dSBoxrDhu5tuZyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtIGNhbyBoxqFuIG5ow7NtIHRoYW0gY2hp4bq/dS4NCg0KICAgLSBOZ8aw4budaSBraMO0bmcgY8OzIG5odSBj4bqndSBjaOG7jW4gZ8OzaSBuw6BvICoqKE5vbmUpKiogY8OzIGjhu4cgc+G7kSDDom0gbOG7m24gKC0xLjk4MjMzKSB2w6AgcC12YWx1ZSBn4bqnbiBi4bqxbmcgMCwgY2hvIHRo4bqleSBy4bqldCBraMO0bmcgY8OzIGto4bqjIG7Eg25nIMSRxINuZyBrw70gUHJlbWl1bSDigJMga+G6v3QgcXXhuqMgbsOgeSBob8OgbiB0b8OgbiBwaMO5IGjhu6NwIHbhu5tpIGvhu7MgduG7jW5nIGzDvSB0aHV54bq/dC4NCg0KICAgLSBOaOG7r25nIG5nxrDhu51pIGNo4buNbiAqKlN0dWRlbnQgUGxhbiDigJMgUnMgNTkvbW9udGgqKiBjw7MgaOG7hyBz4buRIMOibSAoLTAuMzU4MDUpIHbDoCBwLXZhbHVlID0gMC4wOTMxNSwgY2hvIHRo4bqleSBjw7MgdGjhu4MgY8OzIHh1IGjGsOG7m25nIMOtdCBz4bq1biBzw6BuZyBoxqFuLCB0dXkgbmhpw6puIGNo4buJIGPDsyDDvSBuZ2jEqWEg4bufIG3hu6ljIDEwJS4NCg0KLSAqKkJp4bq/biBwcmVmZXJyZWRfbGlzdGVuaW5nX2NvbnRlbnRQb2RjYXN0KiogdGnhur9wIHThu6VjIGPDsyDhuqNuaCBoxrDhu59uZyB0w61jaCBj4buxYyAoaOG7hyBz4buRID0gMC41NzEyMCkgdsOgIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6og4bufIG3hu6ljIDElIChwID0gMC4wMDE1OCkuIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IG5nxrDhu51pIHRow61jaCBuZ2hlIHBvZGNhc3QgY8OzIGto4bqjIG7Eg25nIGNhbyBoxqFuIHRyb25nIHZp4buHYyDEkcSDbmcga8O9IFNwb3RpZnkgUHJlbWl1bSDigJMgbeG7mXQgeHUgaMaw4bubbmcgxJHDoW5nIGNow7ogw70gduG7gSB0aMOzaSBxdWVuIHRpw6p1IGTDuW5nIMOibSB0aGFuaC4NCg0KLSBDw6FjIGJp4bq/biB24buBICoqdGjhu51pIGdpYW4gc+G7rSBk4bulbmcgKHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSoqIMSR4buBdSBraMO0bmcgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiDEkcOhbmcga+G7gyAocCA+IDAuMSkuIE5oxrAgduG6rXksIHRo4budaSBsxrDhu6NuZyBn4bqvbiBiw7MgduG7m2kgbuG7gW4gdOG6o25nIFNwb3RpZnkga2jDtG5nIHBo4bqjaSBsw6AgeeG6v3UgdOG7kSBjaMOtbmgg4bqjbmggaMaw4bufbmcgxJHhur9uIGjDoG5oIHZpIHPhurVuIHPDoG5nIHRy4bqjIHBow60uDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCk3DtCBow6xuaCBo4buTaSBxdXkgUHJvYml0IHRp4bq/cCB04bulYyBraOG6s25nIMSR4buLbmggcuG6sW5nIGPDoWMgeeG6v3UgdOG7kSDhuqNuaCBoxrDhu59uZyBt4bqhbmggbeG6vSBuaOG6pXQgxJHhur9uIGjDoG5oIHZpIHPhurVuIHPDoG5nIMSRxINuZyBrw70gU3BvdGlmeSBQcmVtaXVtIGzDoCB0w6xuaCB0cuG6oW5nIHTDoGkga2hv4bqjbiBoaeG7h24gdOG6oWksIHPhu7EgxrB1IHRpw6puIMSR4buRaSB24bubaSBjw6FjIGfDs2kgUHJlbWl1bSBj4bulIHRo4buDLCB2w6AgbG/huqFpIG7hu5lpIGR1bmcgbmdoZSB5w6p1IHRow61jaC4gVmnhu4djIHPhu60gZOG7pW5nIG3DtCBow6xuaCBQcm9iaXQgbmjhurFtIGtp4buDbSB0cmEgdMOtbmggbmjhuqV0IHF1w6FuIHbhu5tpIG3DtCBow6xuaCBMb2dpdCwgdsOgIGvhur90IHF14bqjIGNobyB0aOG6pXkgY8OhYyB54bq/dSB04buRIHF1YW4gdHLhu41uZyB24bqrbiBnaeG7ryBuZ3V5w6puIHTDrW5oIGNo4bqldCB2w6Agw70gbmdoxKlhIHRo4buRbmcga8OqLCB04burIMSRw7MgbMOgbSB0xINuZyDEkeG7mSB0aW4gY+G6rXkgY2hvIGvhur90IGx14bqtbiBuZ2hpw6puIGPhu6l1Lg0KPC9kaXY+DQoNCiMjICoqNC4zIE3DtCBow6xuaCBo4buTaSBxdXkgQ2xvZ2xvZyoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClRhIHRp4bq/cCB04bulYyB24bubaSBtw7QgaMOsbmggaOG7k2kgcXV5IENsb2dsb2cNCjwvZGl2Pg0KDQpgYGB7cn0NCm1vaGluaDMgPC0gZ2xtKHByZW1pdW0gfiBzcG90aWZ5X3VzYWdlX3BlcmlvZCArIHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW4gKyBwcmVmZmVyZWRfcHJlbWl1bV9wbGFuICsgcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50LCBkYXRhID0gc3BvdGlmeTEsZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJjbG9nbG9nIikpDQpzdW1tYXJ5KG1vaGluaDMpDQpgYGANCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkvhur90IHF14bqjIHBow6JuIHTDrWNoIGjhu4cgc+G7kToNCjwvZGl2Pg0KDQotICoqQmnhur9uIHNwb3RpZnlfc3Vic2NyaXB0aW9uX3BsYW5QcmVtaXVtIChwYWlkIHN1YnNjcmlwdGlvbikqKiB0aeG6v3AgdOG7pWMgY8OzIGjhu4cgc+G7kSBkxrDGoW5nICgwLjY2NTczKSB2w6Agw70gbmdoxKlhIHRo4buRbmcga8OqIHLhuqV0IGNhbyB24bubaSBwLXZhbHVlIDwgMC4wMDEuIEvhur90IHF14bqjIG7DoHkgY2hvIHRo4bqleSBuZ8aw4budaSBkw7luZyBoaeG7h24gdOG6oWkgxJFhbmcgc+G7rSBk4bulbmcgdMOgaSBraG/huqNuIFByZW1pdW0gY8OzIGto4bqjIG7Eg25nIHPhurVuIHPDoG5nIHRp4bq/cCB04bulYyDEkcSDbmcga8O9IGNhbyBoxqFuIGjhurNuIHNvIHbhu5tpIG5nxrDhu51pIGTDuW5nIG1p4buFbiBwaMOtIOKAkyBt4buZdCBwaMOhdCBoaeG7h24gbmjhuqV0IHF1w6FuIHbhu5tpIGPDoWMgbcO0IGjDrG5oIHRyxrDhu5tjLg0KDQotIFRyb25nIG5ow7NtICoqcHJlZmZlcmVkX3ByZW1pdW1fcGxhbjoqKg0KDQogICAtIE5nxrDhu51pIGTDuW5nIGNo4buNbiBnw7NpICoqSW5kaXZpZHVhbCBQbGFuIOKAkyBScyAxMTkvbW9udGgqKiBjw7MgaOG7hyBz4buRIGTGsMahbmcgKDAuNTgyMTcpIHbDoCBjw7Mgw70gbmdoxKlhIOG7nyBt4bupYyAxJSAocCA9IDAuMDA4NDMxKSwgcGjhuqNuIMOhbmggbeG7qWMgxJHhu5kgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBjYW8gaMahbiBzbyB24bubaSBuaMOzbSB0aGFtIGNoaeG6v3UuDQoNCiAgLSBOZ8aw4budaSBraMO0bmcgY2jhu41uIGLhuqV0IGvhu7MgZ8OzaSBuw6BvICoqKE5vbmUpKiogY8OzIGjhu4cgc+G7kSDDom0gcuG6pXQgbOG7m24gKC0zLjIyNzUyKSB2w6AgcC12YWx1ZSBn4bqnbiBuaMawIGLhurFuZyAwLCBjaG8gdGjhuqV5IGfhuqduIG5oxrAga2jDtG5nIGPDsyBraOG6oyBuxINuZyBz4bq1biBzw6BuZyB0cuG6oyBwaMOtLiDEkMOieSBsw6AgbeG7mXQga+G6v3QgcXXhuqMgaOG7o3AgbMO9IHbhu4EgbeG6t3QgbG9naWMuDQoNCiAgLSBOZ8aw4budaSBjaOG7jW4gKipTdHVkZW50IFBsYW4g4oCTIFJzIDU5L21vbnRoKiogY8OzIGjhu4cgc+G7kSDDom0gKC0wLjM1MDY3KSwgdHV5IG5oacOqbiBwLXZhbHVlID0gMC4xNTYgY2hvIHRo4bqleSBjaMawYSDEkeG7pyBi4bqxbmcgY2jhu6luZyB0aOG7kW5nIGvDqiByw7UgcsOgbmcgduG7gSB0w6FjIMSR4buZbmcuDQoNCi0gKipCaeG6v24gcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50UG9kY2FzdCoqIGPDsyBo4buHIHPhu5EgZMawxqFuZyBraMOhIGzhu5tuICgwLjcxMzE5KSB2w6Agw70gbmdoxKlhIHLhuqV0IGNhbyAocCA9IDAuMDAwMjc2KS4gxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgbmfGsOG7nWkgZMO5bmcgdGjDrWNoIG5naGUgcG9kY2FzdCBjw7Mga2jhuqMgbsSDbmcgY2FvIGjGoW4gdHJvbmcgdmnhu4djIHPhurVuIHPDoG5nIHRy4bqjIHBow60g4oCTIG3hu5l0IHh1IGjGsOG7m25nIG5nw6B5IGPDoG5nIHBo4buVIGJp4bq/biB0cm9uZyBow6BuaCB2aSB0acOqdSBkw7luZyBu4buZaSBkdW5nIMOibSB0aGFuaC4NCg0KLSBDw6FjIGJp4bq/biB24buBIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkgKHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSB0aeG6v3AgdOG7pWMga2jDtG5nIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6og4bufIG3hu41pIG3hu6ljIMO9IG5naMSpYS4gxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgdGjhu51pIGdpYW4gc+G7rSBk4bulbmcgbuG7gW4gdOG6o25nIGtow7RuZyBwaOG6o2kgbMOgIHnhur91IHThu5EgY2hpIHBo4buRaSBow6BuaCB2aSBz4bq1biBzw6BuZyDEkcSDbmcga8O9IFByZW1pdW0uDQoNCiMjICoqNC40IFNvIHPDoW5oIHbDoCBs4buxYSBjaOG7jW4gbcO0IGjDrG5oKioNCg0KIyMjICoqNC40LjEgVOG7lW5nIGjhu6NwIGvhur90IHF14bqjIG3DtCBow6xuaCoqDQoNCiMjIyMgKipC4bqjbmcgNC5YOiBTbyBzw6FuaCBo4buHIHPhu5EgaOG7k2kgcXV5IGdp4buvYSAzIG3DtCBow6xuaCAoTG9naXQsIFByb2JpdCwgQ2xvZy1sb2cpKioNCg0KfCBCaeG6v24gxJHhu5ljIGzhuq1wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBMb2dpdCBFc3RpbWF0ZSB8IHAtdmFsdWUgICAgIHwgUHJvYml0IEVzdGltYXRlIHwgcC12YWx1ZSAgICAgfCBDbG9nLWxvZyBFc3RpbWF0ZSB8IHAtdmFsdWUgICAgIHwNCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLXwNCnwgKEludGVyY2VwdCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAtMC4yNzggICAgICAgICB8IDAuNDMxICAgICAgIHwgLTAuMTY3ICAgICAgICAgICB8IDAuNDMxICAgICAgIHwgLTAuNjI4ICAgICAgICAgICAgfCAqKjAuMDA4KiogICB8DQp8IGBzcG90aWZ5X3VzYWdlX3BlcmlvZDogNiBtb250aHPigJMxIHllYXJgICAgICAgfCAtMC4wNTEgICAgICAgICB8IDAuODc5ICAgICAgIHwgLTAuMDMzICAgICAgICAgICB8IDAuODY1ICAgICAgIHwgLTAuMDcyICAgICAgICAgICAgfCAwLjczNyAgICAgICB8DQp8IGBzcG90aWZ5X3VzYWdlX3BlcmlvZDogPCA2IG1vbnRoc2AgICAgICAgICAgIHwgLTAuNzEzICAgICAgICAgfCAwLjA4OCAgICAgICB8IC0wLjM5MiAgICAgICAgICAgfCAwLjEwOCAgICAgICB8IC0wLjUzNSAgICAgICAgICAgIHwgKjAuMDgyKiAgICAgfA0KfCBgc3BvdGlmeV91c2FnZV9wZXJpb2Q6ID4gMiB5ZWFyc2AgICAgICAgICAgICB8IDAuMzQ5ICAgICAgICAgIHwgMC4yODIgICAgICAgfCAwLjI1MyAgICAgICAgICAgIHwgMC4xNzkgICAgICAgfCAwLjMwMCAgICAgICAgICAgICB8IDAuMTU0ICAgICAgIHwNCnwgYHN1YnNjcmlwdGlvbl9wbGFuOiBQcmVtaXVtIChwYWlkKWAgICAgICAgICAgfCAqKjEuMTgyKiogICAgICB8ICoqKjAuMDAwKioqIHwgKiowLjY3NyoqICAgICAgICB8ICoqKjAuMDAwKioqIHwgKiowLjY2NioqICAgICAgICAgfCAqKiowLjAwMCoqKiB8DQp8IGBwcmVmZXJyZWRfcGxhbjogRmFtaWx5IChScyAxNzkvbW9udGgpYCAgICAgIHwgMC4xMDQgICAgICAgICAgfCAwLjgxNCAgICAgICB8IDAuMDM3ICAgICAgICAgICAgfCAwLjg4OSAgICAgICB8IDAuMDE0ICAgICAgICAgICAgIHwgMC45NjAgICAgICAgfA0KfCBgcHJlZmVycmVkX3BsYW46IEluZGl2aWR1YWwgKFJzIDExOS9tb250aClgICB8ICoqMC43NTAqKiAgICAgIHwgKjAuMDM3KiAgICAgfCAqKjAuNDU3KiogICAgICAgIHwgKjAuMDMzKiAgICAgfCAqKjAuNTgyKiogICAgICAgICB8ICoqMC4wMDgqKiAgIHwNCnwgYHByZWZlcnJlZF9wbGFuOiBOb25lYCAgICAgICAgICAgICAgICAgICAgICAgfCAqKi0zLjY2NSoqICAgICB8ICoqKjAuMDAwKioqIHwgKiotMS45ODMqKiAgICAgICB8ICoqKjAuMDAwKioqIHwgKiotMy4yMjcqKiAgICAgICAgfCAqKiowLjAwMCoqKiB8DQp8IGBwcmVmZXJyZWRfcGxhbjogU3R1ZGVudCAoUnMgNTkvbW9udGgpYCAgICAgIHwgLTAuNTQ5ICAgICAgICAgfCAwLjEyMCAgICAgICB8IC0wLjM1OCAgICAgICAgICAgfCAwLjA5MyAgICAgICB8IC0wLjM1MSAgICAgICAgICAgIHwgMC4xNTYgICAgICAgfA0KfCBgcHJlZmVycmVkX2xpc3RlbmluZzogUG9kY2FzdGAgICAgICAgICAgICAgICB8ICoqMC45ODkqKiAgICAgIHwgKiowLjAwMioqICAgfCAqKjAuNTcxKiogICAgICAgIHwgKiowLjAwMSoqICAgfCAqKjAuNzEzKiogICAgICAgICB8ICoqKjAuMDAwKioqIHwNCg0KXCogcCA8IDAuMSwgXCpcKiBwIDwgMC4wNSwgXCpcKlwqIHAgPCAwLjAxDQoNCg0KROG7sWEgdHLDqm4gYuG6o25nIHThu5VuZyBo4bujcCBr4bq/dCBxdeG6oyBo4buTaSBxdXkgdOG7qyBiYSBtw7QgaMOsbmggKExvZ2l0LCBQcm9iaXQsIENsb2ctbG9nKSwgdGEgY8OzIHRo4buDIHLDunQgcmEgbeG7mXQgc+G7kSBuaOG6rW4gxJHhu4tuaCBxdWFuIHRy4buNbmcgduG7gSB0w6FjIMSR4buZbmcgY+G7p2EgY8OhYyBiaeG6v24gxJHhu5ljIGzhuq1wIMSR4bq/biB4w6FjIHN14bqldCBuZ8aw4budaSBkw7luZyBs4buxYSBjaOG7jW4gZ8OzaSBQcmVtaXVtIHRyw6puIFNwb3RpZnkgbmjGsCBzYXU6DQoNCiMjIyMgKiooMSkgR8OzaSDEkcSDbmcga8O9IGhp4buHbiB04bqhaTogUHJlbWl1bSAocGFpZCBzdWJzY3JpcHRpb24pKioNCg0KQmnhur9uIG7DoHkgY8OzIGjhu4cgc+G7kSBo4buTaSBxdXkgZMawxqFuZyB2w6AgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiBjYW8gKHAgPCAwLjAxKSDhu58gY+G6oyBiYSBtw7QgaMOsbmguIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IHLhurFuZyBuZ8aw4budaSBkw7luZyDEkcOjIMSRxINuZyBrw70gZ8OzaSBQcmVtaXVtIHRyxrDhu5tjIMSRw7MgY8OzIGto4bqjIG7Eg25nIHRp4bq/cCB04bulYyBs4buxYSBjaOG7jW4gZ8OzaSBQcmVtaXVtIGNhbyBoxqFuIGjhurNuIHNvIHbhu5tpIG5o4buvbmcgbmfGsOG7nWkga2jDtG5nIMSRxINuZyBrw70uIMSQw6J5IGzDoCBiaeG6v24gY8OzICoqdMOhYyDEkeG7mW5nIG3huqFuaCBt4bq9IHbDoCBuaOG6pXQgcXXDoW4gbmjhuqV0KiogdHJvbmcgdG/DoG4gYuG7mSBtw7QgaMOsbmguDQoNCiMjIyMgKiooMikgS+G6vyBob+G6oWNoIGfDs2kgUHJlbWl1bSBtb25nIG114buRbjogIk5vbmUiKioNCg0KQmnhur9uIG7DoHkgY8OzIGjhu4cgc+G7kSDDom0gcuG6pXQgbOG7m24gdsOgIG1hbmcgw70gbmdoxKlhIHRo4buRbmcga8OqIGNhbyAocCA8IDAuMDEpIOG7nyB04bqldCBj4bqjIG3DtCBow6xuaC4gxJBp4buBdSBuw6B5IHBo4bqjbiDDoW5oIMSRw7puZyB0aOG7sWMgdOG6vyBy4bqxbmcgbmfGsOG7nWkgZMO5bmcga2jDtG5nIGPDsyBuaHUgY+G6p3UgduG7m2kgYuG6pXQga+G7syBnw7NpIFByZW1pdW0gbsOgbyB0aMOsIHjDoWMgc3XhuqV0IGNo4buNbiBQcmVtaXVtIGfhuqduIG5oxrAgYuG6sW5nIDAuIMSQw6J5IGPFqW5nIGzDoCBt4buZdCB0cm9uZyBuaOG7r25nIGJp4bq/biBjw7MgKipz4bupYyDhuqNuaCBoxrDhu59uZyDDom0gcsO1IHLhu4d0IG5o4bqldCoqLg0KDQojIyMjICoqKDMpIEvhur8gaG/huqFjaCBtb25nIG114buRbjogR8OzaSBjw6EgbmjDom4gKEluZGl2aWR1YWwg4oCTIDExOWsvdGjDoW5nKSoqDQoNCkjhu4cgc+G7kSBj4bunYSBiaeG6v24gbsOgeSBkxrDGoW5nIHbDoCBjw7Mgw70gbmdoxKlhIHRo4buRbmcga8OqIChwIDwgMC4wNSkgdHJvbmcgY+G6oyBiYSBtw7QgaMOsbmguIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IHLhurFuZyBu4bq/dSBuZ8aw4budaSBkw7luZyBjw7Mgbmh1IGPhuqd1IHbhu5tpIGfDs2kgY8OhIG5ow6JuIHRow6wga2jhuqMgbsSDbmcgaOG7jSBjaOG7jW4gUHJlbWl1bSBjYW8gaMahbiByw7UgcuG7h3Qgc28gduG7m2kgY8OhYyBuaMOzbSBraMOhYy4gxJBp4buBdSBuw6B5IGPDsyB0aOG7gyBn4bujaSDDvSBy4bqxbmcgKipnw7NpIGPDoSBuaMOibiBsw6AgcGjDom4ga2jDumMgdGjhu4sgdHLGsOG7nW5nIGhp4buHdSBxdeG6oyBuaOG6pXQqKiDEkeG7gyB0aHUgaMO6dCBuZ8aw4budaSBkw7luZyBuw6JuZyBj4bqlcC4NCg0KIyMjIyAqKig0KSBO4buZaSBkdW5nIG5naGUgxrBhIHRow61jaDogUG9kY2FzdCoqDQoNCkJp4bq/biBuw6B5IGPDsyBo4buHIHPhu5EgZMawxqFuZyB2w6Agw70gbmdoxKlhIHRo4buRbmcga8OqIGNhbyAocCA8IDAuMDEgaG/hurdjIDwgMC4wNSkgdHJvbmcgdOG6pXQgY+G6oyBtw7QgaMOsbmguIMSQaeG7gXUgbsOgeSBjaOG7iSByYSBy4bqxbmcgbmfGsOG7nWkgZMO5bmcgY8OzIHh1IGjGsOG7m25nIHRow61jaCBuZ2hlIHBvZGNhc3QgY8OzICoqeMOhYyBzdeG6pXQgY2jhu41uIFByZW1pdW0gY2FvIGjGoW4gxJHDoW5nIGvhu4MqKiwgY8OzIHRo4buDIGRvIGjhu40gbW9uZyBtdeG7kW4gdGnhur9wIGPhuq1uIG7hu5lpIGR1bmcgxJHhu5ljIHF1eeG7gW4gaG/hurdjIGtow7RuZyBi4buLIGdpw6FuIMSRb+G6oW4gYuG7n2kgcXXhuqNuZyBjw6FvLg0KDQojIyMjICoqKDUpIFRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnk6IETGsOG7m2kgNiB0aMOhbmcqKg0KDQpCaeG6v24gbsOgeSBtYW5nIGjhu4cgc+G7kSDDom0gdHJvbmcgY+G6oyBiYSBtw7QgaMOsbmgsIHbDoCBn4bqnbiDEkeG6oXQgbeG7qWMgw70gbmdoxKlhIHRo4buRbmcga8OqIHRyb25nIG3DtCBow6xuaCBDbG9nLWxvZyAocCA9IDAuMDgyKS4gxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgbmfGsOG7nWkgZMO5bmcgbeG7m2kgKG3hu5tpIHPhu60gZOG7pW5nIGTGsOG7m2kgNiB0aMOhbmcpIGPDsyB4dSBoxrDhu5tuZyAqKmNoxrBhIHPhurVuIHPDoG5nIGNoaSB0cuG6oyBjaG8gUHJlbWl1bSoqLCBjw7MgdGjhu4MgdsOsIGNoxrBhIHRo4bqleSByw7UgZ2nDoSB0cuG7iyBj4bunYSB2aeG7h2MgbsOibmcgY+G6pXAuDQoNCiMjIyMgKiooNikgVGjhu51pIGdpYW4gc+G7rSBk4bulbmc6IFRyw6puIDIgbsSDbSoqDQoNCk3hurdjIGTDuSBo4buHIHPhu5EgZMawxqFuZyB0cm9uZyBj4bqjIGJhIG3DtCBow6xuaCwgYmnhur9uIG7DoHkgKipraMO0bmcgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqioqIHRyb25nIGLhuqV0IGvhu7MgbcO0IGjDrG5oIG7DoG8uIFR1eSBuaGnDqm4sIHh1IGjGsOG7m25nIHTEg25nIHbhuqtuIMSRw6FuZyBsxrB1IMO9IOKAkyBuZ8aw4budaSBkw7luZyBsw6J1IG7Eg20gY8OzIHRo4buDIG5o4bqtbiByYSBnacOhIHRy4buLIHPhu60gZOG7pW5nIGzDonUgZMOgaSB2w6AgY8OibiBuaOG6r2MgbsOibmcgY+G6pXAsIG5oxrBuZyBraMO0bmcgxJHhu6cgbeG6oW5oIMSR4buDIGvhur90IGx14bqtbiBjaOG6r2MgY2jhuq9uLg0KDQojIyMjICoqKDcpIEPDoWMgYmnhur9uIGPDsm4gbOG6oWkqKg0KDQotIEfDs2kgbW9uZyBtdeG7kW46IFN0dWRlbnQgUGxhbiAoNTlrL3Row6FuZykgY8OzIGjhu4cgc+G7kSDDom0gdsOgIGtow7RuZyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6osIMSRaeG7gXUgbsOgeSBjaG8gdGjhuqV5IMSR4buRaSB0xrDhu6NuZyBzaW5oIHZpw6puIGPDsyB4dSBoxrDhu5tuZyDDrXQgY2jhu41uIFByZW1pdW0gaMahbiwgY8OzIHRo4buDIGRvIG5o4bqheSBj4bqjbSB24buBIGdpw6EuDQoNCi0gR8OzaSBtb25nIG114buRbjogRmFtaWx5IFBsYW4ga2jDtG5nIGPDsyB0w6FjIMSR4buZbmcgcsO1IHLhu4d0IHbDoCBraMO0bmcgbWFuZyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogdHJvbmcgY+G6oyBiYSBtw7QgaMOsbmguDQoNCi0gVGjhu51pIGdpYW4gZMO5bmcgdOG7qyA2IHRow6FuZyDEkeG6v24gMSBuxINtIGtow7RuZyBjw7Mg4bqjbmggaMaw4bufbmcgxJHDoW5nIGvhu4MgdsOgIGtow7RuZyBjw7Mgw70gbmdoxKlhIHRo4buRbmcga8OqLg0KDQpRdWEgcGjDom4gdMOtY2ggY2hpIHRp4bq/dCwgY8OzIHRo4buDIG5o4bqtbiB0aOG6pXkgbeG7mXQgc+G7kSB54bq/dSB04buRIOG6o25oIGjGsOG7n25nICoqcsO1IHLhu4d0IHbDoCBuaOG6pXQgcXXDoW4qKiDEkeG6v24gaMOgbmggdmkgY2jhu41uIGfDs2kgUHJlbWl1bSBj4bunYSBuZ8aw4budaSBkw7luZyBTcG90aWZ5LCBiYW8gZ+G7k206ICANCi0gVmnhu4djIMSRw6MgdOG7q25nIMSRxINuZyBrw70gZ8OzaSBQcmVtaXVtLA0KDQotIE5odSBj4bqndSBjaOG7jW4gZ8OzaSBjw6EgbmjDom4sDQoNCi0gU+G7nyB0aMOtY2ggbmdoZSBwb2RjYXN0LA0KDQotIFbDoCBuZ8aw4bujYyBs4bqhaSwgbmfGsOG7nWkga2jDtG5nIGPDsyBuaHUgY+G6p3UgbsOibmcgY+G6pXAgaGF5IG3hu5tpIHPhu60gZOG7pW5nIGTGsOG7m2kgNiB0aMOhbmcgY8OzIHjDoWMgc3XhuqV0IGNo4buNbiBQcmVtaXVtIHLhuqV0IHRo4bqlcC4NCg0KS+G6v3QgcXXhuqMgbsOgeSBjdW5nIGPhuqVwIGPGoSBz4bufIMSRw6FuZyB0aW4gY+G6rXkgxJHhu4MgKipTcG90aWZ5IGPDsyB0aOG7gyDEkWnhu4F1IGNo4buJbmggY2hp4bq/biBsxrDhu6NjIHRp4bq/cCB0aOG7iyoqLCB04bqtcCB0cnVuZyB2w6BvIG5ow7NtIG5nxrDhu51pIGTDuW5nIHRp4buBbSBuxINuZyBuaMawIG5nxrDhu51pIHRow61jaCBwb2RjYXN0IHbDoCBuZ8aw4budaSBjw7Mgbmh1IGPhuqd1IHPhu60gZOG7pW5nIGPDoSBuaMOibiDigJMgxJHhu5NuZyB0aOG7nWkgeMOieSBk4buxbmcgdHLhuqNpIG5naGnhu4dtIGdpw7pwIG5nxrDhu51pIGTDuW5nIG3hu5tpIHRo4bqleSByw7UgZ2nDoSB0cuG7iyBj4bunYSB2aeG7h2MgbsOibmcgY+G6pXAgbMOqbiBQcmVtaXVtLg0KDQoNCiMjIyAqKjQuNC4yIFNvIHPDoW5oIGvhur90IHF14bqjIGPDoWMgbcO0IGjDrG5oKioNCg0KU2F1IGtoaSB0aeG6v24gaMOgbmggeMOieSBk4buxbmcgYmEgbcO0IGjDrG5oIGjhu5NpIHF1eSBuaOG7iyBwaMOibiBiYW8gZ+G7k20gTG9naXQsIFByb2JpdCB2w6AgQ2xvZy1sb2csIGLGsOG7m2MgdGnhur9wIHRoZW8gdHJvbmcgcXXDoSB0csOsbmggbmdoacOqbiBj4bupdSBsw6Agc28gc8OhbmggaGnhu4d1IHF14bqjIGThu7EgYsOhbyBj4bunYSBjw6FjIG3DtCBow6xuaCDEkeG7gyBs4buxYSBjaOG7jW4gbcO0IGjDrG5oIHThu5FpIMawdS4gVmnhu4djIMSRw6FuaCBnacOhIMSRxrDhu6NjIHRo4buxYyBoaeG7h24gZOG7sWEgdHLDqm4gYmEgdGnDqnUgY2jDrSBwaOG7lSBiaeG6v24gdsOgIMSRxrDhu6NjIGNo4bqlcCBuaOG6rW4gcuG7mW5nIHLDo2kgdHJvbmcgbmdoacOqbiBj4bupdSDEkeG7i25oIGzGsOG7o25nOiAqKkFJQyAoQWthaWtlIEluZm9ybWF0aW9uIENyaXRlcmlvbikqKiwgKipCSUMgKEJheWVzaWFuIEluZm9ybWF0aW9uIENyaXRlcmlvbikqKiB2w6AgKipCcmllciBTY29yZSoqLg0KDQpC4bqjbmcgZMaw4bubaSDEkcOieSB0csOsbmggYsOgeSBjaGkgdGnhur90IGPDoWMgZ2nDoSB0cuG7iyBj4bunYSBiYSB0acOqdSBjaMOtIMSRw6FuaCBnacOhIMSRxrDhu6NjIHTDrW5oIHRvw6FuIGNobyB04burbmcgbcO0IGjDrG5oOg0KDQp8IFRpw6p1IGNow60gxJHDoW5oIGdpw6EgfCBNw7QgaMOsbmggTG9naXQgfCBNw7QgaMOsbmggUHJvYml0IHwgTcO0IGjDrG5oIENsb2ctbG9nIHwNCnwtLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLXwNCnwgQUlDICAgICAgICAgICAgICAgfCA0MjguNjAgICAgICAgIHwgNDI4LjE3ICAgICAgICAgfCAqKjQyNi41MioqICAgICAgIHwNCnwgQklDICAgICAgICAgICAgICAgfCA0NjguMjYgICAgICAgIHwgNDY3Ljg0ICAgICAgICAgfCAqKjQ2Ni4xOSoqICAgICAgIHwNCnwgQnJpZXIgU2NvcmUgICAgICAgfCAwLjEwNCAgICAgICAgIHwgMC4xMDMgICAgICAgICAgfCAqKjAuMTAxKiogICAgICAgIHwNCg0KLSAqKkFJQyAoQWthaWtlIEluZm9ybWF0aW9uIENyaXRlcmlvbik6KiogQUlDIGzDoCBjaOG7iSBz4buRIMSRbyBsxrDhu51uZyBt4bupYyDEkeG7mSBwaMO5IGjhu6NwIGPhu6dhIG3DtCBow6xuaCB24bubaSBk4buvIGxp4buHdSB0aOG7sWMgdOG6vywgxJHhu5NuZyB0aOG7nWkgY8OzIHTDrW5oIMSR4bq/biBz4buRIGzGsOG7o25nIHRoYW0gc+G7kSBuaOG6sW0gdHLDoW5oIHTDrG5oIHRy4bqhbmcgbcO0IGjDrG5oIHF1w6EgcGjhu6ljIHThuqFwIChvdmVyZml0dGluZykuIFRyb25nIGvhur90IHF14bqjIHRodSDEkcaw4bujYywgbcO0IGjDrG5oICoqQ2xvZy1sb2cqKiBjw7MgZ2nDoSB0cuG7iyBBSUMgdGjhuqVwIG5o4bqldCAoNDI2LjUyKSwgY2hvIHRo4bqleSDEkcOieSBsw6AgbcO0IGjDrG5oIHBow7kgaOG7o3AgbmjhuqV0IHRyb25nIHZp4buHYyBjw6JuIGLhurFuZyBnaeG7r2EgxJHhu5kgY2jDrW5oIHjDoWMgdsOgIG3hu6ljIMSR4buZIMSRxqFuIGdp4bqjbiBj4bunYSBtw7QgaMOsbmguDQoNCi0gKipCSUMgKEJheWVzaWFuIEluZm9ybWF0aW9uIENyaXRlcmlvbik6KiogVMawxqFuZyB04buxIEFJQyBuaMawbmcgY8OzIG3hu6ljIHBo4bqhdCBjYW8gaMahbiBjaG8gbcO0IGjDrG5oIGPDsyBuaGnhu4F1IGJp4bq/biwgQklDIGzDoCBt4buZdCB0acOqdSBjaMOtIHRo4bqtbiB0cuG7jW5nIGjGoW4gdHJvbmcgdmnhu4djIMSRw6FuaCBnacOhIGhp4buHdSBxdeG6oyBtw7QgaMOsbmguIEvhur90IHF14bqjIEJJQyBjxaluZyBjaG8gdGjhuqV5IG3DtCBow6xuaCAqKkNsb2ctbG9nKiogbMOgIGzhu7FhIGNo4buNbiB04buRaSDGsHUgduG7m2kgQklDID0gNDY2LjE5IOKAkyB0aOG6pXAgaMahbiBj4bqjIExvZ2l0IHbDoCBQcm9iaXQuDQoNCi0gKipCcmllciBTY29yZToqKiDEkMOieSBsw6AgY2jhu4kgc+G7kSDEkW8gbMaw4budbmcgc2FpIHPhu5EgdHJ1bmcgYsOsbmggYsOsbmggcGjGsMahbmcgZ2nhu69hIHjDoWMgc3XhuqV0IGThu7EgYsOhbyB2w6AgZ2nDoSB0cuG7iyB0aOG7sWMgdOG6vyAoMCBob+G6t2MgMSkuIEJyaWVyIFNjb3JlIGPDoG5nIG5o4buPLCDEkeG7mSBjaMOtbmggeMOhYyBj4bunYSB4w6FjIHN14bqldCBk4buxIGLDoW8gY8OgbmcgY2FvLiBNw7QgaMOsbmggKipDbG9nLWxvZyoqIHRp4bq/cCB04bulYyB0aOG7gyBoaeG7h24gxrB1IHRo4bq/IGtoaSBjw7MgQnJpZXIgU2NvcmUgdGjhuqVwIG5o4bqldCAoMC4xMDEpLCB0cm9uZyBraGkgTG9naXQgdsOgIFByb2JpdCBs4bqnbiBsxrDhu6N0IGzDoCAwLjEwNCB2w6AgMC4xMDMuDQoNCiMjIyAqKjQuNC4zIE5o4bqtbiB4w6l0IHbDoCBs4buxYSBjaOG7jW4gbcO0IGjDrG5oKioNCg0KROG7sWEgdHLDqm4gYmEgdGnDqnUgY2jDrSDEkcOhbmggZ2nDoSwgY8OzIHRo4buDIHRo4bqleSBy4bqxbmcgKiptw7QgaMOsbmggQ2xvZy1sb2cgY29uc2lzdGVudGx5IG91dHBlcmZvcm0gY8OhYyBtw7QgaMOsbmggY8OybiBs4bqhaSoqIHbhu4EgY+G6oyDEkeG7mSBwaMO5IGjhu6NwIChBSUMgdsOgIEJJQykgbOG6q24gxJHhu5kgY2jDrW5oIHjDoWMgdHJvbmcgZOG7sSBiw6FvIHjDoWMgc3XhuqV0IChCcmllciBTY29yZSkuIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IGjDoG0gbGnDqm4ga+G6v3QgQ29tcGxlbWVudGFyeSBMb2ctbG9nIGzDoCBs4buxYSBjaOG7jW4gcGjDuSBo4bujcCBuaOG6pXQgY2hvIGLDoGkgdG/DoW4gZOG7sSDEkW/DoW4ga2jhuqMgbsSDbmcgY2jhu41uIGfDs2kgUHJlbWl1bSBj4bunYSBuZ8aw4budaSBkw7luZyBTcG90aWZ5Lg0KDQpW4buBIG3hurd0IGLhuqNuIGNo4bqldCwgbcO0IGjDrG5oIENsb2ctbG9nIHRoxrDhu51uZyDEkcaw4bujYyDEkcOhbmggZ2nDoSBsw6AgcGjDuSBo4bujcCBoxqFuIHRyb25nIGPDoWMgdMOsbmggaHXhu5FuZyBtw6AgeMOhYyBzdeG6pXQgeOG6o3kgcmEgc+G7sSBraeG7h24gY+G6p24gZOG7sSDEkW/DoW4gKOG7nyDEkcOieSBsw6AgY2jhu41uIGfDs2kgUHJlbWl1bSkgY8OzIHh1IGjGsOG7m25nICoqcuG6pXQgdGjhuqVwIGhv4bq3YyBy4bqldCBjYW8qKiwgdOG7qWMgbMOgIGtow7RuZyDEkeG7kWkgeOG7qW5nIHF1YW5oIDAuNS4gxJBp4buBdSBuw6B5IGtow6EgcGjDuSBo4bujcCB24bubaSBi4buRaSBj4bqjbmggbmdoacOqbiBj4bupdSB2w6wgaMOgbmggdmkgbsOibmcgY+G6pXAgbMOqbiBnw7NpIHRy4bqjIHBow60gY+G7p2EgbmfGsOG7nWkgZMO5bmcgY8OzIHRo4buDIGtow7RuZyBwaMOibiBi4buRIMSR4buTbmcgxJHhu4F1IOKAkyBjaOG7iSBt4buZdCBwaOG6p24gbmjhu48gbmfGsOG7nWkgZMO5bmcgdGjhu7FjIHPhu7EgbOG7sWEgY2jhu41uIMSRxINuZyBrw70gUHJlbWl1bS4NCg0KTeG6t2MgZMO5IG3DtCBow6xuaCBMb2dpdCB2w6AgUHJvYml0IGPFqW5nIGNobyBr4bq/dCBxdeG6oyBraMOhIHTGsMahbmcgxJHhu5NuZywgbmjGsG5nIGdpw6EgdHLhu4sgQUlDIHbDoCBCcmllciBTY29yZSBj4bunYSBjaMO6bmcgxJHhu4F1IGNhbyBoxqFuIG3DtCBow6xuaCBDbG9nLWxvZywgY2hvIHRo4bqleSBt4bupYyDEkeG7mSBk4buxIGLDoW8ga8OpbSBoxqFuIG5o4bq5LiBIxqFuIG7hu69hLCBz4buxIGtow6FjIGJp4buHdCB24buBIEJJQyBjw6BuZyBj4bunbmcgY+G7kSBs4buxYSBjaOG7jW4gKirGsHUgdGnDqm4gbcO0IGjDrG5oIENsb2ctbG9nKiouDQoNCi0tLQ0KDQojICoqUEjhuqZOIEvhur5UIExV4bqsTioqDQoNCiMjICoqMS4gS+G6v3QgbHXhuq1uIHThu6sgbcO0IGjDrG5oIGjhu5NpIHF1eSoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClNhdSBraGkgdGnhur9uIGjDoG5oIHjDonkgZOG7sW5nIHbDoCBwaMOibiB0w61jaCBiYSBtw7QgaMOsbmggaOG7k2kgcXV5IG5o4buLIHBow6JuIHPhu60gZOG7pW5nIGPDoWMgaMOgbSBsacOqbiBr4bq/dCBraMOhYyBuaGF1IChsb2dpdCwgcHJvYml0IHbDoCBjbG9nbG9nKSwgY8OzIHRo4buDIG5o4bqtbiB0aOG6pXkgbeG7mXQgc+G7kSB54bq/dSB04buRIGPDsyDhuqNuaCBoxrDhu59uZyByw7UgcuG7h3QgdsOgIG5o4bqldCBxdcOhbiDEkeG6v24gaMOgbmggdmkgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBnw7NpIFNwb3RpZnkgUHJlbWl1bSBj4bunYSBuZ8aw4budaSBkw7luZy4NCg0KWeG6v3UgdOG7kSBjw7Mg4bqjbmggaMaw4bufbmcgbeG6oW5oIG3hur0gdsOgIHLDtSByw6BuZyBuaOG6pXQgdHJvbmcgY+G6oyBiYSBtw7QgaMOsbmggY2jDrW5oIGzDoCBsb+G6oWkgKip0w6BpIGtob+G6o24gaGnhu4duIHThuqFpIGPhu6dhIG5nxrDhu51pIGTDuW5nIChzcG90aWZ5X3N1YnNjcmlwdGlvbl9wbGFuKSoqLiBD4bulIHRo4buDLCBiaeG6v24gUHJlbWl1bSAocGFpZCBzdWJzY3JpcHRpb24pIGPDsyBo4buHIHPhu5EgZMawxqFuZyB2w6AgbWFuZyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogcuG6pXQgY2FvIChwLXZhbHVlIDwgMC4wMDEpIOG7nyBj4bqjIGJhIG3DtCBow6xuaC4gxJBp4buBdSBuw6B5IGNobyB0aOG6pXksIG5nxrDhu51pIGTDuW5nIGhp4buHbiDEkWFuZyBz4butIGThu6VuZyBnw7NpIFByZW1pdW0gbWnhu4VuIHBow60gZMO5bmcgdGjhu60gaG/hurdjIGPDsyB0cuG6o2kgbmdoaeG7h20gdHLhuqMgcGjDrSB0csaw4bubYyDEkcOieSBz4bq9IGPDsyB4w6FjIHN14bqldCBjYW8gaMahbiDEkcOhbmcga+G7gyB0cm9uZyB2aeG7h2Mgc+G6tW4gc8OgbmcgdGnhur9wIHThu6VjIMSRxINuZyBrw70gZOG7i2NoIHbhu6UgbsOgeS4gxJDDonkgbMOgIG3hu5l0IHBow6F0IGhp4buHbiBxdWFuIHRy4buNbmcsIGLhu59pIG7DsyBwaOG6o24gw6FuaCBoaeG7h3UgcXXhuqMgY+G7p2EgY2hp4bq/biBsxrDhu6NjIHRy4bqjaSBuZ2hp4buHbSBk4buLY2ggduG7pSBtaeG7hW4gcGjDrSBob+G6t2MgY8OzIGdp4bubaSBo4bqhbiBj4bunYSBTcG90aWZ5IHRyb25nIHZp4buHYyB0aMO6YyDEkeG6qXkgaMOgbmggdmkgdGnDqnUgZMO5bmcgdHLhuqMgcGjDrS4NCg0KVGnhur9wIHRoZW8sICoqYmnhur9uIHByZWZmZXJlZF9wcmVtaXVtX3BsYW4g4oCTIMSR4bqhaSBkaeG7h24gY2hvIGfDs2kgUHJlbWl1bSBtw6AgbmfGsOG7nWkgZMO5bmcgbW9uZyBtdeG7kW4qKiDigJMgY8WpbmcgY8OzIOG6o25oIGjGsOG7n25nIMSR4bq/biBow6BuaCB2aSDEkcSDbmcga8O9LCBuaMawbmcgbeG7qWMgxJHhu5kg4bqjbmggaMaw4bufbmcgY8OzIHPhu7Ega2jDoWMgYmnhu4d0IGdp4buvYSBjw6FjIG5ow7NtLiDEkMOhbmcgY2jDuiDDvSBsw6AgbmjDs20gbmfGsOG7nWkgZMO5bmcgY2jhu41uIGfDs2kg4oCcSW5kaXZpZHVhbCBQbGFuIOKAkyBScyAxMTkvbW9udGjigJ0gY8OzIGjhu4cgc+G7kSBkxrDGoW5nIHbDoCBtYW5nIMO9IG5naMSpYSB0aOG7kW5nIGvDqiDhu58gbeG7qWMgNSUgxJHhur9uIDElIHRyb25nIGPhuqMgYmEgbcO0IGjDrG5oLiDEkGnhu4F1IG7DoHkgY2hvIHRo4bqleSDEkcOieSBsw6AgbmjDs20gbmfGsOG7nWkgZMO5bmcgbeG7pWMgdGnDqnUgdGnhu4FtIG7Eg25nLCBjw7MgeHUgaMaw4bubbmcgY2FvIGNodXnhu4NuIHNhbmcgdHLhuqMgcGjDrS4gTmfGsOG7o2MgbOG6oWksIG5ow7NtIGtow7RuZyBjaOG7jW4gYuG6pXQga+G7syBnw7NpIG7DoG8gKGdpw6EgdHLhu4sgTm9uZSkgY8OzIGjhu4cgc+G7kSDDom0gcuG6pXQgbOG7m24gdsOgIMO9IG5naMSpYSB0aOG7kW5nIGvDqiBj4buxYyBr4buzIGNhbyAocC12YWx1ZSBn4bqnbiBuaMawIGLhurFuZyAwKSwgY2hvIHRo4bqleSByw6BvIGPhuqNuIGzhu5tuIHRyb25nIHZp4buHYyBjaHV54buDbiDEkeG7lWkgaOG7jSBzYW5nIG5nxrDhu51pIGTDuW5nIHRy4bqjIHBow60uDQoNCkN14buRaSBjw7luZywgKipiaeG6v24gcHJlZmVycmVkX2xpc3RlbmluZ19jb250ZW50IOKAkyDEkeG6oWkgZGnhu4duIGNobyBu4buZaSBkdW5nIG5naGUgecOqdSB0aMOtY2gqKiDigJMgY8WpbmcgY2hvIHRo4bqleSDhuqNuaCBoxrDhu59uZyDEkcOhbmcga+G7gyDEkeG6v24gaMOgbmggdmkgxJHEg25nIGvDvS4gTmjhu69uZyBuZ8aw4budaSBjw7Mgc+G7nyB0aMOtY2ggbmdoZSBQb2RjYXN0IGPDsyBo4buHIHPhu5EgZMawxqFuZyB2w6AgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqiDhu58gbeG7qWMgY2FvIChwIDwgMC4wMSBob+G6t2MgcCA8IDAuMDAxKSwgcGjhuqNuIMOhbmggeHUgaMaw4bubbmcgbmfGsOG7nWkgdGnDqnUgZMO5bmcgaGnhu4duIMSR4bqhaSDEkcOhbmggZ2nDoSBjYW8gY8OhYyBu4buZaSBkdW5nIGNodXnDqm4gYmnhu4d0IHbDoCBz4bq1biBzw6BuZyBjaGkgdHLhuqMgxJHhu4MgdGnhur9wIGPhuq1uIGNow7puZyBjaOG6pXQgbMaw4bujbmcgaMahbi4NCg0KVHJvbmcga2hpIMSRw7MsICoqYmnhur9uIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIFNwb3RpZnkgKHNwb3RpZnlfdXNhZ2VfcGVyaW9kKSoqIHR1eSDEkcaw4bujYyDEkcawYSB2w6BvIG3DtCBow6xuaCBuaMawbmcga2jDtG5nIG1hbmcgw70gbmdoxKlhIHRo4buRbmcga8OqIHRyb25nIGLhuqV0IGvhu7MgbcO0IGjDrG5oIG7DoG8uIMSQaeG7gXUgbsOgeSBjaG8gdGjhuqV5IHZp4buHYyBz4butIGThu6VuZyBTcG90aWZ5IHRyb25nIHRo4budaSBnaWFuIGTDoGkgaGF5IG5n4bqvbiBraMO0bmcgY8OzIOG6o25oIGjGsOG7n25nIHLDtSBy4buHdCDEkeG6v24ga2jhuqMgbsSDbmcgxJHEg25nIGvDvSBnw7NpIFByZW1pdW0g4oCTIG3hu5l0IHBow6F0IGhp4buHbiBraMOhIHRow7ogduG7iywgYuG7n2kgbsOzIHBo4bqjbiDDoW5oIHLhurFuZyB0aMOzaSBxdWVuIHPhu60gZOG7pW5nIGNoxrBhIMSR4bunIMSR4buDIHF1eeG6v3QgxJHhu4tuaCBow6BuaCB2aSBjaGkgdGnDqnUsIG3DoCB54bq/dSB04buRIHRy4bqjaSBuZ2hp4buHbSB2w6Agbmh1IGPhuqd1IG7hu5lpIGR1bmcgbeG7m2kgbMOgIHRoZW4gY2jhu5F0Lg0KPC9kaXY+DQoNCiMjICoqMi4gS+G6v3QgbHXhuq1uIGNodW5nKioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KVHJvbmcgYuG7kWkgY+G6o25oIG7hu4FuIHThuqNuZyBuZ2hlIG5o4bqhYyB0cuG7sWMgdHV54bq/biBuZ8OgeSBjw6BuZyBwaOG7lSBiaeG6v24gdsOgIG1hbmcgdMOtbmggY8OhIG5ow6JuIGjDs2EgY2FvIG5oxrAgU3BvdGlmeSwgdmnhu4djIGhp4buDdSByw7UgaMOgbmggdmkgdsOgIHh1IGjGsOG7m25nIHRpw6p1IGTDuW5nIMOibSBuaOG6oWMgY+G7p2EgbmfGsOG7nWkgZMO5bmcgdHLhu58gdGjDoG5oIG3hu5l0IHnhur91IHThu5EgdGhlbiBjaOG7kXQgxJHhu4MgcGjDoXQgdHJp4buDbiBz4bqjbiBwaOG6qW0sIHThu5FpIMawdSBk4buLY2ggduG7pSB2w6AgbsOibmcgY2FvIHThu7cgbOG7hyBjaHV54buDbiDEkeG7lWkgc2FuZyBtw7QgaMOsbmggdGh1IHBow60uIFRow7RuZyBxdWEgdmnhu4djIHBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmggdOG7qyA1MjAgbmfGsOG7nWkgZMO5bmcgU3BvdGlmeSwgYsOgaSB0aeG7g3UgbHXhuq1uIMSRw6MgdGnhur9uIGjDoG5oIG3DtCB04bqjIHbDoCBraeG7g20gxJHhu4tuaCBt4buRaSBxdWFuIGjhu4cgZ2nhu69hIGPDoWMgxJHhurdjIMSRaeG7g20gbmfGsOG7nWkgZMO5bmcgdsOgIGjDoG5oIHZpIHPhurVuIHPDoG5nIMSRxINuZyBrw70gZ8OzaSBQcmVtaXVtIOKAkyBt4buZdCBk4bqhbmcgaMOgbmggdmkgdGnDqnUgZMO5bmcgdHLhuqMgcGjDrSDEkWnhu4NuIGjDrG5oLg0KDQpC4bqxbmcgY8OhY2ggw6FwIGThu6VuZyBiYSBtw7QgaMOsbmggaOG7k2kgcXV5IG5o4buLIHBow6JuIChsb2dpdCwgcHJvYml0IHbDoCBjbG9nbG9nKSwga+G6v3QgcXXhuqMgcGjDom4gdMOtY2ggxJHDoyB4w6FjIMSR4buLbmggxJHGsOG7o2MgbeG7mXQgc+G7kSB54bq/dSB04buRIOG6o25oIGjGsOG7n25nIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogdsOgIHRo4buxYyB0aeG7hW4gxJHhur9uIGjDoG5oIHZpIMSRxINuZyBrw70gUHJlbWl1bS4gVHJvbmcgxJHDsywgdHLhuqNpIG5naGnhu4dtIHRyxrDhu5tjIHbhu5tpIGfDs2kgUHJlbWl1bSB2w6AgZ8OzaSDEkcSDbmcga8O9IG1vbmcgbXXhu5FuIGzDoCBuaOG7r25nIHnhur91IHThu5EgbuG7lWkgYuG6rXQsIGNobyB0aOG6pXkgdmFpIHRyw7IgcXVhbiB0cuG7jW5nIGPhu6dhIGNoaeG6v24gbMaw4bujYyBkw7luZyB0aOG7rSB2w6AgdGhp4bq/dCBr4bq/IGfDs2kgZ2nDoSBwaMO5IGjhu6NwLiBCw6puIGPhuqFuaCDEkcOzLCBsb+G6oWkgbuG7mWkgZHVuZyB5w6p1IHRow61jaCDigJMgxJHhurdjIGJp4buHdCBsw6AgUG9kY2FzdCDigJMgY8WpbmcgZ8OzcCBwaOG6p24gxJHhu4tuaCBow6xuaCBow6BuaCB2aSBjaGkgdHLhuqMgY+G7p2EgbmfGsOG7nWkgZMO5bmcuIE5nxrDhu6NjIGzhuqFpLCB54bq/dSB04buRIHRo4budaSBnaWFuIHPhu60gZOG7pW5nIG7hu4FuIHThuqNuZyB0dXkgxJHGsOG7o2Mga+G7syB24buNbmcgY8OzIOG6o25oIGjGsOG7n25nIG5oxrBuZyB0aOG7sWMgdOG6vyBs4bqhaSBraMO0bmcgbWFuZyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogcsO1IHLhu4d0LCBjaG8gdGjhuqV5IHLhurFuZyB0aMOzaSBxdWVuIHPhu60gZOG7pW5nIMSRxqFuIHRodeG6p24gY2jGsGEgxJHhu6cgxJHhu4MgdGjDumMgxJHhuql5IGjDoG5oIHZpIHRpw6p1IGTDuW5nIGPDsyBjYW0ga+G6v3QgdMOgaSBjaMOtbmguDQoNCkvhur90IHF14bqjIG5naGnDqm4gY+G7qXUga2jDtG5nIGNo4buJIGN1bmcgY+G6pXAgY8OhaSBuaMOsbiB0aOG7sWMgdGnhu4VuIHbhu4EgaMOgbmggdmkgZ2nhuqNpIHRyw60gY+G7p2EgbmfGsOG7nWkgZMO5bmcgc+G7kSwgbcOgIGPDsm4gY2hvIHRo4bqleSB0aeG7gW0gbsSDbmcg4bupbmcgZOG7pW5nIGPhu6dhIHBow6JuIHTDrWNoIGThu68gbGnhu4d1IMSR4buLbmggdMOtbmggdsOgIG3DtCBow6xuaCB0aOG7kW5nIGvDqiB0cm9uZyB2aeG7h2MgaOG7lyB0cuG7oyByYSBxdXnhur90IMSR4buLbmggdHJvbmcgbMSpbmggduG7sWMgbWFya2V0aW5nIHPhu5EsIHF14bqjbiBsw70gc+G6o24gcGjhuqltIHbDoCB04buRaSDGsHUgaMOzYSB0cuG6o2kgbmdoaeG7h20gbmfGsOG7nWkgZMO5bmcuIMSQw6J5IGzDoCBtaW5oIGNo4bupbmcgcsO1IHLDoG5nIGNobyBnacOhIHRy4buLIGPhu6dhIGThu68gbGnhu4d1IGjDoG5oIHZpIHRyb25nIHZp4buHYyB0aGnhur90IGvhur8gY8OhYyBjaGnhur9uIGzGsOG7o2MgdMSDbmcgdHLGsOG7n25nIGhp4buHdSBxdeG6oyBoxqFuLg0KPC9kaXY+DQoNCiMjICoqMy4gS2nhur9uIG5naOG7iyoqDQoNCiMjIyMgKiooMSkgVMSDbmcgY8aw4budbmcgdHLhuqNpIG5naGnhu4dtIHRo4butIGfDs2kgUHJlbWl1bSBjw7Mga2nhu4NtIHNvw6F0KioNCg0KPGRpdiBzdHlsZT0idGV4dC1pbmRlbnQ6IDJlbTsiPg0KS+G6v3QgcXXhuqMgY2hvIHRo4bqleSBuaOG7r25nIG5nxrDhu51pIMSRw6MgdOG7q25nIHPhu60gZOG7pW5nIGfDs2kgUHJlbWl1bSBjw7MgeMOhYyBzdeG6pXQgc+G6tW4gc8OgbmcgxJHEg25nIGvDvSBjYW8gaMahbiBo4bqzbi4gxJBp4buBdSBuw6B5IGNo4bupbmcgbWluaCBoaeG7h3Ug4bupbmcgdHLhuqNpIG5naGnhu4dtIHRo4buxYyB04bq/IMSRw7NuZyB2YWkgdHLDsiBxdWFuIHRy4buNbmcuIERvIMSRw7M6DQo8L2Rpdj4NCg0KLSBTcG90aWZ5IG7Dqm4gZHV5IHRyw6wgY2jDrW5oIHPDoWNoIGTDuW5nIHRo4butIG1p4buFbiBwaMOtLCBuaMawbmcgY8OzIHRo4buDIGPDoSBuaMOibiBow7NhIHRo4budaSBsxrDhu6NuZyBk4buxYSB0csOqbiBow6BuaCB2aSBz4butIGThu6VuZyAodsOtIGThu6U6IGNobyBwaMOpcCBuZ8aw4budaSBuZ2hlIFBvZGNhc3QgZMO5bmcgdGjhu60gbMOidSBoxqFuKS4NCg0KLSBUxINuZyBjxrDhu51uZyB0aMO0bmcgxJFp4buHcCB0cnV54buBbiB0aMO0bmcgbmjhuqVuIG3huqFuaCB2w6BvIHPhu7Ega2jDoWMgYmnhu4d0IHLDtSBy4buHdCBnaeG7r2EgdHLhuqNpIG5naGnhu4dtIG1p4buFbiBwaMOtIHbDoCB0cuG6oyBwaMOtOiBraMO0bmcgcXXhuqNuZyBjw6FvLCBjaOG6pXQgbMaw4bujbmcgw6JtIHRoYW5oIGNhbywgdOG6o2kgbmjhuqFjIG9mZmxpbmUsIHYudi4NCg0KIyMjIyAqKigyKSDGr3UgdGnDqm4gcXXhuqNuZyBiw6EgZ8OzaSDigJxJbmRpdmlkdWFsIFBsYW4g4oCTIFJzIDExOS9tb250aCoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NCkfDs2kgSW5kaXZpZHVhbCBQbGFuIGzDoCBnw7NpIMSRxrDhu6NjIG5nxrDhu51pIGTDuW5nIHRo4buDIGhp4buHbiBt4bupYyDEkeG7mSBz4bq1biBzw6BuZyBjaGkgdHLhuqMgY2FvIG5o4bqldCB0cm9uZyBwaMOibiB0w61jaC4gxJBp4buBdSBuw6B5IGfhu6NpIMO9IHLhurFuZzoNCjwvZGl2Pg0KDQotIMSQw6J5IGzDoCBnw7NpIOKAnMSRaeG7g20gbmfhu4104oCdIChzd2VldCBzcG90KSB24buBIGdpw6EgdHLhu4sgduG7m2kgbeG7qWMgY2hpIHBow60gduG7q2EgcGjhuqNpLCBwaMO5IGjhu6NwIHbhu5tpIGto4bqjIG7Eg25nIGNoaSB0cuG6oyBj4bunYSBwaOG6p24gbOG7m24gbmfGsOG7nWkgZMO5bmcgY8OhIG5ow6JuLg0KDQotIE7Dqm4gdMSDbmcgY8aw4budbmcgY8OhYyDGsHUgxJHDo2kgaG/hurdjIGtodXnhur9uIG3Do2kgbmfhuq9uIGjhuqFuIGNobyBnw7NpIG7DoHkgxJHhu4Mga8OtY2ggdGjDrWNoIHF1eeG6v3QgxJHhu4tuaCBjaHV54buDbiDEkeG7lWkuDQoNCi0gVOG6rXAgdHJ1bmcgbuG7mWkgZHVuZyB0cnV54buBbiB0aMO0bmcgdsOgIGPDoSBuaMOibiBow7NhIGfhu6NpIMO9IGfDs2kgbsOgeSDEkeG6v24gbmjDs20gbmfGsOG7nWkgZMO5bmcgY8OzIHh1IGjGsOG7m25nIHRy4bqjIHBow60gdGnhu4FtIG7Eg25nICh2w60gZOG7pTogbmfGsOG7nWkgdOG7q25nIG5naGUgUG9kY2FzdCBuaGnhu4F1LCBob+G6t2MgxJHDoyB04burbmcgZMO5bmcgdGjhu60gUHJlbWl1bSkuDQoNCiMjIyMgKiooMykgxJDhuqd1IHTGsCB2w6AgcGjDoXQgdHJp4buDbiBu4buZaSBkdW5nIFBvZGNhc3QgxJHhu5ljIHF1eeG7gW4qKg0KDQo8ZGl2IHN0eWxlPSJ0ZXh0LWluZGVudDogMmVtOyI+DQpOZ8aw4budaSBkw7luZyB5w6p1IHRow61jaCBQb2RjYXN0IGPDsyBraOG6oyBuxINuZyBjYW8gaMahbiBjaHV54buDbiBzYW5nIHRy4bqjIHBow60uIMSQaeG7gXUgbsOgeSBwaOG6o24gw6FuaCBy4bqxbmc6DQo8L2Rpdj4NCg0KLSBQb2RjYXN0IGtow7RuZyBjaOG7iSBsw6AgbuG7mWkgZHVuZyBnaeG6o2kgdHLDrSwgbcOgIGPDsm4gbMOgIGPDtG5nIGPhu6UgZ2nhu68gY2jDom4gdsOgIHRow7pjIMSR4bqpeSBuZ8aw4budaSBkw7luZyBjaGkgdHLhuqMuDQoNCi0gU3BvdGlmeSBuw6puIHBow6F0IHRyaeG7g24gdGjDqm0gbuG7mWkgZHVuZyBwb2RjYXN0IMSR4buZYyBxdXnhu4FuLCBi4bqjbiBxdXnhu4FuIGNhbyBj4bqlcCwgxJHhu5NuZyB0aOG7nWkgaOG7o3AgdMOhYyB24bubaSBuZ8aw4budaSBu4buVaSB0aeG6v25nLCBjaHV5w6puIGdpYSwgaW5mbHVlbmNlcuKApiDEkeG7gyB04bqhbyBjaHXhu5dpIG7hu5lpIGR1bmcgcG9kY2FzdCBnacOhIHRy4buLDQoNCiMjIyMgKiooNCkgUGjDom4gbG/huqFpIHbDoCBo4bqhbiBjaOG6vyBuaMOzbSBuZ8aw4budaSDigJxraMO0bmcgY2jhu41uIGfDs2kgbsOgbyoqDQoNCjxkaXYgc3R5bGU9InRleHQtaW5kZW50OiAyZW07Ij4NClBow6JuIHTDrWNoIGNo4buJIHJhIHLhurFuZyBuaMOzbSBuZ8aw4budaSBkw7luZyBraMO0bmcgcXVhbiB0w6JtIMSR4bq/biBi4bqldCBr4buzIGfDs2kgUHJlbWl1bSBuw6BvIGPDsyB4w6FjIHN14bqldCBy4bqldCB0aOG6pXAgY2h1eeG7g24gc2FuZyB0cuG6oyBwaMOtLiBUaGF5IHbDrCB0aeG6v3AgdOG7pWMgdGnDqnUgdOG7kW4gbmfDom4gc8OhY2ggcXXhuqNuZyBjw6FvIHbDoG8gbmjDs20gbsOgeSwgbsOqbjoNCjwvZGl2Pg0KDQotIFThuq1wIHRydW5nIHTDoGkgbmd1ecOqbiB2w6BvIGPDoWMgbmjDs20gxJHDoyBjw7MgdMOtbiBoaeG7h3UgcXVhbiB0w6JtOw0KDQotIMSQxrBhIG5ow7NtIG7DoHkgdsOgbyBjaGnhur9uIGThu4tjaCBjaMSDbSBzw7NjIGTDoGkgaOG6oW4gKG5oxrAgZ+G7o2kgw70gbuG7mWkgZHVuZyBt4bubaSwgcG9kY2FzdCBtaeG7hW4gcGjDrSksIHThuqFvIHPhu7EgZ+G6r24ga+G6v3QgZOG6p24gZOG6p24gdGhheSB2w6wgdGjDumMgw6lwIGNodXnhu4NuIMSR4buVaSBuZ2F5Lg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K