PHÂN TÍCH CÁC YẾU TỐ ĐỊNH TÍNH TRONG DỮ LIỆU

1. Giới thiệu về bộ dữ liệu

1.1. Tổng quan

Bộ dữ liệu “Shopping Behavior Data” với quy mô gồm 3.900 quan sát, đại diện cho các giao dịch mua sắm của khách hàng tại một hệ thống bán lẻ giả định. Dữ liệu bao gồm nhiều thông tin liên quan đến hành vi tiêu dùng như: độ tuổi, giới tính, sản phẩm đã mua, số tiền thanh toán, phương thức thanh toán, mức độ hài lòng (review), tình trạng đăng ký hội viên, mã giảm giá, phương thức giao hàng, và thói quen mua sắm.

Tổng cộng có 18 biến, trong đó bao gồm cả các biến định lượng (ví dụ: Age, Purchase Amount, Review Rating, Previous Purchases) và các biến định tính (ví dụ: Gender, Category, Season, Subscription Status, Discount Applied, Payment Method, …).

library(xlsx)
nv <- read.xlsx("C:/Users/Admin/OneDrive/Desktop/TÀI LIỆU HỌC TẬP/PTDLDT/shoping_behavior_data.xlsx", sheetIndex= 1, header= T)
str(nv)
## 'data.frame':    3900 obs. of  18 variables:
##  $ Customer.ID           : num  1 2 3 4 5 6 7 8 9 10 ...
##  $ Age                   : num  55 19 50 21 45 46 63 27 26 57 ...
##  $ Gender                : chr  "Male" "Male" "Male" "Male" ...
##  $ Item.Purchased        : chr  "Blouse" "Sweater" "Jeans" "Sandals" ...
##  $ Category              : chr  "Clothing" "Clothing" "Clothing" "Footwear" ...
##  $ Purchase.Amount..USD. : num  53 64 73 90 49 20 85 34 97 31 ...
##  $ Location              : chr  "Kentucky" "Maine" "Massachusetts" "Rhode Island" ...
##  $ Size                  : chr  "L" "L" "S" "M" ...
##  $ Color                 : chr  "Gray" "Maroon" "Maroon" "Maroon" ...
##  $ Season                : chr  "Winter" "Winter" "Spring" "Spring" ...
##  $ Review.Rating         : num  3.1 3.1 3.1 3.5 2.7 2.9 3.2 3.2 2.6 4.8 ...
##  $ Subscription.Status   : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Shipping.Type         : chr  "Express" "Express" "Free Shipping" "Next Day Air" ...
##  $ Discount.Applied      : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Promo.Code.Used       : chr  "Yes" "Yes" "Yes" "Yes" ...
##  $ Previous.Purchases    : num  14 2 23 49 31 14 49 19 8 4 ...
##  $ Payment.Method        : chr  "Venmo" "Cash" "Credit Card" "PayPal" ...
##  $ Frequency.of.Purchases: chr  "Fortnightly" "Fortnightly" "Weekly" "Weekly" ...

1.2. Lựa chọn biến phụ thuộc

Dựa trên mục tiêu nghiên cứu là phân tích tác động của các yếu tố hành vi và đặc điểm khách hàng đến một số trạng thái tiêu dùng đặc thù, hai biến định tính được lựa chọn làm biến phụ thuộc chính:

1.2.1. Subscription.Status

Subscription.Status: biểu thị khách hàng có phải là hội viên hay không (Yes/No). Biến này giúp phản ánh sự gắn bó và trung thành của khách hàng, đồng thời có ý nghĩa lớn đối với việc hoạch định chương trình thành viên và tiếp thị

## ── 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.2     ✔ tibble    3.2.1
## ✔ lubridate 1.9.4     ✔ tidyr     1.3.1
## ✔ purrr     1.0.4     
## ── 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

1.2.2. Subscription.Status

Discount.Applied: biểu thị khách hàng có nhận được ưu đãi giảm giá trong giao dịch hay không (Yes/No). Biến này đóng vai trò trong việc đánh giá hiệu quả phân phối khuyến mãi và chiến lược giá của doanh nghiệp.

2. Phân tích các yếu tố tác động đến việc đăng ký thẻ thành viên của khách hàng

datatable(Sub_)

2.1. Tần suất mua hàng tác động thế nào đến hành vi đăng ký thẻ thành viên của khách hàng

2.1.1. Bảng tần suất chéo

nv$Frequency_Group <- ifelse(
  nv$`Frequency.of.Purchases` %in% c("Weekly", "Bi-Weekly", "Fortnightly"),
  "Frequent",
  ifelse(
    nv$`Frequency.of.Purchases` %in% c("Monthly", "Quarterly", "Every 3 Months", "Annually"),
    "Infrequent",
    NA
  )
)

# Bảng chéo
sub_fre <- table(nv$Frequency_Group, nv$Subscription.Status)
sub_fre
##             
##                No  Yes
##   Frequent   1178  450
##   Infrequent 1669  603

2.1.2. Kiểm định tính độc lập giữa hai biến

Giả thuyết kiểm định:

H0: Hai biến độc lập

H1: Hai biến có mối quan hệ

# Kiểm định Chi-square
chisq.test(sub_fre)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  sub_fre
## X-squared = 0.52855, df = 1, p-value = 0.4672

X-squared = 0.53, p-value = 0.4672

Vì p > 0.05, ta không có bằng chứng thống kê đủ mạnh để khẳng định rằng tần suất mua hàng có ảnh hưởng đến quyết định đăng ký hội viên.

2.1.3. RR và OR

library(epitools)
riskratio(sub_fre)
## $data
##             
##                No  Yes Total
##   Frequent   1178  450  1628
##   Infrequent 1669  603  2272
##   Total      2847 1053  3900
## 
## $measure
##             risk ratio with 95% C.I.
##               estimate     lower   upper
##   Frequent   1.0000000        NA      NA
##   Infrequent 0.9601761 0.8651656 1.06562
## 
## $p.value
##             two-sided
##              midp.exact fisher.exact chi.square
##   Frequent           NA           NA         NA
##   Infrequent  0.4451963    0.4645416  0.4451138
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Khách hàng mua hàng không thường xuyên có khả năng đăng ký hội viên thấp hơn 4% so với những người mua hàng thường xuyên.

oddsratio(sub_fre)
## $data
##             
##                No  Yes Total
##   Frequent   1178  450  1628
##   Infrequent 1669  603  2272
##   Total      2847 1053  3900
## 
## $measure
##             odds ratio with 95% C.I.
##               estimate    lower    upper
##   Frequent   1.0000000       NA       NA
##   Infrequent 0.9457475 0.819804 1.091502
## 
## $p.value
##             two-sided
##              midp.exact fisher.exact chi.square
##   Frequent           NA           NA         NA
##   Infrequent  0.4451963    0.4645416  0.4451138
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Khách hàng không thường xuyên mua hàng có odds đăng ký hội viên thấp hơn 5% so với khách hàng thường xuyên.

2.2. Giới tính ảnh hưởng đến việc đăng ký thẻ thành viên

2.2.1. Bảng tần suất chéo

# Bảng chéo
sub_gen <- table(nv$Gender, nv$Subscription.Status)
sub_gen
##         
##            No  Yes
##   Female 1248    0
##   Male   1599 1053

2.2.2. Kiểm định tính độc lập giữa hai biến

Giả thuyết kiểm định:

H0: Hai biến độc lập

H1: Hai biến có mối quan hệ

# Kiểm định Chi-square
chisq.test(sub_gen)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  sub_gen
## X-squared = 676.79, df = 1, p-value < 2.2e-16

Giá trị p < 2.2e-16, nhỏ hơn rất nhiều so với 0.05. Bác bỏ giả thuyết H0. Có mối quan hệ rõ ràng giữa giới tính và hành vi đăng ký thẻ thành viên.

library(epitools)
riskratio(sub_gen)
## $data
##         
##            No  Yes Total
##   Female 1248    0  1248
##   Male   1599 1053  2652
##   Total  2847 1053  3900
## 
## $measure
##         risk ratio with 95% C.I.
##          estimate lower upper
##   Female        1    NA    NA
##   Male        Inf   NaN   Inf
## 
## $p.value
##         two-sided
##          midp.exact  fisher.exact   chi.square
##   Female         NA            NA           NA
##   Male            0 1.178492e-214 1.21415e-149
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

2.2.3. RR và OR

Khi tính RR:

RR (nam so với nữ) = ∞ (vô cực).

Điều này nghĩa là: Tỷ lệ đăng ký thẻ ở nhóm nam cao hơn gấp… vô cùng lần nhóm nữ — vì nữ là 0%.

Kết luận từ RR: Trong bộ dữ liệu này, chỉ có nam giới đăng ký thẻ thành viên, và điều đó cho thấy giới tính là yếu tố ảnh hưởng mạnh mẽ đến hành vi này.

3. Phân tích các yếu tố tác động đến việc giảm giá cho khách hàng

datatable(Dis_)

3.1. Tác động của việc đăng ký thẻ thành viên đến việc sử dụn mã giảm giá

3.1.1. Bảng tần suất chéo

nv$Promo_Usage <- ifelse(nv$Promo.Code.Used == "Yes", "Dùng mã", "Không dùng")

# Bảng chéo
sub_pro <- table(nv$Promo_Usage, nv$Subscription.Status)
sub_pro
##             
##                No  Yes
##   Dùng mã     624 1053
##   Không dùng 2223    0

Trong toàn bộ 1053 khách hàng đăng ký thẻ thành viên, 100% đều đã từng sử dụng mã khuyến mãi.

Ngược lại, trong số 2223 khách hàng không sử dụng mã khuyến mãi, không ai đăng ký thẻ thành viên.

Điều này cho thấy việc đăng ký thẻ thành viên gần như là một yếu tố “điều kiện cần” để khách hàng sử dụng mã khuyến mãi

3.1.2. Kiểm định tính độc lập giữa hai biến

Giả thuyết kiểm định:

H0: Hai biến độc lập

H1: Hai biến có mối quan hệ

# Kiểm định Chi-square
chisq.test(sub_pro)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  sub_pro
## X-squared = 1908.9, df = 1, p-value < 2.2e-16

Giá trị Chi-square = 1908.9

p-value < 2.2e-16

Bác bỏ H0 với mức ý nghĩa 1%, khẳng định rằng việc được áp dụng giảm giá và việc đăng ký thẻ thành viên có mối quan hệ thống kê rõ rệt.

3.2 Tác động của các phương thức thanh toán đến việc được áp dụng giảm giá

3.2.1. Bảng tần suất chéo

nv$Payment_Group <- ifelse(nv$Payment.Method == "Cash", "Tiền mặt", "Thanh toán số")

# Bảng chéo
dis_pay <- table(nv$Payment_Group, nv$Discount.Applied)
dis_pay
##                
##                   No  Yes
##   Tiền mặt       387  283
##   Thanh toán số 1836 1394

3.2.2. Kiểm định tính độc lập giữa hai biến

Giả thuyết kiểm định:

H0: Hai biến độc lập

H1: Hai biến có mối quan hệ

# Kiểm định Chi-square
chisq.test(dis_pay)
## 
##  Pearson's Chi-squared test with Yates' continuity correction
## 
## data:  dis_pay
## X-squared = 0.15558, df = 1, p-value = 0.6933

p-value = 0.6933 (> 0.05)

Không đủ bằng chứng để bác bỏ giả thuyết H0.

Hai biến “Phương thức thanh toán” và “Việc được giảm giá” độc lập với nhau trong mẫu khảo sát này.

3.2.3. RR và OR

library(epitools)
riskratio(dis_pay)
## $data
##                
##                   No  Yes Total
##   Tiền mặt       387  283   670
##   Thanh toán số 1836 1394  3230
##   Total         2223 1677  3900
## 
## $measure
##                risk ratio with 95% C.I.
##                 estimate     lower    upper
##   Tiền mặt      1.000000        NA       NA
##   Thanh toán số 1.021759 0.9273137 1.125824
## 
## $p.value
##                two-sided
##                 midp.exact fisher.exact chi.square
##   Tiền mặt              NA           NA         NA
##   Thanh toán số  0.6629681    0.6683597  0.6618845
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "Unconditional MLE & normal approximation (Wald) CI"

Những người dùng thanh toán số có khả năng được giảm giá cao hơn 2.17% so với thanh toán tiền mặt.

oddsratio(dis_pay)
## $data
##                
##                   No  Yes Total
##   Tiền mặt       387  283   670
##   Thanh toán số 1836 1394  3230
##   Total         2223 1677  3900
## 
## $measure
##                odds ratio with 95% C.I.
##                 estimate     lower    upper
##   Tiền mặt      1.000000        NA       NA
##   Thanh toán số 1.038139 0.8775767 1.229266
## 
## $p.value
##                two-sided
##                 midp.exact fisher.exact chi.square
##   Tiền mặt              NA           NA         NA
##   Thanh toán số  0.6629681    0.6683597  0.6618845
## 
## $correction
## [1] FALSE
## 
## attr(,"method")
## [1] "median-unbiased estimate & mid-p exact CI"

Tương tự, odds của việc được giảm giá khi dùng thanh toán số cao hơn 3.8% so với tiền mặt.

4. Hồi quy logictics và probit

4.1. Biến phụ thuộc Subscription.Status

nv$Subscription.Status <- ifelse(nv$Subscription.Status== "Yes", 1, 0)

modellogit_Sub <- glm( Subscription.Status ~ Payment.Method + Frequency_Group + Previous.Purchases + Age + Purchase.Amount..USD.,
                 data = nv,
                 family =  binomial())


summary(modellogit_Sub)
## 
## Call:
## glm(formula = Subscription.Status ~ Payment.Method + Frequency_Group + 
##     Previous.Purchases + Age + Purchase.Amount..USD., family = binomial(), 
##     data = nv)
## 
## Coefficients:
##                             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)               -1.1401654  0.1811745  -6.293 3.11e-10 ***
## Payment.MethodCash         0.0039590  0.1279973   0.031   0.9753    
## Payment.MethodCredit Card  0.0476775  0.1273406   0.374   0.7081    
## Payment.MethodDebit Card   0.2063019  0.1268912   1.626   0.1040    
## Payment.MethodPayPal       0.0438340  0.1271257   0.345   0.7302    
## Payment.MethodVenmo        0.0864137  0.1285163   0.672   0.5013    
## Frequency_GroupInfrequent -0.0565840  0.0730941  -0.774   0.4389    
## Previous.Purchases         0.0047380  0.0025047   1.892   0.0585 .  
## Age                        0.0007969  0.0023786   0.335   0.7376    
## Purchase.Amount..USD.     -0.0007257  0.0015250  -0.476   0.6342    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4549.4  on 3899  degrees of freedom
## Residual deviance: 4541.1  on 3890  degrees of freedom
## AIC: 4561.1
## 
## Number of Fisher Scoring iterations: 4

Mô hình hồi quy logistic nhị phân với biến phụ thuộc là Subscription.Status được thực hiện nhằm đánh giá tác động của các yếu tố bao gồm phương thức thanh toán, tần suất mua hàng, số lần mua trước đây, độ tuổi và số tiền chi tiêu đến khả năng khách hàng đăng ký hội viên. Kết quả cho thấy hệ số chặn (Intercept) mang giá trị âm có ý nghĩa thống kê cao (p < 0,001), phản ánh khả năng cơ sở đăng ký hội viên của khách hàng là thấp khi các biến độc lập ở điều kiện tham chiếu. Trong số các biến giải thích, biến số lần mua hàng trước đây (Previous Purchases) có hệ số dương và p-value xấp xỉ 0,058, gần đạt mức ý nghĩa thống kê 0,05, cho thấy xu hướng khách hàng đã mua nhiều lần trước đó có khả năng đăng ký hội viên cao hơn. Các biến còn lại bao gồm phương thức thanh toán, tần suất mua hàng, độ tuổi và số tiền chi tiêu đều có p-value lớn hơn 0,1, không chứng minh được tác động rõ rệt đến hành vi đăng ký hội viên.

modelprobit_Sub <- glm( Subscription.Status ~ Payment.Method + Frequency_Group + Previous.Purchases + Age + Purchase.Amount..USD.,
                 data = nv,
                 family = binomial(link = "probit"))

summary(modelprobit_Sub)
## 
## Call:
## glm(formula = Subscription.Status ~ Payment.Method + Frequency_Group + 
##     Previous.Purchases + Age + Purchase.Amount..USD., family = binomial(link = "probit"), 
##     data = nv)
## 
## Coefficients:
##                             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)               -0.6994663  0.1077182  -6.493 8.39e-11 ***
## Payment.MethodCash         0.0019800  0.0758056   0.026   0.9792    
## Payment.MethodCredit Card  0.0283834  0.0755652   0.376   0.7072    
## Payment.MethodDebit Card   0.1228463  0.0758077   1.620   0.1051    
## Payment.MethodPayPal       0.0253494  0.0754279   0.336   0.7368    
## Payment.MethodVenmo        0.0505168  0.0764106   0.661   0.5085    
## Frequency_GroupInfrequent -0.0331506  0.0435968  -0.760   0.4470    
## Previous.Purchases         0.0028200  0.0014921   1.890   0.0588 .  
## Age                        0.0004840  0.0014172   0.342   0.7327    
## Purchase.Amount..USD.     -0.0004330  0.0009089  -0.476   0.6338    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 4549.4  on 3899  degrees of freedom
## Residual deviance: 4541.1  on 3890  degrees of freedom
## AIC: 4561.1
## 
## Number of Fisher Scoring iterations: 4

Mô hình hồi quy probit nhị phân được thực hiện song song nhằm kiểm tra tính nhất quán của kết quả, với mức độ phù hợp tương đương (AIC khoảng 4561). Kết quả probit tương tự mô hình logistic, khi biến số lần mua hàng trước đây tiếp tục là yếu tố duy nhất có xu hướng tác động tích cực (p-value ~0,058), còn các biến khác không có ý nghĩa thống kê. Nhìn chung, cả hai mô hình đều chỉ ra rằng lịch sử mua hàng của khách hàng là yếu tố tiềm năng ảnh hưởng đến quyết định đăng ký hội viên, trong khi các đặc điểm khác chưa thể hiện tác động đáng kể trong mẫu dữ liệu nghiên cứu.

4.2. Biến phụ thuộc Discount.Applied

nv$Discount.Applied <- ifelse(nv$Discount.Applied== "Yes", 1, 0)

modellogit_Dis <- glm( Discount.Applied ~ Payment.Method + Frequency_Group + Previous.Purchases + Age + Purchase.Amount..USD.,
                 data = nv,
                 family =  binomial())


summary(modellogit_Dis)
## 
## Call:
## glm(formula = Discount.Applied ~ Payment.Method + Frequency_Group + 
##     Previous.Purchases + Age + Purchase.Amount..USD., family = binomial(), 
##     data = nv)
## 
## Coefficients:
##                             Estimate Std. Error z value Pr(>|z|)  
## (Intercept)               -0.3107626  0.1616164  -1.923   0.0545 .
## Payment.MethodCash        -0.0061389  0.1132578  -0.054   0.9568  
## Payment.MethodCredit Card -0.0276009  0.1133271  -0.244   0.8076  
## Payment.MethodDebit Card   0.1250866  0.1142636   1.095   0.2736  
## Payment.MethodPayPal      -0.0434932  0.1131463  -0.384   0.7007  
## Payment.MethodVenmo        0.1087580  0.1143817   0.951   0.3417  
## Frequency_GroupInfrequent -0.0124661  0.0656650  -0.190   0.8494  
## Previous.Purchases         0.0032648  0.0022448   1.454   0.1458  
## Age                        0.0004749  0.0021318   0.223   0.8237  
## Purchase.Amount..USD.     -0.0015527  0.0013679  -1.135   0.2563  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 5329.9  on 3899  degrees of freedom
## Residual deviance: 5322.2  on 3890  degrees of freedom
## AIC: 5342.2
## 
## Number of Fisher Scoring iterations: 4

Trong mô hình này, hệ số chặn (Intercept) có giá trị âm (-0,3107) và đạt mức ý nghĩa thống kê 10% (p=0,054), phản ánh xác suất cơ sở của việc được giảm giá là tương đối thấp khi các biến độc lập ở mức tham chiếu. Các biến giải thích đều có p-value lớn hơn 0,1, cho thấy không có yếu tố nào chứng minh được tác động riêng lẻ rõ rệt. Cụ thể, số lần mua hàng trước đây (Previous Purchases) có hệ số dương (0,0033), thể hiện xu hướng tích cực đối với khả năng nhận ưu đãi, tuy nhiên p-value xấp xỉ 0,146 vẫn chưa đủ mạnh để khẳng định ý nghĩa thống kê. Các biến còn lại, bao gồm tất cả phương thức thanh toán, tần suất mua hàng Infrequent, độ tuổi và giá trị chi tiêu, đều không cho thấy mối liên hệ đáng kể với khả năng nhận giảm giá. Mức độ phù hợp của mô hình được thể hiện qua chỉ số AIC (5342,2), tuy ở mức vừa phải, song không xuất hiện vấn đề hội tụ hay phân tách hoàn hảo, đảm bảo kết quả ước lượng có thể tin cậy ở mức cơ bản.

modelprobit_Dis <- glm( Discount.Applied ~ Payment.Method + Frequency_Group + Previous.Purchases + Age + Purchase.Amount..USD.,
                 data = nv,
                 family = binomial(link = "probit"))

summary(modelprobit_Dis)
## 
## Call:
## glm(formula = Discount.Applied ~ Payment.Method + Frequency_Group + 
##     Previous.Purchases + Age + Purchase.Amount..USD., family = binomial(link = "probit"), 
##     data = nv)
## 
## Coefficients:
##                             Estimate Std. Error z value Pr(>|z|)  
## (Intercept)               -0.1943413  0.1007903  -1.928   0.0538 .
## Payment.MethodCash        -0.0038836  0.0705944  -0.055   0.9561  
## Payment.MethodCredit Card -0.0171896  0.0706129  -0.243   0.8077  
## Payment.MethodDebit Card   0.0780093  0.0713404   1.093   0.2742  
## Payment.MethodPayPal      -0.0272734  0.0704823  -0.387   0.6988  
## Payment.MethodVenmo        0.0678368  0.0714055   0.950   0.3421  
## Frequency_GroupInfrequent -0.0076479  0.0409612  -0.187   0.8519  
## Previous.Purchases         0.0020321  0.0014000   1.452   0.1466  
## Age                        0.0003010  0.0013297   0.226   0.8209  
## Purchase.Amount..USD.     -0.0009707  0.0008532  -1.138   0.2552  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 5329.9  on 3899  degrees of freedom
## Residual deviance: 5322.2  on 3890  degrees of freedom
## AIC: 5342.2
## 
## Number of Fisher Scoring iterations: 3

Mô hình hồi quy probit nhị phân được thực hiện song song nhằm kiểm tra tính nhất quán của kết quả từ mô hình logistic. Kết quả probit cho thấy hệ số chặn (Intercept) có giá trị âm (-0,1943) và p-value ~0,054, tương tự ý nghĩa thống kê của mô hình logistic, khẳng định khả năng cơ sở của việc được giảm giá không cao. Các hệ số ước lượng của các biến giải thích có xu hướng đồng nhất về dấu và độ lớn so với logistic, đồng thời không biến nào đạt mức ý nghĩa thống kê 10%. Biến số lần mua hàng trước đây (Previous Purchases) tiếp tục cho hệ số dương (0,0020), phản ánh xu hướng khách hàng có lịch sử mua sắm nhiều sẽ dễ được áp dụng khuyến mãi hơn, tuy nhiên p-value vẫn xấp xỉ 0,147 và chưa đủ mạnh để khẳng định chắc chắn. Các biến còn lại bao gồm phương thức thanh toán, tần suất mua hàng, độ tuổi và số tiền chi tiêu không cho thấy mối liên hệ rõ rệt với khả năng được giảm giá. Mô hình probit có chỉ số AIC tương tự (5342,2), mức độ phù hợp gần như trùng khớp mô hình logistic, củng cố tính nhất quán của các ước lượng và xác nhận rằng các yếu tố khảo sát chưa phải là những nhân tố chủ chốt trong việc giải thích sự khác biệt về chính sách ưu đãi giảm giá của doanh nghiệp.

LS0tDQp0aXRsZTogIk5ISeG7hk0gVuG7pCAiDQphdXRob3I6ICJOZ3V54buFbiBUaHUgVGjhuqNvIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIHRvYzogdHJ1ZQ0KICAgIG51bWJlciBzZWN0aW9uOiB0cnVlDQogICAgdG9jX2Zsb2F0OiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlICAgDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICBwZGZfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogIHdvcmRfZG9jdW1lbnQ6DQogICAgdG9jOiB0cnVlDQogICAgZmlnX3dpZHRoOiA2IA0KICAgIGZpZ19oZWlnaHQ6IDQgDQprbml0cjoNCiAgb3B0c19jaHVuazogDQogICAgZWNobzogZmFsc2UNCiAgICBtZXNzYWdlOiBmYWxzZQ0KICAgIHdhcm5pbmc6IGZhbHNlDQotLS0NCg0KYGBge2NzcyxlY2hvID0gRkFMU0V9DQpoMSB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDI4cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpoMiB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDI0cHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KIA0KfQ0KDQpoMyB7DQogIGZvbnQtZmFtaWx5OiAiVGltZXMgTmV3IFJvbWFuIiwgVGltZXMsIHNlcmlmOw0KICBmb250LXNpemU6IDIwcHg7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KfQ0KDQpoNCB7Zm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMThweDsNCiAgZm9udC1zdHlsZTogaXRhbGljfQ0KDQpib2R5IHsNCiAgZm9udC1mYW1pbHk6ICJUaW1lcyBOZXcgUm9tYW4iLCBUaW1lcywgc2VyaWY7DQogIGZvbnQtc2l6ZTogMThweDsNCiAgDQp9DQpwOm5vdChoMSk6bm90KGgyKTpub3QoaDMpOm5vdChoNCk6bm90KGg1KSB7DQogIHRleHQtaW5kZW50OiAyZW07fQ0KcCB7DQogIHRleHQtYWxpZ246IGp1c3RpZnk7DQogIH0NCi50b2NpZnktaGVhZGVyIHsNCiAgZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQoNCmNhdCgiDQo8c3R5bGU+DQovKiDEkGnhu4F1IGNo4buJbmggZm9udC1zaXplIGPhu6dhIGlubGluZSBtYXRoICovDQouTWF0aEpheF9TVkcgew0KICBmb250LXNpemU6IDg1JSAhaW1wb3J0YW50Ow0KfQ0KPC9zdHlsZT4NCg0KPGRpdiBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyBmb250LXNpemU6IDI4cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyI+DQogIFBIw4JOIFTDjUNIIEPDgUMgWeG6vlUgVOG7kCDEkOG7ik5IIFTDjU5IIFRST05HIEThu64gTEnhu4ZVDQo8L2Rpdj4NCg0KYGBgDQoNCiMgKioxLiBHaeG7m2kgdGhp4buHdSB24buBIGLhu5kgZOG7ryBsaeG7h3UqKg0KDQojIyAqKjEuMS4gVOG7lW5nIHF1YW4qKg0KDQogIELhu5kgZOG7ryBsaeG7h3Ug4oCcU2hvcHBpbmcgQmVoYXZpb3IgRGF0YeKAnSB24bubaSBxdXkgbcO0IGfhu5NtIDMuOTAwIHF1YW4gc8OhdCwgxJHhuqFpIGRp4buHbiBjaG8gY8OhYyBnaWFvIGThu4tjaCBtdWEgc+G6r20gY+G7p2Ega2jDoWNoIGjDoG5nIHThuqFpIG3hu5l0IGjhu4cgdGjhu5FuZyBiw6FuIGzhursgZ2nhuqMgxJHhu4tuaC4gROG7ryBsaeG7h3UgYmFvIGfhu5NtIG5oaeG7gXUgdGjDtG5nIHRpbiBsacOqbiBxdWFuIMSR4bq/biBow6BuaCB2aSB0acOqdSBkw7luZyBuaMawOiDEkeG7mSB0deG7lWksIGdp4bubaSB0w61uaCwgc+G6o24gcGjhuqltIMSRw6MgbXVhLCBz4buRIHRp4buBbiB0aGFuaCB0b8OhbiwgcGjGsMahbmcgdGjhu6ljIHRoYW5oIHRvw6FuLCBt4bupYyDEkeG7mSBow6BpIGzDsm5nIChyZXZpZXcpLCB0w6xuaCB0cuG6oW5nIMSRxINuZyBrw70gaOG7mWkgdmnDqm4sIG3DoyBnaeG6o20gZ2nDoSwgcGjGsMahbmcgdGjhu6ljIGdpYW8gaMOgbmcsIHbDoCB0aMOzaSBxdWVuIG11YSBz4bqvbS4NCg0KVOG7lW5nIGPhu5luZyBjw7MgMTggYmnhur9uLCB0cm9uZyDEkcOzIGJhbyBn4buTbSBj4bqjIGPDoWMgYmnhur9uIMSR4buLbmggbMaw4bujbmcgKHbDrSBk4bulOiBBZ2UsIFB1cmNoYXNlIEFtb3VudCwgUmV2aWV3IFJhdGluZywgUHJldmlvdXMgUHVyY2hhc2VzKSB2w6AgY8OhYyBiaeG6v24gxJHhu4tuaCB0w61uaCAodsOtIGThu6U6IEdlbmRlciwgQ2F0ZWdvcnksIFNlYXNvbiwgU3Vic2NyaXB0aW9uIFN0YXR1cywgRGlzY291bnQgQXBwbGllZCwgUGF5bWVudCBNZXRob2QsIC4uLikuDQoNCg0KYGBge3J9DQpsaWJyYXJ5KHhsc3gpDQpudiA8LSByZWFkLnhsc3goIkM6L1VzZXJzL0FkbWluL09uZURyaXZlL0Rlc2t0b3AvVMOASSBMSeG7hlUgSOG7jEMgVOG6rFAvUFRETERUL3Nob3BpbmdfYmVoYXZpb3JfZGF0YS54bHN4Iiwgc2hlZXRJbmRleD0gMSwgaGVhZGVyPSBUKQ0KYGBgDQoNCmBgYHtyfQ0Kc3RyKG52KQ0KYGBgDQoNCiMjICoqMS4yLiBM4buxYSBjaOG7jW4gYmnhur9uIHBo4bulIHRodeG7mWMqKg0KDQogIEThu7FhIHRyw6puIG3hu6VjIHRpw6p1IG5naGnDqm4gY+G7qXUgbMOgIHBow6JuIHTDrWNoIHTDoWMgxJHhu5luZyBj4bunYSBjw6FjIHnhur91IHThu5EgaMOgbmggdmkgdsOgIMSR4bq3YyDEkWnhu4NtIGtow6FjaCBow6BuZyDEkeG6v24gbeG7mXQgc+G7kSB0cuG6oW5nIHRow6FpIHRpw6p1IGTDuW5nIMSR4bq3YyB0aMO5LCBoYWkgYmnhur9uIMSR4buLbmggdMOtbmggxJHGsOG7o2MgbOG7sWEgY2jhu41uIGzDoG0gYmnhur9uIHBo4bulIHRodeG7mWMgY2jDrW5oOg0KDQojIyMgKioxLjIuMS4gU3Vic2NyaXB0aW9uLlN0YXR1cyoqDQoNCiAgU3Vic2NyaXB0aW9uLlN0YXR1czogYmnhu4N1IHRo4buLIGtow6FjaCBow6BuZyBjw7MgcGjhuqNpIGzDoCBo4buZaSB2acOqbiBoYXkga2jDtG5nIChZZXMvTm8pLiBCaeG6v24gbsOgeSBnacO6cCBwaOG6o24gw6FuaCBz4buxIGfhuq9uIGLDsyB2w6AgdHJ1bmcgdGjDoG5oIGPhu6dhIGtow6FjaCBow6BuZywgxJHhu5NuZyB0aOG7nWkgY8OzIMO9IG5naMSpYSBs4bubbiDEkeG7kWkgduG7m2kgdmnhu4djIGhv4bqhY2ggxJHhu4tuaCBjaMawxqFuZyB0csOsbmggdGjDoG5oIHZpw6puIHbDoCB0aeG6v3AgdGjhu4sNCg0KYGBge3IsIHdhcm5pbmc9IEZBTFNFLCBlY2hvID0gRkFMU0V9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoRFQpDQpsaWJyYXJ5KGtuaXRyKQ0KDQpTdWJfZnJlcSA8LSB0YWJsZShudiRTdWJzY3JpcHRpb24uU3RhdHVzKSAgICAgICAgICAgICAgICANClN1Yl9wY3QgPC0gcm91bmQocHJvcC50YWJsZShTdWJfZnJlcSkgKiAxMDAsIDEpIA0KU3ViXyA8LSBkYXRhLmZyYW1lKA0KICBDdXN0b21lci5kZW1vZ3JhcGhpY3MgPSBuYW1lcyhTdWJfZnJlcSksDQogIEZyZXF1ZW5jeSA9IGFzLnZlY3RvcihTdWJfZnJlcSksDQogIFBlcmNlbnRhZ2UgPSBwYXN0ZShyb3VuZChhcy52ZWN0b3IoU3ViX3BjdCksIDIpLCAiJSIpKQ0KDQpkYXRhdGFibGUoU3ViXykNCg0KU3ViIDwtIHBhc3RlKG5hbWVzKFN1Yl9mcmVxKSwgIigiLCBTdWJfcGN0LCAiJSkiLCBzZXAgPSAiIikgDQpwaWUoU3ViX2ZyZXEsDQogICAgbGFiZWxzID0gU3ViLA0KICAgIGNvbCA9IGMoIiNGRUY4ODkiLCAibGlnaHR5ZWxsb3ciICksDQogICAgbWFpbiA9ICJUaOG7kW5nIGvDqiBraMOhY2ggaMOgbmcgxJHEg25nIGvDvSBo4buZaSB2acOqbiIpDQoNCmBgYA0KDQojIyMgKioxLjIuMi4gU3Vic2NyaXB0aW9uLlN0YXR1cyoqDQogIA0KICBEaXNjb3VudC5BcHBsaWVkOiBiaeG7g3UgdGjhu4sga2jDoWNoIGjDoG5nIGPDsyBuaOG6rW4gxJHGsOG7o2MgxrB1IMSRw6NpIGdp4bqjbSBnacOhIHRyb25nIGdpYW8gZOG7i2NoIGhheSBraMO0bmcgKFllcy9ObykuIEJp4bq/biBuw6B5IMSRw7NuZyB2YWkgdHLDsiB0cm9uZyB2aeG7h2MgxJHDoW5oIGdpw6EgaGnhu4d1IHF14bqjIHBow6JuIHBo4buRaSBraHV54bq/biBtw6NpIHbDoCBjaGnhur9uIGzGsOG7o2MgZ2nDoSBj4bunYSBkb2FuaCBuZ2hp4buHcC4gDQogIA0KYGBge3IsIHdhcm5pbmc9IEZBTFNFLCBlY2hvID0gRkFMU0V9DQoNCkRpc19mcmVxIDwtIHRhYmxlKG52JERpc2NvdW50LkFwcGxpZWQpICAgICAgICAgICAgICAgIA0KRGlzX3BjdCA8LSByb3VuZChwcm9wLnRhYmxlKERpc19mcmVxKSAqIDEwMCwgMSkgDQpEaXNfIDwtIGRhdGEuZnJhbWUoDQogIEN1c3RvbWVyLmRlbW9ncmFwaGljcyA9IG5hbWVzKERpc19mcmVxKSwNCiAgRnJlcXVlbmN5ID0gYXMudmVjdG9yKERpc19mcmVxKSwNCiAgUGVyY2VudGFnZSA9IHBhc3RlKHJvdW5kKGFzLnZlY3RvcihEaXNfcGN0KSwgMiksICIlIikpDQoNCmRhdGF0YWJsZShEaXNfKQ0KDQpEaXMgPC0gcGFzdGUobmFtZXMoU3ViX2ZyZXEpLCAiKCIsIERpc19wY3QsICIlKSIsIHNlcCA9ICIiKSANCnBpZShEaXNfZnJlcSwNCiAgICBsYWJlbHMgPSBEaXMsDQogICAgY29sID0gYygic2t5Ymx1ZSIsICJkYXJrYmx1ZSIgKSwNCiAgICBtYWluID0gIlRo4buRbmcga8OqIGtow6FjaCBow6BuZyDEkcSDbmcgbmjhuq1uIMSRxrDhu6NjIMawdSDEkcOjaSBnaeG6o20gZ2nDoSIpDQoNCmBgYA0KICANCiMgKioyLiBQaMOibiB0w61jaCBjw6FjIHnhur91IHThu5EgdMOhYyDEkeG7mW5nIMSR4bq/biB2aeG7h2MgxJHEg25nIGvDvSB0aOG6uyB0aMOgbmggdmnDqm4gY+G7p2Ega2jDoWNoIGjDoG5nKioNCg0KYGBge3J9DQpkYXRhdGFibGUoU3ViXykNCmBgYA0KDQojIyAqKjIuMS4gVOG6p24gc3XhuqV0IG11YSBow6BuZyB0w6FjIMSR4buZbmcgdGjhur8gbsOgbyDEkeG6v24gaMOgbmggdmkgxJHEg25nIGvDvSB0aOG6uyB0aMOgbmggdmnDqm4gY+G7p2Ega2jDoWNoIGjDoG5nKioNCg0KIyMjICoqMi4xLjEuIELhuqNuZyB04bqnbiBzdeG6pXQgY2jDqW8qKg0KDQpgYGB7cn0NCm52JEZyZXF1ZW5jeV9Hcm91cCA8LSBpZmVsc2UoDQogIG52JGBGcmVxdWVuY3kub2YuUHVyY2hhc2VzYCAlaW4lIGMoIldlZWtseSIsICJCaS1XZWVrbHkiLCAiRm9ydG5pZ2h0bHkiKSwNCiAgIkZyZXF1ZW50IiwNCiAgaWZlbHNlKA0KICAgIG52JGBGcmVxdWVuY3kub2YuUHVyY2hhc2VzYCAlaW4lIGMoIk1vbnRobHkiLCAiUXVhcnRlcmx5IiwgIkV2ZXJ5IDMgTW9udGhzIiwgIkFubnVhbGx5IiksDQogICAgIkluZnJlcXVlbnQiLA0KICAgIE5BDQogICkNCikNCg0KIyBC4bqjbmcgY2jDqW8NCnN1Yl9mcmUgPC0gdGFibGUobnYkRnJlcXVlbmN5X0dyb3VwLCBudiRTdWJzY3JpcHRpb24uU3RhdHVzKQ0Kc3ViX2ZyZQ0KYGBgIA0KDQojIyMgKioyLjEuMi4gS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGdp4buvYSBoYWkgYmnhur9uKioNCg0KR2nhuqMgdGh1eeG6v3Qga2nhu4NtIMSR4buLbmg6DQoNCkgwOiBIYWkgYmnhur9uIMSR4buZYyBs4bqtcCANCg0KSDE6IEhhaSBiaeG6v24gY8OzIG3hu5FpIHF1YW4gaOG7hyANCg0KYGBge3J9DQojIEtp4buDbSDEkeG7i25oIENoaS1zcXVhcmUNCmNoaXNxLnRlc3Qoc3ViX2ZyZSkNCmBgYA0KDQpYLXNxdWFyZWQgPSAwLjUzLCBwLXZhbHVlID0gMC40NjcyDQoNClbDrCBwID4gMC4wNSwgdGEga2jDtG5nIGPDsyBi4bqxbmcgY2jhu6luZyB0aOG7kW5nIGvDqiDEkeG7pyBt4bqhbmggxJHhu4Mga2jhurNuZyDEkeG7i25oIHLhurFuZyB04bqnbiBzdeG6pXQgbXVhIGjDoG5nIGPDsyDhuqNuaCBoxrDhu59uZyDEkeG6v24gcXV54bq/dCDEkeG7i25oIMSRxINuZyBrw70gaOG7mWkgdmnDqm4uDQoNCiMjIyAqKjIuMS4zLiBSUiB2w6AgT1IqKg0KDQpgYGB7cn0NCmxpYnJhcnkoZXBpdG9vbHMpDQpyaXNrcmF0aW8oc3ViX2ZyZSkNCmBgYA0KDQogIEtow6FjaCBow6BuZyBtdWEgaMOgbmcga2jDtG5nIHRoxrDhu51uZyB4dXnDqm4gY8OzIGto4bqjIG7Eg25nIMSRxINuZyBrw70gaOG7mWkgdmnDqm4gdGjhuqVwIGjGoW4gNCUgc28gduG7m2kgbmjhu69uZyBuZ8aw4budaSBtdWEgaMOgbmcgdGjGsOG7nW5nIHh1ecOqbi4gDQoNCmBgYHtyfQ0Kb2Rkc3JhdGlvKHN1Yl9mcmUpDQpgYGANCg0KICBLaMOhY2ggaMOgbmcga2jDtG5nIHRoxrDhu51uZyB4dXnDqm4gbXVhIGjDoG5nIGPDsyBvZGRzIMSRxINuZyBrw70gaOG7mWkgdmnDqm4gdGjhuqVwIGjGoW4gNSUgc28gduG7m2kga2jDoWNoIGjDoG5nIHRoxrDhu51uZyB4dXnDqm4uDQoNCg0KIyMgKioyLjIuIEdp4bubaSB0w61uaCDhuqNuaCBoxrDhu59uZyDEkeG6v24gdmnhu4djIMSRxINuZyBrw70gdGjhursgdGjDoG5oIHZpw6puKioNCg0KIyMjICoqMi4yLjEuIELhuqNuZyB04bqnbiBzdeG6pXQgY2jDqW8qKg0KDQpgYGB7cn0NCg0KIyBC4bqjbmcgY2jDqW8NCnN1Yl9nZW4gPC0gdGFibGUobnYkR2VuZGVyLCBudiRTdWJzY3JpcHRpb24uU3RhdHVzKQ0Kc3ViX2dlbg0KYGBgIA0KDQojIyMgKioyLjIuMi4gS2nhu4NtIMSR4buLbmggdMOtbmggxJHhu5ljIGzhuq1wIGdp4buvYSBoYWkgYmnhur9uKioNCg0KR2nhuqMgdGh1eeG6v3Qga2nhu4NtIMSR4buLbmg6DQoNCkgwOiBIYWkgYmnhur9uIMSR4buZYyBs4bqtcCANCg0KSDE6IEhhaSBiaeG6v24gY8OzIG3hu5FpIHF1YW4gaOG7hyANCg0KYGBge3J9DQojIEtp4buDbSDEkeG7i25oIENoaS1zcXVhcmUNCmNoaXNxLnRlc3Qoc3ViX2dlbikNCmBgYA0KDQpHacOhIHRy4buLIHAgPCAyLjJlLTE2LCBuaOG7jyBoxqFuIHLhuqV0IG5oaeG7gXUgc28gduG7m2kgMC4wNS4gQsOhYyBi4buPIGdp4bqjIHRodXnhur90IEgwLiBDw7MgbeG7kWkgcXVhbiBo4buHIHLDtSByw6BuZyBnaeG7r2EgZ2nhu5tpIHTDrW5oIHbDoCBow6BuaCB2aSDEkcSDbmcga8O9IHRo4bq7IHRow6BuaCB2acOqbi4NCg0KYGBge3J9DQpsaWJyYXJ5KGVwaXRvb2xzKQ0Kcmlza3JhdGlvKHN1Yl9nZW4pDQpgYGANCg0KIyMjICoqMi4yLjMuIFJSIHbDoCBPUioqDQoNCktoaSB0w61uaCBSUjoNCg0KUlIgKG5hbSBzbyB24bubaSBu4buvKSA9IOKIniAodsO0IGPhu7FjKS4NCg0KxJBp4buBdSBuw6B5IG5naMSpYSBsw6A6IFThu7cgbOG7hyDEkcSDbmcga8O9IHRo4bq7IOG7nyBuaMOzbSBuYW0gY2FvIGjGoW4gZ+G6pXDigKYgdsO0IGPDuW5nIGzhuqduIG5ow7NtIG7hu68g4oCUIHbDrCBu4buvIGzDoCAwJS4NCg0KS+G6v3QgbHXhuq1uIHThu6sgUlI6IFRyb25nIGLhu5kgZOG7ryBsaeG7h3UgbsOgeSwgY2jhu4kgY8OzIG5hbSBnaeG7m2kgxJHEg25nIGvDvSB0aOG6uyB0aMOgbmggdmnDqm4sIHbDoCDEkWnhu4F1IMSRw7MgY2hvIHRo4bqleSBnaeG7m2kgdMOtbmggbMOgIHnhur91IHThu5Eg4bqjbmggaMaw4bufbmcgbeG6oW5oIG3hur0gxJHhur9uIGjDoG5oIHZpIG7DoHkuDQoNCg0KIyAqKjMuIFBow6JuIHTDrWNoIGPDoWMgeeG6v3UgdOG7kSB0w6FjIMSR4buZbmcgxJHhur9uIHZp4buHYyBnaeG6o20gZ2nDoSBjaG8ga2jDoWNoIGjDoG5nKioNCg0KYGBge3J9DQpkYXRhdGFibGUoRGlzXykNCmBgYA0KDQoNCiMjICoqMy4xLiBUw6FjIMSR4buZbmcgY+G7p2Egdmnhu4djIMSRxINuZyBrw70gdGjhursgdGjDoG5oIHZpw6puIMSR4bq/biB2aeG7h2Mgc+G7rSBk4bulbiBtw6MgZ2nhuqNtIGdpw6EgKioNCg0KIyMjICoqMy4xLjEuIELhuqNuZyB04bqnbiBzdeG6pXQgY2jDqW8qKg0KDQpgYGB7cn0NCm52JFByb21vX1VzYWdlIDwtIGlmZWxzZShudiRQcm9tby5Db2RlLlVzZWQgPT0gIlllcyIsICJEw7luZyBtw6MiLCAiS2jDtG5nIGTDuW5nIikNCg0KIyBC4bqjbmcgY2jDqW8NCnN1Yl9wcm8gPC0gdGFibGUobnYkUHJvbW9fVXNhZ2UsIG52JFN1YnNjcmlwdGlvbi5TdGF0dXMpDQpzdWJfcHJvDQpgYGAgDQoNClRyb25nIHRvw6BuIGLhu5kgMTA1MyBraMOhY2ggaMOgbmcgxJHEg25nIGvDvSB0aOG6uyB0aMOgbmggdmnDqm4sIDEwMCUgxJHhu4F1IMSRw6MgdOG7q25nIHPhu60gZOG7pW5nIG3DoyBraHV54bq/biBtw6NpLg0KDQpOZ8aw4bujYyBs4bqhaSwgdHJvbmcgc+G7kSAyMjIzIGtow6FjaCBow6BuZyBraMO0bmcgc+G7rSBk4bulbmcgbcOjIGtodXnhur9uIG3Do2ksIGtow7RuZyBhaSDEkcSDbmcga8O9IHRo4bq7IHRow6BuaCB2acOqbi4NCg0KxJBp4buBdSBuw6B5IGNobyB0aOG6pXkgdmnhu4djIMSRxINuZyBrw70gdGjhursgdGjDoG5oIHZpw6puIGfhuqduIG5oxrAgbMOgIG3hu5l0IHnhur91IHThu5Eg4oCcxJFp4buBdSBraeG7h24gY+G6p27igJ0gxJHhu4Mga2jDoWNoIGjDoG5nIHPhu60gZOG7pW5nIG3DoyBraHV54bq/biBtw6NpDQoNCiMjIyAqKjMuMS4yLiBLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgZ2nhu69hIGhhaSBiaeG6v24qKg0KDQpHaeG6oyB0aHV54bq/dCBraeG7g20gxJHhu4tuaDoNCg0KSDA6IEhhaSBiaeG6v24gxJHhu5ljIGzhuq1wIA0KDQpIMTogSGFpIGJp4bq/biBjw7MgbeG7kWkgcXVhbiBo4buHIA0KDQpgYGB7cn0NCiMgS2nhu4NtIMSR4buLbmggQ2hpLXNxdWFyZQ0KY2hpc3EudGVzdChzdWJfcHJvKQ0KYGBgDQoNCkdpw6EgdHLhu4sgQ2hpLXNxdWFyZSA9IDE5MDguOQ0KDQpwLXZhbHVlIDwgMi4yZS0xNg0KDQpCw6FjIGLhu48gSDAgduG7m2kgbeG7qWMgw70gbmdoxKlhIDElLCBraOG6s25nIMSR4buLbmggcuG6sW5nIHZp4buHYyDEkcaw4bujYyDDoXAgZOG7pW5nIGdp4bqjbSBnacOhIHbDoCB2aeG7h2MgxJHEg25nIGvDvSB0aOG6uyB0aMOgbmggdmnDqm4gY8OzIG3hu5FpIHF1YW4gaOG7hyB0aOG7kW5nIGvDqiByw7UgcuG7h3QuDQoNCiMjICoqMy4yIFTDoWMgxJHhu5luZyBj4bunYSBjw6FjIHBoxrDGoW5nIHRo4bupYyB0aGFuaCB0b8OhbiDEkeG6v24gdmnhu4djIMSRxrDhu6NjIMOhcCBk4bulbmcgZ2nhuqNtIGdpw6EqKg0KDQojIyMgKiozLjIuMS4gQuG6o25nIHThuqduIHN14bqldCBjaMOpbyoqDQoNCmBgYHtyfQ0KbnYkUGF5bWVudF9Hcm91cCA8LSBpZmVsc2UobnYkUGF5bWVudC5NZXRob2QgPT0gIkNhc2giLCAiVGnhu4FuIG3hurd0IiwgIlRoYW5oIHRvw6FuIHPhu5EiKQ0KDQojIELhuqNuZyBjaMOpbw0KZGlzX3BheSA8LSB0YWJsZShudiRQYXltZW50X0dyb3VwLCBudiREaXNjb3VudC5BcHBsaWVkKQ0KZGlzX3BheQ0KYGBgIA0KDQoNCiMjIyAqKjMuMi4yLiBLaeG7g20gxJHhu4tuaCB0w61uaCDEkeG7mWMgbOG6rXAgZ2nhu69hIGhhaSBiaeG6v24qKg0KDQpHaeG6oyB0aHV54bq/dCBraeG7g20gxJHhu4tuaDoNCg0KSDA6IEhhaSBiaeG6v24gxJHhu5ljIGzhuq1wIA0KDQpIMTogSGFpIGJp4bq/biBjw7MgbeG7kWkgcXVhbiBo4buHIA0KDQpgYGB7cn0NCiMgS2nhu4NtIMSR4buLbmggQ2hpLXNxdWFyZQ0KY2hpc3EudGVzdChkaXNfcGF5KQ0KYGBgDQoNCnAtdmFsdWUgPSAwLjY5MzMgKD4gMC4wNSkNCg0KS2jDtG5nIMSR4bunIGLhurFuZyBjaOG7qW5nIMSR4buDIGLDoWMgYuG7jyBnaeG6oyB0aHV54bq/dCBIMC4NCg0KSGFpIGJp4bq/biDigJxQaMawxqFuZyB0aOG7qWMgdGhhbmggdG/DoW7igJ0gdsOgIOKAnFZp4buHYyDEkcaw4bujYyBnaeG6o20gZ2nDoeKAnSDEkeG7mWMgbOG6rXAgduG7m2kgbmhhdSB0cm9uZyBt4bqrdSBraOG6o28gc8OhdCBuw6B5Lg0KDQojIyMgKiozLjIuMy4gUlIgdsOgIE9SKioNCg0KYGBge3J9DQpsaWJyYXJ5KGVwaXRvb2xzKQ0Kcmlza3JhdGlvKGRpc19wYXkpDQpgYGANCg0KTmjhu69uZyBuZ8aw4budaSBkw7luZyB0aGFuaCB0b8OhbiBz4buRIGPDsyBraOG6oyBuxINuZyDEkcaw4bujYyBnaeG6o20gZ2nDoSBjYW8gaMahbiAyLjE3JSBzbyB24bubaSB0aGFuaCB0b8OhbiB0aeG7gW4gbeG6t3QuIA0KDQpgYGB7cn0NCm9kZHNyYXRpbyhkaXNfcGF5KQ0KYGBgDQoNClTGsMahbmcgdOG7sSwgb2RkcyBj4bunYSB2aeG7h2MgxJHGsOG7o2MgZ2nhuqNtIGdpw6Ega2hpIGTDuW5nIHRoYW5oIHRvw6FuIHPhu5EgY2FvIGjGoW4gMy44JSBzbyB24bubaSB0aeG7gW4gbeG6t3QuDQoNCiMgKio0LiBI4buTaSBxdXkgbG9naWN0aWNzIHbDoCBwcm9iaXQqKg0KDQojIyAqKjQuMS4gQmnhur9uIHBo4bulIHRodeG7mWMgU3Vic2NyaXB0aW9uLlN0YXR1cyoqDQoNCmBgYHtyfQ0KbnYkU3Vic2NyaXB0aW9uLlN0YXR1cyA8LSBpZmVsc2UobnYkU3Vic2NyaXB0aW9uLlN0YXR1cz09ICJZZXMiLCAxLCAwKQ0KDQptb2RlbGxvZ2l0X1N1YiA8LSBnbG0oIFN1YnNjcmlwdGlvbi5TdGF0dXMgfiBQYXltZW50Lk1ldGhvZCArIEZyZXF1ZW5jeV9Hcm91cCArIFByZXZpb3VzLlB1cmNoYXNlcyArIEFnZSArIFB1cmNoYXNlLkFtb3VudC4uVVNELiwNCiAgICAgICAgICAgICAgICAgZGF0YSA9IG52LA0KICAgICAgICAgICAgICAgICBmYW1pbHkgPSAgYmlub21pYWwoKSkNCg0KDQpzdW1tYXJ5KG1vZGVsbG9naXRfU3ViKQ0KYGBgDQoNCiAgTcO0IGjDrG5oIGjhu5NpIHF1eSBsb2dpc3RpYyBuaOG7iyBwaMOibiB24bubaSBiaeG6v24gcGjhu6UgdGh14buZYyBsw6AgU3Vic2NyaXB0aW9uLlN0YXR1cyDEkcaw4bujYyB0aOG7sWMgaGnhu4duIG5o4bqxbSDEkcOhbmggZ2nDoSB0w6FjIMSR4buZbmcgY+G7p2EgY8OhYyB54bq/dSB04buRIGJhbyBn4buTbSBwaMawxqFuZyB0aOG7qWMgdGhhbmggdG/DoW4sIHThuqduIHN14bqldCBtdWEgaMOgbmcsIHPhu5EgbOG6p24gbXVhIHRyxrDhu5tjIMSRw6J5LCDEkeG7mSB0deG7lWkgdsOgIHPhu5EgdGnhu4FuIGNoaSB0acOqdSDEkeG6v24ga2jhuqMgbsSDbmcga2jDoWNoIGjDoG5nIMSRxINuZyBrw70gaOG7mWkgdmnDqm4uIEvhur90IHF14bqjIGNobyB0aOG6pXkgaOG7hyBz4buRIGNo4bq3biAoSW50ZXJjZXB0KSBtYW5nIGdpw6EgdHLhu4sgw6JtIGPDsyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogY2FvIChwIDwgMCwwMDEpLCBwaOG6o24gw6FuaCBraOG6oyBuxINuZyBjxqEgc+G7nyDEkcSDbmcga8O9IGjhu5lpIHZpw6puIGPhu6dhIGtow6FjaCBow6BuZyBsw6AgdGjhuqVwIGtoaSBjw6FjIGJp4bq/biDEkeG7mWMgbOG6rXAg4bufIMSRaeG7gXUga2nhu4duIHRoYW0gY2hp4bq/dS4gVHJvbmcgc+G7kSBjw6FjIGJp4bq/biBnaeG6o2kgdGjDrWNoLCBiaeG6v24gc+G7kSBs4bqnbiBtdWEgaMOgbmcgdHLGsOG7m2MgxJHDonkgKFByZXZpb3VzIFB1cmNoYXNlcykgY8OzIGjhu4cgc+G7kSBkxrDGoW5nIHbDoCBwLXZhbHVlIHjhuqVwIHjhu4kgMCwwNTgsIGfhuqduIMSR4bqhdCBt4bupYyDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ogMCwwNSwgY2hvIHRo4bqleSB4dSBoxrDhu5tuZyBraMOhY2ggaMOgbmcgxJHDoyBtdWEgbmhp4buBdSBs4bqnbiB0csaw4bubYyDEkcOzIGPDsyBraOG6oyBuxINuZyDEkcSDbmcga8O9IGjhu5lpIHZpw6puIGNhbyBoxqFuLiBDw6FjIGJp4bq/biBjw7JuIGzhuqFpIGJhbyBn4buTbSBwaMawxqFuZyB0aOG7qWMgdGhhbmggdG/DoW4sIHThuqduIHN14bqldCBtdWEgaMOgbmcsIMSR4buZIHR14buVaSB2w6Agc+G7kSB0aeG7gW4gY2hpIHRpw6p1IMSR4buBdSBjw7MgcC12YWx1ZSBs4bubbiBoxqFuIDAsMSwga2jDtG5nIGNo4bupbmcgbWluaCDEkcaw4bujYyB0w6FjIMSR4buZbmcgcsO1IHLhu4d0IMSR4bq/biBow6BuaCB2aSDEkcSDbmcga8O9IGjhu5lpIHZpw6puLiANCg0KYGBge3J9DQptb2RlbHByb2JpdF9TdWIgPC0gZ2xtKCBTdWJzY3JpcHRpb24uU3RhdHVzIH4gUGF5bWVudC5NZXRob2QgKyBGcmVxdWVuY3lfR3JvdXAgKyBQcmV2aW91cy5QdXJjaGFzZXMgKyBBZ2UgKyBQdXJjaGFzZS5BbW91bnQuLlVTRC4sDQogICAgICAgICAgICAgICAgIGRhdGEgPSBudiwNCiAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJwcm9iaXQiKSkNCg0Kc3VtbWFyeShtb2RlbHByb2JpdF9TdWIpDQoNCmBgYA0KDQogIE3DtCBow6xuaCBo4buTaSBxdXkgcHJvYml0IG5o4buLIHBow6JuIMSRxrDhu6NjIHRo4buxYyBoaeG7h24gc29uZyBzb25nIG5o4bqxbSBraeG7g20gdHJhIHTDrW5oIG5o4bqldCBxdcOhbiBj4bunYSBr4bq/dCBxdeG6oywgduG7m2kgbeG7qWMgxJHhu5kgcGjDuSBo4bujcCB0xrDGoW5nIMSRxrDGoW5nIChBSUMga2hv4bqjbmcgNDU2MSkuIEvhur90IHF14bqjIHByb2JpdCB0xrDGoW5nIHThu7EgbcO0IGjDrG5oIGxvZ2lzdGljLCBraGkgYmnhur9uIHPhu5EgbOG6p24gbXVhIGjDoG5nIHRyxrDhu5tjIMSRw6J5IHRp4bq/cCB04bulYyBsw6AgeeG6v3UgdOG7kSBkdXkgbmjhuqV0IGPDsyB4dSBoxrDhu5tuZyB0w6FjIMSR4buZbmcgdMOtY2ggY+G7sWMgKHAtdmFsdWUgfjAsMDU4KSwgY8OybiBjw6FjIGJp4bq/biBraMOhYyBraMO0bmcgY8OzIMO9IG5naMSpYSB0aOG7kW5nIGvDqi4gTmjDrG4gY2h1bmcsIGPhuqMgaGFpIG3DtCBow6xuaCDEkeG7gXUgY2jhu4kgcmEgcuG6sW5nIGzhu4tjaCBz4butIG11YSBow6BuZyBj4bunYSBraMOhY2ggaMOgbmcgbMOgIHnhur91IHThu5EgdGnhu4FtIG7Eg25nIOG6o25oIGjGsOG7n25nIMSR4bq/biBxdXnhur90IMSR4buLbmggxJHEg25nIGvDvSBo4buZaSB2acOqbiwgdHJvbmcga2hpIGPDoWMgxJHhurdjIMSRaeG7g20ga2jDoWMgY2jGsGEgdGjhu4MgaGnhu4duIHTDoWMgxJHhu5luZyDEkcOhbmcga+G7gyB0cm9uZyBt4bqrdSBk4buvIGxp4buHdSBuZ2hpw6puIGPhu6l1Lg0KDQojIyAqKjQuMi4gQmnhur9uIHBo4bulIHRodeG7mWMgRGlzY291bnQuQXBwbGllZCoqDQoNCmBgYHtyfQ0KbnYkRGlzY291bnQuQXBwbGllZCA8LSBpZmVsc2UobnYkRGlzY291bnQuQXBwbGllZD09ICJZZXMiLCAxLCAwKQ0KDQptb2RlbGxvZ2l0X0RpcyA8LSBnbG0oIERpc2NvdW50LkFwcGxpZWQgfiBQYXltZW50Lk1ldGhvZCArIEZyZXF1ZW5jeV9Hcm91cCArIFByZXZpb3VzLlB1cmNoYXNlcyArIEFnZSArIFB1cmNoYXNlLkFtb3VudC4uVVNELiwNCiAgICAgICAgICAgICAgICAgZGF0YSA9IG52LA0KICAgICAgICAgICAgICAgICBmYW1pbHkgPSAgYmlub21pYWwoKSkNCg0KDQpzdW1tYXJ5KG1vZGVsbG9naXRfRGlzKQ0KYGBgDQoNCiAgVHJvbmcgbcO0IGjDrG5oIG7DoHksIGjhu4cgc+G7kSBjaOG6t24gKEludGVyY2VwdCkgY8OzIGdpw6EgdHLhu4sgw6JtICgtMCwzMTA3KSB2w6AgxJHhuqF0IG3hu6ljIMO9IG5naMSpYSB0aOG7kW5nIGvDqiAxMCUgKHA9MCwwNTQpLCBwaOG6o24gw6FuaCB4w6FjIHN14bqldCBjxqEgc+G7nyBj4bunYSB2aeG7h2MgxJHGsOG7o2MgZ2nhuqNtIGdpw6EgbMOgIHTGsMahbmcgxJHhu5FpIHRo4bqlcCBraGkgY8OhYyBiaeG6v24gxJHhu5ljIGzhuq1wIOG7nyBt4bupYyB0aGFtIGNoaeG6v3UuIEPDoWMgYmnhur9uIGdp4bqjaSB0aMOtY2ggxJHhu4F1IGPDsyBwLXZhbHVlIGzhu5tuIGjGoW4gMCwxLCBjaG8gdGjhuqV5IGtow7RuZyBjw7MgeeG6v3UgdOG7kSBuw6BvIGNo4bupbmcgbWluaCDEkcaw4bujYyB0w6FjIMSR4buZbmcgcmnDqm5nIGzhursgcsO1IHLhu4d0LiBD4bulIHRo4buDLCBz4buRIGzhuqduIG11YSBow6BuZyB0csaw4bubYyDEkcOieSAoUHJldmlvdXMgUHVyY2hhc2VzKSBjw7MgaOG7hyBz4buRIGTGsMahbmcgKDAsMDAzMyksIHRo4buDIGhp4buHbiB4dSBoxrDhu5tuZyB0w61jaCBj4buxYyDEkeG7kWkgduG7m2kga2jhuqMgbsSDbmcgbmjhuq1uIMawdSDEkcOjaSwgdHV5IG5oacOqbiBwLXZhbHVlIHjhuqVwIHjhu4kgMCwxNDYgduG6q24gY2jGsGEgxJHhu6cgbeG6oW5oIMSR4buDIGto4bqzbmcgxJHhu4tuaCDDvSBuZ2jEqWEgdGjhu5FuZyBrw6ouIEPDoWMgYmnhur9uIGPDsm4gbOG6oWksIGJhbyBn4buTbSB04bqldCBj4bqjIHBoxrDGoW5nIHRo4bupYyB0aGFuaCB0b8OhbiwgdOG6p24gc3XhuqV0IG11YSBow6BuZyBJbmZyZXF1ZW50LCDEkeG7mSB0deG7lWkgdsOgIGdpw6EgdHLhu4sgY2hpIHRpw6p1LCDEkeG7gXUga2jDtG5nIGNobyB0aOG6pXkgbeG7kWkgbGnDqm4gaOG7hyDEkcOhbmcga+G7gyB24bubaSBraOG6oyBuxINuZyBuaOG6rW4gZ2nhuqNtIGdpw6EuIE3hu6ljIMSR4buZIHBow7kgaOG7o3AgY+G7p2EgbcO0IGjDrG5oIMSRxrDhu6NjIHRo4buDIGhp4buHbiBxdWEgY2jhu4kgc+G7kSBBSUMgKDUzNDIsMiksIHR1eSDhu58gbeG7qWMgduG7q2EgcGjhuqNpLCBzb25nIGtow7RuZyB4deG6pXQgaGnhu4duIHbhuqVuIMSR4buBIGjhu5lpIHThu6UgaGF5IHBow6JuIHTDoWNoIGhvw6BuIGjhuqNvLCDEkeG6o20gYuG6o28ga+G6v3QgcXXhuqMgxrDhu5tjIGzGsOG7o25nIGPDsyB0aOG7gyB0aW4gY+G6rXkg4bufIG3hu6ljIGPGoSBi4bqjbi4NCg0KYGBge3J9DQptb2RlbHByb2JpdF9EaXMgPC0gZ2xtKCBEaXNjb3VudC5BcHBsaWVkIH4gUGF5bWVudC5NZXRob2QgKyBGcmVxdWVuY3lfR3JvdXAgKyBQcmV2aW91cy5QdXJjaGFzZXMgKyBBZ2UgKyBQdXJjaGFzZS5BbW91bnQuLlVTRC4sDQogICAgICAgICAgICAgICAgIGRhdGEgPSBudiwNCiAgICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwobGluayA9ICJwcm9iaXQiKSkNCg0Kc3VtbWFyeShtb2RlbHByb2JpdF9EaXMpDQoNCmBgYA0KDQogIE3DtCBow6xuaCBo4buTaSBxdXkgcHJvYml0IG5o4buLIHBow6JuIMSRxrDhu6NjIHRo4buxYyBoaeG7h24gc29uZyBzb25nIG5o4bqxbSBraeG7g20gdHJhIHTDrW5oIG5o4bqldCBxdcOhbiBj4bunYSBr4bq/dCBxdeG6oyB04burIG3DtCBow6xuaCBsb2dpc3RpYy4gS+G6v3QgcXXhuqMgcHJvYml0IGNobyB0aOG6pXkgaOG7hyBz4buRIGNo4bq3biAoSW50ZXJjZXB0KSBjw7MgZ2nDoSB0cuG7iyDDom0gKC0wLDE5NDMpIHbDoCBwLXZhbHVlIH4wLDA1NCwgdMawxqFuZyB04buxIMO9IG5naMSpYSB0aOG7kW5nIGvDqiBj4bunYSBtw7QgaMOsbmggbG9naXN0aWMsIGto4bqzbmcgxJHhu4tuaCBraOG6oyBuxINuZyBjxqEgc+G7nyBj4bunYSB2aeG7h2MgxJHGsOG7o2MgZ2nhuqNtIGdpw6Ega2jDtG5nIGNhby4gQ8OhYyBo4buHIHPhu5EgxrDhu5tjIGzGsOG7o25nIGPhu6dhIGPDoWMgYmnhur9uIGdp4bqjaSB0aMOtY2ggY8OzIHh1IGjGsOG7m25nIMSR4buTbmcgbmjhuqV0IHbhu4EgZOG6pXUgdsOgIMSR4buZIGzhu5tuIHNvIHbhu5tpIGxvZ2lzdGljLCDEkeG7k25nIHRo4budaSBraMO0bmcgYmnhur9uIG7DoG8gxJHhuqF0IG3hu6ljIMO9IG5naMSpYSB0aOG7kW5nIGvDqiAxMCUuIEJp4bq/biBz4buRIGzhuqduIG11YSBow6BuZyB0csaw4bubYyDEkcOieSAoUHJldmlvdXMgUHVyY2hhc2VzKSB0aeG6v3AgdOG7pWMgY2hvIGjhu4cgc+G7kSBkxrDGoW5nICgwLDAwMjApLCBwaOG6o24gw6FuaCB4dSBoxrDhu5tuZyBraMOhY2ggaMOgbmcgY8OzIGzhu4tjaCBz4butIG11YSBz4bqvbSBuaGnhu4F1IHPhur0gZOG7hSDEkcaw4bujYyDDoXAgZOG7pW5nIGtodXnhur9uIG3Do2kgaMahbiwgdHV5IG5oacOqbiBwLXZhbHVlIHbhuqtuIHjhuqVwIHjhu4kgMCwxNDcgdsOgIGNoxrBhIMSR4bunIG3huqFuaCDEkeG7gyBraOG6s25nIMSR4buLbmggY2jhuq9jIGNo4bqvbi4gQ8OhYyBiaeG6v24gY8OybiBs4bqhaSBiYW8gZ+G7k20gcGjGsMahbmcgdGjhu6ljIHRoYW5oIHRvw6FuLCB04bqnbiBzdeG6pXQgbXVhIGjDoG5nLCDEkeG7mSB0deG7lWkgdsOgIHPhu5EgdGnhu4FuIGNoaSB0acOqdSBraMO0bmcgY2hvIHRo4bqleSBt4buRaSBsacOqbiBo4buHIHLDtSBy4buHdCB24bubaSBraOG6oyBuxINuZyDEkcaw4bujYyBnaeG6o20gZ2nDoS4gTcO0IGjDrG5oIHByb2JpdCBjw7MgY2jhu4kgc+G7kSBBSUMgdMawxqFuZyB04buxICg1MzQyLDIpLCBt4bupYyDEkeG7mSBwaMO5IGjhu6NwIGfhuqduIG5oxrAgdHLDuW5nIGto4bubcCBtw7QgaMOsbmggbG9naXN0aWMsIGPhu6duZyBj4buRIHTDrW5oIG5o4bqldCBxdcOhbiBj4bunYSBjw6FjIMaw4bubYyBsxrDhu6NuZyB2w6AgeMOhYyBuaOG6rW4gcuG6sW5nIGPDoWMgeeG6v3UgdOG7kSBraOG6o28gc8OhdCBjaMawYSBwaOG6o2kgbMOgIG5o4buvbmcgbmjDom4gdOG7kSBjaOG7pyBjaOG7kXQgdHJvbmcgdmnhu4djIGdp4bqjaSB0aMOtY2ggc+G7sSBraMOhYyBiaeG7h3QgduG7gSBjaMOtbmggc8OhY2ggxrB1IMSRw6NpIGdp4bqjbSBnacOhIGPhu6dhIGRvYW5oIG5naGnhu4dwLg0KDQo=