MC百科:中国最大のMinecraft中文MOD百科プラットフォーム
MC百科:中国最大のMinecraft中文MOD百科プラットフォーム紹介
MC百科とは?
MC百科は国内最大のMinecraft中文MOD百科サイトで、2013年に上线し、前身は「我的世界中文频道」です。ここでは最も包括的な中文モッド資料が集められており、モッドの紹介や使用チュートリアル、合成表の検索など、基本的にMCをプレイするために必要な情報はほとんど調べられます。

🛠️ MC百科の機能
モッド百科:Forge/Fabric/NeoForgeを含む大量のモッドを収録。詳しい紹介、対応バージョン、ダウンロードリンクを提供
資料検索:サイト内でモッド、アイテム、ブロック、チュートリアルを簡単に検索可能
合成表の検索:由緒ある機能で、レシピを調べるのに便利
チュートリアル专区:モッドの使い方、設定方法、さらには開発方法まで網羅
整合包专区:2020年に上线したセクション。整合包を探すならここ
サーバーリスト:「找服玩」機能で、 multiplayerをしたいプレイヤー向け
コマンド生成器:コマンドブロックのコマンドをワンクリックで生成し、複数バージョンに対応
コミュニティ交流:項目の編集やコメントでの交流が可能
ゲーム内連携:「MC百科資料検索」モッドを導入すれば、ゲーム内で直接資料を調べられる
🎯 MC百科は誰に向いているか
モッドを遊ぶ人:機能の確認、レシピ調べ、使い方学習に
整合包を作る人:互換性のあるモッド探し、バージョン対応の確認に
サーバーを開く人:サーバー用モッド探し、設定チュートリアル閲覧に
モッド開発者:類似デザインの参考やプレイヤー需要の把握に
初心者:チュートリアルでじっくり学べる
遊びながら調べたい人:対応モッドを導入し、ゲーム内でHOMEキー(旧バージョン)またはGキー(新バージョン)を押すと、直接百科サイトにジャンプできる
📖 MC百科の使い方
ウェブ版:
mcmod.cnを開く
上部の検索バーで調べたいモッドやアイテムを入力
ナビゲーションバーでカテゴリ別に閲覧可能(モッド、チュートリアル、整合包など)
モッドページをクリックして詳細、バージョン、ダウンロードリンクを確認
登録後にコンテンツを編集可能(CC BY-NC-SA 3.0 协议を遵守すること)
ゲーム内(モッドの導入が必要):
基礎版:アイテムを持ってHOME/Gキーを押すと、自動でブラウザが開いて対応ページに移動する
再生成Pro版:照準を合わせるだけで検索でき、ダブルクリックの誤動作防止にも対応。インタラクション距離の調整も可能
❓ 問題が発生した場合
モッドが見つからない? 精确検索を試すか、英語の原名や作者名で検索してみよう
情報が不完全または誤っている? ログイン後に「編集」をクリックして自分で修正するか、編集員にフィードバックを伝えよう
ゲーム内のショートカットキーが反応しない? モッドのバージョンが正しいか、キーの競合がないか、クライアントに導入されているかを確認
開いたら404になる? そのアイテムはまだ誰にも書かれていないので、編集員に補充をお願いしてみよう
モッドの競合は? ページ内の「注意事項」や「互換性」の説明を確認し、関連チュートリアルも検索してみよう
ダウンロードリンクが切れている? 百科では通常 CurseForge、Modrinth など複数のソースを提供しているので、別のものを試してみよう
スマホで見たい? スマホのブラウザから直接アクセス可能で、サードパーティ製のアプリもある
内容を転載したい? CC BY-NC-SA 3.0 协议に従い、著者名表記、非商用、同じ方法での共有を行えばOK
🔗 関連リンク
公式サイト:mcmod.cn
QQグループ:82170277
公式アカウント:B站(ビリビLi)、微博(ウェイボー)ともにあり
対応モッド:MC百科資料検索シリーズ(Forge/Fabric/NeoForge すべて対応)
MC百科は2013年から現在まで十数年にわたって運営されており、中文MC圏のインフラと言える存在です。プレイヤーも開発者も基本的に离不开(离不开=离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开离不开
脚本プランナー▸
AIアプリ
AIニュース