肺炎病患的住院天數(Y)之預測
- 大於 30天住院天數的病患不考慮。判斷其住院天數並非主要由上方幾種因素控制,另外,從衛生福利部統計處網站上全民健康保險醫療統計年報,在肺炎疾病上平均住院日數統計最長 14.9天(103年)。 衛生福利部統計處
- 小於 3天的病患,可能由於轉院或其它原因導致住院天數極短,亦不考慮。
資料清洗過程
- 原始資料為102年~107年的xx醫院之病患住院紀錄: 71247筆
- 先將“住院迄日”為空白的刪除: 18023
- 將“使用頻次”中有“XXX帶藥”的刪除: 4812
- 將“使用頻次”中有“STAT”的刪除: 20505 共 71247 - 18023 - 4812 - 20505 = 27907 筆 以學長判斷肺炎: 6572(是); 21335(否)
- 將同一為病人且同一天住院(歸人),判斷成一筆住院紀錄: 2747筆
- 考慮住院天數介於4至30天之病患: 2403筆
Two step 分析結果:
Mean Square Error (MSE): 21.5188 開根號後為 4.6388 天
- 性別: \(\times\)
- 年齡: \(nonlinear\)
- 體重: \(\times\)
- aminoglycosides: \(nonlinear\)
- carbapenems: \(nonlinear\)
- cephalosporins: \(nonlinear\)
- fluoroquinolones: \(nonlinear\)
- glycopeptide: \(nonlinear\)
- others: \(nonlinear\)
- penicillins: \(nonlinear\)
1.性別: \(\times\)
假設檢定: 男生與女生之住院天數是否有差別
95 percent confidence interval: [ 0.8278724 , 2.0290919 ]
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale

Welch Two Sample t-test
data: data %>% filter(性別 == "男") %>% select(住院天數) and data %>% filter(性別 == 女") %>% select(住院天數)
t = 4.6678, df = 911.35, p-value = 3.502e-06
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
0.8278724 2.0290919
sample estimates:
mean of x mean of y
12.34562 10.91714
2.年齡: \(nonlinear\)


3.體重: \(\times\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale


4.aminoglycosides: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




5.carbapenems: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




6.cephalosporins: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




7.fluoroquinolones: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




8.glycopeptide: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




9.others: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




10.penicillins: \(nonlinear\)
Warning message:
In strsplit(code, "\n", fixed = TRUE) :
input string 1 is invalid in this locale




若只考慮藥品使用天數,亦即因素為: 性別、年齡、體重、(7種)藥品使用的天數。
- 性別: \(\times\)
- 年齡: \(nonlinear\)
- 體重: \(\times\)
- aminoglycosides: \(nonlinear\)
- carbapenems: \(linear\)
- cephalosporins: \(linear\)
- fluoroquinolones: \(nonlinear\)
- glycopeptide: \(linear\)
- others: \(\times\)
- penicillins: \(nonlinear\)
1.aminoglycosides: \(nonlinear\)


2.carbapenems: \(nonlinear\)


3.cephalosporins: \(nonlinear\)


4.fluoroquinolones: \(nonlinear\)


5.glycopeptide: \(nonlinear\)


6.others: \(nonlinear\)


7.penicillins: \(nonlinear\)


LS0tDQp0aXRsZTogIjYvMzAgUmVhbCBkYXRhIHJlcG9ydCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCmBgYHtyICxlY2hvPUZBTFNFICxpbmNsdWRlPUZBTFNFfQ0KbGlicmFyeShnZ3Bsb3QyKQ0KbGlicmFyeShkcGx5cikNCmBgYA0KIyDogrrngo7nl4XmgqPnmoTkvY/pmaLlpKnmlbgoWSnkuYvpoJDmuKwNCg0KKiDlm6DntKDogIPmha46IOWIqeeUqOeXheS6uueahCoq5oCn5YilKirjgIEqKuW5tOm9oSoq44CBKirpq5Tph40qKuOAgSoqKDfnqK4p6Jel5ZOB5L2/55So55qE5aSp5pW46IiH57i96YePKirjgIINCg0KKiDnl4XmgqPnmoTkvY/pmaLlpKnmlbg6DQogIDEuIOWkp+aWvCAzMOWkqeS9j+mZouWkqeaVuOeahOeXheaCo+S4jeiAg+aFruOAguWIpOaWt+WFtuS9j+mZouWkqeaVuOS4pumdnuS4u+imgeeUseS4iuaWueW5vueoruWboOe0oOaOp+WItu+8jOWPpuWklu+8jOW+nuihm+eUn+emj+WIqemDqOe1seioiOiZlee2suermeS4iuWFqOawkeWBpeW6t+S/nemaqumGq+eZgue1seioiOW5tOWgse+8jOWcqOiCuueCjueWvueXheS4iuW5s+Wdh+S9j+mZouaXpeaVuOe1seioiOacgOmVtyAxNC455aSpKDEwM+W5tCnjgIINCiAgIFvooZvnlJ/npo/liKnpg6jntbHoqIjomZVdKGh0dHBzOi8vZGVwLm1vaHcuZ292LnR3L0RPUy9jcC0xOTQ1LTEyMDQyLTExMy5odG1sKQ0KICAyLiDlsI/mlrwgM+WkqeeahOeXheaCo++8jOWPr+iDveeUseaWvOi9iemZouaIluWFtuWug+WOn+WboOWwjuiHtOS9j+mZouWkqeaVuOalteefre+8jOS6puS4jeiAg+aFruOAgg0KICANCiog6Ki7OiDogrrngo7vvIznlLHkuLvoqLrmlrfnorzmrbjpoZ4oNDg244CBSjE4OOOAgUoxODnjgIFKMTUw44CBSjE1MSkoPykgDQoNCiog6LOH5paZ54K6Kirogrrngo4qKuiIhyoq5L2P6Zmi5aSp5pW45LuL5pa8NOiHszMw5aSpKirkuYvnl4XmgqPvvIznrYbmlbjngroqKjI0MDMqKuOAgg0KDQoNCg0KIyMjIyDos4fmlpnmuIXmtJfpgY7nqIsNCjAuIOWOn+Wni+izh+aWmeeCujEwMuW5tH4xMDflubTnmoR4eOmGq+mZouS5i+eXheaCo+S9j+mZoue0gOmMhDogKio3MTI0Nyoq562GDQoxLiDlhYjlsIci5L2P6Zmi6L+E5pelIueCuuepuueZveeahOWIqumZpDogMTgwMjMNCjIuIOWwhyLkvb/nlKjpoLvmrKEi5Lit5pyJIlhYWOW4tuiXpSLnmoTliKrpmaQ6IDQ4MTINCjMuIOWwhyLkvb/nlKjpoLvmrKEi5Lit5pyJIlNUQVQi55qE5Yiq6ZmkOiAyMDUwNQ0K5YWxIDcxMjQ3IC0gMTgwMjMgLSA0ODEyIC0gMjA1MDUgPSAyNzkwNyDnrYYNCuS7peWtuOmVt+WIpOaWt+iCuueCjjogKio2NTcyKioo5pivKTsgMjEzMzUo5ZCmKQ0KNC4g5bCH5ZCM5LiA54K655eF5Lq65LiU5ZCM5LiA5aSp5L2P6ZmiKOatuOS6uinvvIzliKTmlrfmiJDkuIDnrYbkvY/pmaLntIDpjIQ6ICoqMjc0Nyoq562GDQo1LiDogIPmha7kvY/pmaLlpKnmlbjku4vmlrw06IezMzDlpKnkuYvnl4XmgqM6ICoqMjQwMyoq562GDQoNCg0KDQojIFR3byBzdGVwIOWIhuaekOe1kOaenDoNCg0KTWVhbiBTcXVhcmUgRXJyb3IgKE1TRSk6IDIxLjUxODggDQrplovmoLnomZ/lvozngrogNC42Mzg4IOWkqQ0KDQpgYGB7ciAsZWNobz1GQUxTRSAsaW5jbHVkZT1GQUxTRX0NCmxvYWQoIkM6L1VzZXJzL01hc3Rlci9EZXNrdG9wL+m7g+S4iS9yZWFsIGRhdGEvMDYwMi9jZW50cmFsaXplZCBkYXRhIOWkqeaVuOe4vemHj+mrlOmHjS5SRGF0YSIpDQpjbGFzc2lmeV9iZXRhKGIpDQpgYGANCg0KLSDmgKfliKU6ICRcdGltZXMkDQotIOW5tOm9oTogJG5vbmxpbmVhciQNCi0g6auU6YeNOiAkXHRpbWVzJA0KLSBhbWlub2dseWNvc2lkZXM6ICRub25saW5lYXIkDQotIGNhcmJhcGVuZW1zOiAkbm9ubGluZWFyJA0KLSBjZXBoYWxvc3BvcmluczogJG5vbmxpbmVhciQNCi0gZmx1b3JvcXVpbm9sb25lczogJG5vbmxpbmVhciQNCi0gZ2x5Y29wZXB0aWRlOiAkbm9ubGluZWFyJA0KLSBvdGhlcnM6ICRub25saW5lYXIkDQotIHBlbmljaWxsaW5zOiAkbm9ubGluZWFyJA0KDQojIyAxLuaAp+WIpTogJFx0aW1lcyQNCg0K5YGH6Kit5qqi5a6aOiDnlLfnlJ/oiIflpbPnlJ/kuYvkvY/pmaLlpKnmlbjmmK/lkKbmnInlt67liKUNCg0KOTUgcGVyY2VudCBjb25maWRlbmNlIGludGVydmFsOiBbIDAuODI3ODcyNCAsIDIuMDI5MDkxOSBdDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDENCmdncGxvdChkYXRhKSArIGdlb21fYm94cGxvdChhZXMoeCA9IOaAp+WIpSwgeSA9IOS9j+mZouWkqeaVuCkgICkNCg0KdC50ZXN0KHggPSBkYXRhICU+JSBmaWx0ZXIo5oCn5YilID09ICLnlLciKSAlPiUgc2VsZWN0KOS9j+mZouWkqeaVuCkgLA0KICAgICAgIHkgPSBkYXRhICU+JSBmaWx0ZXIo5oCn5YilID09ICLlpbMiKSAlPiUgc2VsZWN0KOS9j+mZouWkqeaVuCkgLCBtdSA9IDAgLGFsdGVybmF0aXZlID0gInR3by5zaWRlZCIsIHZhci5lcXVhbCA9IEZBTFNFKQ0KYGBgDQoNCiMjIDIu5bm06b2hOiAkbm9ubGluZWFyJA0KDQpgYGB7ciAsZWNobz1GQUxTRX0NCiMgZ3JvdXAyDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0g5bm06b2hLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IOS9j+mZouWkqeaVuCkgICAgKQ0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IOW5tOm9oSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDI6NF0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzJdXSkgKSAgICApICsgDQogIHlsYWIoImZfMijlubTpvaEpIikgDQpgYGANCg0KIyMgMy7pq5Tph406ICRcdGltZXMkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSDpq5Tph40sIHkgPSDkvY/pmaLlpKnmlbgpICkgDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0g5bm06b2hLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDU6N10gJSolIGNsYXNzaWZ5X2JldGEoYilbWzNdXSkgKSAgICApICsgDQogIHlsYWIoImZfMyjpq5Tph40pIikgDQpgYGANCg0KIyMgNC5hbWlub2dseWNvc2lkZXM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDQgYW1pbm9nbHljb3NpZGVzDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywiYW1pbm9nbHljb3NpZGVzIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJhbWlub2dseWNvc2lkZXPkvb/nlKjlpKnmlbgiKQ0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywiYW1pbm9nbHljb3NpZGVzIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJhbWlub2dseWNvc2lkZXPkvb/nlKjnuL3ph48iKQ0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssImFtaW5vZ2x5Y29zaWRlcyJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDg6MTZdICUqJSBjbGFzc2lmeV9iZXRhKGIpW1s0XV0pICkgICAgKSArIA0KICB5bGFiKCJmXzQoYW1pbm9nbHljb3NpZGVzKSIpICsgeGxhYigiYW1pbm9nbHljb3NpZGVz5L2/55So5aSp5pW4IikgDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNbLCJhbWlub2dseWNvc2lkZXMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWyw4OjE2XSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbNF1dKSApICAgICkgKyANCiAgeWxhYigiZl80KGFtaW5vZ2x5Y29zaWRlcykiKSArIHhsYWIoImFtaW5vZ2x5Y29zaWRlc+S9v+eUqOe4vemHjyIpIA0KYGBgDQoNCiMjIDUuY2FyYmFwZW5lbXM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDUgY2FyYmFwZW5lbXMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJjYXJiYXBlbmVtcyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiY2FyYmFwZW5lbXPkvb/nlKjlpKnmlbgiKQ0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywiY2FyYmFwZW5lbXMiXSwgeSA9IOS9j+mZouWkqeaVuCkgKSArIHhsYWIoImNhcmJhcGVuZW1z5L2/55So57i96YePIikNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJjYXJiYXBlbmVtcyJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDE3OjI1XSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbNV1dKSApICAgICkgKyANCiAgeWxhYigiZl81KGNhcmJhcGVuZW1zKSIpICsgeGxhYigiY2FyYmFwZW5lbXPkvb/nlKjlpKnmlbgiKSANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY1ssImNhcmJhcGVuZW1zIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gYXMubnVtZXJpYyhvYnMuWFssMTc6MjVdICUqJSBjbGFzc2lmeV9iZXRhKGIpW1s1XV0pICkgICAgKSArIA0KICB5bGFiKCJmXzUoY2FyYmFwZW5lbXMpIikgKyB4bGFiKCJjYXJiYXBlbmVtc+S9v+eUqOe4vemHjyIpIA0KYGBgDQoNCiMjIDYuY2VwaGFsb3Nwb3JpbnM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDYgY2VwaGFsb3Nwb3JpbnMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJjZXBoYWxvc3BvcmlucyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiY2VwaGFsb3Nwb3JpbnPkvb/nlKjlpKnmlbgiKSANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY1ssImNlcGhhbG9zcG9yaW5zIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJjZXBoYWxvc3Bvcmluc+S9v+eUqOe4vemHjyIpDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywiY2VwaGFsb3Nwb3JpbnMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWywyNjozNF0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzZdXSkgKSAgICApICsgDQogIHlsYWIoImZfNihhbWlub2dseWNvc2lkZXMpIikgKyB4bGFiKCJjZXBoYWxvc3Bvcmluc+S9v+eUqOWkqeaVuCIpIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywiY2VwaGFsb3Nwb3JpbnMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWywyNjozNF0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzZdXSkgKSAgICApICsgDQogIHlsYWIoImZfNihhbWlub2dseWNvc2lkZXMpIikgKyB4bGFiKCJjZXBoYWxvc3Bvcmluc+S9v+eUqOe4vemHjyIpIA0KYGBgDQoNCiMjIDcuZmx1b3JvcXVpbm9sb25lczogJG5vbmxpbmVhciQNCg0KYGBge3IgLGVjaG89RkFMU0V9DQojIGdyb3VwNyBmbHVvcm9xdWlub2xvbmVzDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywiZmx1b3JvcXVpbm9sb25lcyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiZmx1b3JvcXVpbm9sb25lc+S9v+eUqOWkqeaVuCIpIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywiZmx1b3JvcXVpbm9sb25lcyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiZmx1b3JvcXVpbm9sb25lc+S9v+eUqOe4vemHjyIpIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssImZsdW9yb3F1aW5vbG9uZXMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWywzNTo0M10gJSolIGNsYXNzaWZ5X2JldGEoYilbWzddXSkgKSAgICApICsgDQogIHlsYWIoImZfNyhmbHVvcm9xdWlub2xvbmVzKSIpICsgeGxhYigiZmx1b3JvcXVpbm9sb25lc+S9v+eUqOWkqeaVuCIpIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywiZmx1b3JvcXVpbm9sb25lcyJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDM1OjQzXSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbN11dKSApICAgICkgKyANCiAgeWxhYigiZl83KGZsdW9yb3F1aW5vbG9uZXMpIikgKyB4bGFiKCJmbHVvcm9xdWlub2xvbmVz5L2/55So57i96YePIikgDQpgYGANCg0KIyMgOC5nbHljb3BlcHRpZGU6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDggZ2x5Y29wZXB0aWRlDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywiZ2x5Y29wZXB0aWRlIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJnbHljb3BlcHRpZGXkvb/nlKjlpKnmlbgiKSANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY1ssImdseWNvcGVwdGlkZSJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiZ2x5Y29wZXB0aWRl5L2/55So57i96YePIikNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJnbHljb3BlcHRpZGUiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWyw0NDo1Ml0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzhdXSkgKSAgICApICsgDQogIHlsYWIoImZfOChnbHljb3BlcHRpZGUpIikgKyB4bGFiKCJnbHljb3BlcHRpZGXkvb/nlKjlpKnmlbgiKSANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY1ssImdseWNvcGVwdGlkZSJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDQ0OjUyXSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbOF1dKSApICAgICkgKyANCiAgeWxhYigiZl84KGdseWNvcGVwdGlkZSkiKSArIHhsYWIoImdseWNvcGVwdGlkZeS9v+eUqOe4vemHjyIpDQpgYGANCg0KIyMgOS5vdGhlcnM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDkgb3RoZXJzDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5Wywib3RoZXJzIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJvdGhlcnPkvb/nlKjlpKnmlbgiKSAgDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNbLCJvdGhlcnMiXSwgeSA9IOS9j+mZouWkqeaVuCkgKSArIHhsYWIoIm90aGVyc+S9v+eUqOe4vemHjyIpIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssIm90aGVycyJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDUzOjYxXSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbOV1dKSApICAgICkgKyANCiAgeWxhYigiZl85KG90aGVycykiKSArIHhsYWIoIm90aGVyc+S9v+eUqOWkqeaVuCIpIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywib3RoZXJzIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gYXMubnVtZXJpYyhvYnMuWFssNTM6NjFdICUqJSBjbGFzc2lmeV9iZXRhKGIpW1s5XV0pICkgICAgKSArIA0KICB5bGFiKCJmXzkob3RoZXJzKSIpICsgeGxhYigib3RoZXJz5L2/55So57i96YePIikgDQpgYGANCg0KIyMgMTAucGVuaWNpbGxpbnM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDEwIHBlbmljaWxsaW5zDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywicGVuaWNpbGxpbnMiXSwgeSA9IOS9j+mZouWkqeaVuCkgKSArIHhsYWIoInBlbmljaWxsaW5z5L2/55So5aSp5pW4IikgIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywicGVuaWNpbGxpbnMiXSwgeSA9IOS9j+mZouWkqeaVuCkgKSArIHhsYWIoInBlbmljaWxsaW5z5L2/55So57i96YePIikgIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssInBlbmljaWxsaW5zIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gYXMubnVtZXJpYyhvYnMuWFssNjI6NzBdICUqJSBjbGFzc2lmeV9iZXRhKGIpW1sxMF1dKSApICAgICkgKyANCiAgeWxhYigiZl8xMChwZW5pY2lsbGlucykiKSArIHhsYWIoInBlbmljaWxsaW5z5L2/55So5aSp5pW4IikgIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljWywicGVuaWNpbGxpbnMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWyw2Mjo3MF0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzEwXV0pICkgICAgKSArIA0KICB5bGFiKCJmXzEwKHBlbmljaWxsaW5zKSIpICsgeGxhYigicGVuaWNpbGxpbnPkvb/nlKjnuL3ph48iKSAgDQpgYGANCg0KDQoNCiMjIyDoi6Xlj6rogIPmha7ol6Xlk4Hkvb/nlKjlpKnmlbjvvIzkuqbljbPlm6DntKDngro6ICoq5oCn5YilKirjgIEqKuW5tOm9oSoq44CBKirpq5Tph40qKuOAgSoqKDfnqK4p6Jel5ZOB5L2/55So55qE5aSp5pW4KirjgIINCg0KDQotIOaAp+WIpTogJFx0aW1lcyQNCi0g5bm06b2hOiAkbm9ubGluZWFyJA0KLSDpq5Tph406ICRcdGltZXMkDQotIGFtaW5vZ2x5Y29zaWRlczogJG5vbmxpbmVhciQNCi0gY2FyYmFwZW5lbXM6ICRsaW5lYXIkDQotIGNlcGhhbG9zcG9yaW5zOiAkbGluZWFyJA0KLSBmbHVvcm9xdWlub2xvbmVzOiAkbm9ubGluZWFyJA0KLSBnbHljb3BlcHRpZGU6ICRsaW5lYXIkDQotIG90aGVyczogJFx0aW1lcyQNCi0gcGVuaWNpbGxpbnM6ICRub25saW5lYXIkDQoNCg0KDQpgYGB7ciAsZWNobz1GQUxTRSAsaW5jbHVkZT1GQUxTRX0NCnJtKGxpc3QgPSBscygpKTsgZ2MoKQ0KbG9hZCgiQzovVXNlcnMvTWFzdGVyL0Rlc2t0b3Av6buD5LiJL3JlYWwgZGF0YS8wNjAyL2NlbnRyYWxpemVkIGRhdGEg5aSp5pW46auU6YeNLlJEYXRhIikNCmNsYXNzaWZ5X2JldGEoYikNCmBgYA0KDQoNCiMjIDEuYW1pbm9nbHljb3NpZGVzOiAkbm9ubGluZWFyJA0KDQpgYGB7ciAsZWNobz1GQUxTRX0NCiMgZ3JvdXA0IGFtaW5vZ2x5Y29zaWRlcw0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssImFtaW5vZ2x5Y29zaWRlcyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiYW1pbm9nbHljb3NpZGVz5L2/55So5aSp5pW4IikNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJhbWlub2dseWNvc2lkZXMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWyw4OjEwXSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbNF1dKSApICAgICkgKyANCiAgeWxhYigiZl80KGFtaW5vZ2x5Y29zaWRlcykiKSArIHhsYWIoImFtaW5vZ2x5Y29zaWRlc+S9v+eUqOWkqeaVuCIpIA0KYGBgDQoNCiMjIDIuY2FyYmFwZW5lbXM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDUgY2FyYmFwZW5lbXMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJjYXJiYXBlbmVtcyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiY2FyYmFwZW5lbXPkvb/nlKjlpKnmlbgiKQ0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssImNhcmJhcGVuZW1zIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gYXMubnVtZXJpYyhvYnMuWFssMTE6MTNdICUqJSBjbGFzc2lmeV9iZXRhKGIpW1s1XV0pICkgICAgKSArIA0KICB5bGFiKCJmXzUoY2FyYmFwZW5lbXMpIikgKyB4bGFiKCJjYXJiYXBlbmVtc+S9v+eUqOWkqeaVuCIpIA0KYGBgDQoNCiMjIDMuY2VwaGFsb3Nwb3JpbnM6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDYgY2VwaGFsb3Nwb3JpbnMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJjZXBoYWxvc3BvcmlucyJdLCB5ID0g5L2P6Zmi5aSp5pW4KSApICsgeGxhYigiY2VwaGFsb3Nwb3JpbnPkvb/nlKjlpKnmlbgiKSANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJjZXBoYWxvc3BvcmlucyJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDE0OjE2XSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbNl1dKSApICAgICkgKyANCiAgeWxhYigiZl82KGFtaW5vZ2x5Y29zaWRlcykiKSArIHhsYWIoImNlcGhhbG9zcG9yaW5z5L2/55So5aSp5pW4IikgDQpgYGANCg0KIyMgNC5mbHVvcm9xdWlub2xvbmVzOiAkbm9ubGluZWFyJA0KDQpgYGB7ciAsZWNobz1GQUxTRX0NCiMgZ3JvdXA3IGZsdW9yb3F1aW5vbG9uZXMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJmbHVvcm9xdWlub2xvbmVzIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJmbHVvcm9xdWlub2xvbmVz5L2/55So5aSp5pW4IikgDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywiZmx1b3JvcXVpbm9sb25lcyJdLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA9IGFzLm51bWVyaWMob2JzLlhbLDE3OjE5XSAlKiUgY2xhc3NpZnlfYmV0YShiKVtbN11dKSApICAgICkgKyANCiAgeWxhYigiZl83KGZsdW9yb3F1aW5vbG9uZXMpIikgKyB4bGFiKCJmbHVvcm9xdWlub2xvbmVz5L2/55So5aSp5pW4IikgDQpgYGANCg0KIyMgNS5nbHljb3BlcHRpZGU6ICRub25saW5lYXIkDQoNCmBgYHtyICxlY2hvPUZBTFNFfQ0KIyBncm91cDggZ2x5Y29wZXB0aWRlDQpnZ3Bsb3QoZGF0YSkgKyBnZW9tX3BvaW50KGFlcyh4ID0gbWVkaWNfZGF5WywiZ2x5Y29wZXB0aWRlIl0sIHkgPSDkvY/pmaLlpKnmlbgpICkgKyB4bGFiKCJnbHljb3BlcHRpZGXkvb/nlKjlpKnmlbgiKSANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJnbHljb3BlcHRpZGUiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWywyMDoyMl0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzhdXSkgKSAgICApICsgDQogIHlsYWIoImZfOChnbHljb3BlcHRpZGUpIikgKyB4bGFiKCJnbHljb3BlcHRpZGXkvb/nlKjlpKnmlbgiKSANCmBgYA0KDQojIyA2Lm90aGVyczogJG5vbmxpbmVhciQNCg0KYGBge3IgLGVjaG89RkFMU0V9DQojIGdyb3VwOSBvdGhlcnMNCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJvdGhlcnMiXSwgeSA9IOS9j+mZouWkqeaVuCkgKSArIHhsYWIoIm90aGVyc+S9v+eUqOWkqeaVuCIpICANCmdncGxvdChkYXRhKSArIGdlb21fcG9pbnQoYWVzKHggPSBtZWRpY19kYXlbLCJvdGhlcnMiXSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgPSBhcy5udW1lcmljKG9icy5YWywyMzoyNV0gJSolIGNsYXNzaWZ5X2JldGEoYilbWzldXSkgKSAgICApICsgDQogIHlsYWIoImZfOShvdGhlcnMpIikgKyB4bGFiKCJvdGhlcnPkvb/nlKjlpKnmlbgiKSANCmBgYA0KDQojIyA3LnBlbmljaWxsaW5zOiAkbm9ubGluZWFyJA0KDQpgYGB7ciAsZWNobz1GQUxTRX0NCiMgZ3JvdXAxMCBwZW5pY2lsbGlucw0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssInBlbmljaWxsaW5zIl0sIHkgPSDkvY/pmaLlpKnmlbgpKSArIHhsYWIoInBlbmljaWxsaW5z5L2/55So5aSp5pW4IikgIA0KZ2dwbG90KGRhdGEpICsgZ2VvbV9wb2ludChhZXMoeCA9IG1lZGljX2RheVssInBlbmljaWxsaW5zIl0sDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB5ID0gYXMubnVtZXJpYyhvYnMuWFssMjY6MjhdICUqJSBjbGFzc2lmeV9iZXRhKGIpW1sxMF1dKSApICAgICkgKyANCiAgeWxhYigiZl8xMChwZW5pY2lsbGlucykiKSArIHhsYWIoInBlbmljaWxsaW5z5L2/55So5aSp5pW4IikgIA0KYGBgDQoNCg0K