1 Giới Thiệu

1.1 Thu thập dữ liệu từ World Bank

Cơ sở dữ liệu của Ngân hàng Thế giới là một kho tàng thông tin khổng lồ về các vấn đề kinh tế và xã hội trên toàn thế giới. Nó bao gồm dữ liệu về:

  • Chỉ số kinh tế: GDP, tăng trưởng kinh tế, lạm phát, thương mại, đầu tư, v.v.

  • Chỉ số xã hội: Giáo dục, y tế, dinh dưỡng, nghèo đói, bất bình đẳng, v.v.

  • Môi trường: Biến đổi khí hậu, ô nhiễm môi trường, tài nguyên thiên nhiên, v.v.

  • Phát triển quốc gia: Hỗ trợ tài chính, dự án phát triển, chính sách phát triển, v.v.

Indicator trong World Bank là một biến số hoặc thước đo cụ thể được sử dụng để theo dõi một khía cạnh cụ thể về sự phát triển hoặc tình hình kinh tế của một quốc gia. Ở nhiệm vụ này ta chọn một indicator từ trong WB để phân tích

library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.3.3
## Warning: package 'ggplot2' was built under R version 4.3.3
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.5
## ✔ forcats   1.0.0     ✔ stringr   1.5.1
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── 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(WDI)
## Warning: package 'WDI' was built under R version 4.3.3
library(DT)
## Warning: package 'DT' was built under R version 4.3.3
ind <- WDIsearch('CO2 emissions')
d <- WDI(indicator = 'EN.ATM.CO2E.KT', country = ('VN'))
datatable(d)

Sau khi thực hiện load và tải dữ liệu từ World Bank với từ khoá là CO2 emissions ta chọn được bộ dữ liệu là EN.ATM.CO2E.KT với mã quốc gia là ‘VN’

Ta thu được bộ dữ liệu gồm 5 biến và 63 quan sát

  • Country : Tên quốc gia và quốc gia được chọn ở đây để phân tích là Việt Nam
  • iso2c: Mã quốc gia hai chữ cái theo tiêu chuẩn ISO 3166-1 alpha-2 (ở đây là ‘VN’)
  • iso3c: Mã quốc gia ba chữ cái theo tiêu chuẩn ISO 3166-1 alpha-3( ở đây là ‘VNM’)
  • Year: Là các năm từ 1960 đến 2022 ứng với 63 quan sát
  • EN.ATM.CO2E.KT:lượng khí thải CO2 phát thải từ nguồn năng lượng tiêu thụ và công nghiệp của các quốc gia, mà cụ thể ở đây là Việt Nam

Giải Thích chi tiết về indicator EN.ATM.CO2E.KT :

  • EN: Đại diện cho môi trường (Environment).
  • ATM: Chỉ rõ rằng lượng khí thải CO2 đo lường là ở mức độ không khí (Atmosphere).
  • CO2E: Chỉ ra rằng mã này bao gồm cả các khí thải như methane (CH4) và nitrous oxide (N2O), nhưng chúng được chuyển đổi thành tương đương khí CO2.
  • KT: Viết tắt của “kilotons”, đơn vị đo lường cho lượng khí thải CO2, được tính bằng nghìn tấn (1 kiloton = 1,000 tấn).

1.2 Thu thập dữ liệu từ IMF

Cơ sở dữ liệu của Quỹ Tiền tệ Quốc tế (IMF) là một kho tàng thông tin khổng lồ về các vấn đề kinh tế vĩ mô và tài chính quốc tế. Nó bao gồm dữ liệu về:

  • Chỉ số kinh tế vĩ mô: Tổng sản phẩm quốc nội (GDP), tỷ lệ lạm phát, tỷ lệ thất nghiệp, tỷ giá hối đoái, lãi suất, v.v.
  • Chỉ số tài chính quốc tế: Dự trữ ngoại hối, cán cân thanh toán quốc tế, nợ nước ngoài, đầu tư trực tiếp nước ngoài, v.v.
  • Thống kê về chính sách kinh tế: Chính sách tài khóa, chính sách tiền tệ, chính sách thương mại, v.v.
  • Dữ liệu về các chương trình của IMF: Cho vay, giám sát kinh tế, hỗ trợ kỹ thuật, v.v.

Indicator trong IMF (Quỹ Tiền tệ Quốc tế) là những thước đo được sử dụng để theo dõi và đánh giá tình hình kinh tế vĩ mô của các quốc gia. Các indicator này bao gồm nhiều khía cạnh khác nhau, như:

  • Tăng trưởng kinh tế: Tổng sản phẩm quốc nội (GDP), GDP bình quân đầu người, tỷ lệ tăng trưởng GDP.
  • Lạm phát: Tỷ lệ lạm phát, chỉ số giá tiêu dùng (CPI).
  • Lãi suất: Lãi suất cơ bản, lãi suất cho vay trung hạn và dài hạn.
  • Tỷ giá hối đoái: Tỷ giá hối đoái của đồng nội tệ so với các đồng tiền khác.
  • Cán cân thương mại: Xuất khẩu, nhập khẩu, cán cân thương mại ròng.
  • Nợ công: Nợ công so với GDP, tỷ lệ nợ/GDP.
  • Dự trữ ngoại hối: Dự trữ ngoại hối ròng, tỷ lệ dự trữ ngoại hối/GDP.
library(imf.data)
## Warning: package 'imf.data' was built under R version 4.3.3
Dataset <- list_datasets()
b <- load_datasets('FDI')
b1 <- b$get_series(freq = 'A', ref_area = 'VN', indicator = 'FD_FMD_IX')
b1 <- na.omit(b1)
datatable(b1)

Sau khi thực hiện load và tải dữ liệu từ IMF với từ khoá là ‘FDI’ ta chọn được indicator là ‘FD_FMD_IX’ với mã quốc gia là ‘VN’ và tần suất là ‘A’ (hàng năm)

Ta thu được bộ dữ liệu gồm 2 biến và 42 quan sát

  • TIME_PERIOD : một biến quan trọng trong dữ liệu theo thời gian ở đây nó đại diện cho các năm của các số liệu, ta có được số liệu của Việt Nam từ 1992-2021
  • A.VN.FD_FMD_IX là đại diện cho một chỉ số thị trường tài chính cụ thể liên quan đến đầu tư trực tiếp nước ngoài (FDI) tại Việt Nam. Cung cấp thông tin về xu hướng, biến động hoặc mức độ thu hút của vốn đầu tư nước ngoài trong thời gian nhất định.

Giải Thích chi tiết về indicator ‘FD_FMD_IX’ :

  • FD (Foreign Direct): Đây là việc đầu tư trực tiếp từ nước ngoài vào một quốc gia cụ thể thông qua việc mua vào doanh nghiệp, cơ sở hạ tầng, tài sản hoặc có thể là việc thiết lập các doanh nghiệp mới.
  • FMD (Financial Market Development): quá trình phát triển và cải thiện các thị trường tài chính trong một quốc gia
  • IX (Index): Đây là chỉ số, thường là một phần của dữ liệu thị trường hoặc dữ liệu kinh tế, biểu thị sự thay đổi hoặc biến động của một thông tin cụ thể theo thời gian.

2 Phân tích dữ liệu

2.1 Dữ Liệu Từ World Bank: Tổng lượng khí thải CO2 của Việt Nam

2.1.1 Phân Tích Xu hướng gia tăng về lượng khí thải CO2 của Việt Nam sau 10 năm từ 2011 đến 2020

Tạo ra bộ dữ liệu mới

d1 <- d %>% filter(year %in% seq(2011,2020))%>%select(year,EN.ATM.CO2E.KT)
d1 <- na.omit(d1)
names(d1) <- c('Year','CO2_Emissions')
d1
##    Year CO2_Emissions
## 1  2020      355323.1
## 2  2019      341716.8
## 3  2018      286139.3
## 4  2017      229877.4
## 5  2016      222028.5
## 6  2015      201513.3
## 7  2014      180698.8
## 8  2013      164297.4
## 9  2012      155522.8
## 10 2011      155973.3

Sau khi thực hiện lệnh sẽ tạo ra một bộ dữ liệu mới gồm 2 cột với 2 biến giá trị là Year (Năm)CO2_Emissions (lượng khí thải CO2). Bộ dữ liệu gồm có 10 hàng tương ứng với 10 quan sát là tổng lượng khí thải CO2 của đất nước Việt Nam từ năm 2011 đến năm 2020. Theo dữ liệu này,lượng khí thải CO2 Việt Nam đã tăng từ 155973.3 kiloton vào năm 2011 lên 355323.1 kiloton vào năm 2020.

Dùng Biểu Đồ Để Phân Tích Sự biến động của tổng lượng khí thải CO2 trong 10 năm trở lại đây của Việt Nam

library(tidyverse)
d1 %>% ggplot(aes(x =CO2_Emissions, y = Year)) +
  geom_point(color = 'black') +
  geom_smooth(method = 'lm', color = 'purple') +
  labs(title = "Biểu đồ thể hiện xu hướng gia tăng của lượng khí thải CO2 từ năm 2011 đến năm 2020") +
  labs(x = 'Tổng lượng khí thải CO2 ', y = 'Năm')
## `geom_smooth()` using formula = 'y ~ x'

  • Trục hoành (trục x): biểu diễn tổng lượng khí thải CO2.
  • Trục tung (trục y): biểu diễn các năm từ 2011 đến 2020.
  • Các điểm màu đen trên biểu đồ: biểu thị các giá trị thực tế của lượng khí thải CO2 tại từng năm.
  • Đường màu tím: là đường hồi quy tuyến tính, cho thấy xu hướng tổng thể của sự tăng trưởng của lượng khí thải CO2 qua các năm. Đường này dốc lên, có nghĩa là lượng khí thải CO2 tăng theo thời gian.

2.1.2 Phân Tích Sự Biến Động Tổng lượng khí thải CO2 Việt Nam sau 5 năm từ 2016 đến 2020

d2 <- d %>% filter(year %in% seq(2016,2020))%>%select(year,EN.ATM.CO2E.KT)
names(d2) <- c('year','CO2_Emissions')
d2 %>% ggplot(aes(x=year, y= CO2_Emissions)) +
  geom_col(fill='green') +
  geom_text(aes(label = CO2_Emissions ),vjust = 1, color = 'black') +
  labs(title = "Sự biến động lượng khí thải CO2 Việt Nam sau 5 năm từ 2016 đến 2020") +
  labs(x = 'Năm', y = 'Tổng lượng khí thải CO2')

Biểu đồ thể hiện sự biến động của Tổng lượng khí thải CO2 Việt Nam từ năm 2016 đến 2020:

  • Trục X: Thể hiện các năm từ 2016 đến 2020.
  • Trục Y: Thể hiện giá trị Tổng lượng khí thải CO2 tương ứng với mỗi năm.
  • Cột màu xanh: Biểu thị giá trị Tổng lượng khí thải CO2 cho từng năm.
  • Chữ số màu đen: Hiển thị giá trị cụ thể của Tổng lượng khí thải CO2 bên trên mỗi cột.

Nhận xét:

  • Tổng lượng khí thải CO2 Việt Nam có xu hướng tăng từ năm 2016 đến 2020.

  • Năm 2020 có Tổng lượng khí thải CO2 cao nhất trong giai đoạn này.

2.2 Dữ Liệu Từ IMF: Chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam

2.2.1 Phân Tích chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam sau 5 năm từ 2017 đến 2021

b1 <- as.data.frame(lapply(b1, as.numeric))
b1 %>% filter(TIME_PERIOD > 2016) %>%
  ggplot(aes(x=TIME_PERIOD, y=A.VN.FD_FMD_IX)) +
  geom_line(color='black', linewidth =1) +
  geom_point(color='blue') +
  labs(title = "Biểu đồ thể hiện chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam ") +
  labs(x = 'Năm', y = 'chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam')

Biểu đồ bao gồm:

Đường thẳng màu đen thể hiện xu hướng chung.

Các điểm màu xanh thể hiện giá trị cụ thể cho từng năm.

Chú thích:

  • Trục x: Năm
  • Trục y: chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam

Biểu đồ thể hiện xu hướng tích cực của chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam trong giai đoạn 2017-2021. Tuy nhiên, vẫn còn nhiều việc phải làm để nâng cao hiệu quả của chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam

2.2.2 Phân Tích xu thế chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam sau 10 năm từ 2011 đến 2021

b1 %>% ggplot(aes(x = A.VN.FD_FMD_IX , y = TIME_PERIOD)) +
  geom_point(color = 'red') +
  geom_smooth(method = 'lm', color = 'lightyellow') +
  labs(title = "Biểu đồ xu thế chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam sau 10 năm ") +
  labs(x = 'chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam', y = 'Năm')
## `geom_smooth()` using formula = 'y ~ x'

Đường cong màu vàng thể hiện xu hướng chung của Mức độ phát triển tài chính và hiệu quả của chính sách tiền tệ qua 10 năm.

Đường cong có dốc dương, cho thấy mức độ phát triển tài chính và hiệu quả của chính sách tiền tệ có xu hướng tăng trong giai đoạn này.

Độ dốc của đường cong cho thấy mức độ tăng trưởng của Mức độ phát triển tài chính và hiệu quả của chính sách tiền tệ.

Các điểm đỏ thể hiện giá trị thực tế của chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam qua các năm.

Sự chênh lệch giữa các điểm đỏ và đường cong màu vàng thể hiện biến động của mức độ tăng trưởng của chỉ số Phát triển Thị trường Tài chính của chính sách tiền tệ ở Việt Nam so với xu hướng chung.

Biến động này có thể do nhiều nhân tố khác nhau ảnh hưởng, như: - Tình hình kinh tế vĩ mô trong và ngoài nước. - Chính sách tiền tệ của Chính phủ. - Sự kiện bất ngờ như khủng hoảng kinh tế, thiên tai, dịch bệnh.

LS0tDQp0aXRsZTogIk5oaWVtdnU2Ig0KYXV0aG9yOiAiTMOibSBUaOG6o28gTXkiDQpkYXRlOiAiYHIgZm9ybWF0KFN5cy50aW1lKCksICclSDolTTolUywgJWQgLSAlbSAtICVZJylgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50OiANCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlDQogICAgdG9jX2RlcHRoOiAyDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgdG9jOiB0cnVlDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgIHRvYzogdHJ1ZQ0KICAgICB0b2NfZGVwdGg6ICcyJw0KICBwZGZfZG9jdW1lbnQ6DQogICAgbGF0ZXhfZW5naW5lOiB4ZWxhdGV4DQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyAqKkdp4bubaSBUaGnhu4d1KioNCg0KIyMgKipUaHUgdGjhuq1wIGThu68gbGnhu4d1IHThu6sgV29ybGQgQmFuayoqDQoNCioqQ8ahIHPhu58gZOG7ryBsaeG7h3UgY+G7p2EgTmfDom4gaMOgbmcgVGjhur8gZ2nhu5tpIGzDoCBt4buZdCBraG8gdMOgbmcgdGjDtG5nIHRpbiBraOG7lW5nIGzhu5MgduG7gSBjw6FjIHbhuqVuIMSR4buBIGtpbmggdOG6vyB2w6AgeMOjIGjhu5lpIHRyw6puIHRvw6BuIHRo4bq/IGdp4bubaSoqLiBOw7MgYmFvIGfhu5NtIGThu68gbGnhu4d1IHbhu4E6DQoNCiAtICoqQ2jhu4kgc+G7kSBraW5oIHThur86KiogR0RQLCB0xINuZyB0csaw4bufbmcga2luaCB04bq/LCBs4bqhbSBwaMOhdCwgdGjGsMahbmcgbeG6oWksIMSR4bqndSB0xrAsIHYudi4NCg0KIC0gKipDaOG7iSBz4buRIHjDoyBo4buZaToqKiBHacOhbyBk4bulYywgeSB04bq/LCBkaW5oIGTGsOG7oW5nLCBuZ2jDqG8gxJHDs2ksIGLhuqV0IGLDrG5oIMSR4bqzbmcsIHYudi4NCg0KIC0gKipNw7RpIHRyxrDhu51uZzoqKiBCaeG6v24gxJHhu5VpIGtow60gaOG6rXUsIMO0IG5oaeG7hW0gbcO0aSB0csaw4budbmcsIHTDoGkgbmd1ecOqbiB0aGnDqm4gbmhpw6puLCB2LnYuDQoNCiAtICoqUGjDoXQgdHJp4buDbiBxdeG7kWMgZ2lhOioqIEjhu5cgdHLhu6MgdMOgaSBjaMOtbmgsIGThu7Egw6FuIHBow6F0IHRyaeG7g24sIGNow61uaCBzw6FjaCBwaMOhdCB0cmnhu4NuLCB2LnYuDQoNCioqSW5kaWNhdG9yIHRyb25nIFdvcmxkIEJhbmsqKiBsw6AgbeG7mXQgYmnhur9uIHPhu5EgaG/hurdjIHRoxrDhu5tjIMSRbyBj4bulIHRo4buDIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIHRoZW8gZMO1aSBt4buZdCBraMOtYSBj4bqhbmggY+G7pSB0aOG7gyB24buBIHPhu7EgcGjDoXQgdHJp4buDbiBob+G6t2MgdMOsbmggaMOsbmgga2luaCB04bq/IGPhu6dhIG3hu5l0IHF14buRYyBnaWEuIOG7niBuaGnhu4dtIHbhu6UgbsOgeSB0YSBjaOG7jW4gbeG7mXQgaW5kaWNhdG9yIHThu6sgdHJvbmcgV0IgxJHhu4MgcGjDom4gdMOtY2ggDQoNCmBgYHtyfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KFdESSkNCmxpYnJhcnkoRFQpDQppbmQgPC0gV0RJc2VhcmNoKCdDTzIgZW1pc3Npb25zJykNCmQgPC0gV0RJKGluZGljYXRvciA9ICdFTi5BVE0uQ08yRS5LVCcsIGNvdW50cnkgPSAoJ1ZOJykpDQpkYXRhdGFibGUoZCkNCmBgYA0KDQpTYXUga2hpIHRo4buxYyBoaeG7h24gbG9hZCB2w6AgdOG6o2kgZOG7ryBsaeG7h3UgdOG7qyBXb3JsZCBCYW5rIHbhu5tpIHThu6sga2hvw6EgbMOgICoqQ08yIGVtaXNzaW9ucyoqIHRhIGNo4buNbiDEkcaw4bujYyBi4buZIGThu68gbGnhu4d1IGzDoCAqKkVOLkFUTS5DTzJFLktUKiogduG7m2kgbcOjIHF14buRYyBnaWEgbMOgICoqJ1ZOJyoqDQoNCioqVGEgdGh1IMSRxrDhu6NjIGLhu5kgZOG7ryBsaeG7h3UgZ+G7k20gNSBiaeG6v24gdsOgIDYzIHF1YW4gc8OhdCoqDQoNCiAtICoqQ291bnRyeSA6KiogVMOqbiBxdeG7kWMgZ2lhIHbDoCBxdeG7kWMgZ2lhIMSRxrDhu6NjIGNo4buNbiDhu58gxJHDonkgxJHhu4MgcGjDom4gdMOtY2ggbMOgIFZp4buHdCBOYW0NCiAtICoqaXNvMmM6KiogTcOjIHF14buRYyBnaWEgaGFpIGNo4buvIGPDoWkgdGhlbyB0acOqdSBjaHXhuqluIElTTyAzMTY2LTEgYWxwaGEtMiAo4bufIMSRw6J5IGzDoCAnVk4nKQ0KIC0gKippc28zYzoqKiBNw6MgcXXhu5FjIGdpYSBiYSBjaOG7ryBjw6FpIHRoZW8gdGnDqnUgY2h14bqpbiBJU08gMzE2Ni0xIGFscGhhLTMoIOG7nyDEkcOieSBsw6AgJ1ZOTScpDQogLSAqKlllYXI6KiogTMOgIGPDoWMgbsSDbSB04burIDE5NjAgxJHhur9uIDIwMjIg4bupbmcgduG7m2kgNjMgcXVhbiBzw6F0DQogLSAqKkVOLkFUTS5DTzJFLktUOioqbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIHBow6F0IHRo4bqjaSB04burIG5ndeG7k24gbsSDbmcgbMaw4bujbmcgdGnDqnUgdGjhu6UgdsOgIGPDtG5nIG5naGnhu4dwIGPhu6dhIGPDoWMgcXXhu5FjIGdpYSwgbcOgIGPhu6UgdGjhu4Mg4bufIMSRw6J5IGzDoCBWaeG7h3QgTmFtDQogDQoqKkdp4bqjaSBUaMOtY2ggY2hpIHRp4bq/dCB24buBIGluZGljYXRvciBFTi5BVE0uQ08yRS5LVCA6KioNCg0KIC0gKipFTjoqKiDEkOG6oWkgZGnhu4duIGNobyBtw7RpIHRyxrDhu51uZyAoRW52aXJvbm1lbnQpLg0KIC0gKipBVE06KiogQ2jhu4kgcsO1IHLhurFuZyBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIgxJFvIGzGsOG7nW5nIGzDoCDhu58gbeG7qWMgxJHhu5kga2jDtG5nIGtow60gKEF0bW9zcGhlcmUpLg0KIC0gKipDTzJFOioqIENo4buJIHJhIHLhurFuZyBtw6MgbsOgeSBiYW8gZ+G7k20gY+G6oyBjw6FjIGtow60gdGjhuqNpIG5oxrAgbWV0aGFuZSAoQ0g0KSB2w6Agbml0cm91cyBveGlkZSAoTjJPKSwgbmjGsG5nIGNow7puZyDEkcaw4bujYyBjaHV54buDbiDEkeG7lWkgdGjDoG5oIHTGsMahbmcgxJHGsMahbmcga2jDrSBDTzIuDQogLSAqKktUOioqIFZp4bq/dCB04bqvdCBj4bunYSAia2lsb3RvbnMiLCDEkcahbiB24buLIMSRbyBsxrDhu51uZyBjaG8gbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yLCDEkcaw4bujYyB0w61uaCBi4bqxbmcgbmdow6xuIHThuqVuICgxIGtpbG90b24gPSAxLDAwMCB04bqlbikuDQoNCiMjICoqVGh1IHRo4bqtcCBk4buvIGxp4buHdSB04burIElNRioqDQoNCioqQ8ahIHPhu58gZOG7ryBsaeG7h3UgY+G7p2EgUXXhu7kgVGnhu4FuIHThu4cgUXXhu5FjIHThur8gKElNRikgbMOgIG3hu5l0IGtobyB0w6BuZyB0aMO0bmcgdGluIGto4buVbmcgbOG7kyB24buBIGPDoWMgduG6pW4gxJHhu4Ega2luaCB04bq/IHbEqSBtw7QgdsOgIHTDoGkgY2jDrW5oIHF14buRYyB04bq/LiBOw7MgYmFvIGfhu5NtIGThu68gbGnhu4d1IHbhu4E6KioNCg0KIC0gKipDaOG7iSBz4buRIGtpbmggdOG6vyB2xKkgbcO0OioqIFThu5VuZyBz4bqjbiBwaOG6qW0gcXXhu5FjIG7hu5lpIChHRFApLCB04bu3IGzhu4cgbOG6oW0gcGjDoXQsIHThu7cgbOG7hyB0aOG6pXQgbmdoaeG7h3AsIHThu7cgZ2nDoSBo4buRaSDEkW/DoWksIGzDo2kgc3XhuqV0LCB2LnYuDQogLSAqKkNo4buJIHPhu5EgdMOgaSBjaMOtbmggcXXhu5FjIHThur86KiogROG7sSB0cuG7ryBuZ2/huqFpIGjhu5FpLCBjw6FuIGPDom4gdGhhbmggdG/DoW4gcXXhu5FjIHThur8sIG7hu6Mgbsaw4bubYyBuZ2/DoGksIMSR4bqndSB0xrAgdHLhu7FjIHRp4bq/cCBuxrDhu5tjIG5nb8OgaSwgdi52Lg0KIC0gKipUaOG7kW5nIGvDqiB24buBIGNow61uaCBzw6FjaCBraW5oIHThur86KiogQ2jDrW5oIHPDoWNoIHTDoGkga2jDs2EsIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hywgY2jDrW5oIHPDoWNoIHRoxrDGoW5nIG3huqFpLCB2LnYuDQogLSAqKkThu68gbGnhu4d1IHbhu4EgY8OhYyBjaMawxqFuZyB0csOsbmggY+G7p2EgSU1GOioqIENobyB2YXksIGdpw6FtIHPDoXQga2luaCB04bq/LCBo4buXIHRy4bujIGvhu7kgdGh14bqtdCwgdi52Lg0KDQoqKkluZGljYXRvciB0cm9uZyBJTUYgKFF14bu5IFRp4buBbiB04buHIFF14buRYyB04bq/KSoqIGzDoCBuaOG7r25nIHRoxrDhu5tjIMSRbyDEkcaw4bujYyBz4butIGThu6VuZyDEkeG7gyB0aGVvIGTDtWkgdsOgIMSRw6FuaCBnacOhIHTDrG5oIGjDrG5oIGtpbmggdOG6vyB2xKkgbcO0IGPhu6dhIGPDoWMgcXXhu5FjIGdpYS4gQ8OhYyBpbmRpY2F0b3IgbsOgeSBiYW8gZ+G7k20gbmhp4buBdSBraMOtYSBj4bqhbmgga2jDoWMgbmhhdSwgKipuaMawOioqDQoNCiAtICoqVMSDbmcgdHLGsOG7n25nIGtpbmggdOG6vzoqKiBU4buVbmcgc+G6o24gcGjhuqltIHF14buRYyBu4buZaSAoR0RQKSwgR0RQIGLDrG5oIHF1w6JuIMSR4bqndSBuZ8aw4budaSwgdOG7tyBs4buHIHTEg25nIHRyxrDhu59uZyBHRFAuDQogLSAqKkzhuqFtIHBow6F0OioqIFThu7cgbOG7hyBs4bqhbSBwaMOhdCwgY2jhu4kgc+G7kSBnacOhIHRpw6p1IGTDuW5nIChDUEkpLg0KIC0gKipMw6NpIHN14bqldDoqKiBMw6NpIHN14bqldCBjxqEgYuG6o24sIGzDo2kgc3XhuqV0IGNobyB2YXkgdHJ1bmcgaOG6oW4gdsOgIGTDoGkgaOG6oW4uDQogLSAqKlThu7cgZ2nDoSBo4buRaSDEkW/DoWk6KiogVOG7tyBnacOhIGjhu5FpIMSRb8OhaSBj4bunYSDEkeG7k25nIG7hu5lpIHThu4cgc28gduG7m2kgY8OhYyDEkeG7k25nIHRp4buBbiBraMOhYy4NCiAtICoqQ8OhbiBjw6JuIHRoxrDGoW5nIG3huqFpOioqIFh14bqldCBraOG6qXUsIG5o4bqtcCBraOG6qXUsIGPDoW4gY8OibiB0aMawxqFuZyBt4bqhaSByw7JuZy4NCiAtICoqTuG7oyBjw7RuZzoqKiBO4bujIGPDtG5nIHNvIHbhu5tpIEdEUCwgdOG7tyBs4buHIG7hu6MvR0RQLg0KIC0gKipE4buxIHRy4buvIG5nb+G6oWkgaOG7kWk6KiogROG7sSB0cuG7ryBuZ2/huqFpIGjhu5FpIHLDsm5nLCB04bu3IGzhu4cgZOG7sSB0cuG7ryBuZ2/huqFpIGjhu5FpL0dEUC4NCg0KYGBge3J9DQpsaWJyYXJ5KGltZi5kYXRhKQ0KRGF0YXNldCA8LSBsaXN0X2RhdGFzZXRzKCkNCmIgPC0gbG9hZF9kYXRhc2V0cygnRkRJJykNCmIxIDwtIGIkZ2V0X3NlcmllcyhmcmVxID0gJ0EnLCByZWZfYXJlYSA9ICdWTicsIGluZGljYXRvciA9ICdGRF9GTURfSVgnKQ0KYjEgPC0gbmEub21pdChiMSkNCmRhdGF0YWJsZShiMSkNCmBgYA0KDQpTYXUga2hpIHRo4buxYyBoaeG7h24gbG9hZCB2w6AgdOG6o2kgZOG7ryBsaeG7h3UgdOG7qyBJTUYgduG7m2kgdOG7qyBraG/DoSBsw6AgKionRkRJJyoqIHRhIGNo4buNbiDEkcaw4bujYyBpbmRpY2F0b3IgbMOgICoqJ0ZEX0ZNRF9JWCcqKiB24bubaSBtw6MgcXXhu5FjIGdpYSBsw6AgKionVk4nKiogdsOgIHThuqduIHN14bqldCBsw6AgKionQScqKiAoaMOgbmcgbsSDbSkNCg0KKipUYSB0aHUgxJHGsOG7o2MgYuG7mSBk4buvIGxp4buHdSBn4buTbSAyIGJp4bq/biB2w6AgNDIgcXVhbiBzw6F0KioNCg0KLSAqKlRJTUVfUEVSSU9EIDoqKiBt4buZdCBiaeG6v24gcXVhbiB0cuG7jW5nIHRyb25nIGThu68gbGnhu4d1IHRoZW8gdGjhu51pIGdpYW4g4bufIMSRw6J5IG7DsyDEkeG6oWkgZGnhu4duIGNobyBjw6FjIG7Eg20gY+G7p2EgY8OhYyBz4buRIGxp4buHdSwgdGEgY8OzIMSRxrDhu6NjIHPhu5EgbGnhu4d1IGPhu6dhIFZp4buHdCBOYW0gdOG7qyAxOTkyLTIwMjENCiAtICoqQS5WTi5GRF9GTURfSVgqKiBsw6AgxJHhuqFpIGRp4buHbiBjaG8gbeG7mXQgY2jhu4kgc+G7kSB0aOG7iyB0csaw4budbmcgdMOgaSBjaMOtbmggY+G7pSB0aOG7gyBsacOqbiBxdWFuIMSR4bq/biDEkeG6p3UgdMawIHRy4buxYyB0aeG6v3Agbsaw4bubYyBuZ2/DoGkgKEZESSkgdOG6oWkgVmnhu4d0IE5hbS4gQ3VuZyBj4bqlcCB0aMO0bmcgdGluIHbhu4EgeHUgaMaw4bubbmcsIGJp4bq/biDEkeG7mW5nIGhv4bq3YyBt4bupYyDEkeG7mSB0aHUgaMO6dCBj4bunYSB24buRbiDEkeG6p3UgdMawIG7GsOG7m2Mgbmdvw6BpIHRyb25nIHRo4budaSBnaWFuIG5o4bqldCDEkeG7i25oLg0KDQoqKkdp4bqjaSBUaMOtY2ggY2hpIHRp4bq/dCB24buBIGluZGljYXRvciAnRkRfRk1EX0lYJyA6KioNCg0KLSAqKkZEIChGb3JlaWduIERpcmVjdCk6KiogxJDDonkgbMOgIHZp4buHYyDEkeG6p3UgdMawIHRy4buxYyB0aeG6v3AgdOG7qyBuxrDhu5tjIG5nb8OgaSB2w6BvIG3hu5l0IHF14buRYyBnaWEgY+G7pSB0aOG7gyB0aMO0bmcgcXVhIHZp4buHYyBtdWEgdsOgbyBkb2FuaCBuZ2hp4buHcCwgY8ahIHPhu58gaOG6oSB04bqnbmcsIHTDoGkgc+G6o24gaG/hurdjIGPDsyB0aOG7gyBsw6Agdmnhu4djIHRoaeG6v3QgbOG6rXAgY8OhYyBkb2FuaCBuZ2hp4buHcCBt4bubaS4NCi0gKipGTUQgKEZpbmFuY2lhbCBNYXJrZXQgRGV2ZWxvcG1lbnQpOioqIHF1w6EgdHLDrG5oIHBow6F0IHRyaeG7g24gdsOgIGPhuqNpIHRoaeG7h24gY8OhYyB0aOG7iyB0csaw4budbmcgdMOgaSBjaMOtbmggdHJvbmcgbeG7mXQgcXXhu5FjIGdpYQ0KLSAqKklYIChJbmRleCk6KiogxJDDonkgbMOgIGNo4buJIHPhu5EsIHRoxrDhu51uZyBsw6AgbeG7mXQgcGjhuqduIGPhu6dhIGThu68gbGnhu4d1IHRo4buLIHRyxrDhu51uZyBob+G6t2MgZOG7ryBsaeG7h3Uga2luaCB04bq/LCBiaeG7g3UgdGjhu4sgc+G7sSB0aGF5IMSR4buVaSBob+G6t2MgYmnhur9uIMSR4buZbmcgY+G7p2EgbeG7mXQgdGjDtG5nIHRpbiBj4bulIHRo4buDIHRoZW8gdGjhu51pIGdpYW4uDQoNCiMgKipQaMOibiB0w61jaCBk4buvIGxp4buHdSoqDQoNCiMjICoqROG7ryBMaeG7h3UgVOG7qyBXb3JsZCBCYW5rOiBU4buVbmcgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIGPhu6dhIFZp4buHdCBOYW0gKioNCg0KIyMjICoqUGjDom4gVMOtY2ggWHUgaMaw4bubbmcgZ2lhIHTEg25nIHbhu4EgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIGPhu6dhIFZp4buHdCBOYW0gc2F1IDEwIG7Eg20gdOG7qyAyMDExIMSR4bq/biAyMDIwKioNCg0KKipU4bqhbyByYSBi4buZIGThu68gbGnhu4d1IG3hu5tpKioNCg0KYGBge3J9DQpkMSA8LSBkICU+JSBmaWx0ZXIoeWVhciAlaW4lIHNlcSgyMDExLDIwMjApKSU+JXNlbGVjdCh5ZWFyLEVOLkFUTS5DTzJFLktUKQ0KZDEgPC0gbmEub21pdChkMSkNCm5hbWVzKGQxKSA8LSBjKCdZZWFyJywnQ08yX0VtaXNzaW9ucycpDQpkMQ0KYGBgDQoNClNhdSBraGkgdGjhu7FjIGhp4buHbiBs4buHbmggc+G6vSB04bqhbyByYSBt4buZdCBi4buZIGThu68gbGnhu4d1IG3hu5tpIGfhu5NtIDIgY+G7mXQgduG7m2kgMiBiaeG6v24gZ2nDoSB0cuG7iyBsw6AgKipZZWFyIChOxINtKSoqIHbDoCAqKkNPMl9FbWlzc2lvbnMgKGzGsOG7o25nIGtow60gdGjhuqNpIENPMikqKi4gQuG7mSBk4buvIGxp4buHdSBn4buTbSBjw7MgMTAgaMOgbmcgdMawxqFuZyDhu6luZyB24bubaSAxMCBxdWFuIHPDoXQgbMOgIHThu5VuZyBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIgY+G7p2EgxJHhuqV0IG7GsOG7m2MgVmnhu4d0IE5hbSB04burIG7Eg20gMjAxMSDEkeG6v24gbsSDbSAyMDIwLiBUaGVvIGThu68gbGnhu4d1IG7DoHksbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIFZp4buHdCBOYW0gxJHDoyB0xINuZyB04burIDE1NTk3My4zIGtpbG90b24gdsOgbyBuxINtIDIwMTEgbMOqbiAzNTUzMjMuMSBraWxvdG9uIHbDoG8gbsSDbSAyMDIwLg0KDQoqKkTDuW5nIEJp4buDdSDEkOG7kyDEkOG7gyBQaMOibiBUw61jaCBT4buxIGJp4bq/biDEkeG7mW5nIGPhu6dhIHThu5VuZyBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIgdHJvbmcgMTAgbsSDbSB0cuG7nyBs4bqhaSDEkcOieSBj4bunYSBWaeG7h3QgTmFtKioNCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmQxICU+JSBnZ3Bsb3QoYWVzKHggPUNPMl9FbWlzc2lvbnMsIHkgPSBZZWFyKSkgKw0KICBnZW9tX3BvaW50KGNvbG9yID0gJ2JsYWNrJykgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSAnbG0nLCBjb2xvciA9ICdwdXJwbGUnKSArDQogIGxhYnModGl0bGUgPSAiQmnhu4N1IMSR4buTIHRo4buDIGhp4buHbiB4dSBoxrDhu5tuZyBnaWEgdMSDbmcgY+G7p2EgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIHThu6sgbsSDbSAyMDExIMSR4bq/biBuxINtIDIwMjAiKSArDQogIGxhYnMoeCA9ICdU4buVbmcgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yICcsIHkgPSAnTsSDbScpDQpgYGANCg0KLSAqKlRy4bulYyBob8OgbmggKHRy4bulYyB4KToqKiBiaeG7g3UgZGnhu4VuIHThu5VuZyBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIuDQotICoqVHLhu6VjIHR1bmcgKHRy4bulYyB5KToqKiBiaeG7g3UgZGnhu4VuIGPDoWMgbsSDbSB04burIDIwMTEgxJHhur9uIDIwMjAuDQotICoqQ8OhYyDEkWnhu4NtIG3DoHUgxJFlbiB0csOqbiBiaeG7g3UgxJHhu5M6KiogYmnhu4N1IHRo4buLIGPDoWMgZ2nDoSB0cuG7iyB0aOG7sWMgdOG6vyBj4bunYSBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIgdOG6oWkgdOG7q25nIG7Eg20uDQotICoqxJDGsOG7nW5nIG3DoHUgdMOtbToqKiBsw6AgxJHGsOG7nW5nIGjhu5NpIHF1eSB0dXnhur9uIHTDrW5oLCBjaG8gdGjhuqV5IHh1IGjGsOG7m25nIHThu5VuZyB0aOG7gyBj4bunYSBz4buxIHTEg25nIHRyxrDhu59uZyBj4bunYSBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIgcXVhIGPDoWMgbsSDbS4gxJDGsOG7nW5nIG7DoHkgZOG7kWMgbMOqbiwgY8OzIG5naMSpYSBsw6AgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIHTEg25nIHRoZW8gdGjhu51pIGdpYW4uDQoNCiMjIyAqKlBow6JuIFTDrWNoIFPhu7EgQmnhur9uIMSQ4buZbmcgVOG7lW5nIGzGsOG7o25nIGtow60gdGjhuqNpIENPMiBWaeG7h3QgTmFtIHNhdSA1IG7Eg20gdOG7qyAyMDE2IMSR4bq/biAyMDIwKioNCg0KYGBge3J9DQpkMiA8LSBkICU+JSBmaWx0ZXIoeWVhciAlaW4lIHNlcSgyMDE2LDIwMjApKSU+JXNlbGVjdCh5ZWFyLEVOLkFUTS5DTzJFLktUKQ0KbmFtZXMoZDIpIDwtIGMoJ3llYXInLCdDTzJfRW1pc3Npb25zJykNCmQyICU+JSBnZ3Bsb3QoYWVzKHg9eWVhciwgeT0gQ08yX0VtaXNzaW9ucykpICsNCiAgZ2VvbV9jb2woZmlsbD0nZ3JlZW4nKSArDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBDTzJfRW1pc3Npb25zICksdmp1c3QgPSAxLCBjb2xvciA9ICdibGFjaycpICsNCiAgbGFicyh0aXRsZSA9ICJT4buxIGJp4bq/biDEkeG7mW5nIGzGsOG7o25nIGtow60gdGjhuqNpIENPMiBWaeG7h3QgTmFtIHNhdSA1IG7Eg20gdOG7qyAyMDE2IMSR4bq/biAyMDIwIikgKw0KICBsYWJzKHggPSAnTsSDbScsIHkgPSAnVOG7lW5nIGzGsOG7o25nIGtow60gdGjhuqNpIENPMicpDQpgYGANCg0KKipCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIHPhu7EgYmnhur9uIMSR4buZbmcgY+G7p2EgVOG7lW5nIGzGsOG7o25nIGtow60gdGjhuqNpIENPMiBWaeG7h3QgTmFtIHThu6sgbsSDbSAyMDE2IMSR4bq/biAyMDIwOioqDQoNCiAtICoqVHLhu6VjIFg6KiogVGjhu4MgaGnhu4duIGPDoWMgbsSDbSB04burIDIwMTYgxJHhur9uIDIwMjAuDQogLSAqKlRy4bulYyBZOioqIFRo4buDIGhp4buHbiBnacOhIHRy4buLIFThu5VuZyBsxrDhu6NuZyBraMOtIHRo4bqjaSBDTzIgdMawxqFuZyDhu6luZyB24bubaSBt4buXaSBuxINtLg0KIC0gKipD4buZdCBtw6B1IHhhbmg6KiogQmnhu4N1IHRo4buLIGdpw6EgdHLhu4sgVOG7lW5nIGzGsOG7o25nIGtow60gdGjhuqNpIENPMiBjaG8gdOG7q25nIG7Eg20uDQogLSAqKkNo4buvIHPhu5EgbcOgdSDEkWVuOioqIEhp4buDbiB0aOG7iyBnacOhIHRy4buLIGPhu6UgdGjhu4MgY+G7p2EgVOG7lW5nIGzGsOG7o25nIGtow60gdGjhuqNpIENPMiBiw6puIHRyw6puIG3hu5dpIGPhu5l0Lg0KIA0KKipOaOG6rW4geMOpdDoqKg0KDQogLSBU4buVbmcgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIFZp4buHdCBOYW0gY8OzIHh1IGjGsOG7m25nIHTEg25nIHThu6sgbsSDbSAyMDE2IMSR4bq/biAyMDIwLg0KIA0KIC0gTsSDbSAyMDIwIGPDsyBU4buVbmcgbMaw4bujbmcga2jDrSB0aOG6o2kgQ08yIGNhbyBuaOG6pXQgdHJvbmcgZ2lhaSDEkW/huqFuIG7DoHkuDQogDQojIyAqKkThu68gTGnhu4d1IFThu6sgSU1GOiBDaOG7iSBz4buRIFBow6F0IHRyaeG7g24gVGjhu4sgdHLGsOG7nW5nIFTDoGkgY2jDrW5oIGPhu6dhIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hyDhu58gVmnhu4d0IE5hbSoqDQoNCiMjIyAqKlBow6JuIFTDrWNoIGNo4buJIHPhu5EgUGjDoXQgdHJp4buDbiBUaOG7iyB0csaw4budbmcgVMOgaSBjaMOtbmggY+G7p2EgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIOG7nyBWaeG7h3QgTmFtIHNhdSA1IG7Eg20gdOG7qyAyMDE3IMSR4bq/biAyMDIxKioNCiANCmBgYHtyfQ0KYjEgPC0gYXMuZGF0YS5mcmFtZShsYXBwbHkoYjEsIGFzLm51bWVyaWMpKQ0KYjEgJT4lIGZpbHRlcihUSU1FX1BFUklPRCA+IDIwMTYpICU+JQ0KICBnZ3Bsb3QoYWVzKHg9VElNRV9QRVJJT0QsIHk9QS5WTi5GRF9GTURfSVgpKSArDQogIGdlb21fbGluZShjb2xvcj0nYmxhY2snLCBsaW5ld2lkdGggPTEpICsNCiAgZ2VvbV9wb2ludChjb2xvcj0nYmx1ZScpICsNCiAgbGFicyh0aXRsZSA9ICJCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duIGNo4buJIHPhu5EgUGjDoXQgdHJp4buDbiBUaOG7iyB0csaw4budbmcgVMOgaSBjaMOtbmggY+G7p2EgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIOG7nyBWaeG7h3QgTmFtICIpICsNCiAgbGFicyh4ID0gJ07Eg20nLCB5ID0gJ2No4buJIHPhu5EgUGjDoXQgdHJp4buDbiBUaOG7iyB0csaw4budbmcgVMOgaSBjaMOtbmggY+G7p2EgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIOG7nyBWaeG7h3QgTmFtJykNCg0KYGBgDQoNCioqQmnhu4N1IMSR4buTIGJhbyBn4buTbToqKg0KDQrEkMaw4budbmcgdGjhurNuZyBtw6B1IMSRZW4gdGjhu4MgaGnhu4duIHh1IGjGsOG7m25nIGNodW5nLg0KDQpDw6FjIMSRaeG7g20gbcOgdSB4YW5oIHRo4buDIGhp4buHbiBnacOhIHRy4buLIGPhu6UgdGjhu4MgY2hvIHThu6tuZyBuxINtLg0KDQoqKkNow7ogdGjDrWNoOioqDQoNCiAtICoqVHLhu6VjIHg6KiogTsSDbQ0KIC0gKipUcuG7pWMgeToqKiBjaOG7iSBz4buRIFBow6F0IHRyaeG7g24gVGjhu4sgdHLGsOG7nW5nIFTDoGkgY2jDrW5oIGPhu6dhIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hyDhu58gVmnhu4d0IE5hbQ0KDQpCaeG7g3UgxJHhu5MgdGjhu4MgaGnhu4duICoqeHUgaMaw4bubbmcgdMOtY2ggY+G7sWMqKiBj4bunYSBjaOG7iSBz4buRIFBow6F0IHRyaeG7g24gVGjhu4sgdHLGsOG7nW5nIFTDoGkgY2jDrW5oIGPhu6dhIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hyDhu58gVmnhu4d0IE5hbSB0cm9uZyBnaWFpIMSRb+G6oW4gMjAxNy0yMDIxLiBUdXkgbmhpw6puLCB24bqrbiBjw7JuIG5oaeG7gXUgdmnhu4djIHBo4bqjaSBsw6BtIMSR4buDIG7Dom5nIGNhbyBoaeG7h3UgcXXhuqMgY+G7p2EgY2jhu4kgc+G7kSBQaMOhdCB0cmnhu4NuIFRo4buLIHRyxrDhu51uZyBUw6BpIGNow61uaCBj4bunYSBjaMOtbmggc8OhY2ggdGnhu4FuIHThu4cg4bufIFZp4buHdCBOYW0NCiANCiMjIyAqKlBow6JuIFTDrWNoIHh1IHRo4bq/IGNo4buJIHPhu5EgUGjDoXQgdHJp4buDbiBUaOG7iyB0csaw4budbmcgVMOgaSBjaMOtbmggY+G7p2EgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIOG7nyBWaeG7h3QgTmFtIHNhdSAxMCBuxINtIHThu6sgMjAxMSDEkeG6v24gMjAyMSoqDQpgYGB7cn0NCmIxICU+JSBnZ3Bsb3QoYWVzKHggPSBBLlZOLkZEX0ZNRF9JWCAsIHkgPSBUSU1FX1BFUklPRCkpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9ICdyZWQnKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICdsbScsIGNvbG9yID0gJ2xpZ2h0eWVsbG93JykgKw0KICBsYWJzKHRpdGxlID0gIkJp4buDdSDEkeG7kyB4dSB0aOG6vyBjaOG7iSBz4buRIFBow6F0IHRyaeG7g24gVGjhu4sgdHLGsOG7nW5nIFTDoGkgY2jDrW5oIGPhu6dhIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hyDhu58gVmnhu4d0IE5hbSBzYXUgMTAgbsSDbSAiKSArDQogIGxhYnMoeCA9ICdjaOG7iSBz4buRIFBow6F0IHRyaeG7g24gVGjhu4sgdHLGsOG7nW5nIFTDoGkgY2jDrW5oIGPhu6dhIGNow61uaCBzw6FjaCB0aeG7gW4gdOG7hyDhu58gVmnhu4d0IE5hbScsIHkgPSAnTsSDbScpDQpgYGANCg0KKirEkMaw4budbmcgY29uZyBtw6B1IHbDoG5nKiogdGjhu4MgaGnhu4duIHh1IGjGsOG7m25nIGNodW5nIGPhu6dhIE3hu6ljIMSR4buZIHBow6F0IHRyaeG7g24gdMOgaSBjaMOtbmggdsOgIGhp4buHdSBxdeG6oyBj4bunYSBjaMOtbmggc8OhY2ggdGnhu4FuIHThu4cgcXVhIDEwIG7Eg20uDQoNCioqxJDGsOG7nW5nIGNvbmcgY8OzIGThu5FjIGTGsMahbmcqKiwgY2hvIHRo4bqleSBt4bupYyDEkeG7mSBwaMOhdCB0cmnhu4NuIHTDoGkgY2jDrW5oIHbDoCBoaeG7h3UgcXXhuqMgY+G7p2EgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIGPDsyB4dSBoxrDhu5tuZyB0xINuZyB0cm9uZyBnaWFpIMSRb+G6oW4gbsOgeS4NCg0KKirEkOG7mSBk4buRYyBj4bunYSDEkcaw4budbmcgY29uZyoqIGNobyB0aOG6pXkgbeG7qWMgxJHhu5kgdMSDbmcgdHLGsOG7n25nIGPhu6dhIE3hu6ljIMSR4buZIHBow6F0IHRyaeG7g24gdMOgaSBjaMOtbmggdsOgIGhp4buHdSBxdeG6oyBj4bunYSBjaMOtbmggc8OhY2ggdGnhu4FuIHThu4cuDQoNCioqQ8OhYyDEkWnhu4NtIMSR4buPIHRo4buDIGhp4buHbiBnacOhIHRy4buLIHRo4buxYyB04bq/IGPhu6dhIGNo4buJIHPhu5EgUGjDoXQgdHJp4buDbiBUaOG7iyB0csaw4budbmcgVMOgaSBjaMOtbmggY+G7p2EgY2jDrW5oIHPDoWNoIHRp4buBbiB04buHIOG7nyBWaeG7h3QgTmFtIHF1YSBjw6FjIG7Eg20uKioNCg0KKipT4buxIGNow6puaCBs4buHY2gqKiBnaeG7r2EgY8OhYyDEkWnhu4NtIMSR4buPIHbDoCDEkcaw4budbmcgY29uZyBtw6B1IHbDoG5nIHRo4buDIGhp4buHbiBiaeG6v24gxJHhu5luZyBj4bunYSBt4bupYyDEkeG7mSB0xINuZyB0csaw4bufbmcgY+G7p2EgY2jhu4kgc+G7kSBQaMOhdCB0cmnhu4NuIFRo4buLIHRyxrDhu51uZyBUw6BpIGNow61uaCBj4bunYSBjaMOtbmggc8OhY2ggdGnhu4FuIHThu4cg4bufIFZp4buHdCBOYW0gc28gduG7m2kgeHUgaMaw4bubbmcgY2h1bmcuDQoNCioqQmnhur9uIMSR4buZbmcgbsOgeSBjw7MgdGjhu4MgZG8gbmhp4buBdSBuaMOibiB04buRIGtow6FjIG5oYXUg4bqjbmggaMaw4bufbmcsIG5oxrA6KioNCiAtIFTDrG5oIGjDrG5oIGtpbmggdOG6vyB2xKkgbcO0IHRyb25nIHbDoCBuZ2/DoGkgbsaw4bubYy4NCiAtIENow61uaCBzw6FjaCB0aeG7gW4gdOG7hyBj4bunYSBDaMOtbmggcGjhu6cuDQogLSBT4buxIGtp4buHbiBi4bqldCBuZ+G7nSBuaMawIGto4bunbmcgaG/huqNuZyBraW5oIHThur8sIHRoacOqbiB0YWksIGThu4tjaCBi4buHbmguDQoNCg0KIA0KIA0KIA0K