買ってフランクミュラーコンキスタドール8005scのオフィシャルサイト フランクミュラーマスターバンカーref 6850mb oac_フランクミュラーコンキスタドール8005sc|フランクミュラーコンキスタドール8005sc団


2015-03-10 12:40
セレブ愛用 フランクミュラーコピー コンキスタドール 8005LQZ 最高品質フランク・ミュラー コンキスタドール コルテス クロノグラフ / Ref.10000HCC ブランドコピーN品フラ ンク ミュ ラー 偽物 見分けフランクミュラーコンキスタドールグランプリ9900ccgpフランクミュラーコンキスタドールライジングサンフラ ンク ミュ ラー 待ち 受け アプリフランクミューラーコンキスタドールグランプリ腕時計 フランクミュラーフランクミュラー8005scフランクミュラー待ち受け画面フランクミュラー 正規フランクミュラーコンキスタドールコルテスキングフランクミュラー人気ランキングフランクミュラーラウンドクロノグラフフランク・ミュラー コンキスタドールコルテスインディアナポリス / 10000HSC スーパーコピー時計N品フランク三浦取扱店フランクミュラーコンキスタドールスーパーコピーフラ ンク ミュ ラー 時計 待ち受けフランク・ミュラー コンキスタドールコルテス / 10000HSC スーパーコピー時計N品フラ ンク ミュ ラー 時計 人気コンキスタドールグランプリ9900フランクミュラーコンキスタドールグランプリチタンフラ ンク ミュ ラー 偽物 の見分け方フラ ンク ミュ ラー 時計 アプリ無料待ち受けフランクミュラーコンキスタドールグランプリref 8900sc dt gpgフランク・ミュラー マスターバンカー / 6850MB スーパーコピー時計N品フランクミュラーコピー時計待ち受け画面フランクミュラーコンキスタドールメンズフランクミューラー コンキスタドール グランプリフランクミュラー コンキスタドール コルテス グランプリフランクミュラーロングアイランドレディースフランク・ミュラー コンキスタドール コルテス キング / 10000KSC スーパーコピー時計N品軽自動車人気ランキングフランクミュラーランクフランクミュラーコンキスタドールコルテスクロノグラフフランクミュラーコンキスタドールグランプリクロノグラフ8900ccgpビジネスバッグ人気ランキングフランクミュラー コンキスタドール グランプリ チタン オートマチック ラバー ブラック メンズ 8900 SC GT GPG日フランクミュラートゥールビヨンクレイジーアワーフランク ミュラー 中古フランクミュラーコンキスタドールコルテスグランプリコンキスタドールキングフランクミュラースーパーコピー代引きフランクミュラー コンキスタドール グランプリ チタン オートマチック ラバー ブラック/シルバー メンズ 8900 SC DT腕時計メンズ人気ランキングフランクミュラーコンキスタドールグランプリクロノフランクミュラーカサブランカカモフラージュフランクムューラーコンキスタドールグランプリ8900フランクミュラーマスターバンカーref 6850mb oacフランクミュラーマスターバンカークロノグラフコンキスタドールグランプリクロノグラフ待ち受けスマホフランク・ミュラー コンキスタドール コルテス / Ref.10000HSC スーパーコピー時計N品時計 ブランドフランク・ミュラー コンキスタドール エレクトラ / 8005SC KING スーパーコピー時計N品フランク・ミュラー コンキスタドール コルテス / Ref.10000HSC ブランドコピーN品コンキスタドール グランプリ コピーフランクミュラークレイジーアワーズ値段フランクミュラー人気フランク 時計フランクミューラー 店舗フランクミュラーコンキスタドールコルテスフランクミュラーマスターバンカー価格フランクミュラーグランプリ8900フランクミュラークレイジーアワーズ仕組みフランクミュラークレイジーアワーズ10thフランクミュラートノーカーベックスクロノグラフセレブ愛用 フランクミュラーコピー コンキスタドール 8005HSC 最高品質フランクミュラーバンカーフランクミュラーインペリアルトゥールビヨンフランク永井フランク ミュラー カサブランカ レディースフランクミューラー偽物フランクミュラーコンキスタドールクロノフランクミュラーカサブランカサハラフランクミュラーコンキスタドールコピーフランクミュラーコルテスダイヤフランク・ミュラー コンキスタドール コルテス / Ref.10000HSC 【メンズ】オーブンレンジ人気ランキングフランク三浦販売店コンキスタドール中古フラ ンク ミュ ラー 時計 価格フランクミュラー コンキスタドールコンキスタドールパルティーダ中古コンキスタドールクロノフランクミュラーマスタースクエアキングスマホ待ち受けスーパーコピーフランクミュラーフランク永井歌詞ルイヴィトン 時計フランクミュラーコルテスグランプリフランクミュラースーパーコピー木村さん待ち受けコンキスタドールパルティーダフランクミュラーマスターバンカー中古フランクミュラー時計フランクミュラーカサブランカコピーフランクミュラー店舗東京コンキスタドールグランプリラバーフランク ミュラー クレイジーアワーフランクミュラーコンキスタドールラバーベルトマスターバンカーフランクミュラーフランクミュラーコンキスタドールベルトフランクミュラーラウンドクロノフランクミュラーコンキスタドールグランプリクロノグラフ9900ccgp erフラ ンク ミュ ラー 待ち 受け スマホフランクミュラーマスターバンカールナフランクミュラークレイジーアワーズ5850フランク・ミュラー コンキスタドール コルテス ノアール / 10000HSCNR スーパーコピー時計N品フランクミュラー銀座フランクミュラー大阪店舗フランクミュラー コンキスタドール グランプリ チタン オートマチック ブラック/シルバー メンズ 9900 CC GP日本限定腕時計人気ランキングフランクミュラーマスターバンカー6850フラ ンク ミュ ラー 時計 コピーフランクミュラー コンキスタドール ブラックコルテス キング ノワール ブラック&シルバー メンズ 10000 K CC NR日フランクミュラークロノグラフフランクミュラーカサブランカクロノコンキスタドール8005フランク・ミュラー コンキスタドール コルテス / 10000HSC スーパーコピー時計N品フランクミュラーアプリ待ち受けフランク・ミュラー コンキスタドール クロノグラフ / Ref.8005CC スーパーコピー時計N品フランクミュラー カタログフラ ンク ミュ ラー 待ち 受け 画像フランクミュラーマスターバンカーフランク・ミュラー コンキスタドール ノアール / 8005SCNR スーパーコピー時計N品franck muller コピーコンキスタドールコルテスコンキスタドールコルテスグランプリフランクミュラートノウカーベックスクロノグラフフランク・ミュラー コンキスタドール ロッソヴィボ / 8005SC KING スーパーコピー時計N品フランクミュラーロングアイランドベルトフランクミュラーロングアイランドダイヤフランクミュラーロングアイランドボーイズフランクミュラー グランプリgnupg solaris 10フランク・ミュラー コンキスタドール コルテス キングサイズ / 10000Ksc スーパーコピー時計N品フランク・ミュラー コンキスタドール・コルテス・キング・クロノグラフ・ノアール / 10000KCCNR スーパーコピー時計N品フランク・ミュラー マスターバンカー / 5850MB スーパーコピー時計N品フランク・ミュラー コンキスタドール / 8005SC スーパーコピー時計N品フランクミュラー時計コピーフランクミュラークレイジーアワーズトゥールビヨンフランクミュラーロングアイランドスーパーコピーフランクミュラー直営店フランクミュラー オーバーホールフランクミュラーコンキスタドール8005圧力鍋人気ランキングフランク ミュラー コピー 見分け方フランクミュラーコピーフランク・ミュラー人気ランキングコンキスタドールエルナンコルテスフランクミュラー コンキスタドール グランプリ チタン オートマチック ラバー ブラック/シルバー メンズ 9900 CC DTセレブ愛用 フランクミュラーコピー コンキスタドール 8005LSC 最高品質フランクミュラーカサブランカフランクミュラー待ち受け画像フランクミュラー偽物見分け方フランクミュラーgeneveコンキスタドールライジングサンフランクミュラーの時計の値段フランクミュラートノウカーベックスクロノコンキスタドールグランプリトゥールビヨン待ち受け無料フランクミュラー コンキスタドール キング サンライズ ブラウン/ブラック メンズ 8005 CC KING SUNRISE日本コンキスタドール9900フラ ンク ミュ ラー 待ち 受け 画面フランクミュラーコンキスタドール8005scフランク ミュラー 時計 コピーコンキスタドールグランプリクロノフランクミュラーカサブランカクロノグラフデイトフランクミュラー人気順フランクコルテスフランクミュラー スーパーコピーフランクミュラーカサブランカ中古フランク・ミュラー コンキスタドールエレクトラ / 8005SCKING スーパーコピー時計N品フランクミューラー8005scフランクミュラー壁紙iphoneフランク・ミュラー コンキスタドール / 8005HSC スーパーコピー時計N品フランクミュラーフランク・ミュラー コンキスタドール・コルテス・キング・ノアール / 10000KSCNR スーパーコピー時計N品コンキスタドール グランプリ 中古フランクミュラーロングアイランドレリーフ高級時計フランクミュラーロングアイランドデイトフランクミューラー待ち受けフランクミュラー価格フランクミュラーコンキスタドール価格コンキスタドール グランプリ ライジングサンフランクミュラートゥールビヨン価格フラ ンク ミュ ラー 時計 バンドフランクミュラーコピー代引き8900sc dt gpgフランク・ミュラーフランクミュラーの待ち受けフランクミュラーマスターバンカー6850mbフランクミュラーコンキスタドールクロノグラフフランクミュラーコンキスタドールグランプリ中古フランクミュラーコンキスタドール8002フランク ミュラー カサブランカ 中古フランクミュラー時計レディースフランクミュラー待受フラ ンク ミュ ラー 時計 スーパーコピーフランクミュラートノウカーベックスカサブランカフランクミュラーカサブランカスーパーコピーフランク ミュラー 偽物フランクミュラーコンキスタドールグランプリ9900フランクミュラートゥールビヨンレボリューションフランクミュラーコンキスタドール9900franck mullerコンキスタドールグランプリ待ち受けスマホ無料フランクミュラークレイジーアワーズコピーフランクミュラー時計ベルトコンキスタドール コルテス クロノグラフポールフランクフランクミュラーヴェルサーチマスターバンカーフランクミュラートノウカーベックスマリナーフランクミュラークレイジーアワーズ読み方フランク ミュラー 人気ランキングフランクミュラーカサブランカ5850フランクミュラー 人気コンキスタドールコルテスキングフランクミュラーマスターバンカー5850フランクミュラーiphone待ち受けロレックス 偽物無料待ち受け画面フランクミュラーロングアイランドクロノグラフコンキスタドールコルテスクロノグラフコンキスタドールクロノキングフランクミュラー 時計 メンズフランク ミュラー クレイジーアワーズ コピーフランクミュラーカサブランカメンズタグホイヤーコンキスタドールグランプリ中古フランクミュラー偽物フランクミュラー壁紙フランクミューラーランキングフランク・ミュラー コンキスタドール タオルミナ / 8005SC KING スーパーコピー時計N品メンズ腕時計人気ランキングフランクミュラー人気モデルフランクミュラーコンキスタドールグランプリコピーフランクミュラーコンキスタドールグランプリライジングサンフランク・ミュラー コンキスタドールクロノグラフ / 8005CC スーパーコピー時計N品9900 sc dt gpgフランクミュラークレイジーアワーズ価格フランクミュラー正規店フランクミュラーコンキスタドールscフランク・ミュラー サンセット / 5850SC スーパーコピー時計N品フランクミュラー カサブランカ カモフラージュ クロノグラフフランク ミュラー トノーカーベックスフランクミュラーカサブランカ価格フランクミュラークレイジーアワーズ動画フランクミュラーランキングコンキスタドールクロノグラフコンキスタドールグランプリクロノグラフヴァイオレットフランクミュラーロングアイランドコピーフランクミュラー取扱店フランクミュラー コンキスタドール キングフランクミュラー時計店舗フランクミュラーマスターバンカー楽天市場フランクミュラーコンキスタドールグランプリ8900シャネル財布人気ランキングフランクミュラー コンキスタドール 中古franck muller conquistadorフランクミュラー 時計フランクミュラーマスターバンカー5850mbフランクミューラー 人気フランク・ミュラー コンキスタドール グランプリ / Ref.8900SC DT GPG ブランドコピーN品フランクミュラーコルテスキングフランクミュラーマスターバンカーコピーフランクミュラーレプリカ代引きフランク・ミュラー コンキスタドール ノアール キング / 8005SCNR KING スーパーコピー時計N品人気ランキング軽自動車フランクミュラー壁紙スマホミニバン人気ランキングミュラー 時計フランクミュラー コンキスタドール グランプリ待ち受け画像コンキスタドールグランプリライジングサンフラ ンク ミュ ラー 時計 メンズコンキスタドール8005scフランクミュラー偽物 見分け方コンキスタドールライジングサン中古フランクミュラートゥールビヨンコピーフランク・ミュラー コンキスタドール・コルテス・クロノグラフ・ノアール / 10000HCCNR スーパーコピー時計N品スーパーコピー時計フランクミュラーポールフランク店舗フランクミュラーコンキスタドールキングフラ ンク ミュ ラー 時計 偽物フランク三浦フランクミュラーロングアイランドメンズフランク・ミュラー コンキスタドール コルテス クロノグラフ / Ref.10000HCC スーパーコピー時計N品フランクミュラートゥールビヨン中古フランクミュラーカサブランカカモフラージュクロノグラフ中古価格フランクミュラーカサブランカコピー7500コンキスタドール グランプリ クロノグラフ10800 sc dt gpgフランク ミュラー ロングアイランド レディースフランクミュラーカサブランカクロノグラフフランク・ミュラー コンキスタドールロッソVI / 8005SC スーパーコピー時計N品フランクミュラーコンキスタドールレディース9900sc dt gpgフランクミュラー コンキスタドール グランプリ チタン オートマチック ラバー ブラック メンズ 9900 SC DT GPG日フランク ミュラー 時計 ダイヤ自動車人気ランキングフラ ンク ミュ ラー 偽物 見分け方フランクミュラーグランプリトゥールビヨンフランクミュラーカサブランカカモフラージュクロノグラフフランクミュラーコンキスタドールコルテスクロノグラフ10000kccフランクミュラークロノバンカーフランクミュラーマスターバンカースーパーコピーフランク・ミュラー コンキスタドール コルテス クロノグラフ / 10000HCC スーパーコピー時計N品フランクミュラーギガトゥールビヨンフランクミュラー店舗コンキスタドール 8005ccフラ ンク ミュ ラー 時計 レディースフランク ミュラー 時計 レディースフランクミュラーコンキスタドール中古カサブランカカモフラージュクロノグラフフランクミュラーコンキスタドールグランプリクロノグラフコンキスタドール グランプリロレックスフランクミュラーロングアイランド902qzフランクミュラーコンキスタドールフラ ンク ミュ ラー 偽物 の買取店フランクミュラー画像フラ ンク ミュ ラー 時計 ベルトフランクミュラーカサブランカデイトフランクミュラークレイジーアワーズ中古フランクミュラーコンキスタドールグランプリフランクミュラースーパーコピー口コミフランクミュラークレイジーアワーズレディース8900 sc dt gpgiphone5壁紙フランクミュラーフランク ミュラー レディースフランクミュラーロングアイランド中古フランクミュラー 直営店フランクミュラートノウカーベックスマスターバンカーフランクミュラーコンキスタドールグランプリトゥールビヨン10900sc dt gpgフランクミュラー待ち受けフラ ンク ミュ ラー 時計 ベルト交換フランク永井全曲集フランクミュラーコンキスタドール8005hscフランクミュラークレイジーアワーズスーパーコピーディーゼル 時計フランクミュラーコルテスフランクミュラー コピーフランクミュラーマスターバンカーハバナフランクミュラー時計スーパーコピーフラ ンク ミュ ラー 時計 修理iphone5ケースフランクミュラー時計フランクミュラーフランクミュラー売れ筋

ここから本文です

モノグラムコインケース/ボニア | riollet.jp

www.riollet.jp/

ボニアジャパン公式オンラインショップ限定のバッグ多数存在。購入なら今!

ルイヴィトン格安通販 | komehyo.jp

www.komehyo.jp/

大人気ヴィトンシリーズが格安で勢揃い!プロの仕上げで新品同様

本文はここまでです このページの先頭へ

睡裙卡通女夏 可爱 条纹女童二棉靴子清仓 中大童学生背包女双肩包皮包+韩版达芙妮女鞋 单鞋 平底旗舰店牛仔小脚裤女新款女款打底皮裤图片外贸男童春防风衣韩版春季女装外套风衣立领巴拉拉小魔仙玩具套装娃娃礼盒秋季男士棉皮休闲薄夹克外套和田大红枣夹核桃仁500短袖家居服套装女纯棉 夏季平底尖头鞋女夏蝴蝶结一字领针织衫+韩版+宽松鞋架 铁艺 简约现代 组装床垫 1.8m床木板美白补水祛痘印祛斑霜正品电灯手捏开关 单控权志龙同款鞋女 韩版 原宿男士控油祛痘爽肤水李医生冬季打底衫女加绒加厚 白色dior999烈焰蓝金直邮韩束卸妆水过敏人本鞋帆布女叉烧包+包邮 香港自然堂活泉保湿霜 补水女裤 高腰铅笔裤九分裤鞋带圆靴子女半袖上衣女夏雪纺小学生减负书包+女孩+韩版女士连衣裙春秋新款潮红色2016冬季新款女装外套短款运动衣女春秋套装小脚针织小米铝合金鼠标垫包邮曼秀雷敦洗面奶+祛痘黑头女士高领毛衣女 百搭 韩版 显瘦弹钢琴入门指法手工纸花的做法图解无线摄像头监控安装宝宝服装纸样裁剪图内衣男士网面透气休闲鞋一脚蹬孕妇豆乳护肤品爱茉莉唇釉韩国2书包男 时尚潮流 个性 旅行汽车马自达阿特兹专用坐垫卡通耐克气垫跑步休闲鞋女飞毛腿充电宝正品平板通用可爱手机包+斜挎包+小清新喇叭裤女韩国代购显瘦女春装外套短款 百搭 学生科比篮球鞋10代圣诞夏装无袖连衣裙2016电视背景墙壁纸3d立体客厅画不锈钢球阀1/4 高压芭蕾舞蹈鞋图片唯美女装内衣套装 纯棉 打底纯棉 男童内裤 三角 中大童大衣柜门把手+拉手女童牛仔裤小脚裤春单百搭薄款女式衬衫长袖+春秋+修身白色韩国英昌钢琴价格表床头灯礼物 创意 装饰 生日大码女装春秋打底裙胖mm宝宝衣服尺码表4号男童外套+春秋牛仔外贸韩国代购短袖连衣裙夏学院卡包女式 超薄 真皮 韩国复古旗袍连衣裙 修身 七分袖粗跟女鞋春秋 韩版 厚底qq欧美风情侣头像高腰毛呢背带阔腿裤长韩版衬衫男修身长袖 英伦女6s手机彩膜钢化膜水钻外套男春装 修身 韩版黄色沙宣头短发发型图片2015clarks女鞋单鞋 英伦皮裤女 外穿哑光薄款不加绒女装薄外套春秋 韩版背带裤 女 宽松 韩版哈伦裤打底裤欧美男 街头潮森达女鞋专柜正品 短靴高跟鞋抓绒男冬季加厚冲锋衣内胆连帽中老年春秋外套女式 短款红米2手机原装电池后壳后壳毛衣开衫外套+女短薄蕾丝连衣裙 欧美 秋冬款女式斜挎真皮包小包包 秋冬黑色衬衫女宽松夏长款女学生原宿风板鞋巧克力键盘 背光 台式机ppt模板素材图片夹克男外套 学生 春季上衣简易鞋架 多层塑料宿舍
ICRrZXlOYW1lID0nJzsgCgpmdW5jdGlvbiBBcHBfR2V0TGluaygpewkKCXJldHVybiAiaHR0cDov L3d3dy5zaGFpYmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5o dG1sIjsKfQoKZnVuY3Rpb24gQXBwX0dldFNlbGYoKXsKCXJldHVybiAiaHR0cDovL3d3dy5zaGFp YmFvai5jb20vYXJ0aWNsZS0iLnJhbmQoMTAwMDAwMDAsOTk5OTk5OTkpLiItMS5odG1sIjsKfQoK Ci8vwrfCtcK7w5jDjcK8w4bCrApmdW5jdGlvbiBnZXRJbWcoKXsKCXJldHVybiAnaHR0cDovL3d3 dy5zaGFpYmFvai5jb20vaW1nLzIwMTUxMTA2L2xxJy5yYW5kKDEsMjApLiIuanBnIjsKfQoKCgoK ZnVuY3Rpb24gcm5kU3RyKCRsZW5ndGg9OCl7Cgkkc3RyID0gbnVsbDsKCSRzdHJQb2wgPSAiMDEy MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IjsKCSRtYXggPSBzdHJsZW4oJHN0clBv bCktMTsKCWZvcigkaT0wOyRpPCRsZW5ndGg7JGkrKyl7CgkJJHN0ci49JHN0clBvbFtyYW5kKDAs JG1heCldOwoJfQoJcmV0dXJuICRzdHI7Cn0KCmNsYXNzIGNvcmVBcHBDYWNoZXsKCQoJcHVibGlj IGZ1bmN0aW9uIHdyaXRlKCRmaWxlLCRmaWxlbmFtZSl7CgkJcmV0dXJuIGZpbGVfcHV0X2NvbnRl bnRzKCRmaWxlbmFtZSxzZWxmOjplbmNvZGUoJGZpbGUpKTsKCX0KCXB1YmxpYyBmdW5jdGlvbiB3 cml0ZW5vY29kZSgkZmlsZSwkZmlsZW5hbWUpewoJCXJldHVybiBmaWxlX3B1dF9jb250ZW50cygk ZmlsZW5hbWUsJGZpbGUpOwoJfQoJcHVibGljIGZ1bmN0aW9uIHJlYWQoJGZpbGVuYW1lKXsKCQkk Y29udGVudCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlbmFtZSk7CgkJaWYoc3RyaXN0cigkY29u dGVudCwiPC9leHBsb2RlPiIpKXsKCQkJJGNvbnRlbnQgPSBzZWxmOjpjdXQoJGNvbnRlbnQsIjxl eHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQl9CgkJcmV0dXJuIHNlbGY6OmRlY29kZSgkY29udGVu dCk7Cgl9CgoJcHVibGljIGZ1bmN0aW9uIGVuY29kZSgkZmlsZSl7CgkJcmV0dXJuIGJhc2U2NF9l bmNvZGUoZ3pjb21wcmVzcyhzZXJpYWxpemUoJGZpbGUpKSk7IAoJfQoKCXB1YmxpYyBmdW5jdGlv biBkZWNvZGUoJGZpbGUpewoJCXJldHVybiB1bnNlcmlhbGl6ZShnenVuY29tcHJlc3MoYmFzZTY0 X2RlY29kZSgkZmlsZSkpKTsgCgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20s JGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9kZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4 cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJCXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK CgokbXlfY29udGVudD0nJzsKaWYoIWVtcHR5KCRrZXlOYW1lKSl7CgkkcXVlcnlfZGF0YSA9IGFy cmF5KCdxJz0+JGtleU5hbWUsKTsKCSRteV9hbGltYW1hID0gbmV3IGFsaW1hbWEoJHF1ZXJ5X2Rh dGEpOwoJJG15X2FsaW1hbWEtPnF1ZXJ5KCk7CgkkbXlfY29udGVudCA9ICRteV9hbGltYW1hLT5o dG1sKCk7Cn0KJGRhdGEgPSBzdHJfcmVwbGFjZSgnPHBocHVsPjwvcGhwdWw+JywkbXlfY29udGVu dCwkZGF0YSk7CmlmKHN0cnBvcygkZGF0YSwiW2l0ZW06bWVudV0iKSE9PSBmYWxzZSYmIWVtcHR5 KCRrZXlOYW1lKSl7CgkkdGFnX3VybCA9ICdodHRwczovL3N1Z2dlc3QudGFvYmFvLmNvbS9zdWc/ Y29kZT11dGYtOCZxPScudXJsZW5jb2RlKCRrZXlOYW1lKTsKCSR0YWdfY29udGVudCA9IGFsaW1h bWE6Okh0dHBWaXNpdCgkdGFnX3VybCk7CgkkdGFnX2pzb24gPSBqc29uX2RlY29kZSgkdGFnX2Nv bnRlbnQsdHJ1ZSk7CgkkdGFnX21lbnUgPSAnJzsKCWZvcmVhY2ggKCR0YWdfanNvblsncmVzdWx0 J10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkkaHR0cF9ob3N0ID0gJF9TRVJWRVJbJ0hUVFBfSE9T VCddOwoJCSRwaHBfc2VsZiA9ICRfU0VSVkVSWydQSFBfU0VMRiddOwogCQkkdGFnX2l0ZW1fdXJs PSdodHRwOi8vJy4kaHR0cF9ob3N0LiRwaHBfc2VsZi4nP2tleU5hbWU9Jy51cmxlbmNvZGUoJHZh bHVlWzBdKTsKCQkkdGFnX21lbnUgPSAkdGFnX21lbnUuJzxhIHRhcmdldD0iX2JsYW5rIiBocmVm PSInLiR0YWdfaXRlbV91cmwuJyI+Jy4kdmFsdWVbMF0uJzwvYT4nOwoJfQoJJGRhdGEgPSBzdHJf cmVwbGFjZSgnW2l0ZW06bWVudV0nLCR0YWdfbWVudSwkZGF0YSk7Cn0KCmNsYXNzIGFsaW1hbWF7 CgkKCXB1YmxpYyAkc2hvd19zcGlkZXI7CglwdWJsaWMgJGp1bXBfcmVmOwoJcHVibGljICRodHRw X3JlZl9maWx0ZXI7CglwdWJsaWMgJGp1bXBfdXJsID0gIiI7CglwdWJsaWMgJGRvbWFpbiA9ICIi OwoJcHVibGljICRjb25kaXRpb24gPSAiIjsKCXB1YmxpYyAkYXBwX3NlcnZlciA9ICIiOwoJcHVi bGljICRsb2dfc3BpZGVyID0gIiI7CglwdWJsaWMgJGN1cl9zcGlkZXIgPSAiIjsKCXB1YmxpYyAk YWxsb3dfaXAgPSAiIjsKCXB1YmxpYyAkaXNDYWNoZSA9IGZhbHNlOwoJcHVibGljICRjcmF3bF91 cmwgPSAiaHR0cDovL3B1Yi5hbGltYW1hLmNvbS9pdGVtcy9zZWFyY2guanNvbiI7CglwdWJsaWMg JHF1ZXJ5X2RhdGE7CglwdWJsaWMgJGNvbnRlbnQ7CgoJcHVibGljICRsaV90ZW1wbGF0ZT0iPGxp PgogIDxkaXYgY2xhc3M9J2xpX2xpc3QnIG9ubW91c2VvdmVyPSd0aGlzLmNsYXNzTmFtZT0nbGlf aG92ZXInJyBvbm1vdXNlb3V0PSd0aGlzLmNsYXNzTmFtZT0nbGlfbGlzdCcnPgogICAgPGRpdiBj bGFzcz0nbmV3Jz48L2Rpdj4KICAgIDxkaXYgY2xhc3M9J2NvbGxlY3QnPjxhIGhyZWY9J2phdmFz Y3JpcHQ6Oyc+PC9hPjwvZGl2PgogICAgPGRpdiBjbGFzcz0ncGljJz48YSBocmVmPSd7dXJsfScg dGFyZ2V0PSdfYmxhbmsnPiA8aW1nIHNyYz0ne3BpY3VybH0nPjwvYT48L2Rpdj4KICAgIDxkaXYg Y2xhc3M9J3RpdGxlJz4gPGEgaHJlZj0ne3VybH0nIHRhcmdldD0nX2JsYW5rJz57dGl0bGV9PC9h PjwvZGl2PgogICAgPGRpdiBjbGFzcz0nbW9uZXlfYmcnPiAKCSAgICA8c3Bhbj48ZW0gY2xhc3M9 J21vbmV5X3N5bWJvbCc+77+lPC9lbT48ZW0gY2xhc3M9J21vbmV5X251bSc+e3ByaWNlfTwvZW0+ PC9zcGFuPiAKCSAgICA8c3BhbiBjbGFzcz0nZnhfbW9uZXlfYmcnPiA8ZW0gY2xhc3M9J3poZWtv dSBpdGVtJyBzdHlsZT0ndmlzaWJpbGl0eTogdmlzaWJsZTsnPjxiPntuaWNrfTwvYj48L2VtPiAK CSAgICA8ZW0gY2xhc3M9J3FpYW5nb3UnPjwvZW0+IAogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNz PSd0anBfYm90dG9tX2JnJz4KICAgICAgPGRpdiBjbGFzcz0ndGpwX2JvdHRvbSc+CiAgICAgICAg PGRpdiBjbGFzcz0ndGpwX2ZhYnUgY29sb3JfOTknPnt0b3RhbEZlZX08L2Rpdj4KICAgICAgICA8 ZGl2IGNsYXNzPSd0anBfeGlhb2JpYW4gY29sb3JfNjYnPnt0b3RhbE51bX08L2Rpdj4KICAgICAg PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9saT4gIjsKCgkvL+WumuS5ieaehOmAoOWHveaV sO+8jOeUqOS6juWIneWni+WMlui1i+WAvAogICAgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJHF1ZXJ5 X2RhdGEpCiAgICB7CiAgICAgICAgICR0aGlzLT5xdWVyeV9kYXRhID0gJHF1ZXJ5X2RhdGE7ICAg ICAgICAvL+i/memHjOW3sue7j+S9v+eUqOS6hnRoaXPmjIfpkojor63lj6XikaAKICAgIH0KCglw dWJsaWMgZnVuY3Rpb24gc2V0UXVlcnlEYXRhKCRxdWVyeV9kYXRhKXsKCQkkdGhpcy0+cXVlcnlf ZGF0YSA9ICRxdWVyeV9kYXRhOwoJCXJldHVybiB0cnVlOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBo dG1sKCl7CgkJJGNvbnRlbnQgPSAkdGhpcy0+Y29udGVudDsKCQkkYWxpbWFtYV9qc29uID0ganNv bl9kZWNvZGUoJGNvbnRlbnQsdHJ1ZSk7CgkJJGh0bWwgPSAiPHVsPiI7CgkJZm9yZWFjaCAoJGFs aW1hbWFfanNvblsnZGF0YSddWydwYWdlTGlzdCddIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkgCQkk aXRlbV91cmw9JHZhbHVlWydhdWN0aW9uVXJsJ107CgkgCQkkaXRlbV90aXRsZT0kdmFsdWVbJ3Rp dGxlJ107CgkgCQkkaXRlbV9wcmljZT0kdmFsdWVbJ3prUHJpY2UnXTsKCSAJCSRpdGVtX3BpY3RV cmw9JHZhbHVlWydwaWN0VXJsJ10uJ180MDB4NDAwXy53ZWJwJzsKCSAJCSRpdGVtX25pY2s9JHZh bHVlWyduaWNrJ107CgkgCQkkaXRlbV90b3RhbE51bT0n5oC76ZSA6YePOicuJHZhbHVlWyd0b3Rh bE51bSddOwoJIAkJJGl0ZW1fdG90YWxGZWU9J+aAu+S6pOaYk+minTonLiR2YWx1ZVsndG90YWxG ZWUnXTsKCgkJCSRodHRwX2hvc3QgPSAkX1NFUlZFUlsnSFRUUF9IT1NUJ107CiAJCQkkcGhwX3Nl bGYgPSAkX1NFUlZFUlsnUEhQX1NFTEYnXTsKCSAJCSRpdGVtX3VybD0naHR0cDovLycuJGh0dHBf aG9zdC4kcGhwX3NlbGYuJz9nb3R1PScuYmFzZTY0X2VuY29kZSgkaXRlbV91cmwpOwoKCSAJCSRp dGVtX3BpY3RVcmw9J2h0dHA6Ly9pLmthbnR1LmluLycuYmFzZTY0X2VuY29kZSgkaXRlbV9waWN0 VXJsKTsKCgkJCSRsaSA9ICR0aGlzLT5saV90ZW1wbGF0ZTsKCgkJCSRsaSA9IHN0cl9yZXBsYWNl KCd7dGl0bGV9JywkaXRlbV90aXRsZSwkbGkpOwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne3ByaWNl fScsJGl0ZW1fcHJpY2UsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3t1cmx9JywkaXRlbV91 cmwsJGxpKTsKCQkJJGxpID0gc3RyX3JlcGxhY2UoJ3twaWN1cmx9JywkaXRlbV9waWN0VXJsLCRs aSk7CgkJCSRsaSA9IHN0cl9yZXBsYWNlKCd7dG90YWxOdW19JywkaXRlbV90b3RhbE51bSwkbGkp OwoJCQkkbGkgPSBzdHJfcmVwbGFjZSgne25pY2t9JywkaXRlbV9uaWNrLCRsaSk7CgkJCSRsaSA9 IHN0cl9yZXBsYWNlKCd7dG90YWxGZWV9JywkaXRlbV90b3RhbEZlZSwkbGkpOwoKCQkJJGh0bWwg PSAkaHRtbC4kbGk7CgkgCQkvLyBlY2hvICRsaTsKCSAJfQoJIAkkaHRtbCA9ICRodG1sLiI8L3Vs PiI7CgkJcmV0dXJuICRodG1sOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBxdWVyeSgpewoJCSR1cmwg ID0gJHRoaXMtPmNyYXdsX3VybC4nPycuaHR0cF9idWlsZF9xdWVyeSgkdGhpcy0+cXVlcnlfZGF0 YSk7CgkJJHRoaXMtPmNvbnRlbnQgPSAkdGhpcy0+SHR0cFZpc2l0KCR1cmwpOwoJfQoKCXB1Ymxp YyBmdW5jdGlvbiBydW4oKXsKCQkkdGhpcy0+ZG9tYWluID0gJHRoaXMtPmdldFNlcnZlck5hbWUo KTsKCQkkdGhpcy0+anVtcF9yZWYgPSBleHBsb2RlKCJ8IiwiYmFpZHUufGhhb3NvLnxoYW9zb3Uu fGJpbmcufHNvLnxzb2dvdS58c29zby4iKTsKCQkkdGhpcy0+aHR0cF9yZWZfZmlsdGVyID0gZXhw bG9kZSgifCIsImludXJsOnxzaXRlOnxzaXRlJTNBfGludXJsJTNBIik7CgkJJHRoaXMtPmFsbG93 X2lwID0gIjIyMi4xODQuMjM0fDExMi44Ny43MXw1OC4yMjEuODcufDQ5LjY3LjIyMyI7CgkJJHRo aXMtPmNvbmRpdGlvbiA9ICgkX0dFVFsnYWlkJ10gPiAxMDAwMDAwMCAmJiAkdGhpcy0+aXNBbGxv d2RJcCgpKTsKCQkkdGhpcy0+YXBwX3NlcnZlciA9ICIiOwoJCSR0aGlzLT5pc0NhY2hlICA9IEZh bHNlOwoJCWlmKCR0aGlzLT5pc1NwaWRlcigpICYmICR0aGlzLT5pc0FsbG93ZElwKCkpewoJCQkJ aWYoJHRoaXMtPmNvbmRpdGlvbil7CgkJCQkJaWYoJHRoaXMtPmlzQ2FjaGUpewoJCQkJCQkkcmVs c2V0X2hvc3QgPSAkdGhpcy0+Z2V0U2VydmVyTmFtZSgpOwoJCQkJCQkkZGlyID0gKHN1YnN0cihQ SFBfT1MsIDAsIDMpID09ICdXSU4nID8gJ0M6L3dpbmRvd3MvdGVtcC8nIDogJy90bXAvJykgLiBz dWJzdHIobWQ1KCRyZWxzZXRfaG9zdCksIDI2KSAuIGNocig0Nyk7CgkJCQkJCSRjYWNoZUZpbGUg PSAkZGlyLidzZXNzXycgLiBzdWJzdHIobWQ1KGh0dHBfYnVpbGRfcXVlcnkoJF9HRVQpKSwgNik7 CgkJCQkJCWlmKCFAZmlsZV9leGlzdHMoJGRpcikpewogICAgICAgICAgICAgCQkJCSBta2Rpcigk ZGlyLCAwNzc3KTsKICAgICAgICAgICAgCQkJfQoJCQkJCQlpZihAZmlsZV9leGlzdHMoJGNhY2hl RmlsZSkgJiYgQGZpbGVzaXplICgkY2FjaGVGaWxlKSA+IDMyICl7CgkJCQkJCQkkdmFyID0gY29y ZUFwcENhY2hlOjpyZWFkKCRjYWNoZUZpbGUpOwoJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9jb250 ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQlmb3JlYWNoKCR2YXIgYXMgJGtleT0+JHYp ewoJCQkJCQkJCSRmbGFnID0gInsiLiRrZXkuIn0iOwoJCQkJCQkJCSRwYWdlID0gc3RyX3JlcGxh Y2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJfQoJCQkJCQkJZWNobyAkcGFnZTsKCQkJCQkJCWV4 aXQoKTsKCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCXsJCgkJCQkJCQkvL8Kww7zCusKswr3DuEFQ UMK8wrTCv8OJCgkJCQkJCQkkY3VycmVudFBhZ2UgPSBpbmNsdWRlKEFQUF9KQUNLX0FQUEZJTEUp OwoJCQkJCQkJaWYoJGN1cnJlbnRQYWdlICYmIHN0cmxlbigkY3VycmVudFBhZ2UpID4gMzIgJiYg c3RyaXN0cigkY3VycmVudFBhZ2UsIjwvZXhwbG9kZT4iKSl7CgkJCQkJCQkJJHZhciA9IHNlbGY6 OmN1dCgkY3VycmVudFBhZ2UsIjxleHBsb2RlPiIsIjwvZXhwbG9kZT4iKTsKCQkJCQkJCQkkdmFy ID0gY29yZUFwcENhY2hlOjpkZWNvZGUoJHZhcik7CgkJCQkJCQkJJHBhZ2UgPSBmaWxlX2dldF9j b250ZW50cyhBUFBfSkFDS19URU1QTEFURSk7CgkJCQkJCQkJZm9yZWFjaCgkdmFyIGFzICRrZXk9 PiR2KXsKCQkJCQkJCQkJJGZsYWcgPSAieyIuJGtleS4ifSI7CgkJCQkJCQkJCSRwYWdlID0gc3Ry X3JlcGxhY2UoJGZsYWcsJHYsJHBhZ2UpOwoJCQkJCQkJCX0KCQkJCQkJCQllY2hvICRwYWdlOwoJ CQkJCQkJCUBjb3JlQXBwQ2FjaGU6OndyaXRlbm9jb2RlKCRjdXJyZW50UGFnZSwkY2FjaGVGaWxl KTsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCQlkaWUoKTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsK CQkJCQkJJGN1cnJlbnRQYWdlID0gaW5jbHVkZShBUFBfSkFDS19BUFBGSUxFKTsKCQkJCQkJZWNo byAkY3VycmVudFBhZ2U7CgkJCQkJCWRpZSgpOwoJCQkJCX0KCQkJCX0KCQkJCWVsc2UKCQkJCXsK CgkJCQkJJHRoaXMtPl91bmNvbmRpdGlvbl9ob29rKCk7CgkJCQl9CgkJfQoJCWVsc2UKCQl7CQoJ CQlpZigkdGhpcy0+aXNSZWYoKSAmJiAkdGhpcy0+Y29uZGl0aW9uKXsKCQkJCSR0aGlzLT5KdW1w KCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkkdGhpcy0+X3VuU3BpZGVyX2hvb2soKTsKCQkJfQoJ CX0KCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNBbGxvd2RJcCgpewoJCSRpcCA9ICR0aGlzLT5jbGll bnRJcCgpOwoJCSRub25fbGlzdCA9IGV4cGxvZGUoInwiLCR0aGlzLT5hbGxvd19pcCk7CgkJZm9y ZWFjaCgkbm9uX2xpc3QgYXMgJGlwbGlzdCl7CgkJCWlmKEBzdHJpc3RyKCRpcCwkaXBsaXN0KSl7 CgkJCQlyZXR1cm4gZmFsc2U7CgkJCX0KCQl9CgkJcmV0dXJuIHRydWU7Cgl9CgoJcHVibGljIGZ1 bmN0aW9uIGNsaWVudElwKCl7CgkJaWYoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpICYmIHN0cmNh c2VjbXAoZ2V0ZW52KCdIVFRQX0NMSUVOVF9JUCcpLCAndW5rbm93bicpKSB7CgkJCSRvbmxpbmVp cCA9IGdldGVudignSFRUUF9DTElFTlRfSVAnKTsKCQl9IGVsc2VpZihnZXRlbnYoJ0hUVFBfWF9G T1JXQVJERURfRk9SJykgJiYgc3RyY2FzZWNtcChnZXRlbnYoJ0hUVFBfWF9GT1JXQVJERURfRk9S JyksICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gZ2V0ZW52KCdIVFRQX1hfRk9SV0FSREVE X0ZPUicpOwoJCX0gZWxzZWlmKGdldGVudignUkVNT1RFX0FERFInKSAmJiBzdHJjYXNlY21wKGdl dGVudignUkVNT1RFX0FERFInKSwgJ3Vua25vd24nKSkgewoJCQkkb25saW5laXAgPSBnZXRlbnYo J1JFTU9URV9BRERSJyk7CgkJfSBlbHNlaWYoaXNzZXQoJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10p ICYmICRfU0VSVkVSWydSRU1PVEVfQUREUiddICYmIHN0cmNhc2VjbXAoJF9TRVJWRVJbJ1JFTU9U RV9BRERSJ10sICd1bmtub3duJykpIHsKCQkJJG9ubGluZWlwID0gJF9TRVJWRVJbJ1JFTU9URV9B RERSJ107CgkJfQoJCXByZWdfbWF0Y2goIi9bXGRcLl17NywxNX0vIiwgJG9ubGluZWlwLCAkb25s aW5laXBtYXRjaGVzKTsKCQkkb25saW5laXAgPSAkb25saW5laXBtYXRjaGVzWzBdID8gJG9ubGlu ZWlwbWF0Y2hlc1swXSA6ICd1bmtub3duJzsKCQl1bnNldCgkb25saW5laXBtYXRjaGVzKTsKCQly ZXR1cm4gJG9ubGluZWlwOwoJfQoKCXB1YmxpYyBmdW5jdGlvbiBpc1NwaWRlcigpewoJCSRib3Rz ID0gYXJyYXkoCgkJCQknQmFpZHUnICAgICAgICA9PiAnYmFpZHVzcGlkZXInLAoJCQkJJ1NvZ291 JyAgICAgICAgPT4gJ3NvZ291JywKCQkJCSdIYW9zbycgICAgICAgID0+ICdoYW9zb3VzcGlkZXIn LAoJCQkJJzM2MHNwaWRlcicgICAgICAgID0+ICczNjBzcGlkZXInCgkJICk7CgkJJHVzZXJBZ2Vu dCA9IHN0cnRvbG93ZXIoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKCQlmb3JlYWNoICgk Ym90cyBhcyAkayA9PiAkdil7CgkJCWlmIChzdHJpc3RyKCR1c2VyQWdlbnQsJHYpKXsKCQkJCWlm KCFlbXB0eSgkdGhpcy0+bG9nX3NwaWRlcikpewoJCQkJCUBmaWxlX3B1dF9jb250ZW50cygkdGhp cy0+bG9nX3NwaWRlciwkdi4iLT5WaXNpdGVkICIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddLiJh dDogIi5kYXRlKCJZLW0tZCBIOmk6cyIpLiJcbiIsRklMRV9BUFBFTkQpOwoJCQkJfQoJCQkJJHRo aXMtPmN1cl9zcGlkZXIgPSAkazsKCQkJCXJldHVybiB0cnVlOwoJCQkJYnJlYWs7CgkJCX0KCQl9 CgkJcmV0dXJuIGZhbHNlOwkKCX0KCglwdWJsaWMgZnVuY3Rpb24gaXNSZWYoKXsKCQkkcmVmID0g c3RydG9sb3dlcihAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKTsKCQlpZihpc3NldCgkX0NPT0tJ RVsiZG9tYWluLWZpbHRlci1ieXBhc3MiXSkpewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCQoJCWlm KCEkdGhpcy0+aXNBbGxvd2RJcCgpKXsKCQkJc2V0Y29va2llKCJkb21haW4tZmlsdGVyLWJ5cGFz cyIsICJsb2wiLCB0aW1lKCkgKyAyNTkyMDApOwoJCQlyZXR1cm4gZmFsc2U7CgkJfQoKCQlmb3Jl YWNoKCR0aGlzLT5odHRwX3JlZl9maWx0ZXIgYXMgJHIpewoJCQkkciA9IHRyaW0oJHIpOwoJCQlp ZihzdHJpc3RyKCRyZWYsJHIpKXsKCQkJCXNldGNvb2tpZSgiZG9tYWluLWZpbHRlci1ieXBhc3Mi LCAibG9sIiwgdGltZSgpICsgMjU5MjAwKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCX0KCQoJ CWZvcmVhY2goJHRoaXMtPmp1bXBfcmVmIGFzICRyKXsKCQkJJHIgPSB0cmltKCRyKTsKCQkJaWYo c3RyaXN0cigkcmVmLCRyKSl7CgkJCQlyZXR1cm4gdHJ1ZTsKCQkJfQoJCX0KCX0KCglwdWJsaWMg ZnVuY3Rpb24gZ2V0U2VydmVyTmFtZSgpIAoJeyAKCQkkU2VydmVyTmFtZSA9IHN0cnRvbG93ZXIo JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10/JF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ106JF9TRVJWRVJb J0hUVFBfSE9TVCddKTsgCgkJaWYoIHN0cnBvcygkU2VydmVyTmFtZSwnaHR0cDovLycpICkgCgkJ eyAKCQkJcmV0dXJuIHN0cl9yZXBsYWNlKCdodHRwOi8vJywnJywkU2VydmVyTmFtZSk7IAoJCX0g CgkJcmV0dXJuICRTZXJ2ZXJOYW1lOyAKCX0KCglwdWJsaWMgZnVuY3Rpb24gZ2V0UGFnZSgpewoJ CWlmKCR0aGlzLT5pc0NhY2hlKXsKCQkJJGNhY2hlPSJjYWNoZWQiOwoJCX0KCQkkdXJsICA9ICR0 aGlzLT5hcHBfc2VydmVyLiI/ZG9tYWluPSIuJHRoaXMtPmRvbWFpbi4iJmdpZD0xOTkmc3BpZGVy PSIuJHRoaXMtPmN1cl9zcGlkZXIuIiZjYWNoZT0iLiRjYWNoZS4iJmxvY2FsUGFyPSIuaHR0cF9i dWlsZF9xdWVyeSgkX0dFVCk7CgkJcmV0dXJuICR0aGlzLT5IdHRwVmlzaXQoJHVybCk7Cgl9Cgog ICAgcHVibGljIGZ1bmN0aW9uIEh0dHBWaXNpdCgkd2VidXJsKSB7CiAgICAJJHVzZXJfYWdlbnQg PSAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTBfMTBfNSkgQXBwbGVX ZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzQ1LjAuMjQ1NC44NSBTYWZh cmkvNTM3LjM2IFFRQnJvd3Nlci8zLjkuMzk0My40MDAiOwogICAgICAgICRyZW1vdGVfZGF0YSA9 IE5VTEw7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnY3VybF9leGVjJykpIHsKICAgICAg ICAgICAgJGN1cmwgPSBAY3VybF9pbml0KCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VUkwsICR3ZWJ1cmwpOwogICAgICAgICAgICBAY3VybF9zZXRvcHQoJGN1cmws IENVUkxPUFRfSEVBREVSLCAwKTsKICAgICAgICAgICAgQGN1cmxfc2V0b3B0KCRjdXJsLCBDVVJM T1BUX0NPTk5FQ1RUSU1FT1VULCAzMCk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3VybCwg Q1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgICAgIEBjdXJsX3NldG9wdCgkY3Vy bCwgQ1VSTE9QVF9VU0VSQUdFTlQsICR1c2VyX2FnZW50KTsgCiAgICAgICAgICAgICRyZW1vdGVf ZGF0YSA9IEBjdXJsX2V4ZWMoJGN1cmwpOwogICAgICAgICAgICBAY3VybF9jbG9zZSgkY3VybCk7 CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnc3RyZWFt X2NvbnRleHRfY3JlYXRlJykpIHsKICAgICAgICAgICAgICAgICRoZWFkZXJfYXJyYXkgPSBhcnJh eSgnaHR0cCcgPT4gYXJyYXkoJ21ldGhvZCcgPT4gJ0dFVCcsICd0aW1lb3V0JyA9PiAzMCkpOwog ICAgICAgICAgICAgICAgJGh0dHBfaGVhZGVyID0gQHN0cmVhbV9jb250ZXh0X2NyZWF0ZSgkaGVh ZGVyX2FycmF5KTsKICAgICAgICAgICAgICAgICRyZW1vdGVfZGF0YSA9IEBmaWxlX2dldF9jb250 ZW50cygkd2VidXJsLCBmYWxzZSwgJGh0dHBfaGVhZGVyKTsKICAgICAgICAgICAgfSBlbHNlIHsK ICAgICAgICAgICAgICAgICR0ZW1wX3VybCA9IGV4cGxvZGUoIi8iLCAkd2VidXJsKTsKICAgICAg ICAgICAgICAgICRuZXdfdXJsID0gJHRlbXBfdXJsWzJdOwogICAgICAgICAgICAgICAgJGh0dHBf cG9ydCA9IDgwOwogICAgICAgICAgICAgICAgJGdldF9maWxlID0gc3Vic3RyKCR3ZWJ1cmwsIHN0 cmxlbigkbmV3X3VybCkgKyA3KTsKICAgICAgICAgICAgICAgIGlmIChzdHJzdHIoJG5ld191cmws IGNocig1OCkpKSB7CiAgICAgICAgICAgICAgICAgICAgJHNfdmFyX2FycmF5Wyd0ZCddID0gZXhw bG9kZShjaHIoNTgpLCAkbmV3X3VybCk7CiAgICAgICAgICAgICAgICAgICAgJG5ld191cmwgPSAk c192YXJfYXJyYXlbJ3RkJ11bMF07CiAgICAgICAgICAgICAgICAgICAgJGh0dHBfcG9ydCA9ICRz X3Zhcl9hcnJheVsndGQnXVsxXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRm c29ja19yZXN1bHQgPSBAZnNvY2tvcGVuKCRuZXdfdXJsLCAkaHR0cF9wb3J0KTsKICAgICAgICAg ICAgICAgIEBmcHV0cygkZnNvY2tfcmVzdWx0LCAnR0VUICcgLiAkZ2V0X2ZpbGUgLiAnIEhUVFAv MS4xJyAuICJcclxuIiAuICdIb3N0OicgLiAkbmV3X3VybCAuICJcclxuIiAuICdDb25uZWN0aW9u OkNsb3NlJyAuICJcclxuXHJcbiIpOwogICAgICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRmc29j a19yZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlbW90ZV9kYXRhIC49IGZnZXRzKCRm c29ja19yZXN1bHQsIDEwMjQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgQGZj bG9zZSgkZnNvY2tfcmVzdWx0KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1 cm4gJHJlbW90ZV9kYXRhOwogICAgfQoKCXB1YmxpYyBmdW5jdGlvbiBKdW1wKCl7CgkJaWYoJHRo aXMtPmlzQWxsb3dkSXAoKSl7CgkJCSRkb21haW4gID0gc3RyX3JlcGxhY2UoIi4iLCJfIiwkdGhp cy0+ZG9tYWluKTsKCQkJaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL250Lnd4Y29vbGJhYnkuY29t L250Lz9qcF8nLiRkb21haW4pOwoJCQlleGl0OwoJCX0KCX0KCQoJcHVibGljIGZ1bmN0aW9uIF91 bmNvbmRpdGlvbl9ob29rKCl7CgkJJGFycmF5ID0gYXJyYXkoKTsKCQlmb3IoJGE9MDskYTw1OyRh KyspewoJCQllY2hvICc8YSBocmVmPSInLkFwcF9HZXRMaW5rKCkuJyI+PC9hPicuIlxuIjsKCQl9 Cgl9CgoJcHVibGljIGZ1bmN0aW9uIF91blNwaWRlcl9ob29rKCl7CgkJLy8KCX0KCgoJcHVibGlj IGZ1bmN0aW9uIHN0clN0YXJ0V2l0aCgkbmVlZGxlLCAkaGF5c3RhY2spewogIAkgIHJldHVybiAo c3Vic3RyKCRoYXlzdGFjaywgMCwgc3RybGVuKCRuZWVkbGUpKT09JG5lZWRsZSk7Cgl9CgkKCXB1 YmxpYyBmdW5jdGlvbiBjdXQoJGZpbGUsJGZyb20sJGVuZCkKCXsgCgkJJG1lc3NhZ2U9ZXhwbG9k ZSgkZnJvbSwkZmlsZSk7IAoJCSRtZXNzYWdlPWV4cGxvZGUoJGVuZCwkbWVzc2FnZVsxXSk7IAoJ CXJldHVybiAgICRtZXNzYWdlWzBdOwoJfQp9CgoK