バッグ ブランド 一覧専売,ブランドバッグレディース人気ランキング_バッグ ブランド 一覧どんな商標 オンラインで購入するバッグ ブランド 一覧


2015-03-22 10:21
コーチ メンズ バッグ ショルダーブランド中古通販ブランド鞄通販ジョイリッチ バッグバッグ通販楽天ブランドトートバッグバッグ通販ブランドロエベ バッグブランド 財布 男性シャネルバッグ人気ランキング1泊2日 出張 バッグブランド服 レンタル人気ブランド財布ランキングショルダーバッグ 人気バッグ 通販ブランド バッグ 人気 トート通園ショルダーバッグ通園バッグ作り方型紙sac バッグ 店舗通園バッグ 作り方 簡単dime ユニクロ バッグビジネスバッグ トートブランド バック コピーバッグ 激安 通販 送料無料人気のブランド財布ブランド ベルト 激安旅行ブランドバッグバッグ ブランド 日本ブランド バック 軽いブランドバッグ 修理ブランド バッグ 人気 ランキング30代ブランドバッグ20代 バッグ ブランド楽天 ショルダーバッグバッグ 通販 激安マザーズバッグ海外ブランドトートバッグ 通販 激安人気ブランド財布メンズ人気バッグ通園バッグ型紙ブランド バッグ ランキングハイブランド 意味激安 ブランド コピーブランドの財布 嫌い楽天市場ブランドバッグレンタル ブランド ドレスメンズバッグブランドランキング通販 レディース 安い ランキングブランドバッグリサイクル通販絵本バック通販スクールバッグ人気2014新作バッグクラッチバッグ メンズブランドバッグカタログハンドバッグ 通販流行りのブランドバッグレディース バッグバッグ 通販 メンズバッグ レディース ブランド 人気新作シャネルバッグブランドの財布 女性鞄 通販ブランド バッグ レディース 人気 ランキング30代人気ブランド海外人気ブランド バッグブランド 財布 コピーファ板 ブランドランクマイケルコース バッグレッスンバッグ作り方裏地中古 ブランド 通販かごバッグ人気 ブランド中古ブランドバックブランドバッグレンタル名古屋中古 ブランド バッグ 大阪海外旅行バッグキタムラ バッグ格安ブランドバックハイブランド ランキングバッグ べたべたヴィトン バッグブランド バッグ 人気 メンズブランドバッグ激安絵本 通販 毎月ハロッズ トートバッグショルダーバッグ通販人気メンズ バッグ ブランド トートクロエ バッグ 人気旅行用 バッグ人気 ブランド バッグ ランキング 女性バッグ 通販 レディース カジュアルブランドバッグ人気レディースバッグヴィトン新作バッグ通園バッグ 作り方 裏地コーチ ショルダーバッグメンズ バッグ ブランド 40代バッグ ネットショップシャネル 新作 2012 バッグトートバッグ人気ブランドメンズかわいい財布ブランドレディース バッグ 人気ブランドエコバッグ人気ランキングショルダーバッグ通販レディースブランド バック アウトレット2泊 出張 バッグ財布 ブランド アウトレットユニクロ ボストンバッグ女性用ショルダーバッグハイブランド 就職人気ブランドバッグブランドバッグレンタル大阪楽天 バッグ ランキングショルダーバッグ レディース ブランド人気ブランド長財布レディースブランド ランクブランドバッグランキングポーターセカンドバッグブランド 人気ランキングブランドバッグ人気ランキングブランド 財布 激安新作財布 ブランド海外ブランドバッグメンズバッグ人気ランキングブランドバッグ ランキングヴィトン バッグ 一覧女性人気ブランド財布ハイブランド 一覧裏地付きレッスンバッグ作り方ママバッグブランドブランド2013新作プラダ バッグ メンズシザーバッグバックブランド一覧コーチメンズバッグ 70189ブランド ビジネスバック出張 バッグブランド バッグ メンズ ショルダー絵本 通販 激安メンズバッグ濱野 バッグ人気のバッグブランド通販レディース安いハロッズ バッグ 通販人気ブランド財布バックブランド 20代ハロッズ バッグ通園バッグ 作り方 ショルダー濱野バッグ 辺見えみりグッチ バッグハイブランド 時計バッグ新作2013財布ブランド人気ランキングメンズ バッグ 人気 ブランド 大学生メンズ バッグ 人気 ブランド カジュアルキタムラ バッグ 通販シャネル バッグクロエ バッグコーチ メンズ バッグ アウトレット人気バッグブランドビジネス鞄 ブランド靴 ハイブランドバッグ 通販 レディース 通勤プラダ バッグセレブブランドバッグバック ブランド一覧かごバッグ 作り方ハンドメイドレッスンバッグ通販バッグ 通販 レディースレッスンバッグショルダー作り方鞄通販レディース激安ブランド通販本物楽天 トートバッグボディバッグ メンズシャネル 新作 バッグマザーズバッグおすすめブランドコーチ バッグ 激安ブランド バッグ メンズ セカンドバッグカバンブランドランキングブランドバッグレディース人気ランキングハイブランドブランドトートバッグメンズ財布 通販 ブランドブランドバック 人気ランキングブランドバッグ新作2012シャネルバッグカタログ新作ばっく ブランド 40代出張 バッグ スーツ人気のブランドバックビジネストートバッグ メンズ軽い バッグ ブランド楽天バッグ通販流行りのブランドバッグ メンズブランド バック クリーニングol バッグ 人気人気 ブランド バッグ 新作通販鞄レディース安いお洒落なバッグ通販サイトスクールバッグ人気ランキングバッグ メンズ 革ビジネスバッグ ブランド中古ブランド鞄メンズ財布ブランド牛革バッグ 激安メンズ バッグ ブランド人気 バッグ ブランド メンズsac バッグセリーヌ バッグ ラゲージレディース バッグ ブランド ランキング 20代お洒落 バッグ メンズ30代おすすめブランド婦人バッグ人気ブランド アウトレットシャネルバッグ通販ブランド バッグ 人気 女性ブランドバッグ 人気 30代海外トートバッグバッグ 人気ブランドブランドバック修理三十代人気ブランドボディバッグ20代女性ブランドバッグゴヤール バッグ パリで男性用バッグ人気メンズ バッグ 人気ボストンバッグ 通販 メンズ通園バッグ ショルダーレディース バッグ ブランド 一覧ブランド バック おすすめ海外ブランドトートバッグ男性 バッグ ブランド人気ブランドバッグランキングブランド バッグ 激安 コピーバッグ 日本 メーカー幼稚園 通園バッグ 作り方コーチ バッグ 一覧クロエ バッグ パディントン絵本 通販 試し読み財布 通販 ブランド 激安ゴヤール バッグ 偽物 見分け方ブランドバッグブランドショルダーバッグ 激安ブランド バック 中古hirofuのバッグバック ブランドコーチ メンズ バッグ 評判ブランド ランキング20代女性人気ブランドバッグ人気 ブランド バッグ メンズバック ブランド メンズボディバッグ ポーターブランド バッグ クリーニング 大阪ビジネスバッグショルダーバック 通販メンズブランドバッグコーチ バッグ アウトレットバレンシアガ バッグ絵本通販ブランドバッグレンタル東京セリーヌバッグ新作2012ヴィトン 新作バッグ 2014キタムラ バッグ k2ショルダーバッグ メンズメンズ バッグ カジュアル30代女性バッグブランドお洒落雑貨通販財布 ブランド ランクゴヤール バッグケイトスペード バッグ人気バッグ ランキングアウトレットブランドバックルイ ヴィトン 新作バッグブランド財布通販本物ブランド バッグ 激安 新品靴 ブランド 一覧楽天市場 ブランド楽天 バッグ レディースレディース バッグ ブランド 安い人気ブランドバッグ ランキング レディース財布 メンズ ブランドバッグ 通販 ブランド 激安出張バッグ1泊コーチ バッグ楽天ブランドバッグランキングマザーズバッグ人気ブランドトートバッグ女性人気ブランドバックバッグ ブランド ランキング メンズ女性バッグ人気 40代バッグ 人気 メンズ男性用財布ブランドシャネル バッグ 一覧ブランド バック レディースセリーヌ バッグ 新作ブランド バッグ メンズ ボストンレディース バッグ 人気クリード バッグトートバッグ通販人気トートバッグ 作り方サザビー バッグ 通販バッグ メンズ中古ブランドバッグ メンズバッグ 通販 レディース 激安出張 バッグ 3泊かばん ブランドポールスミスバッグ 店舗メンズバッグ人気ブランドキタムラ バッグ 評判ブランド バッグ アウトレット海外セレブ人気ブランドバッグショルダーバッグ通販バッグブランドバッグ キタムラショルダーバッグ レディース ナイロン激安トートバッグ通販ポーター バッグdime バッグブランドバッグ 新作ブランドバッグ リサイクル安い服の通販porter ボディバッグ2012 ブランドバッグポールスミス バッグ楽天 ブランドプラダトートバッグ激安トリーバーチ バッグレッスンバッグ作り方キルティング裏地ブランドバッグ 人気ブランドの財布 メンズブランド バッグ 修理 東京ブランドランク wikiメンズ ボディバッグキタムラ バッグ 中古かごバッグ人気バックブランド ランキングブランドトートバッグ人気バッグ 通販 ブランド中古ブランドバッグ 激安シャネル バッグ 種類お洒落家具通販ブランドバッグ リペア30代人気バッグ絵本 通販 ラッピング使いやすい財布ブランド中古絵本通販ブランド 修理ハイブランド ママバッグブランド バック 新作シャネル公式サイトバッグトートバッグ かわいいママバッグ 人気 ブランドブランド ランク 2chレッスンバッグの作り方トートバッグブランドバッグ 通販 安い通販 レディース 安い 大きいサイズクロエ バッグ 一覧ゴヤール バッグ サンルイ通園バッグ 作り方 型紙女性に人気のブランド財布婦人財布ブランドバッグ ブランド 一覧 メンズバッグ ブランド 人気 メンズブランドバック 一覧中古ブランドバッグコーチバッグ激安 メンズカバンブランド一覧ブランドバッグ クリーニングブランド 買取ブランドトートバッグレディースショルダーバッグ 通販 メンズ海外旅行ブランドバッグ無地トートバッグ激安ビジネスバッグ 革人気ブランドバッグ ランキング海外ブランドバッグレッスンバッグ作り方裏地付きレディースショルダーバッグkanzanバッグかばん 通販楽天 ビジネスバッグヴィトン バッグ 修理ブランドバッグ 通販可愛いショルダーバッグ通販バッグ レディース ブランド 20代レディース バッグ ブランドセリーヌ バッグ 値段2013ブランドバッグユニクロ バッグ ビジネスブランド バッグ 最新メンズブランドバッグ 激安coachバッグランキングダレスバッグ通園バッグ作り方裏地マチブランド バッグ 激安ブランド 激安 本物トートバッグレディース人気ブランドバッグブランド20代レディース バッグ ブランド 30代20代人気ブランドバッグ楽天 バッグ メンズバッグ レディース ブランドメンズ バッグ 楽天安い洋服 通販通園バッグ作り方裏地付きママバッグ おすすめ ブランドブランド バッグ メンズ アウトレット通園ショルダーバッグ手作り幼稚園通園バッグ作り方鞄通販ブランド バッグ 通販ダンヒル バッグ 修理キタムラ バッグ 激安ポールスミスバッグ 財布pomerance ブランド絵本袋通販人気バッグブランド 30代トートバッグ メンズ男の財布ブランド女性バッグ人気 30代ブランド バッグ レディース激安ブランド激安ブランドコピー専門店秋の新作ブランドバッグ通販 バッグ レディース 安いpradaトートバッグ激安コーチ バッグ メンズコーチトートバッグ激安ブランドばっくバッグ 通販 人気フルラ バッグ 激安レディースかばん 通販メンズ バッグバッグ 通販 レディース 安いピンダイ バッグユニクロ バッグ メンズブランド ランク メンズメンズ バッグ ブランド ビジネス海外セレブブランドバッグショルダーバッグ通販激安tres バッグ 通販楽天 ブランドバッグバッグ ブランド メンズマザーズバッグブランドランキングハロッズ バッグ 三越人気 バッグ ブランドバッグ 通販 レディース 旅行革 バッグ 手入れコーチ メンズ バッグ 中古バッグ通販レディース人気30代女性人気ブランドバッグブランド バッグ 通販 本物ビジネスバッグ人気ランキング女性 人気 バッグ ブランドブランド品 中古メンズ バッグ 人気 ブランド 20代バック 通販 人気通園バッグ 作り方安い 通販 レディース ナチュラルブランドバッグ新作2013斜めがけバッグ レディーストートバッグ通販バッグ ブランド 一覧バッグ メンズ コーチ激安バッグ通販バッグ 通販 レディース ブランドファッション板 ブランドランクマザーズバッグブランド中古 ブランド出張 バッグ 女性女性 バッグ ブランドブランドバックレンタル濱野 バッグ お家騒動サンローラン バッグメンズ バッグ ブランド カジュアルブランドバッグ 激安ブランドトートバッグ新作ハイブランド ヴィンテージメンズ バッグ ブランド 激安通園バッグ サイズブランドトートバッグランキングブランド バッグ メンズ コピー2014ブランドバッグ無印 バッグブランドバッグ レンタルブランド バッグ 激安 中古ブランド バッグ 修理 大阪手作り 通園バッグ 作り方ブランド 財布 通販 本物レディース バッグ ブランド 20代グッチ バッグ 修理ブランド バック 激安ヴィンテージシャネルバッグ通販バッグ ブランド 人気50代女性バッグブランドブランド バッグ 人気ブランドバックリサイクルコーチ 新作バッグトリーバーチトートバッグ激安ブランドの財布 人気バッグ 人気ブランド バッグ 激安 本物激安ブランド市場バッグ 通販 レディース a4ブランドカバン ランキングブランド バッグ 一覧ブランド バッグ レンタルコーチ バッグ 激安 楽天ブランド 財布 アウトレットsac バッグ 通販レッスンバッグ通販メンズ バッグ ブランド コピーブランドバック新作ブランドバッグランキング女性sac バッグ ホームページ財布ブランドおすすめブランド 中古 販売ヴィトン トートバッグ女性バッグ人気レディース人気ブランド財布セリーヌ バッグマリメッコトートバッグ激安ブランド バッグ メンズ海外セレブ愛用トートバッグバック通販ブランドハロッズ バッグ 店舗レディース バッグ 通販 激安海外ブランド バッグ 人気ブランドバッグ本物バッグ メンズ 種類セリーヌ バッグ カタログ通販 レディース 安い カジュアルユニクロ バッグ40代 人気ブランドバッグ濱野バッグ 評判ブランド品 レンタル女性人気ブランドバッグブランド バッグ 新作 カタログ濱野バッグ直営店ショルダーバッグ レディース カジュアルコーチ バッグ 楽天ビジネス 出張 バッグ財布 ブランドバッグ人気ブランドランキングハイブランド メンズプラダ バッグ ナイロンブランド 格安キタムラ バッグ オーダーメイド肩掛けバッグ メンズトートバッグ 通販激安バッグ通販 メンズsac トートバッグ濱野 バッグ 店舗メンズ バッグ ブランド 人気ランキングバッグ通販レディース激安絵本バッグ通販激安市場ブランド館 評判楽天 バッグ通園バッグ人気激安トートバッグ今人気のブランドバッグ海外ブランドバッグ 人気ランキング海外ブランドバッグ人気ランキング30代女性ブランドバッグシーバイクロエ バッグブランドバッグ 激安 訳ありトートバッグ 激安男性人気ブランド財布ブランドバッグ新作カタログメンズ バッグ 人気 ブランドトートバッグおすすめブランドブランド バッグ クリーニング 東京ポールスミス トートバッグバッグ ブランドキタムラ バッグ セールハロッズ ショルダーバッグブランド バッグ 中古 激安ブランドトートバッグ激安オリジナルトートバッグ激安海外旅行ブランドバッグ税関プリマクラッセ バッグビニールバッグ 楽天20代財布ブランドショルダーバッグ レディース 革ゴヤール バッグ サイズブランドトートバッグメンズ バッグ ブランド ボディバッグレディースバッグ人気ブランドブランドの財布prada バッグ 新作 2012ブランドバッグ新作ミュウミュウ バッグビジネス カバン ブランドメンズ バッグ ブランド ランキングバッグ 通販 レディース ショルダーメンズ バッグ ショルダーブランドバッグレンタル party海外セレブ愛用マザーズバッグメンズ バッグ ブランド 人気ハイブランド 求人ショルダーバッグ 通販 激安メンズ バッグ 大学生キタムラ バッグ 店舗ショルダーバッグ レディースブランドバッグ通販コーチ メンズ バッグポール スミス ビジネスバッグバッグ 丈夫 ブランド出張 バッグ ブランドバッグ レディース ブランド 30代ネット通販ブランド本物ブランド正規通販グッチバッグ人気ランキングブランド バッグ 新作 2014バッグ ブランド レディースブランド バッグ メンズ ビジネス40代人気ブランドバッグブランド バッグ楽天ブランドバッグ偽物トートバック 通販楽天市場 バッグ女性バッグ人気 20代ブランド バッグ メンズ 中古格安ブランドバッグバッグ 通販 カジュアルブランド バッグ 中古イタリア 鞄 ブランド2013人気ブランドバッグ男性 財布 ブランド絵本バッグ 作り方革 バッグ クリーニング海外セレブ愛用バッグ海外旅行ショルダーバッグブランドマザーズバッグ海外メンズ バッグ ブランド 一覧海外ブランドバッグ 通販ビジネスバッグ ブランド メンズメンズ バッグ 流行シャネルバッグ中古通販40代女性ブランドバッグセリーヌ トートバッグブランドバッグ 買取

ここから本文です

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

www.riollet.jp/

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

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

www.komehyo.jp/

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

ルイヴィトン コインケース の通販商品一覧(2,845件)

120件目

選択条件

  • キーワード
    ルイヴィトン コインケース
AZEAL ペアリング (単品販売)  part.5
__1,98000
AZEAL ペアリング (単品販売)  part.5 
iPhone 5/ 5S 高品質 本革 レトロ調 レザー ケース お手入れシート付き (モスグリーンa)
__1,43000
iPhone 5/ 5S 高品質 本革 レトロ調 レザー ケース お手入れシート付き (モスグリーンa) 
収納抜群 2WAY リュック &ショルダーバッグ 選べる3色
__1,98000
収納抜群 2WAY リュック &ショルダーバッグ 選べる3色 
ギフト ・ 包装 用 オーガンジー 巾着 袋 11 * 16cm 100 枚 無地 (ピンク)
__2,50000
ギフト ・ 包装 用 オーガンジー 巾着 袋 11 * 16cm 100 枚 無地 (ピンク) 
選べる6色 ペンシル タイト スカート ベルト 付き シンプル ひざ丈 ミニ スッキリ
__2,102 - 2,98000
選べる6色 ペンシル タイト スカート ベルト 付き シンプル ひざ丈 ミニ スッキリ 
【α-HOOP】 今夜は メイド or レオタード 黒 ピンク 2色 6点 セット コスチューム 大人 女性 用 (4.ピンク(網タイツ付き))
__2,78000
【α-HOOP】 今夜は メイド or レオタード 黒 ピンク 2色 6点 セット コスチューム 大人 女性 用 (4.ピンク(網タイツ付き)) 
本文はここまでです このページの先頭へ

本田锋范车尾箱垫1366散热器+静音minon乳液日本价格春秋女装套装+欧洲站平底婚鞋女+新娘鞋富安娜床上用品四件套230 240cm咬唇口红小样正品显瘦女装冬装外套 韩版短车脚垫塑料 a6l不锈钢衣架落地+双杆式透明硅胶防水护肤品洗漱化妆包台式电脑键盘保护膜男式破洞补丁牛仔裤韩版松紧婴儿袜子 0-6个月女手游版穿越火线苹果ios号大码男款打底纯色纯棉短袖t恤梳妆台镜子壁挂 欧式薄外套女韩版潮春秋 太空棉女鞋大码41-43单鞋欧美男士收缩毛孔护肤套装拉比内衣 婴儿连体衣护肤品 化妆品套装 丹姿牛仔高腰哈伦小脚裤女女春装连衣裙 花 长袖 收腰红豆羽绒服男 短款 青年新款睡衣女 长袖 春夏 情侣2016春款男童鞋运动鞋卡丁牧马人玩具越野车遥控慧爱富安娜四件套磨毛实木单人床儿童床1米猴子车钥匙挂件+毛绒单人沙发 现代简约 布艺沙发短袖t恤女 学生 蝙蝠衫净化车间地换鞋凳欧式 宜家 布艺钓鱼铅坠怎么调视频多玩我的世界盒子电脑版怎么用聚拢内衣文胸 加厚水袋租个女友吧 百度贴吧毛呢外套女 收腰 韩版 羊绒大衣成人塑料积木3d立体拼图女士春装长袖衬衫2016大衣女童韩版 中大童 羊绒针织毛衣套蕾丝裙两件套书柜定做 移门夜店晚礼服短款 性感 蕾丝奔驰车模 玩具水杯 玻璃杯个性 韩国创意肌肉死飞车架7号充电电池套装 智能被面 婚庆 结婚送礼无钢圈睡眠运动文胸棉外出背包+双肩妈咪包女款冬季棒球服搭配t血女装长袖棉的指甲贴 假指甲 新娘红短刀塔传奇礼包 50钻眉刷 眉毛刷 日本工具未来人类 t5 拆机教程女裤冬+外穿+裤子 高腰公交卡卡套 挂绳春装连衣裙 修身 收腰 性感套装男装夏季 宽松连衣裙灯笼裙冬象棋残局图片及解法冬季呢子大衣男外短款本命年内裤女高腰妈妈 中老年真皮平底鞋女 品牌旗袍短款 夏季 复古 蓝色低帮帆布鞋女纯色学生男童卫衣 冬季 韩版睡衣夏真丝女两件套惠世通usb车载电源转换器单鞋女平底浅口红色原宿风鞋子男+休闲鞋ysl圣罗兰opium香水化妆工具套装全套彩妆内衣套装男 青年 纯棉厚拖鞋 男 夏 软木美琳凯滋润保湿乳霜裤袜春秋 秋冬 打底 性感稻草人女包2015新款钱包短袖礼服连衣蓬蓬裙足球游戏大全2015女韩版休闲商务双肩包冬季女童连衣裙+加绒mcm男士手包正品多少钱电视放柜子效果图2015vivox6plus手机壳硅胶羊毛呢外套女2015新款修身红色套头连帽卫衣女短日本首元去脂肪粒眼霜2015秋季韩版女装毛衣外套搭配图片5s现场管理法及图片劲霸男装毛呢外套新款图片男士风衣修身型外套 长款薄百变益智磁力片积木芭妮兰卸妆乳液韩国袜子女+堆堆袜春+纯色
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