1 Giới thiệu

  • Model selection đơn giản như cái tên của nó: lựa chọn mô hình. Đã gọi là lựa chọn thì sẽ phải có tiêu chí để lựa chọn (tất nhiên là phải có sự đánh đổi). Trong ngành ngân hàng hiện nay, thông thường họ hay dùng các lớp mô hình liên quan đến xác suất để đánh giá rủi ro tín dụng đối với khách hàng, vì thế họ thường lựa chọn các tiêu chí như GINI, AUC, sensitivity (recall), specificity, hoặc precision … các tiêu chí này được thực hiện rất tốt trên package ROCR.

  • Song song với việc đánh giá performance của mô hình, người làm mô hình cần phải kiểm tra hiện tượng overfit của mô hình. Tất nhiên là mô hình có sai số ít hơn thì sẽ tốt hơn, nhưng mà những mô hình này rất dễ bị overfitting (chỉ có performance tốt trên tập dữ liệu estimate những lại có performance kém trên tập dữ liệu dự báo). Để tránh hiện tượng overfitting này, người ta đưa ra “mức phạt” (ưu tiên mô hình có số lượng biến ít hơn). 2 chỉ số phạt tốt nhất là AIC và BIC. Hai chỉ số này áp dụng tốt với các mô hình dạng linear regression, logit regression, timeseries, …

2 AIC là gì? BIC là gì?

Akaike’s (1973) information criteria (AIC), Schwarz’s (1978) bayes information criteria (BIC) là 2 chỉ số tốt nhất để chọn mô hình.

3 So sánh AIC và BIC

Akaike (1974) chỉ ra rằng các kiểm định giả thuyết thống kê là không phù hợp đối với model selection. Hơn nữa, ông ý chỉ ra rằng một thủ tục khác là minimum AIC estimate (MAICE) là thủ tục có khả năng hơn và không có nhiều thiếu sót đối với việc kiểm định các giả thiết mô hình. Tác giả cũng tuyên bố rằng, mặc dù MAICE có thể dùng được với phần lớn các mô hình thống kê, nhưng chỉ số này hữu ích nhất đối với mô hình timeseries. Tong (1975) đã phát triển một thủ tục để xác định bậc của AR (autoregressive) bằng việc sử dụng AIC. Thủ tục này đã được chứng minh rất tốt trên cả tập dữ liệu mô phỏng lẫn thực tế. Thật thú vị, bài toán của Tong gần giống như các bài toán phân tích nhân tố cổ điển khi các tham số được ước lượng bằng ML method và bậc được xác định bởi MAICE. Do đó, thủ tục của Tong được xem như là 1 mở rộng của thủ tục xác định bậc trong phân tích nhân tố.

Shibata (1976) đã phân tích các thuộc tính thống kê của Akaike (1973, 1974) và đề xuất 1 phương pháp ước lượng mô hình thống kê (statistical model fitting). Đặc biệt, tác giả kiểm tra tính nhất quán của AIC và chỉ ra rằng AIC không nhất quán trong việc lựa chọn bậc trong mô hình AR (autoregressive)

Hannan and Quinn (1979) mặt khác lưu ý rằng BIC là tiêu chí đồng nhất cao (strongly consistency criterion) với việc lựa chọn bậc của mô hình AR và được ủng hộ bởi Tsay (1984) với mô hình có biến phụ thuộc là không dừng (non stationary dependent variable)

Soderstrom (1977) đã kiểm tra 2 tiêu chí AIC và FPE (full percentile error) bằng việc sử dụng F-test để lựa chọn giữa 2 mô hình khi mô hình nhỏ nằm trong mô hình lớn và kết luận 2 thủ tục là tương đương. Stone (1977) và Nishii (1981) sử dụng kiểm định chéo (cross validation) đã chứng minh sử dụng AIC và FPE là tương đương. Bằng cách khác Shibata (1981) đã chứng minh AIC, FPE và Cp tương đương và tính tương đương của Bayesian posterior odds ratio (POR) và AIC. Tương tự AIC và BIC được chứng minh là tương đương trong nhiều nghiên cứu

Hannan(1980) đã tìm ra kết quả tương tự Shibata (1976) với trường hợp non-Gaussian (chắc lúc này hối hận vì tuyên bố trước lắm)

Chung quy lại AIC được sử dụng để tìm ra overfit trong mô hình và với mô hình được chọn bởi AIC kết quả vẫn đồng nhất và tiệm cận chuẩn.

Nói chung, nhiều nghiên cứu sau này dùng cả 2 chỉ số AIC, BIC đều cho thấy kết quả tương đương.

Hurvich và Tsai (1989) đưa ra 1 phiên bản sửa lỗi lệch của AIC là AICc

\[ AIC_c = AIC + \frac{2k(k-1)} {T-K-1} \]

Phiên bản này rất hữu ích đối với mẫu nhỏ hay số lượng tham số của mô hình và vừa phải so với quy mô mẫu. Chỉ số này được tác giả tuyên bố là tương đối hiệu quả nếu mô hình đúng có vô hạn chiều (chưa hiểu lắm :))). Mặc dù vậy, với mô hình hữu hạn chiều AICc vẫn tốt hơn các tiêu chí khác theo nghĩa là xác suất chọn được mô hình đúng cao hơn các chỉ số khác

Hurvich và Tsai (1993) cũng mở rộng AICc với mô hình AR(p)

Hurvich và Tsai (1991) so sánh giữa AIC, BIC và AICc về giải quyết overfit, kết quả với mô hình ước lượng trên tập mẫu nhỏ AICc tốt hơn đáng kể so với AIC và BIC, nhưng với mẫu trung bình trở lên thì chỉ tốt hơn 1 chút

Sin và White (1992) cân nhắc sử dụng mức phạt với log-likelihood cho model selection với nhiều dạng như nested, non-nested, correctly specified or misspecified. Họ cung cấp điều kiện chọn mức phạt bảo đảm rằng việc lựa chọn mô hình đúng với xác suất gần bằng 1 (có điêu không nhỉ?) khi mô hình cạnh tranh có cùng KLIC và có các tiêu chí tương tự. Họ cũng mô tả thuộc tính nổi tiếng AIC,BIC and HQ criteria

4 Kết luận

Để tránh hiện tượng overfit trong mô hình có cần sử dụng một số tiêu chí để kiểm tra như sau:

  • AICc: tốt nhất với mô hình có mẫu nhỏ
  • Với mẫu trung bình trở lên thì dùng AIC, BIC, AICc là tương đương
  • Ngoài AIC và BIC còn có các chỉ số khác như Shibata, Hannan Quinn, và log-likelihood … để đánh giá hiện tượng overfit của mô hình
  • Note: Các mô hình khác nhau không có ngưỡng cụ thể của các chỉ số, nhưng mô hình tốt hơn là mô hình có các chỉ số AIC, BIC, HQIC, SIC, log-likelihood… càng nhỏ càng tốt
LS0tDQp0aXRsZTogIkNvbXBhcmUgYWljIGFuZCBiaWMgZm9yIG1vZGVsIHNlbGVjdGlvbiINCmF1dGhvcjogIk5ndXnhu4VuIE5n4buNYyBCw6xuaCINCmRhdGU6ICI2LzE3LzIwMTkiDQpvdXRwdXQ6IA0KICBodG1sX2RvY3VtZW50OiANCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgbnVtYmVyX3NlY3Rpb25zOiB5ZXMNCiAgICB0aGVtZTogImRlZmF1bHQiDQogICAgdG9jOiBUUlVFDQogICAgdG9jX2Zsb2F0OiBUUlVFDQogICAgZGV2OiAnc3ZnJw0KDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KIyBHaeG7m2kgdGhp4buHdQ0KDQotIE1vZGVsIHNlbGVjdGlvbiDEkcahbiBnaeG6o24gbmjGsCBjw6FpIHTDqm4gY+G7p2EgbsOzOiBs4buxYSBjaOG7jW4gbcO0IGjDrG5oLiDEkMOjIGfhu41pIGzDoCBs4buxYSBjaOG7jW4gdGjDrCBz4bq9IHBo4bqjaSBjw7MgdGnDqnUgY2jDrSDEkeG7gyBs4buxYSBjaOG7jW4gKHThuqV0IG5oacOqbiBsw6AgcGjhuqNpIGPDsyBz4buxIMSRw6FuaCDEkeG7lWkpLiBUcm9uZyBuZ8OgbmggbmfDom4gaMOgbmcgaGnhu4duIG5heSwgdGjDtG5nIHRoxrDhu51uZyBo4buNIGhheSBkw7luZyBjw6FjIGzhu5twIG3DtCBow6xuaCBsacOqbiBxdWFuIMSR4bq/biB4w6FjIHN14bqldCDEkeG7gyDEkcOhbmggZ2nDoSBy4bunaSBybyB0w61uIGThu6VuZyDEkeG7kWkgduG7m2kga2jDoWNoIGjDoG5nLCB2w6wgdGjhur8gaOG7jSB0aMaw4budbmcgbOG7sWEgY2jhu41uIGPDoWMgdGnDqnUgY2jDrSBuaMawIEdJTkksIEFVQywgc2Vuc2l0aXZpdHkgKHJlY2FsbCksIHNwZWNpZmljaXR5LCBob+G6t2MgcHJlY2lzaW9uIC4uLiBjw6FjIHRpw6p1IGNow60gbsOgeSDEkcaw4bujYyB0aOG7sWMgaGnhu4duIHLhuqV0IHThu5F0IHRyw6puIHBhY2thZ2UgUk9DUi4gDQoNCi0gU29uZyBzb25nIHbhu5tpIHZp4buHYyDEkcOhbmggZ2nDoSBwZXJmb3JtYW5jZSBj4bunYSBtw7QgaMOsbmgsIG5nxrDhu51pIGzDoG0gbcO0IGjDrG5oIGPhuqduIHBo4bqjaSBraeG7g20gdHJhIGhp4buHbiB0xrDhu6NuZyBvdmVyZml0IGPhu6dhIG3DtCBow6xuaC4gVOG6pXQgbmhpw6puIGzDoCBtw7QgaMOsbmggY8OzIHNhaSBz4buRIMOtdCBoxqFuIHRow6wgc+G6vSB04buRdCBoxqFuLCBuaMawbmcgbcOgIG5o4buvbmcgbcO0IGjDrG5oIG7DoHkgcuG6pXQgZOG7hSBi4buLIG92ZXJmaXR0aW5nIChjaOG7iSBjw7MgcGVyZm9ybWFuY2UgdOG7kXQgdHLDqm4gdOG6rXAgZOG7ryBsaeG7h3UgZXN0aW1hdGUgbmjhu69uZyBs4bqhaSBjw7MgcGVyZm9ybWFuY2Uga8OpbSB0csOqbiB04bqtcCBk4buvIGxp4buHdSBk4buxIGLDoW8pLiDEkOG7gyB0csOhbmggaGnhu4duIHTGsOG7o25nIG92ZXJmaXR0aW5nIG7DoHksIG5nxrDhu51pIHRhIMSRxrBhIHJhICJt4bupYyBwaOG6oXQiICjGsHUgdGnDqm4gbcO0IGjDrG5oIGPDsyBz4buRIGzGsOG7o25nIGJp4bq/biDDrXQgaMahbikuIDIgY2jhu4kgc+G7kSBwaOG6oXQgdOG7kXQgbmjhuqV0IGzDoCBBSUMgdsOgIEJJQy4gSGFpIGNo4buJIHPhu5EgbsOgeSDDoXAgZOG7pW5nIHThu5F0IHbhu5tpIGPDoWMgbcO0IGjDrG5oIGThuqFuZyBsaW5lYXIgcmVncmVzc2lvbiwgbG9naXQgcmVncmVzc2lvbiwgdGltZXNlcmllcywgLi4uDQoNCg0KIyBBSUMgbMOgIGfDrD8gQklDIGzDoCBnw6w/DQoNCkFrYWlrZSdzICgxOTczKSBpbmZvcm1hdGlvbiBjcml0ZXJpYSAoQUlDKSwgU2Nod2FyeidzICgxOTc4KSBiYXllcyBpbmZvcm1hdGlvbiBjcml0ZXJpYSAoQklDKSBsw6AgMiBjaOG7iSBz4buRIHThu5F0IG5o4bqldCDEkeG7gyBjaOG7jW4gbcO0IGjDrG5oLg0KDQojIFNvIHPDoW5oIEFJQyB2w6AgQklDDQoNCkFrYWlrZSAoMTk3NCkgY2jhu4kgcmEgcuG6sW5nIGPDoWMga2nhu4NtIMSR4buLbmggZ2nhuqMgdGh1eeG6v3QgdGjhu5FuZyBrw6ogbMOgIGtow7RuZyBwaMO5IGjhu6NwIMSR4buRaSB24bubaSBtb2RlbCBzZWxlY3Rpb24uIEjGoW4gbuG7r2EsIMO0bmcgw70gY2jhu4kgcmEgcuG6sW5nIG3hu5l0IHRo4bunIHThu6VjIGtow6FjIGzDoCBtaW5pbXVtIEFJQyBlc3RpbWF0ZSAoTUFJQ0UpIGzDoCB0aOG7pyB04bulYyBjw7Mga2jhuqMgbsSDbmcgaMahbiB2w6Aga2jDtG5nIGPDsyBuaGnhu4F1IHRoaeG6v3Ugc8OzdCDEkeG7kWkgduG7m2kgdmnhu4djIGtp4buDbSDEkeG7i25oIGPDoWMgZ2nhuqMgdGhp4bq/dCBtw7QgaMOsbmguIFTDoWMgZ2nhuqMgY8WpbmcgdHV5w6puIGLhu5EgcuG6sW5nLCBt4bq3YyBkw7kgTUFJQ0UgY8OzIHRo4buDIGTDuW5nIMSRxrDhu6NjIHbhu5tpIHBo4bqnbiBs4bubbiBjw6FjIG3DtCBow6xuaCB0aOG7kW5nIGvDqiwgbmjGsG5nIGNo4buJIHPhu5EgbsOgeSBo4buvdSDDrWNoIG5o4bqldCDEkeG7kWkgduG7m2kgbcO0IGjDrG5oIHRpbWVzZXJpZXMuIFRvbmcgKDE5NzUpIMSRw6MgcGjDoXQgdHJp4buDbiBt4buZdCB0aOG7pyB04bulYyDEkeG7gyB4w6FjIMSR4buLbmggYuG6rWMgY+G7p2EgQVIgKGF1dG9yZWdyZXNzaXZlKSBi4bqxbmcgdmnhu4djIHPhu60gZOG7pW5nIEFJQy4gVGjhu6cgdOG7pWMgbsOgeSDEkcOjIMSRxrDhu6NjIGNo4bupbmcgbWluaCBy4bqldCB04buRdCB0csOqbiBj4bqjIHThuq1wIGThu68gbGnhu4d1IG3DtCBwaOG7j25nIGzhuqtuIHRo4buxYyB04bq/LiBUaOG6rXQgdGjDuiB24buLLCBiw6BpIHRvw6FuIGPhu6dhIFRvbmcgZ+G6p24gZ2nhu5FuZyBuaMawIGPDoWMgYsOgaSB0b8OhbiBwaMOibiB0w61jaCBuaMOibiB04buRIGPhu5UgxJFp4buDbiBraGkgY8OhYyB0aGFtIHPhu5EgxJHGsOG7o2MgxrDhu5tjIGzGsOG7o25nIGLhurFuZyBNTCBtZXRob2QgdsOgIGLhuq1jIMSRxrDhu6NjIHjDoWMgxJHhu4tuaCBi4bufaSBNQUlDRS4gRG8gxJHDsywgdGjhu6cgdOG7pWMgY+G7p2EgVG9uZyDEkcaw4bujYyB4ZW0gbmjGsCBsw6AgMSBt4bufIHLhu5luZyBj4bunYSB0aOG7pyB04bulYyB4w6FjIMSR4buLbmggYuG6rWMgdHJvbmcgcGjDom4gdMOtY2ggbmjDom4gdOG7kS4gDQoNClNoaWJhdGEgKDE5NzYpIMSRw6MgcGjDom4gdMOtY2ggY8OhYyB0aHXhu5ljIHTDrW5oIHRo4buRbmcga8OqIGPhu6dhIEFrYWlrZSAoMTk3MywgMTk3NCkgdsOgIMSR4buBIHh14bqldCAxIHBoxrDGoW5nIHBow6FwIMaw4bubYyBsxrDhu6NuZyBtw7QgaMOsbmggdGjhu5FuZyBrw6ogKHN0YXRpc3RpY2FsIG1vZGVsIGZpdHRpbmcpLiDEkOG6t2MgYmnhu4d0LCB0w6FjIGdp4bqjIGtp4buDbSB0cmEgdMOtbmggbmjhuqV0IHF1w6FuIGPhu6dhIEFJQyB2w6AgY2jhu4kgcmEgcuG6sW5nIEFJQyBraMO0bmcgbmjhuqV0IHF1w6FuIHRyb25nIHZp4buHYyBs4buxYSBjaOG7jW4gYuG6rWMgdHJvbmcgbcO0IGjDrG5oIEFSIChhdXRvcmVncmVzc2l2ZSkgDQoNCkhhbm5hbiBhbmQgUXVpbm4gKDE5NzkpIG3hurd0IGtow6FjIGzGsHUgw70gcuG6sW5nIEJJQyBsw6AgdGnDqnUgY2jDrSDEkeG7k25nIG5o4bqldCBjYW8gKHN0cm9uZ2x5IGNvbnNpc3RlbmN5IGNyaXRlcmlvbikgduG7m2kgdmnhu4djIGzhu7FhIGNo4buNbiBi4bqtYyBj4bunYSBtw7QgaMOsbmggQVIgdsOgIMSRxrDhu6NjIOG7p25nIGjhu5kgYuG7n2kgVHNheSAoMTk4NCkgduG7m2kgbcO0IGjDrG5oIGPDsyBiaeG6v24gcGjhu6UgdGh14buZYyBsw6Aga2jDtG5nIGThu6tuZyAobm9uIHN0YXRpb25hcnkgZGVwZW5kZW50IHZhcmlhYmxlKQ0KDQpTb2RlcnN0cm9tICgxOTc3KSDEkcOjIGtp4buDbSB0cmEgMiB0acOqdSBjaMOtIEFJQyB2w6AgRlBFIChmdWxsIHBlcmNlbnRpbGUgZXJyb3IpIGLhurFuZyB2aeG7h2Mgc+G7rSBk4bulbmcgRi10ZXN0IMSR4buDIGzhu7FhIGNo4buNbiBnaeG7r2EgMiBtw7QgaMOsbmgga2hpIG3DtCBow6xuaCBuaOG7jyBu4bqxbSB0cm9uZyBtw7QgaMOsbmggbOG7m24gdsOgIGvhur90IGx14bqtbiAyIHRo4bunIHThu6VjIGzDoCB0xrDGoW5nIMSRxrDGoW5nLiBTdG9uZSAoMTk3NykgdsOgIE5pc2hpaSAoMTk4MSkgc+G7rSBk4bulbmcga2nhu4NtIMSR4buLbmggY2jDqW8gKGNyb3NzIHZhbGlkYXRpb24pIMSRw6MgY2jhu6luZyBtaW5oIHPhu60gZOG7pW5nIEFJQyB2w6AgRlBFIGzDoCB0xrDGoW5nIMSRxrDGoW5nLiBC4bqxbmcgY8OhY2gga2jDoWMgU2hpYmF0YSAoMTk4MSkgxJHDoyBjaOG7qW5nIG1pbmggQUlDLCBGUEUgdsOgIENwIHTGsMahbmcgxJHGsMahbmcgdsOgIHTDrW5oIHTGsMahbmcgxJHGsMahbmcgY+G7p2EgQmF5ZXNpYW4gcG9zdGVyaW9yIG9kZHMgcmF0aW8gKFBPUikgdsOgIEFJQy4gVMawxqFuZyB04buxIEFJQyB2w6AgQklDIMSRxrDhu6NjIGNo4bupbmcgbWluaCBsw6AgdMawxqFuZyDEkcawxqFuZyB0cm9uZyBuaGnhu4F1IG5naGnDqm4gY+G7qXUNCg0KSGFubmFuKDE5ODApIMSRw6MgdMOsbSByYSBr4bq/dCBxdeG6oyB0xrDGoW5nIHThu7EgU2hpYmF0YSAoMTk3NikgduG7m2kgdHLGsOG7nW5nIGjhu6NwIG5vbi1HYXVzc2lhbiAoKipjaOG6r2MgbMO6YyBuw6B5IGjhu5FpIGjhuq1uIHbDrCB0dXnDqm4gYuG7kSB0csaw4bubYyBs4bqvbSoqKQ0KDQpDaHVuZyBxdXkgbOG6oWkgQUlDIMSRxrDhu6NjIHPhu60gZOG7pW5nIMSR4buDIHTDrG0gcmEgb3ZlcmZpdCB0cm9uZyBtw7QgaMOsbmggdsOgIHbhu5tpIG3DtCBow6xuaCDEkcaw4bujYyBjaOG7jW4gYuG7n2kgQUlDIGvhur90IHF14bqjIHbhuqtuIMSR4buTbmcgbmjhuqV0IHbDoCB0aeG7h20gY+G6rW4gY2h14bqpbi4gDQoNCk7Ds2kgY2h1bmcsIG5oaeG7gXUgbmdoacOqbiBj4bupdSBzYXUgbsOgeSBkw7luZyBj4bqjIDIgY2jhu4kgc+G7kSBBSUMsIEJJQyDEkeG7gXUgY2hvIHRo4bqleSBr4bq/dCBxdeG6oyB0xrDGoW5nIMSRxrDGoW5nLiANCg0KDQpIdXJ2aWNoIHbDoCBUc2FpICgxOTg5KSDEkcawYSByYSAxIHBoacOqbiBi4bqjbiBz4butYSBs4buXaSBs4buHY2ggY+G7p2EgQUlDIGzDoCBBSUNjIA0KDQokJCBBSUNfYyA9IEFJQyArIFxmcmFjezJrKGstMSl9IHtULUstMX0gJCQNCg0KUGhpw6puIGLhuqNuIG7DoHkgcuG6pXQgaOG7r3Ugw61jaCDEkeG7kWkgduG7m2kgbeG6q3Ugbmjhu48gaGF5IHPhu5EgbMaw4bujbmcgdGhhbSBz4buRIGPhu6dhIG3DtCBow6xuaCB2w6AgduG7q2EgcGjhuqNpIHNvIHbhu5tpIHF1eSBtw7QgbeG6q3UuIENo4buJIHPhu5EgbsOgeSDEkcaw4bujYyB0w6FjIGdp4bqjIHR1ecOqbiBi4buRIGzDoCB0xrDGoW5nIMSR4buRaSBoaeG7h3UgcXXhuqMgbuG6v3UgbcO0IGjDrG5oIMSRw7puZyBjw7MgdsO0IGjhuqFuIGNoaeG7gXUgKGNoxrBhIGhp4buDdSBs4bqvbSA6KSkpLiBN4bq3YyBkw7kgduG6rXksIHbhu5tpIG3DtCBow6xuaCBo4buvdSBo4bqhbiBjaGnhu4F1IEFJQ2MgduG6q24gdOG7kXQgaMahbiBjw6FjIHRpw6p1IGNow60ga2jDoWMgdGhlbyBuZ2jEqWEgbMOgIHjDoWMgc3XhuqV0IGNo4buNbiDEkcaw4bujYyBtw7QgaMOsbmggxJHDum5nIGNhbyBoxqFuIGPDoWMgY2jhu4kgc+G7kSBraMOhYw0KDQoNCkh1cnZpY2ggdsOgIFRzYWkgKDE5OTMpIGPFqW5nIG3hu58gcuG7mW5nIEFJQ2MgduG7m2kgbcO0IGjDrG5oIEFSKHApIA0KDQoNCkh1cnZpY2ggdsOgIFRzYWkgKDE5OTEpIHNvIHPDoW5oIGdp4buvYSBBSUMsIEJJQyB2w6AgQUlDYyB24buBIGdp4bqjaSBxdXnhur90IG92ZXJmaXQsIGvhur90IHF14bqjIHbhu5tpIG3DtCBow6xuaCDGsOG7m2MgbMaw4bujbmcgdHLDqm4gdOG6rXAgbeG6q3Ugbmjhu48gQUlDYyAgdOG7kXQgaMahbiDEkcOhbmcga+G7gyBzbyB24bubaSBBSUMgdsOgIEJJQywgbmjGsG5nIHbhu5tpIG3huqt1IHRydW5nIGLDrG5oIHRy4bufIGzDqm4gdGjDrCBjaOG7iSB04buRdCBoxqFuIDEgY2jDunQNCg0KDQpTaW4gdsOgIFdoaXRlICgxOTkyKSBjw6JuIG5o4bqvYyBz4butIGThu6VuZyBt4bupYyBwaOG6oXQgduG7m2kgbG9nLWxpa2VsaWhvb2QgY2hvIG1vZGVsIHNlbGVjdGlvbiB24bubaSBuaGnhu4F1IGThuqFuZyBuaMawIG5lc3RlZCwgbm9uLW5lc3RlZCwgY29ycmVjdGx5IHNwZWNpZmllZCBvciBtaXNzcGVjaWZpZWQuIEjhu40gY3VuZyBj4bqlcCDEkWnhu4F1IGtp4buHbiBjaOG7jW4gbeG7qWMgcGjhuqF0IGLhuqNvIMSR4bqjbSBy4bqxbmcgdmnhu4djIGzhu7FhIGNo4buNbiBtw7QgaMOsbmggxJHDum5nIHbhu5tpIHjDoWMgc3XhuqV0IGfhuqduIGLhurFuZyAxICgqKmPDsyDEkWnDqnUga2jDtG5nIG5o4buJPyoqKSBraGkgbcO0IGjDrG5oIGPhuqFuaCB0cmFuaCBjw7MgY8O5bmcgS0xJQyB2w6AgY8OzIGPDoWMgdGnDqnUgY2jDrSB0xrDGoW5nIHThu7EuIEjhu40gY8WpbmcgbcO0IHThuqMgdGh14buZYyB0w61uaCBu4buVaSB0aeG6v25nICoqQUlDLEJJQyBhbmQgSFEgY3JpdGVyaWEqKg0KDQojIEvhur90IGx14bqtbg0KDQrEkOG7gyB0csOhbmggaGnhu4duIHTGsOG7o25nIG92ZXJmaXQgdHJvbmcgbcO0IGjDrG5oIGPDsyBj4bqnbiBz4butIGThu6VuZyBt4buZdCBz4buRIHRpw6p1IGNow60gxJHhu4Mga2nhu4NtIHRyYSBuaMawIHNhdTogDQoNCi0gQUlDYzogdOG7kXQgbmjhuqV0IHbhu5tpIG3DtCBow6xuaCBjw7MgbeG6q3Ugbmjhu48NCi0gVuG7m2kgbeG6q3UgdHJ1bmcgYsOsbmggdHLhu58gbMOqbiB0aMOsIGTDuW5nIEFJQywgQklDLCBBSUNjIGzDoCB0xrDGoW5nIMSRxrDGoW5nDQotIE5nb8OgaSBBSUMgdsOgIEJJQyBjw7JuIGPDsyBjw6FjIGNo4buJIHPhu5Ega2jDoWMgbmjGsCBTaGliYXRhLCBIYW5uYW4gUXVpbm4sIHbDoCBsb2ctbGlrZWxpaG9vZCAuLi4gxJHhu4MgxJHDoW5oIGdpw6EgaGnhu4duIHTGsOG7o25nIG92ZXJmaXQgY+G7p2EgbcO0IGjDrG5oDQotICoqTm90ZTogQ8OhYyBtw7QgaMOsbmgga2jDoWMgbmhhdSBraMO0bmcgY8OzIG5nxrDhu6FuZyBj4bulIHRo4buDIGPhu6dhIGPDoWMgY2jhu4kgc+G7kSwgbmjGsG5nIG3DtCBow6xuaCB04buRdCBoxqFuIGzDoCBtw7QgaMOsbmggY8OzIGPDoWMgY2jhu4kgc+G7kSBBSUMsIEJJQywgSFFJQywgU0lDLCBsb2ctbGlrZWxpaG9vZC4uLiBjw6BuZyBuaOG7jyBjw6BuZyB04buRdCAqKg0K