Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $_F=__FILE__;$_X='Pz48P3BocA0KJGM1azRsNWM1a190NXh0PSJodHRwczovL2w0czFucy55NXM0bGsxcj..

Decoded Output download

<?php ?><?php
$cekilecek_text = "https://lisans.yesilkare.com/manuellisans/lisans.txt";
if (!function_exists("file")) {
    die("<strong><a href='http://www.php.net/file'>file</a></strong> fonksiyonu sunucuda yuklu olmalidir<br /> fonction <strong><a href='http://www.php.net/file'>file</a></strong> must be installed on the server");
}
function lisanskontrol() {
    if (substr($_SERVER['HTTP_HOST'], 0, 4) == "www.") {
        $domainadi = substr($_SERVER['HTTP_HOST'], 4);
    } else {
        $domainadi = $_SERVER['HTTP_HOST'];
    }
    return $domainadi;
}
$alanadi = lisanskontrol();
$lisanstext = file($cekilecek_text, FILE_IGNORE_NEW_LINES);
$lisans = array();
foreach ($lisanstext as $sayi => $cekveri) {
    $lisans[$sayi] = rtrim($cekveri, "rn");
}
if (!in_array($alanadi, $lisans)) {
    die("Lisanssiz Kullanim: " . $alanadi . "<br /> Lisan gecersiz <br />
lutfen [email protected] adresine ulasarak lisans aliniz. ");
    exit;
}
?>

<?php echo $header;
$theme_options = $this->registry->get('theme_options');
$config = $this->registry->get('config');
$page_direction = $theme_options->get('page_direction');
include ('catalog/view/theme/' . $config->get('config_template') . '/template/new_elements/wrapper_top.tpl'); ?>

<?php if ($theme_options->get('add_to_cart_sticky') == 1) { ?>  
<div class="sticky-product">
	<div class="container">
		<div class="sticky-image">
			<?php if ($thumb) { ?>
				<img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" itemprop="image" />
			<?php
    } else { ?>
				 <img src="image/no_image.jpg" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" itemprop="image" />
			<?php
    } ?>
		</div>
		
		<div class="sticky-detail">
			<div class="product-name-area">
				<h2 class="product-name"><?php echo $heading_title; ?></h2>
				<div class="price-box">
					<?php if (!$special) { ?>
					<p class="special-price"><span class="price"><?php echo $price; ?></span></p>
					<?php
    } else { ?>
					<p class="old-price"><span class="price"><?php echo $price; ?></span></p>
					<p class="special-price"><span class="price"><?php echo $special; ?></span></p>
					<?php
    } ?>
				</div>
			</div>
			
			<div class="ratings">
				<div class="rating"><i class="fa fa-star<?php if ($rating >= 1) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 2) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 3) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 4) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 5) {
        echo ' active';
    } ?>"></i></div>
			</div>
			
			<p class="availability in-stock"><span>(<?php echo $stock; ?>)</span></p>
		</div>
		
		<div class="add-to-cart">
			<button type="button" data-loading-text="<?php echo $text_loading; ?>" title="<?php echo $button_cart; ?>" id="button-cart2" rel="<?php echo $product_id; ?>" class="button btn-cart"><span><span><i class="fa fa-shopping-cart"></i><?php echo $button_cart; ?></span></span></button>
		</div>
	</div>
</div>
<?php
} ?>

<div itemscope itemtype="http://schema.org/Product">

  <span itemprop="name" class="hidden"><?php echo $heading_title; ?></span>
  <div class="product-info">
  	<div class="row">
  		<div class="col-sm-12">
  			<div class="row" id="quickview_product">
			    <?php if ($theme_options->get('product_image_zoom') != 2) { ?>
			    <script>
			    	$(document).ready(function(){
			    	     if($(window).width() > 992) {
     			    		<?php if ($theme_options->get('product_image_zoom') == 1) { ?>
     			    			$('#image').elevateZoom({
     			    				zoomType: "inner",
     			    				cursor: "pointer",
     			    				zoomWindowFadeIn: 500,
     			    				zoomWindowFadeOut: 750
     			    			});
     			    		<?php
    } else { ?>
     				    		$('#image').elevateZoom({
     								zoomWindowFadeIn: 500,
     								zoomWindowFadeOut: 500,
     								zoomWindowOffetx: 20,
     								zoomWindowOffety: -1,
     								cursor: "pointer",
     								lensFadeIn: 500,
     								lensFadeOut: 500,
     				    		});
     			    		<?php
    } ?>
     			    		
     			    		var z_index = 0;
     			    		
     			    		$(document).on('click', '.open-popup-image', function () {
     			    		  $('.popup-gallery').magnificPopup('open', z_index);
     			    		  return false;
     			    		});
			    		
     			    		$('.thumbnails a, .thumbnails-carousel a').click(function() {
     			    			var smallImage = $(this).attr('data-image');
     			    			var largeImage = $(this).attr('data-zoom-image');
     			    			var ez =   $('#image').data('elevateZoom');	
     			    			$('#ex1').attr('href', largeImage);  
     			    			ez.swaptheimage(smallImage, largeImage); 
     			    			z_index = $(this).index('.thumbnails a, .thumbnails-carousel a');
     			    			return false;
     			    		});
			    		} else {
			    			$(document).on('click', '.open-popup-image', function () {
			    			  $('.popup-gallery').magnificPopup('open', 0);
			    			  return false;
			    			});
			    		}
			    	});
			    </script>
			    <?php
} ?>
			    <?php $image_grid = 5;
$product_center_grid = 7;
if ($theme_options->get('product_image_size') == 1) {
    $image_grid = 4;
    $product_center_grid = 8;
}
if ($theme_options->get('product_image_size') == 3) {
    $image_grid = 8;
    $product_center_grid = 4;
}
?>
			    <div class="col-sm-<?php echo $image_grid; ?> popup-gallery">
			      <?php
$product_image_top = $modules->getModules('product_image_top');
if (count($product_image_top)) {
    foreach ($product_image_top as $module) {
        echo $module;
    }
} ?>
			         
			      <div class="row">
			      	  <?php if (($images || $theme_options->get('product_image_zoom') != 2) && $theme_options->get('position_image_additional') == 2) { ?>
			      	  <div class="col-sm-2">
						<div class="thumbnails thumbnails-left clearfix">
							<ul>
							  <?php if ($theme_options->get('product_image_zoom') != 2 && $thumb) { ?>
						      <li><p><a href="<?php echo $popup; ?>" class="popup-image" data-image="<?php echo $thumb; ?>" data-zoom-image="<?php echo $popup; ?>"><img src="<?php echo $theme_options->productImageThumb($product_id, $config->get('config_image_additional_width'), $config->get('config_image_additional_height')); ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></p></li>
							  <?php
    } ?>
						      <?php foreach ($images as $image) { ?>
						      <li><p><a href="<?php echo $image['popup']; ?>" class="popup-image" data-image="<?php echo $image['popup']; ?>" data-zoom-image="<?php echo $image['popup']; ?>"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></p></li>
						      <?php
    } ?>
						  </ul>
						</div>
			      	  </div>
			      	  <?php
} ?>
			      	  
				      <div class="col-sm-<?php if ($theme_options->get('position_image_additional') == 2) {
    echo 10;
} else {
    echo 12;
} ?>">
				      	<?php if ($thumb) { ?>
					      <div class="product-image <?php if ($theme_options->get('product_image_zoom') != 2) {
        if ($theme_options->get('product_image_zoom') == 1) {
            echo 'inner-cloud-zoom';
        } else {
            echo 'cloud-zoom';
        }
    } ?>">
					      	 <?php if ($special && $theme_options->get('display_text_sale') != '0') { ?>
					      	 	<?php $text_sale = 'Sale';
        if ($theme_options->get('sale_text', $config->get('config_language_id')) != '') {
            $text_sale = $theme_options->get('sale_text', $config->get('config_language_id'));
        } ?>
					      	 	<?php if ($theme_options->get('type_sale') == '1') { ?>
					      	 	<?php $product_detail = $theme_options->getDataProduct($product_id);
            $roznica_ceny = $product_detail['price'] - $product_detail['special'];
            $procent = ($roznica_ceny * 100) / $product_detail['price']; ?>
					      	 	<div class="onsale">-<?php echo round($procent); ?>%</div>
					      	 	<?php
        } else { ?>
					      	 	<div class="onsale"><?php echo $text_sale; ?></div>
					      	 	<?php
        } ?>
					      	 <?php
    } ?>
					      	 
					      	 <?php if ($theme_options->get('display_text_new') != '0' && $theme_options->isLatestProduct($product_id)) { ?>
					      	 	 <div class="onhot"><?php if ($theme_options->get('new_text', $config->get('config_language_id')) != '') {
            echo $theme_options->get('new_text', $config->get('config_language_id'));
        } else {
            echo 'New';
        } ?></div>
					      	 <?php
    } ?>
					      	 
					     	 <a href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>" id="ex1" <?php if ($theme_options->get('product_image_zoom') == 2) { ?>class="popup-image"<?php
    } else {
        echo 'class="open-popup-image"';
    } ?>><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" itemprop="image" data-zoom-image="<?php echo $popup; ?>" /></a>
					      </div>
					  	 <?php
} else { ?>
					  	 <div class="product-image">
					  	 	 <img src="image/no_image.jpg" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" id="image" itemprop="image" />
					  	 </div>
					  	 <?php
} ?>
				      </div>
				      
				      <?php if (($images || $theme_options->get('product_image_zoom') != 2) && $theme_options->get('position_image_additional') != 2) { ?>
				      <div class="col-sm-12">
				           <div class="overflow-thumbnails-carousel">
     					      <div class="thumbnails-carousel owl-carousel">
     					      	<?php if ($theme_options->get('product_image_zoom') != 2 && $thumb) { ?>
     					      	     <div class="item"><a href="<?php echo $popup; ?>" class="popup-image" data-image="<?php echo $thumb; ?>" data-zoom-image="<?php echo $popup; ?>"><img src="<?php echo $theme_options->productImageThumb($product_id, $config->get('config_image_additional_width'), $config->get('config_image_additional_height')); ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></div>
     					      	<?php
    } ?>
     						     <?php foreach ($images as $image) { ?>
     						         <div class="item"><a href="<?php echo $image['popup']; ?>" class="popup-image" data-image="<?php echo $image['popup']; ?>" data-zoom-image="<?php echo $image['popup']; ?>"><img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></div>
     						     <?php
    } ?>
     					      </div>
					      </div>
					      
					      <script type="text/javascript">
					           $(document).ready(function() {
					             $(".thumbnails-carousel").owlCarousel({
					                 autoPlay: 6000, //Set AutoPlay to 3 seconds
					                 navigation: true,
					                 navigationText: ['', ''],
					                 items: 4,
					                 <?php if ($page_direction[$config->get('config_language_id') ] == 'RTL'): ?>
					                 rtl: true,
					                 <?php
    endif; ?>
					                 margin: 10,
					             });
					           });
					      </script>
				      </div>
				      <?php
} ?>
			      </div>
			      
			      <?php
$product_image_bottom = $modules->getModules('product_image_bottom');
if (count($product_image_bottom)) {
    foreach ($product_image_bottom as $module) {
        echo $module;
    }
} ?>
			    </div>

			    <div class="col-sm-<?php echo $product_center_grid; ?> product-center clearfix">
			     <div itemprop="offerDetails" itemscope itemtype="http://schema.org/Offer">
			     <?php if ($theme_options->get('product_breadcrumb') != '2') { ?>
				      <?php $product_prev_next = $theme_options->getNextPrevProduct($product_id); ?>
				      <div class="prev-next-products">
				      <?php if (is_array($product_prev_next['prev'])) { ?>
				      		<div class="product-nav product-prev">
				      			<a href="<?php echo $product_prev_next['prev']['href']; ?>" title="Previous Product"><i class="fa fa-chevron-left" aria-hidden="true"></i></a>
				      			<div class="product-pop theme-border-color">
				      				<img src="<?php echo $product_prev_next['prev']['thumb']; ?>" alt="Previous">
				      				<h3 class="product-name"><?php echo $product_prev_next['prev']['name']; ?></h3>
				      			</div>
				      		</div>
				      <?php
    } ?>
				      
				       <?php if (is_array($product_prev_next['next'])) { ?>
				            	<div class="product-nav product-next">
				            		<a href="<?php echo $product_prev_next['next']['href']; ?>" title="Previous Product"><i class="fa fa-chevron-right" aria-hidden="true"></i></a>
				            		<div class="product-pop theme-border-color">
				            			<img src="<?php echo $product_prev_next['next']['thumb']; ?>" alt="Previous">
				            			<h3 class="product-name"><?php echo $product_prev_next['next']['name']; ?></h3>
				            		</div>
				            	</div>
				       <?php
    } ?>
				      </div>
			      <?php
} ?>

			      <h2 class="product-title"><?php echo $heading_title; ?></h2>
			      <?php if ($review_status) { ?>
			      <div class="review">
			      	<?php if ($rating > 0) { ?>
			      	<span itemprop="review" class="hidden" itemscope itemtype="http://schema.org/Review-aggregate">
			      		<span itemprop="itemreviewed"><?php echo $heading_title; ?></span>
			      		<span itemprop="rating"><?php echo $rating; ?></span>
			      		<span itemprop="votes"><?php preg_match_all('/\(([0-9]+)\)/', $tab_review, $wyniki);
        if (isset($wyniki[1][0])) {
            echo $wyniki[1][0];
        } else {
            echo 0;
        } ?></span>
			      	</span>
			      	<?php
    } ?>
			        <div class="rating"><i class="fa fa-star<?php if ($rating >= 1) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 2) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 3) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 4) {
        echo ' active';
    } ?>"></i><i class="fa fa-star<?php if ($rating >= 5) {
        echo ' active';
    } ?>"></i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click'); $('html, body').animate({scrollTop:$('#tab-review').offset().top}, '500', 'swing');"><?php echo $reviews; ?></a>&nbsp;&nbsp;|&nbsp;&nbsp;<a onclick="$('a[href=\'#tab-review\']').trigger('click'); $('html, body').animate({scrollTop:$('#tab-review').offset().top}, '500', 'swing');"><?php echo $text_write; ?></a></div>
			      </div>
			      <?php
} ?>
			        
			      <?php
$product_options_top = $modules->getModules('product_options_top');
if (count($product_options_top)) {
    foreach ($product_options_top as $module) {
        echo $module;
    }
} ?>
			      <div class="description">
			        <?php if ($manufacturer) { ?>
			        <span><?php echo $text_manufacturer; ?></span> <a href="<?php echo $manufacturers; ?>" itemprop="brand"><?php echo $manufacturer; ?></a><br />
			        <?php
} ?>
			        <span><?php echo $text_model; ?></span> <?php echo $model; ?><br />
			        <?php if ($reward) { ?>
			        <span><?php echo $text_reward; ?></span> <?php echo $reward; ?><br />
			        <?php
} ?>
			        <span><?php echo $text_stock; ?></span> <?php echo $stock; ?></div>
			      
			      <?php if ($theme_options->get('position_product_tabs') == 3) { ?>  
			        <?php
    $language_id = $config->get('config_language_id');
    $tabs = array();
    $tabs[] = array('heading' => $tab_description, 'content' => 'description', 'sort' => 1);
    if ($attribute_groups) {
        $tabs[] = array('heading' => $tab_attribute, 'content' => 'attribute', 'sort' => 3);
    }
    if ($review_status) {
        $tabs[] = array('heading' => $tab_review, 'content' => 'review', 'sort' => 5);
    }
    if (is_array($config->get('product_tabs'))) {
        foreach ($config->get('product_tabs') as $tab) {
            if ($tab['status'] == 1 || $tab['product_id'] == $product_id) {
                foreach ($tab['tabs'] as $zakladka) {
                    if ($zakladka['status'] == 1) {
                        $heading = false;
                        $content = false;
                        if (isset($zakladka[$language_id])) {
                            $heading = $zakladka[$language_id]['name'];
                            $content = html_entity_decode($zakladka[$language_id]['html']);
                        }
                        $tabs[] = array('heading' => $heading, 'content' => $content, 'sort' => $zakladka['sort_order']);
                    }
                }
            }
        }
    }
    usort($tabs, "cmp_by_optionNumber");
?>
			        <div class="product-tab" role="tabpanel">
			        <ul class="nav nav-tabs" role="tablist">
			        	<?php $i = 0;
    foreach ($tabs as $tab) {
        $i++;
        $id = 'tab_' . $i;
        if ($tab['content'] == 'description') {
            $id = 'tab-description';
        }
        if ($tab['content'] == 'attribute') {
            $id = 'tab-attribute';
        }
        if ($tab['content'] == 'review') {
            $id = 'tab-review';
        }
        $class = false;
        if ($i == 1) {
            $class = 'class="active"';
            $new_active = $id;
        }
        echo '<li role="presentation" ' . $class . '><a href="#' . $id . '" aria-controls="' . $id . '" role="tab" data-toggle="tab">' . $tab['heading'] . '</a></li>';
    } ?>
			        </ul>
			        <div class="tab-content">
			        <?php $i = 0;
    foreach ($tabs as $tab) {
        $i++;
        $id = 'tab_' . $i;
        if ($tab['content'] != 'description' && $tab['content'] != 'attribute' && $tab['content'] != 'review') {
            echo '<div id="' . $id . '" class="tab-pane';
            if ($new_active == $id) {
                echo ' active';
            }
            echo '" role="tabpanel">' . $tab['content'] . '</div>';
        }
    } ?>
			       <div role="tabpanel" class="tab-pane <?php if ($new_active == 'tab-description') {
        echo 'active';
    } ?>" id="tab-description" itemprop="description"><?php echo $description; ?></div>
			        <?php if ($attribute_groups) { ?>
			        <div role="tabpanel" class="tab-pane" id="tab-attribute">
			          <table class="attribute" cellspacing="0">
			            <?php foreach ($attribute_groups as $attribute_group) { ?>
			            <thead>
			              <tr>
			                <td colspan="2"><?php echo $attribute_group['name']; ?></td>
			              </tr>
			            </thead>
			            <tbody>
			              <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
			              <tr>
			                <td><?php echo $attribute['name']; ?></td>
			                <td><?php echo $attribute['text']; ?></td>
			              </tr>
			              <?php
            } ?>
			            </tbody>
			            <?php
        } ?>
			          </table>
			        </div>
			        <?php
    } ?>
			        <?php if ($review_status) { ?>
			        <div id="tab-review" class="tab-pane" role="tabpanel">
			      	<form class="form-horizontal" id="form-review">
			      	  <div id="review"></div>
			      	  <h2><?php echo $text_write; ?></h2>
			      	  <?php if ($review_guest) { ?>
			      	  <div class="form-group required">
			      	    <div class="col-sm-12">
			      	      <label class="control-label" for="input-name"><?php echo $entry_name; ?></label>
			      	      <input type="text" name="name" value="" id="input-name" class="form-control" />
			      	    </div>
			      	  </div>
			      	  <div class="form-group required">
			      	    <div class="col-sm-12">
			      	         <label class="control-label"><?php echo $entry_rating; ?></label>
			      	        
			      	       <div class="rating set-rating">
			      	          <i class="fa fa-star" data-value="1"></i>
			      	          <i class="fa fa-star" data-value="2"></i>
			      	          <i class="fa fa-star" data-value="3"></i>
			      	          <i class="fa fa-star" data-value="4"></i>
			      	          <i class="fa fa-star" data-value="5"></i>
			      	      </div>
			      	      <script type="text/javascript">
			      	          $(document).ready(function() {
			      	            $('.set-rating i').hover(function(){
			      	                var rate = $(this).data('value');
			      	                var i = 0;
			      	                $('.set-rating i').each(function(){
			      	                    i++;
			      	                    if(i <= rate){
			      	                        $(this).addClass('active');
			      	                    }else{
			      	                        $(this).removeClass('active');
			      	                    }
			      	                })
			      	            })
			      	            
			      	            $('.set-rating i').mouseleave(function(){
			      	                var rate = $('input[name="rating"]:checked').val();
			      	                rate = parseInt(rate);
			      	                i = 0;
			      	                  $('.set-rating i').each(function(){
			      	                    i++;
			      	                    if(i <= rate){
			      	                        $(this).addClass('active');
			      	                    }else{
			      	                        $(this).removeClass('active');
			      	                    }
			      	                  })
			      	            })
			      	            
			      	            $('.set-rating i').click(function(){
			      	                $('input[name="rating"]:nth('+ ($(this).data('value')-1) +')').prop('checked', true);
			      	            });
			      	          });
			      	      </script>
			      	      <div class="hidden">
			      	         &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp;
			      	         <input type="radio" name="rating" value="1" />
			      	         &nbsp;
			      	         <input type="radio" name="rating" value="2" />
			      	         &nbsp;
			      	         <input type="radio" name="rating" value="3" />
			      	         &nbsp;
			      	         <input type="radio" name="rating" value="4" />
			      	         &nbsp;
			      	         <input type="radio" name="rating" value="5" />
			      	         &nbsp;<?php echo $entry_good; ?>
			      	      </div>
			      	   </div>
			      	  </div>
			      	  
			      	  <div class="form-group required">
			      	    <div class="col-sm-12">
			      	      <label class="control-label" for="input-review"><?php echo $entry_review; ?></label>
			      	      <textarea name="text" rows="5" id="input-review" class="form-control"></textarea>
			      	      <div class="help-block"><?php echo $text_note; ?></div>
			      	    </div>
			      	  </div>
			      	  <?php echo $captcha; ?>
			      	  <div class="buttons clearfix" style="margin-bottom: 0px">
			      	    <div class="pull-right">
			      	      <button type="button" id="button-review" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $button_continue; ?></button>
			      	    </div>
			      	  </div>
			      	  <?php
        } else { ?>
			      	  <?php echo $text_login; ?>
			      	  <?php
        } ?>
			      	</form>
			        </div>
			        <?php
    } ?>
			        </div>
			       </div>
			      <?php
} ?>
			      
			      <?php if ($price) { ?>
			      <div class="price">
			        <?php if (!$special) { ?>
			        <span class="price-new"><span itemprop="price" id="price-old"><?php echo $price; ?></span></span>
			        <?php
    } else { ?>
			        <span class="price-new"><span itemprop="price" id="price-special"><?php echo $special; ?></span></span> <span class="price-old" id="price-old"><?php echo $price; ?></span>
			        <?php
    } ?>
			        <br />
			        <?php if ($tax) { ?>
			        <span class="price-tax"><?php echo $text_tax; ?> <span id="price-tax"><?php echo $tax; ?></span></span><br />
			        <?php
    } ?>
			        <?php if ($points) { ?>
			        <span class="reward"><small><?php echo $text_points; ?> <?php echo $points; ?></small></span><br />
			        <?php
    } ?>
			        <?php if ($discounts) { ?>
			        <br />
			        <div class="discount">
			          <?php foreach ($discounts as $discount) { ?>
			          <?php echo $discount['quantity']; ?><?php echo $text_discount; ?><?php echo $discount['price']; ?><br />
			          <?php
        } ?>
			        </div>
			        <?php
    } ?>
			      </div>
			      <?php
} ?>
			     </div>
			     
			     <div id="product">
			      <?php
$product_options_center = $modules->getModules('product_options_center');
if (count($product_options_center)) {
    foreach ($product_options_center as $module) {
        echo $module;
    }
} ?>
			      		    <div style="border-right:1px solid #FF0000; border-left:1px solid #FF0000; border-top:1px solid #FF0000; border-bottom:1px solid #FF0000; padding:10px; margin:10px 0;">
			T&#252;m stor ve zebra perde modellerinde girmi&#351; oldu&#287;unuz &#246;l&#231;&#252;ler mekanizma dahil net &#246;l&#231;&#252;lerdir. Kuma&#351; kesim paylar&#305; nedeniyle girdi&#287;iniz &#246;l&#231;&#252;den 4 cm dar &#252;retilmektedir.
		</div>
				<div class="perde-olcu">
              <ul>
                  <?php if ($urun_tip == "stor" || $urun_tip == "jaluzi") { ?>
                  <li>
                      <span>En giriniz</span>
                      <select name="option[en]" id="sen">
                          <option value="0">-- se&#231;iniz --</option>
                          <?php for ($i = 30;$i <= $en;$i++) { ?>
                          <option value="<?php echo $i; ?>"><?php echo $i; ?> cm</option>
                          <?php
    } ?>
                      </select>
                  </li>


                  <li>
                      <span>Boy giriniz</span>
                      <select name="option[boy]" id="sboy">
                          <option value="0">-- se&#231;iniz --</option>
                          <?php for ($i = 30;$i <= $boy;$i++) { ?>
                          <option value="<?php echo $i; ?>"><?php echo $i; ?> cm</option>
                          <?php
    } ?>
                      </select>
                  </li>





              <?php
} else if ($urun_tip == "perde") { ?>
                  <li>
                      <span>En giriniz</span>
                      <select name="option[en]" id="pen">
                          <option value="0">-- se&#231;iniz --</option>
                          <?php for ($i = 30;$i <= $en;$i++) { ?>
                          <option value="<?php echo $i; ?>"><?php echo $i; ?> cm</option>
                          <?php
    } ?>
                      </select>
                  </li>


                  <li>
                      <span>Boy giriniz</span>
                      <select name="option[boy]" id="pboy">
                          <option value="0">-- se&#231;iniz --</option>
                          <?php for ($i = 180;$i <= $boy;$i++) { ?>
                          <option value="<?php echo $i; ?>"><?php echo $i; ?> cm</option>
                          <?php
    } ?>
                      </select>
                  </li>
                  <li>
                      <span>Pile s&#305;kl&#305;&#287;&#305;</span>
                      <select name="option[pile]" id="ppile">
                          <option value="2.5">Seyrek</option>
						  <option value="2.75">Orta</option>
                          <option value="3">S&#305;k</option>

                      </select>
                  </li>

                  <?php
} else if ($urun_tip == "rustik") { ?>

                  <li>
                      <span>Ebat se&#231;iniz</span>
                      <select name="option[rustik]" id="pebat">
                          <option value="0">-- se&#231;iniz --</option>
                          <option value="100">100 cm</option>
                          <option value="150">150 cm</option>
                          <option value="200">200 cm</option>
                          <option value="250">250 cm</option>
                          <option value="300">300 cm</option>
                      </select>
                  </li>

                  <?php
} else if ($urun_tip == "varak") { ?>

                  <li>
                      <span>Ebat se&#231;iniz</span>
                      <select name="option[varak]" id="pebat">
                          <option value="0">-- se&#231;iniz --</option>
                          <option value="55">55 cm'e kadar</option>
                          <option value="105">105 cm'e kadar</option>
                          <option value="155">155 cm'e kadar</option>
                          <option value="205">205 cm'e kadar</option>
                          <option value="280">280 cm'e kadar</option>
                      </select>
                  </li>

                  <?php
} ?>


              </ul>
          </div>


          <input type="hidden" name="toplam-hesap" id="toplam-hesap" value=""/>

          <script type="text/javascript">
              

              $('#sen').change(function (){
                  var en = $('#sen').val();
                  var boy = $('#sboy').val();
				 	if (boy<=200){
					  boy = 200;
					}else{
						var bsay = boy.substr(1, 2);
						var bson = boy.substr(2,2);
						if (bson!=0) {
							bson = 10 - bson;
							boy = parseInt(boy) + parseInt(bson);
						}
					}
					if (en<=100){
					  en = 100;
					}else{
						var esay = en.substr(1, 2);
						var eson = en.substr(2,2);
						if (eson!=0) {
							eson = 10 - eson;
							en = parseInt(en) + parseInt(eson);
						}
					}

                  if (boy > 0){
                      var adet = $('input[name="quantity"]').val();
                      metre= (en*boy*adet)/10000; 
					  metre=metre.toFixed(2);
                      $('#perde-hesap').html("");
                  <?php if (!$special) { ?>
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($fiyat, 0, -2)); ?>);						  
                          sonuc=sonuc.toFixed(2);
                      <?php
} else { ?>
							
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($kampanya, 0, -2)); ?>);	
						  
                          sonuc=sonuc.toFixed(2);
						  
                      <?php
} ?>
                     
                      $('input#toplam-hesap').val(sonuc);
					  if ($('#sboy').val()>0){
							$('#perde-hesap').addClass('perde-hesap');
							$('#perde-hesap').append('Ebat&#305;n&#305;z <span id="metre">' + metre + '</span> m<sup>2</sup>, Toplam Tutar <span id="fiyat">' + sonuc + '</span> TL + KDV');
					  }
                  }

              });

              $('#sboy').change(function (){
                  var en = $('#sen').val();
                  var boy = $('#sboy').val();
				 	if (boy<=200){
					  boy = 200;
					}else{
						var bsay = boy.substr(1, 2);
						var bson = boy.substr(2,2);
						if (bson!=0) {
							bson = 10 - bson;
							boy = parseInt(boy) + parseInt(bson);
						}
						
					}
					
					if (en<=100){
					  en = 100;
					}else{
						var esay = en.substr(1, 2);
						var eson = en.substr(2,2);
						if (eson!=0) {
							eson = 10 - eson;
							en = parseInt(en) + parseInt(eson);
						}
					}				  
					  if (en > 0){
                      var adet = $('input[name="quantity"]').val();
					 /* if (en>100 && en<200){
						  en = 200;
					  }
					  if (en>200 && en<300){
						  en = 300;
					  }
					  if (en>300 && en<400){
						  en = 400;
					  }
					  alert("en "+en+" esay "+esay+" eson "+eson);
					  alert("boy "+boy+" bsay "+bsay+" bson "+bson);*/
                      metre= (en*boy*adet)/10000; 
					  metre=metre.toFixed(2);
                      $('#perde-hesap').html("");
                  <?php if (!$special) { ?>
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($fiyat, 0, -2)); ?>);						  
                          sonuc=sonuc.toFixed(2);
                      <?php
} else { ?>
							
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($kampanya, 0, -2)); ?>);	
						  
                          sonuc=sonuc.toFixed(2);
						  
                      <?php
} ?>
                      $('input#toplam-hesap').val(sonuc);
                      
					  if ($('#sen').val()>0){
							$('#perde-hesap').addClass('perde-hesap');
							$('#perde-hesap').append('Ebat&#305;n&#305;z <span id="metre">' + metre + '</span> m<sup>2</sup>, Toplam Tutar <span id="fiyat">' + sonuc + '</span> TL + KDV');
					  }
                  }

              });


              $('#pen').change(function (){
                  var en = $('#pen').val();
                  var boy = $('#pboy').val();
                  var pile = $('#ppile').val();
                  if (boy > 0){
                      var adet = $('input[name="quantity"]').val();
                      metre= (en*1*adet*pile)/100;
                      $('#perde-hesap').html("");
                 <?php if (!$special) { ?>
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($fiyat, 0, -2)); ?>);						  
                          sonuc=sonuc.toFixed(2);
                      <?php
} else { ?>
							
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($kampanya, 0, -2)); ?>);	
						  
                          sonuc=sonuc.toFixed(2);
						  
                      <?php
} ?>
                      
                      $('#toplam-hesap').val(sonuc);
					  if($('#pboy').val()>0){
							$('#perde-hesap').addClass('perde-hesap');
							$('#perde-hesap').append('Ebat&#305;n&#305;z <span id="metre">' + metre + '</span> mt, Toplam Tutar <span id="fiyat">' + sonuc + '</span> TL + KDV');
					  }
                  }

              });
              $('#pboy').change(function (){
                  var en = $('#pen').val();
                  var boy = $('#pboy').val();
                  var pile = $('#ppile').val();
                  if (en > 0){
                      var adet = $('input[name="quantity"]').val();
                      metre= (en*1*adet*pile)/100;
                      $('#perde-hesap').html("");
                 <?php if (!$special) { ?>
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($fiyat, 0, -2)); ?>);						  
                          sonuc=sonuc.toFixed(2);
                      <?php
} else { ?>
							
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($kampanya, 0, -2)); ?>);	
						  
                          sonuc=sonuc.toFixed(2);
						  
                      <?php
} ?>
                      $('#toplam-hesap').val(sonuc);
                      
					  if ($('#pen').val()>0){
							$('#perde-hesap').addClass('perde-hesap');
							$('#perde-hesap').append('Ebat&#305;n&#305;z <span id="metre">' + metre + '</span> mt, Toplam Tutar <span id="fiyat">' + sonuc + '</span> TL + KDV');
					  }
                  }

              });
              $('#ppile').change(function (){
                  var en = $('#pen').val();
                  var boy = $('#pboy').val();
                  var pile = $('#ppile').val();
                  if (en > 0){
                      var adet = $('input[name="quantity"]').val();
                      metre= (en*1*adet*pile)/100;
                      $('#perde-hesap').html("");
                  <?php if (!$special) { ?>
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($fiyat, 0, -2)); ?>);						  
                          sonuc=sonuc.toFixed(2);
                      <?php
} else { ?>
							
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($kampanya, 0, -2)); ?>);	
						  
                          sonuc=sonuc.toFixed(2);
						  
                      <?php
} ?>
                      $('#toplam-hesap').val(sonuc);
                      $('#perde-hesap').addClass('perde-hesap');
                      $('#perde-hesap').append('Ebat&#305;n&#305;z <span id="metre">' + metre + '</span> mt, Toplam Tutar <span id="fiyat">' + sonuc + '</span> TL + KDV');
                  }

              });

              $('#pebat').change(function (){
                  var ebat = $('#pebat').val();

                  if (ebat > 0){
                      var adet = $('input[name="quantity"]').val();
                      metre= (ebat*adet)/100;
                      $('#perde-hesap').html("");
                   <?php if (!$special) { ?>
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($fiyat, 0, -2)); ?>);						  
                          sonuc=sonuc.toFixed(2);
                      <?php
} else { ?>
							
                          sonuc= (metre*<?php echo str_replace(",", ".", substr($kampanya, 0, -2)); ?>);	
						  
                          sonuc=sonuc.toFixed(2);
						  
                      <?php
} ?>
                      $('#toplam-hesap').val(sonuc);
                      $('#perde-hesap').addClass('perde-hesap');
                      $('#perde-hesap').append('Ebat&#305;n&#305;z <span id="metre">' + ebat*adet + '</span> cm, Toplam Tutar <span id="fiyat">' + sonuc + '</span> TL + KDV');
                  }

              });
          </script>
		
		  <?php if ($options) { ?>
    <script>
        function sayfala(sayfa,id,islem){

            var sorgu= $("input[type='radio'][name='option["+id+"]']:checked").val();
				
                if (islem == '+') {
                    if (sorgu=="") { $('#sepete-ekle').trigger('click'); }else {
                        $('.adim' + sayfa).hide();
                        $('.adim' + (parseInt(sayfa) + 1)).show();
                    }
                } else {
                    $('.adim' + sayfa).hide();
                    $('.adim' + (parseInt(sayfa) - 1)).show();
                }

        }

    </script>
    <div id="fbfancy" style="display: none;">


    <div id="secenekler">
      <div id="options" class="options">
        <?php $xj = 0;
    foreach ($options as $sayfa) {
        $sayfa_say[] = $sayfa['sayfa'];
    }
    $sayfalandirma = max($sayfa_say);
    $sayfalar = count($options);
    foreach ($options as $option) { ?>
        <?php if ($option['type'] == 'select') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option option-<?php echo $option['type']; ?>">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <select name="option[<?php echo $option['product_option_id']; ?>]">
            <option value=""><?php echo $text_select; ?></option>
            <?php foreach ($option['product_option_value'] as $option_value) { ?>
            <option value="<?php echo $option_value['product_option_value_id']; ?>" data-image="<?php echo $option_value['image']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php
                } ?>
            </option>
            <?php
            } ?>
          </select>
        </div>

        <?php
        } ?>
        <?php if ($option['type'] == 'radio') { ?>
          <div id="option-<?php echo $option['product_option_id']; ?>" data-sayfa="<?php echo $option['sayfa']; ?>" class="option option-<?php echo $option['type']; ?>  adim<?php echo $option['sayfa']; ?>">
            
			  
              <div style="clear:both;"></div>

              <div style="width:100%; padding-top:5px; margin-bottom:10px; border-bottom:1px dashed #ccc;">
                  <span class="lightyazisb"><b><?php echo $option['name']; ?></b></span>
              </div>
            <ul id="option-sec">

          <?php $ix = 1;
            foreach ($option['product_option_value'] as $option_value) { ?>
                <li>
					<div class="list">
						<label for="option-value-<?php echo $option_value['product_option_value_id']; ?>">
						  <img src="<?php echo $option_value['image']; ?>" width="100%" height="100" alt="<?php echo $option_value['name']; ?>"  style="height: 100px ! important; margin-bottom:-5px;" />
						</label>
					</div>
					<div class="label-title">
					<input style="float: left" data-price="" type="radio" <?php echo ($ix == 1) ? "checked" : ""; ?> name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" data-image="<?php echo $option_value['image']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
                   <b><?php echo $option_value['name']; ?>
                    <?php if ($option_value['price']) { ?>
                    (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                    <?php
                } ?>
                    </b>
                    </div>
          </li>
          <?php $ix++;
                $xj++;
            } ?>
            </ul>
			<div style="clear:both;"></div>
			 <?php
            if ($option['sayfa_baslik'] == 1) { ?>			 
				<div >
					  <div style="float:right;margin-left:5px;width:49%">
						  <?php if ($option['sayfa'] == $sayfalandirma) { ?>
						  <button id="sepete-ekle" class="btn-evyellow" name="SepeteAt">Sepete Ekle</button>                  
						  <?php
                } else { ?>
						  <button onclick="sayfala('<?php echo $option['sayfa']; ?>','<?php echo $option['product_option_id']; ?>','+');" name="DevamEt"  class="btn-evyellow">Devam Et</button>
						  <?php
                } ?>
					  </div>
					  <?php if ($option['sayfa'] > 1) { ?>
					  <div style="float:right;width:49%">
						  <button onclick="sayfala('<?php echo $option['sayfa']; ?>','<?php echo $option['product_option_id']; ?>','-');" name="GeriDon"  class="btn-evblue">Geri D&#246;n</button>
					  </div>
					  <?php
                } else { ?> 
					   <div style="float:right;width:49%">
						  <button onclick="$.fancybox.close();" name="GeriDon"  class="btn-evblue">Kapat</button>
					  </div>					  					 
					  <?php
                } ?>
				</div>
				  <?php
            } ?>
        </div>

          <?php
        } ?>
        <?php if ($option['type'] == 'checkbox') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option option-<?php echo $option['type']; ?>">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <?php foreach ($option['product_option_value'] as $option_value) { ?>
          <input type="checkbox" name="option[<?php echo $option['product_option_id']; ?>][]" value="<?php echo $option_value['product_option_value_id']; ?>" data-image="<?php echo $option_value['image']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" />
          <label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
            <?php if ($option_value['price']) { ?>
            (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
            <?php
                } ?>
          </label>
          <br />
          <?php
            } ?>
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'image') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option option-<?php echo $option['type']; ?>">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <table class="option-image">
            <?php $ix = 1;
            foreach ($option['product_option_value'] as $option_value) { ?>
            <tr>
              <td style="width: 1px;">
                  <input type="radio" name="option[<?php echo $option['product_option_id']; ?>]"    value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" width="220" height="100" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                  <?php if ($option_value['price']) { ?>
                  (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                  <?php
                } ?>
                </label></td>
            </tr>
            <?php $ix++;
            } ?>
          </table>
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'text') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['product_option_value']; ?>" />
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'textarea') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <textarea name="option[<?php echo $option['product_option_id']; ?>]" cols="40" rows="5"><?php echo $option['product_option_value']; ?></textarea>
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'file') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="button" value="<?php echo $button_upload; ?>" id="button-option-<?php echo $option['product_option_id']; ?>" class="button">
          <input type="hidden" name="option[<?php echo $option['product_option_id']; ?>]" value="" />
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'date') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['product_option_value']; ?>" class="date" />
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'datetime') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['product_option_value']; ?>" class="datetime" />
        </div>
        <br />
        <?php
        } ?>
        <?php if ($option['type'] == 'time') { ?>
        <div id="option-<?php echo $option['product_option_id']; ?>" class="option">
          <?php if ($option['required']) { ?>
          <span class="required">*</span>
          <?php
            } ?>
          <b><?php echo $option['name']; ?>:</b><br />
          <input type="text" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option['product_option_value']; ?>" class="time" />
        </div>
        <br />
        <?php
        } ?>
        <?php
    } ?>
      </div>
    </div>
  </div>
      <?php
} ?>
		
			      <?php if ($recurrings) { ?>
			      <div class="options">
			          <h2><?php echo $text_payment_recurring ?></h2>
			          <div class="form-group required">
			            <select name="recurring_id" class="form-control">
			              <option value=""><?php echo $text_select; ?></option>
			              <?php foreach ($recurrings as $recurring) { ?>
			              <option value="<?php echo $recurring['recurring_id'] ?>"><?php echo $recurring['name'] ?></option>
			              <?php
    } ?>
			            </select>
			            <div class="help-block" id="recurring-description"></div>
			          </div>
			      </div>
			      <?php
} ?>
			      
			      <div class="cart">
			        	<div id="perde-hesap">
		
		</div>
		<input id="sayfa-no" value="1" type="hidden">
		   <div class="form-group">
              <label class="control-label" for="input-quantity"><?php echo $entry_qty; ?></label>
              <input type="text" name="quantity" value="<?php echo $minimum; ?>" size="2" id="input-quantity" class="form-control" />
              <input type="hidden" name="product_id" value="<?php echo $product_id; ?>" />
              <br />
           <input type="button" onclick="popup_ac()" value="<?php echo $button_cart; ?>" id="button-cart" class="button" class="btn btn-primary btn-lg btn-block" />
		   	   <a class="fancybox" href="#fbfancy"></a>
			<a class="fancyboxx" href="#after-sayfa" style="display:none;"></a>
			
		<div id="after-sayfa" style="display: none;height: 35px; width: 100%; position: absolute; bottom: 10px;">
            <a onclick="window.location.replace('index.php')" class="btn-evblue" style="width:50%;float:left">Al&#305;&#351;veri&#351;e Devam Et</a>
            <a onclick="window.location.replace('index.php?route=checkout/cart')" class="btn-evyellow" style="width:50%;float:left">Sepete Git</a>
        </div>
        
          <script>
          function kontrol() {
              var sen = $('#sen').val();
              var sboy = $('#sboy').val();
              var en = $('#pen').val();
              var boy = $('#pboy').val();
              var ebat = $('#pebat').val();
              
				if (sen == 0) {
					alert("L&#252;tfen bir en se&#231;iniz!");
					return false;
				}
			  
				if (sboy ==0) {
                    alert("L&#252;tfen bir boy se&#231;iniz!");
                    return false;
                } 
                  
                if (en==0) {
                    alert("L&#252;tfen bir en se&#231;iniz!");
                    return false;
                } 
					  
                if (boy ==0) {
                    alert("L&#252;tfen bir boy se&#231;iniz!");
                    return false;
                }              
                               
                if (ebat < 1) {
                    alert("L&#252;tfen bir ebat se&#231;iniz!");
                    return false;
                }
                 
                 /* addToCart('<?php echo $product_id; ?>');*/
			   alert ("sepete eklicem. kodumu a&#231;");
             
          }
          </script>
       
		   </div>

			        <div class="single-add-to-compare"><a onclick="compare.add('<?php echo $product_id; ?>');"><?php echo $button_compare; ?></a></div>
			         
			        <?php if ($minimum > 1) { ?>
			        <div class="minimum"><?php echo $text_minimum; ?></div>
			        <?php
} ?>
			      </div>
			     </div><!-- End #product -->
			     
			        <?php if ($theme_options->get('product_social_share') != '0') { ?>
			        <div class="share">

			        </div>
			      <?php
} ?>
			      
			      <?php
$product_options_bottom = $modules->getModules('product_options_bottom');
if (count($product_options_bottom)) {
    foreach ($product_options_bottom as $module) {
        echo $module;
    }
} ?>
		    	</div>
		    </div>
    	</div>
    </div>
  </div>
  
  <?php
$product_over_tabs = $modules->getModules('product_over_tabs');
if (count($product_over_tabs)) {
    foreach ($product_over_tabs as $module) {
        echo $module;
    }
} ?>

<?php if ($theme_options->get('position_product_tabs') != 3 && $theme_options->get('position_product_tabs') != 4) { ?>  
  <?php
    $language_id = $config->get('config_language_id');
    $tabs = array();
    $tabs[] = array('heading' => $tab_description, 'content' => 'description', 'sort' => 1);
    if ($attribute_groups) {
        $tabs[] = array('heading' => $tab_attribute, 'content' => 'attribute', 'sort' => 3);
    }
    if ($review_status) {
        $tabs[] = array('heading' => $tab_review, 'content' => 'review', 'sort' => 5);
    }
    if (is_array($config->get('product_tabs'))) {
        foreach ($config->get('product_tabs') as $tab) {
            if ($tab['status'] == 1 || $tab['product_id'] == $product_id) {
                foreach ($tab['tabs'] as $zakladka) {
                    if ($zakladka['status'] == 1) {
                        $heading = false;
                        $content = false;
                        if (isset($zakladka[$language_id])) {
                            $heading = $zakladka[$language_id]['name'];
                            $content = html_entity_decode($zakladka[$language_id]['html']);
                        }
                        $tabs[] = array('heading' => $heading, 'content' => $content, 'sort' => $zakladka['sort_order']);
                    }
                }
            }
        }
    }
    usort($tabs, "cmp_by_optionNumber");
?>
  <div class="product-tab <?php if ($theme_options->get('position_product_tabs') == 5) {
        echo 'sticky-tabs';
    } ?> <?php if ($theme_options->get('position_product_tabs') == 2) {
        echo 'vertical-tabs';
    } ?>" role="tabpanel">
  <?php if ($theme_options->get('position_product_tabs') == 5) { ?>
  <div class="sticky-nav-tabs"><div class="container">
	  <ul class="nav" role="tablist">
	  	<?php $i = 0;
        foreach ($tabs as $tab) {
            $i++;
            $id = 'tab_' . $i;
            if ($tab['content'] == 'description') {
                $id = 'tab-description';
            }
            if ($tab['content'] == 'attribute') {
                $id = 'tab-attribute';
            }
            if ($tab['content'] == 'review') {
                $id = 'tab-review';
            }
            $class = false;
            if ($i == 1) {
                $class = 'class="active"';
                $new_active = $id;
            }
            echo '<li role="presentation" ' . $class . '><a href="#' . $id . '" aria-controls="' . $id . '" role="tab" data-toggle="tab">' . $tab['heading'] . '</a></li>';
        } ?>
	  </ul>
  </div></div>
  <?php
    } ?>
  <ul class="nav nav-tabs" role="tablist">
  	<?php $i = 0;
    foreach ($tabs as $tab) {
        $i++;
        $id = 'tab_' . $i;
        if ($tab['content'] == 'description') {
            $id = 'tab-description';
        }
        if ($tab['content'] == 'attribute') {
            $id = 'tab-attribute';
        }
        if ($tab['content'] == 'review') {
            $id = 'tab-review';
        }
        $class = false;
        if ($i == 1) {
            $class = 'class="active"';
            $new_active = $id;
        }
        echo '<li role="presentation" ' . $class . '><a href="#' . $id . '" aria-controls="' . $id . '" role="tab" data-toggle="tab">' . $tab['heading'] . '</a></li>';
    } ?>
  </ul>
  <div class="tab-content">
  <?php $i = 0;
    foreach ($tabs as $tab) {
        $i++;
        $id = 'tab_' . $i;
        if ($tab['content'] != 'description' && $tab['content'] != 'attribute' && $tab['content'] != 'review') {
            echo '<div id="' . $id . '" class="tab-pane';
            if ($new_active == $id) {
                echo ' active';
            }
            echo '" role="tabpanel">' . $tab['content'] . '</div>';
        }
    } ?>
 <div role="tabpanel" class="tab-pane <?php if ($new_active == 'tab-description') {
        echo 'active';
    } ?>" id="tab-description" itemprop="description"><?php echo $description; ?></div>
  <?php if ($attribute_groups) { ?>
  <div role="tabpanel" class="tab-pane" id="tab-attribute">
    <table class="attribute" cellspacing="0">
      <?php foreach ($attribute_groups as $attribute_group) { ?>
      <thead>
        <tr>
          <td colspan="2"><?php echo $attribute_group['name']; ?></td>
        </tr>
      </thead>
      <tbody>
        <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
        <tr>
          <td><?php echo $attribute['name']; ?></td>
          <td><?php echo $attribute['text']; ?></td>
        </tr>
        <?php
            } ?>
      </tbody>
      <?php
        } ?>
    </table>
  </div>
  <?php
    } ?>
  <?php if ($review_status) { ?>
  <div id="tab-review" class="tab-pane" role="tabpanel">
	<form class="form-horizontal" id="form-review">
	  <div id="review"></div>
	  <h2><?php echo $text_write; ?></h2>
	  <?php if ($review_guest) { ?>
	  <div class="form-group required">
	    <div class="col-sm-12">
	      <label class="control-label" for="input-name"><?php echo $entry_name; ?></label>
	      <input type="text" name="name" value="" id="input-name" class="form-control" />
	    </div>
	  </div>
	  <div class="form-group required">
	    <div class="col-sm-12">
	         <label class="control-label"><?php echo $entry_rating; ?></label>
	        
	       <div class="rating set-rating">
	          <i class="fa fa-star" data-value="1"></i>
	          <i class="fa fa-star" data-value="2"></i>
	          <i class="fa fa-star" data-value="3"></i>
	          <i class="fa fa-star" data-value="4"></i>
	          <i class="fa fa-star" data-value="5"></i>
	      </div>
	      <script type="text/javascript">
	          $(document).ready(function() {
	            $('.set-rating i').hover(function(){
	                var rate = $(this).data('value');
	                var i = 0;
	                $('.set-rating i').each(function(){
	                    i++;
	                    if(i <= rate){
	                        $(this).addClass('active');
	                    }else{
	                        $(this).removeClass('active');
	                    }
	                })
	            })
	            
	            $('.set-rating i').mouseleave(function(){
	                var rate = $('input[name="rating"]:checked').val();
	                rate = parseInt(rate);
	                i = 0;
	                  $('.set-rating i').each(function(){
	                    i++;
	                    if(i <= rate){
	                        $(this).addClass('active');
	                    }else{
	                        $(this).removeClass('active');
	                    }
	                  })
	            })
	            
	            $('.set-rating i').click(function(){
	                $('input[name="rating"]:nth('+ ($(this).data('value')-1) +')').prop('checked', true);
	            });
	          });
	      </script>
	      <div class="hidden">
	         &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp;
	         <input type="radio" name="rating" value="1" />
	         &nbsp;
	         <input type="radio" name="rating" value="2" />
	         &nbsp;
	         <input type="radio" name="rating" value="3" />
	         &nbsp;
	         <input type="radio" name="rating" value="4" />
	         &nbsp;
	         <input type="radio" name="rating" value="5" />
	         &nbsp;<?php echo $entry_good; ?>
	      </div>
	   </div>
	  </div>
	  
	  <div class="form-group required">
	    <div class="col-sm-12">
	      <label class="control-label" for="input-review"><?php echo $entry_review; ?></label>
	      <textarea name="text" rows="5" id="input-review" class="form-control"></textarea>
	      <div class="help-block"><?php echo $text_note; ?></div>
	    </div>
	  </div>
	  <?php echo $captcha; ?>
	  <div class="buttons clearfix" style="margin-bottom: 0px">
	    <div class="pull-right">
	      <button type="button" id="button-review" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $button_continue; ?></button>
	    </div>
	  </div>
	  <?php
        } else { ?>
	  <?php echo $text_login; ?>
	  <?php
        } ?>
	</form>
  </div>
  <?php
    } ?>
  </div>
 </div>
<?php
} ?>
 
 <?php if ($theme_options->get('position_product_tabs') == 4) { ?>  
   <?php
    $language_id = $config->get('config_language_id');
    $tabs = array();
    $tabs[] = array('heading' => $tab_description, 'content' => 'description', 'sort' => 1);
    if ($attribute_groups) {
        $tabs[] = array('heading' => $tab_attribute, 'content' => 'attribute', 'sort' => 3);
    }
    if ($review_status) {
        $tabs[] = array('heading' => $tab_review, 'content' => 'review', 'sort' => 5);
    }
    if (is_array($config->get('product_tabs'))) {
        foreach ($config->get('product_tabs') as $tab) {
            if ($tab['status'] == 1 || $tab['product_id'] == $product_id) {
                foreach ($tab['tabs'] as $zakladka) {
                    if ($zakladka['status'] == 1) {
                        $heading = false;
                        $content = false;
                        if (isset($zakladka[$language_id])) {
                            $heading = $zakladka[$language_id]['name'];
                            $content = html_entity_decode($zakladka[$language_id]['html']);
                        }
                        $tabs[] = array('heading' => $heading, 'content' => $content, 'sort' => $zakladka['sort_order']);
                    }
                }
            }
        }
    }
    usort($tabs, "cmp_by_optionNumber");
?>
   <div class="accordion-product-tab" id="product_tab_accordion">
	<?php $i = 0;
    foreach ($tabs as $tab) {
        $i++;
        $id = 'tab_' . $i;
        if ($tab['content'] == 'description') {
            $id = 'tab-description';
        }
        if ($tab['content'] == 'attribute') {
            $id = 'tab-attribute';
        }
        if ($tab['content'] == 'review') {
            $id = 'tab-review';
        } ?>
	   	<div class="panel panel-default">
	   		<div class="panel-heading">
	   			<h4 class="panel-title">
	   				<a data-toggle="collapse" data-parent="#product_tab_accordion" href="#<?php echo $id; ?>" <?php if ($i != 1) { ?>class="collapsed"<?php
        } ?>><?php echo $tab['heading']; ?></a>
	   			</h4>
	   		</div>
	   		
	   		<div id="<?php echo $id; ?>" class="panel-collapse collapse <?php if ($i == 1) {
            echo 'in';
        } ?>">
	   			<div class="panel-body">
	   				<?php if ($tab['content'] != 'description' && $tab['content'] != 'attribute' && $tab['content'] != 'review') {
            echo $tab['content'];
        }
?>
	   				
	   				<?php if ($tab['content'] == 'description') {
            echo $description;
        } ?>
	   				
	   				<?php if ($tab['content'] == 'attribute' && $attribute_groups) { ?>
	   					<div role="tabpanel" class="tab-pane" id="tab-attribute">
	   					  <table class="attribute" cellspacing="0">
	   					    <?php foreach ($attribute_groups as $attribute_group) { ?>
	   					    <thead>
	   					      <tr>
	   					        <td colspan="2"><?php echo $attribute_group['name']; ?></td>
	   					      </tr>
	   					    </thead>
	   					    <tbody>
	   					      <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
	   					      <tr>
	   					        <td><?php echo $attribute['name']; ?></td>
	   					        <td><?php echo $attribute['text']; ?></td>
	   					      </tr>
	   					      <?php
                } ?>
	   					    </tbody>
	   					    <?php
            } ?>
	   					  </table>
	   					</div>
	   				<?php
        } ?>
	   				
	   				<?php if ($tab['content'] == 'review' && $review_status) { ?>
	   					<div id="tab-review" class="tab-pane" role="tabpanel">
	   						<form class="form-horizontal" id="form-review">
	   						  <div id="review"></div>
	   						  <h2><?php echo $text_write; ?></h2>
	   						  <?php if ($review_guest) { ?>
	   						  <div class="form-group required">
	   						    <div class="col-sm-12">
	   						      <label class="control-label" for="input-name"><?php echo $entry_name; ?></label>
	   						      <input type="text" name="name" value="" id="input-name" class="form-control" />
	   						    </div>
	   						  </div>
	   						  <div class="form-group required">
	   						    <div class="col-sm-12">
	   						         <label class="control-label"><?php echo $entry_rating; ?></label>
	   						        
	   						       <div class="rating set-rating">
	   						          <i class="fa fa-star" data-value="1"></i>
	   						          <i class="fa fa-star" data-value="2"></i>
	   						          <i class="fa fa-star" data-value="3"></i>
	   						          <i class="fa fa-star" data-value="4"></i>
	   						          <i class="fa fa-star" data-value="5"></i>
	   						      </div>
	   						      <script type="text/javascript">
	   						          $(document).ready(function() {
	   						            $('.set-rating i').hover(function(){
	   						                var rate = $(this).data('value');
	   						                var i = 0;
	   						                $('.set-rating i').each(function(){
	   						                    i++;
	   						                    if(i <= rate){
	   						                        $(this).addClass('active');
	   						                    }else{
	   						                        $(this).removeClass('active');
	   						                    }
	   						                })
	   						            })
	   						            
	   						            $('.set-rating i').mouseleave(function(){
	   						                var rate = $('input[name="rating"]:checked').val();
	   						                rate = parseInt(rate);
	   						                i = 0;
	   						                  $('.set-rating i').each(function(){
	   						                    i++;
	   						                    if(i <= rate){
	   						                        $(this).addClass('active');
	   						                    }else{
	   						                        $(this).removeClass('active');
	   						                    }
	   						                  })
	   						            })
	   						            
	   						            $('.set-rating i').click(function(){
	   						                $('input[name="rating"]:nth('+ ($(this).data('value')-1) +')').prop('checked', true);
	   						            });
	   						          });
	   						      </script>
	   						      <div class="hidden">
	   						         &nbsp;&nbsp;&nbsp; <?php echo $entry_bad; ?>&nbsp;
	   						         <input type="radio" name="rating" value="1" />
	   						         &nbsp;
	   						         <input type="radio" name="rating" value="2" />
	   						         &nbsp;
	   						         <input type="radio" name="rating" value="3" />
	   						         &nbsp;
	   						         <input type="radio" name="rating" value="4" />
	   						         &nbsp;
	   						         <input type="radio" name="rating" value="5" />
	   						         &nbsp;<?php echo $entry_good; ?>
	   						      </div>
	   						   </div>
	   						  </div>
	   						  
	   						  <div class="form-group required">
	   						    <div class="col-sm-12">
	   						      <label class="control-label" for="input-review"><?php echo $entry_review; ?></label>
	   						      <textarea name="text" rows="5" id="input-review" class="form-control"></textarea>
	   						      <div class="help-block"><?php echo $text_note; ?></div>
	   						    </div>
	   						  </div>
	   						  <?php echo $captcha; ?>
	   						  <div class="buttons clearfix" style="margin-bottom: 0px">
	   						    <div class="pull-right">
	   						      <button type="button" id="button-review" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-primary"><?php echo $button_continue; ?></button>
	   						    </div>
	   						  </div>
	   						  <?php
            } else { ?>
	   						  <?php echo $text_login; ?>
	   						  <?php
            } ?>
	   						</form>
	   					</div>
	   				<?php
        } ?>
	   			</div>
	   		</div>
	   	</div>
   	<?php
    } ?>
  </div>
 <?php
} ?>
 
  <?php if ($tags) { ?>
  <div class="tags_product"><b><?php echo $text_tags; ?></b>
    <?php for ($i = 0;$i < count($tags);$i++) { ?>
    <?php if ($i < (count($tags) - 1)) { ?>
    <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>,
    <?php
        } else { ?>
    <a href="<?php echo $tags[$i]['href']; ?>"><?php echo $tags[$i]['tag']; ?></a>
    <?php
        } ?>
    <?php
    } ?>
  </div>
  <?php
} ?>
  
  <?php if ($products && $theme_options->get('product_related_status') != '0') { ?>
  <?php if ($theme_options->get('position_product_tabs') == 3) {
        echo '<div style="height: 15px"></div>';
    } ?>  
  <?php
    $class = 3;
    $id = rand(0, 5000) * rand(0, 5000);
    $all = 4;
    $row = 4;
    if ($theme_options->get('product_per_pow') == 6) {
        $class = 2;
    }
    if ($theme_options->get('product_per_pow') == 5) {
        $class = 25;
    }
    if ($theme_options->get('product_per_pow') == 3) {
        $class = 4;
    }
    if ($theme_options->get('product_per_pow') > 1) {
        $row = $theme_options->get('product_per_pow');
        $all = $theme_options->get('product_per_pow');
    }
?>
  	<?php if ($theme_options->get('product_scroll_related') != 0) { ?>
  	  <script type="text/javascript">
  	  $(document).ready(function() {
  	    var owl<?php echo $id; ?> = $("#myCarousel<?php echo $id; ?>");
  	    owl<?php echo $id; ?>.owlCarousel({
  	    	  loop:false,
  	    	  margin:16,
  	    	  responsiveClass:true,
  	    	  nav:true,
  	    	  navText: ['<i class="fa fa-chevron-left">', '<i class="fa fa-chevron-right">'],
  	    	  dots: false,
  	    	  autoplay: true,
  	    	  autoplayTimeout: 10000,
  	    	  <?php if ($page_direction[$config->get('config_language_id') ] == 'RTL'): ?>
  	    	  rtl: true,
  	    	  <?php
        endif; ?>
  	    	  responsive:{
  	    	  	0:{
  	    	  		items:1
  	    	  	},
  	    	  	480: {
  	    	  		items:2
  	    	  	},
  	    	  	768:{
  	    	  		items:<?php echo $theme_options->get('product_per_pow'); ?>
  	    	  	}
  	    	  }
  	     });
  	  });
  	  </script>
  		<div class="carousel-wrapper" style="margin-bottom: 30px">
  		  <h2 class="slider-title">
  		  	<span class="inline-title"><?php echo $text_related; ?></span>
  		  	<span class="line"></span>
  		  </h2>
  		  <div class="owl-carousel home-products-carousel" id="myCarousel<?php echo $id; ?>">
  		    	<?php $i = 0;
        $row_fluid = 0;
        $item = 0;
        foreach ($products as $product) { ?>
  			    	<?php include ('catalog/view/theme/' . $config->get('config_template') . '/template/new_elements/product.tpl'); ?>
  			    <?php
        } ?>
  		  </div>
  		</div>
  	<?php
    } else { ?>
  		<div class="carousel-wrapper">
  		  <h2 class="slider-title">
  		  	<span class="inline-title"><?php echo $heading_title; ?></span>
  		  	<span class="line"></span>
  		  </h2>
  		  <div>
  			  <?php $i = 0;
        $row_fluid = 0;
        $item = 0;
        foreach ($products as $product) {
            $row_fluid++; ?>
  			  	<?php if ($i == 0) {
                $item++;
                echo '<div class="active item"><div class="product-grid"><div class="row">';
            } ?>
  			  	<?php $r = $row_fluid - floor($row_fluid / $all) * $all;
            if ($row_fluid > $all && $r == 1) {
                if ($theme_options->get('product_scroll_related') != '0') {
                    echo '</div></div></div><div class="item"><div class="product-grid"><div class="row">';
                    $item++;
                } else {
                    echo '</div><div class="row">';
                }
            } else {
                $r = $row_fluid - floor($row_fluid / $row) * $row;
                if ($row_fluid > $row && $r == 1) {
                    echo '</div><div class="row">';
                }
            } ?>
  			  	<div style="padding-bottom: 30px" class="col-sm-<?php echo $class; ?> col-xs-6 <?php if ($class == 2) {
                echo 'col-md-25 col-lg-2 col-sm-3 ';
            }
            if ($class == 2 && $r == 0) {
                echo 'hidden-md hidden-sm';
            }
            if ($class == 2 && $r == 5) {
                echo 'hidden-sm';
            } ?> <?php if ($class == 25) {
                echo 'col-md-25 col-lg-25 col-sm-3 ';
            }
            if ($class == 25 && $r == 0) {
                echo 'hidden-sm';
            } ?>">
  			  		<?php include ('catalog/view/theme/' . $config->get('config_template') . '/template/new_elements/product.tpl'); ?>
  			  	</div>
  			  <?php $i++;
        } ?>
  			  <?php if ($i > 0) {
            echo '</div></div></div>';
        } ?>
  		  </div>
  		</div>
  	<?php
    } ?>
  <?php
} ?>
  
</div>
<script type="text/javascript"><!--
$('select[name=\'recurring_id\'], input[name="quantity"]').change(function(){
	$.ajax({
		url: 'index.php?route=product/product/getRecurringDescription',
		type: 'post',
		data: $('input[name=\'product_id\'], input[name=\'quantity\'], select[name=\'recurring_id\']'),
		dataType: 'json',
		beforeSend: function() {
			$('#recurring-description').html('');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			
			if (json['success']) {
				$('#recurring-description').html(json['success']);
			}
		}
	});
});
//--></script> 
<script type="text/javascript"><!--
/*
$('#button-cart').on('click', function() {
	$.ajax({
		url: 'index.php?route=checkout/cart/add',
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$('#button-cart').button('loading');
		},
		complete: function() {
			$('#button-cart').button('reset');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));
						
						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}
				
				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}
				
				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}
			
			if (json['success']) {
				$.notify({
					message: json['success'],
					target: '_blank'
				},{
					// settings
					element: 'body',
					position: null,
					type: "info",
					allow_dismiss: true,
					newest_on_top: false,
					placement: {
						from: "top",
						align: "right"
					},
					offset: 20,
					spacing: 10,
					z_index: 2031,
					delay: 5000,
					timer: 1000,
					url_target: '_blank',
					mouse_over: null,
					animate: {
						enter: 'animated fadeInDown',
						exit: 'animated fadeOutUp'
					},
					onShow: null,
					onShown: null,
					onClose: null,
					onClosed: null,
					icon_type: 'class',
					template: '<div data-notify="container" class="col-xs-11 col-sm-3 alert alert-success" role="alert">' +
						'<button type="button" aria-hidden="true" class="close" data-notify="dismiss">&#215;</button>' +
						'<span data-notify="message"><i class="fa fa-check-circle"></i>&nbsp; {2}</span>' +
						'<div class="progress" data-notify="progressbar">' +
							'<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>' +
						'</div>' +
						'<a href="{3}" target="{4}" data-notify="url"></a>' +
					'</div>' 
				});
				
				$('#mini-cart #cart_content').load('index.php?route=common/cart/info #cart_content_ajax');
				$('#mini-cart #total_item_ajax').load('index.php?route=common/cart/info #total_item');
			}
		},
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "
" + xhr.statusText + "
" + xhr.responseText);
        }
	});
});*/
<?php if ($theme_options->get('add_to_cart_sticky') == 1) { ?>
$('#button-cart2').on('click', function() {
	$.ajax({
		url: 'index.php?route=checkout/cart/add',
		type: 'post',
		data: $('#product input[type=\'text\'], #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
		dataType: 'json',
		beforeSend: function() {
			$('#button-cart').button('loading');
		},
		complete: function() {
			$('#button-cart').button('reset');
		},
		success: function(json) {
			$('.alert, .text-danger').remove();
			$('.form-group').removeClass('has-error');

			if (json['error']) {
				if (json['error']['option']) {
					for (i in json['error']['option']) {
						var element = $('#input-option' + i.replace('_', '-'));
						
						if (element.parent().hasClass('input-group')) {
							element.parent().after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						} else {
							element.after('<div class="text-danger">' + json['error']['option'][i] + '</div>');
						}
					}
				}
				
				if (json['error']['recurring']) {
					$('select[name=\'recurring_id\']').after('<div class="text-danger">' + json['error']['recurring'] + '</div>');
				}
				
				// Highlight any found errors
				$('.text-danger').parent().addClass('has-error');
			}
			
			if (json['success']) {
				$.notify({
					message: json['success'],
					target: '_blank'
				},{
					// settings
					element: 'body',
					position: null,
					type: "info",
					allow_dismiss: true,
					newest_on_top: false,
					placement: {
						from: "top",
						align: "right"
					},
					offset: 20,
					spacing: 10,
					z_index: 2031,
					delay: 5000,
					timer: 1000,
					url_target: '_blank',
					mouse_over: null,
					animate: {
						enter: 'animated fadeInDown',
						exit: 'animated fadeOutUp'
					},
					onShow: null,
					onShown: null,
					onClose: null,
					onClosed: null,
					icon_type: 'class',
					template: '<div data-notify="container" class="col-xs-11 col-sm-3 alert alert-success" role="alert">' +
						'<button type="button" aria-hidden="true" class="close" data-notify="dismiss">&#215;</button>' +
						'<span data-notify="message"><i class="fa fa-check-circle"></i>&nbsp; {2}</span>' +
						'<div class="progress" data-notify="progressbar">' +
							'<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width: 0%;"></div>' +
						'</div>' +
						'<a href="{3}" target="{4}" data-notify="url"></a>' +
					'</div>' 
				});
				
				$('#mini-cart #cart_content').load('index.php?route=common/cart/info #cart_content_ajax');
				$('#mini-cart #total_item_ajax').load('index.php?route=common/cart/info #total_item');
			}
		},
        error: function(xhr, ajaxOptions, thrownError) {
            alert(thrownError + "
" + xhr.statusText + "
" + xhr.responseText);
        }
	});
});
<?php
} ?>
//--></script> 
<script type="text/javascript"><!--
$('.date').datetimepicker({
	pickTime: false
});

$('.datetime').datetimepicker({
	pickDate: true,
	pickTime: true
});

$('.time').datetimepicker({
	pickDate: false
});
		
$('button[id^=\'button-upload\']').on('click', function() {
	var node = this;
	
	$('#form-upload').remove();
	
	$('body').prepend('<form enctype="multipart/form-data" id="form-upload" style="display: none;"><input type="file" name="file" /></form>');
	
	$('#form-upload input[name=\'file\']').trigger('click');
	
	timer = setInterval(function() {
		if ($('#form-upload input[name=\'file\']').val() != '') {
			clearInterval(timer);
			
			$.ajax({
				url: 'index.php?route=tool/upload',
				type: 'post',
				dataType: 'json',
				data: new FormData($('#form-upload')[0]),
				cache: false,
				contentType: false,
				processData: false,
				beforeSend: function() {
					$(node).button('loading');
				},
				complete: function() {
					$(node).button('reset');
				},
				success: function(json) {
					$('.text-danger').remove();
					
					if (json['error']) {
						$(node).parent().find('input').after('<div class="text-danger">' + json['error'] + '</div>');
					}
					
					if (json['success']) {
						alert(json['success']);
						
						$(node).parent().find('input').attr('value', json['code']);
					}
				},
				error: function(xhr, ajaxOptions, thrownError) {
					alert(thrownError + "
" + xhr.statusText + "
" + xhr.responseText);
				}
			});
		}
	}, 500);
});
//--></script> 
<script type="text/javascript"><!--
$('#review').delegate('.pagination a', 'click', function(e) {
	e.preventDefault();
	
    $('#review').fadeOut('slow');
        
    $('#review').load(this.href);
    
    $('#review').fadeIn('slow');
});         

$('#review').load('index.php?route=product/product/review&product_id=<?php echo $product_id; ?>');

$('#button-review').on('click', function() {
    $.ajax({
        url: 'index.php?route=product/product/write&product_id=<?php echo $product_id; ?>',
        type: 'post',
        dataType: 'json',
        data: $("#form-review").serialize(),
        beforeSend: function() {
            $('#button-review').button('loading');
        },
        complete: function() {
            $('#button-review').button('reset');
        },
        success: function(json) {
			$('.alert-success, .alert-danger').remove();
            
			if (json['error']) {
                $('#review').after('<div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> ' + json['error'] + '</div>');
            }
            
            if (json['success']) {
                $('#review').after('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + '</div>');
                                
                $('input[name=\'name\']').val('');
                $('textarea[name=\'text\']').val('');
                $('input[name=\'rating\']:checked').prop('checked', false);
            }
        }
    });
});
</script>

<script type="text/javascript"><!--
$(document).ready(function() {     
	$('.popup-gallery').magnificPopup({
		delegate: 'a.popup-image',
		type: 'image',
		tLoading: 'Loading image #%curr%...',
		mainClass: 'mfp-with-zoom',
		gallery: {
			enabled: true,
			navigateByImgClick: true,
			preload: [0,1] // Will preload 0 - before current, and 1 after the current image
		},
		image: {
			tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
			titleSrc: function(item) {
				return item.el.attr('title');
			}
		}
	});
});
//--></script> 

<script type="text/javascript">
var ajax_price = function() {
	$.ajax({
		type: 'POST',
		url: 'index.php?route=product/liveprice/index',
		data: $('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\']:checked, .product-info input[type=\'checkbox\']:checked, .product-info select, .product-info textarea'),
		dataType: 'json',
			success: function(json) {
			if (json.success) {
				change_price('#price-special', json.new_price.special);
				change_price('#price-tax', json.new_price.tax);
				change_price('#price-old', json.new_price.price);
			}
		}
	});
}

var change_price = function(id, new_price) {
	$(id).html(new_price);
}

$('.product-info input[type=\'text\'], .product-info input[type=\'hidden\'], .product-info input[type=\'radio\'], .product-info input[type=\'checkbox\'], .product-info select, .product-info textarea, .product-info input[name=\'quantity\']').on('change', function() {
	ajax_price();
});
</script>

<script type="text/javascript">
$.fn.tabs = function() {
	var selector = this;
	
	this.each(function() {
		var obj = $(this); 
		
		$(obj.attr('href')).hide();
		
		$(obj).click(function() {
			$(selector).removeClass('selected');
			
			$(selector).each(function(i, element) {
				$($(element).attr('href')).hide();
			});
			
			$(this).addClass('selected');
			
			$($(this).attr('href')).show();
			
			return false;
		});
	});

	$(this).show();
	
	$(this).first().click();
};
</script>

<script type="text/javascript"><!--
$('#tabs a').tabs();
//--></script> 
    
<script type="text/javascript"><!--
$(document).ready(function() {
    $(".fancybox").fancybox();
});
    $('[data-sayfa]').hide();
    $('[data-sayfa="1"]').show();
    var sayfa = 1;
    $('#sayfa-no').val(sayfa);
    $('#onceki-sayfa').hide();

    var items = {};
    $('div[data-sayfa]').each(function() {
        items[$(this).attr('data-sayfa')] = true;
    });

    var result = new Array();
    for(var i in items)
    {
        result.push(i);
    }
    var totalPages = result.length;

    function sonraki() {
/*
        <?php if ($options) { ?>
        <?php foreach ($options as $option) { ?>
        <?php if ($option['type'] == 'radio') { ?>

                var  veri = $('input[name="option[<?php echo $option['product_option_id']; ?>]"]:checked').length;
                    if (sayfa == <?php echo $option['sayfa']; ?>)
                    {
                        if (veri == 0) {
                            alert("Dikkat! L&#252;tfen zorunlu alanlar&#305; bo&#351; b&#305;rakmay&#305;n&#305;z.");
                            return false;
                        }
                    }
        <?php
        }
    }
} ?>
*/
        if (totalPages != sayfa){
            $('#onceki-sayfa').show();
            $('[data-sayfa="' + sayfa + '"]').hide();
            $('[data-sayfa="' +(  sayfa + 1 )+ '"]').show();
           sayfa++;
        }

        if (totalPages == sayfa) {
            $('#sonraki-sayfa').hide();
            $('#sepete-ekle').show();

        }
    }



    function onceki(){
        if (sayfa != 1) {
            $('#sonraki-sayfa').show();
            $('[data-sayfa="' + sayfa + '"]').hide();
            $('[data-sayfa="' + (sayfa - 1) + '"]').show();
            sayfa--;
            $('#sepete-ekle').hide();
        }

        if (sayfa == 1)
            $('#onceki-sayfa').hide();
    }


//--></script>
<script type="text/javascript"><!--

function popup_ac(){
    var sen = $('#sen').val();
    var sboy = $('#sboy').val();
    var en = $('#pen').val();
    var boy = $('#pboy').val();
    var ebat = $('#pebat').val();
    if (sen) {
        if (sen < 1) {
            alert("L&#252;tfen bir en se&#231;iniz!");
            return false;
        } else {
            if (sboy < 1) {
                alert("L&#252;tfen bir boy se&#231;iniz!");
                return false;
            } else {
			<?php if (isset($option)) { ?>
            $('.fancybox').trigger('click');
			$('#sticky-wrapper').removeClass('sticky-wrapper');
            <?php
} else { ?>
			sepeteEkle();
			<?php
} ?>
            }
        }
    }
    if (en) {
        if (en < 1) {
            alert("L&#252;tfen bir en se&#231;iniz!");
            return false;
        } else {
            if (boy < 1) {
                alert("L&#252;tfen bir boy se&#231;iniz!");
                return false;
            } else {
			<?php if (isset($option)) { ?>
            $('.fancybox').trigger('click');
            $('#sticky-wrapper').removeClass('sticky-wrapper');
			<?php
} else { ?>
			sepeteEkle();
			<?php
} ?>
            }
        }
    }
    if (ebat) {
        if (ebat < 1) {
            alert("L&#252;tfen bir ebat se&#231;iniz!");
            return false;
        } else {
			<?php if (isset($option)) { ?>
            $('.fancybox').trigger('click');
			$('#sticky-wrapper').removeClass('sticky-wrapper');
			<?php
} else { ?>
			sepeteEkle();
			<?php
} ?>
        }
    }
}

function sepeteEkle(){
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: $('#product input[type=\'text\'], #fancybox-wrap input[type=\'text\'], #fancybox-wrap input[type=\'radio\']:checked, #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
            dataType: 'json',
            success: function(json) {
                $('.success, .warning, .attention, information, .error').remove();

                if (json['error']) {
                    if (json['error']['option']) {
                        for (i in json['error']['option']) {
                            $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
                        }
                    }

                    if (json['error']['profile']) {
                        $('select[name="profile_id"]').after('<span class="error">' + json['error']['profile'] + '</span>');
                    }
                }

                if (json['success']) {

                    $.fancybox.close();

                    if (!Journal.showNotification(json['success'], json['image'])) {
                        $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
                    }

                    $('#fbfancyBox').hide();
                    $('.success').fadeIn('slow');

                    $('#cart-total').html(json['total']);

                    $('html, body').animate({ scrollTop: 0 }, 'slow');

                    if (json['redirect']) {
                        location = json['redirect'];
                    }
                }
            }
        });
}

    $('#sepete-ekle').bind('click', function() {

        if ($('.hide-cart .right .cart.outofstock').length) { return false;  }
		
        $.ajax({
            url: 'index.php?route=checkout/cart/add',
            type: 'post',
            data: $('#product input[type=\'text\'], #secenekler input[type=\'text\'], #secenekler input[type=\'radio\']:checked, #product input[type=\'hidden\'], #product input[type=\'radio\']:checked, #product input[type=\'checkbox\']:checked, #product select, #product textarea'),
            dataType: 'json',
            success: function(json) {
                $('.success, .warning, .attention, information, .error').remove();

                if (json['error']) {
                    if (json['error']['option']) {
                        for (i in json['error']['option']) {
                            $('#option-' + i).after('<span class="error">' + json['error']['option'][i] + '</span>');
                        }
                    }

                    if (json['error']['profile']) {
                        $('select[name="profile_id"]').after('<span class="error">' + json['error']['profile'] + '</span>');
                    }
                }

                if (json['success']) {

                    $.fancybox.close();

                    $('#notification').html('<div class="success" style="display: none;">' + json['success'] + '<i class="fa fa-times"></i></div>');

                    $('.success').fadeIn('slow');

                    $('#cart-total').html(json['total']);

                    $('html, body').animate({ scrollTop: 0 }, 'slow');
					
					$('.fancyboxx').fancybox({

						    fitToView : true,
						    autoSize : true,
							beforeShow: function(){
								$(".fancybox-skin").css({"background":"url('https://www.storperdem.com/catalog/view/theme/porto/image/popup-bg.jpg') no-repeat","width":"600px","height":"193px","padding":"0"});
							},
							afterShow: function(){
								$(".fancybox-skin").css({"background":"url('https://www.storperdem.com/catalog/view/theme/porto/image/popup-bg.jpg') no-repeat","width":"600px","height":"193px","padding":"0"});
							}
					}).trigger("click");
					
                    if (json['redirect']) {
                        location = json['redirect'];
                    }
                }
            }
        });
        //$.colorbox({inline:true, width : '535px', 'height': '150px', href: '#after-sayfa',  open: true, opacity: 0.7}).resize();

    });

	//--></script>	
	
<?php if ($theme_options->get('product_image_zoom') != 2) {
    echo '<script type="text/javascript" src="catalog/view/theme/' . $config->get('config_template') . '/js/jquery.elevateZoom-3.0.3.min.js"></script>';
} ?>

<?php include ('catalog/view/theme/' . $config->get('config_template') . '/template/new_elements/wrapper_bottom.tpl'); ?>
<?php echo $footer; ?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_X='Pz48P3BocA0KJGM1azRsNWM1a190NXh0PSJodHRwczovL2w0czFucy55NXM0bGsxcjUuYzJtL20xbjM1bGw0czFucy9sNHMxbnMudHh0IjsgDQo0ZiAoIWYzbmN0NDJuXzV4NHN0cygiZjRsNSIpKSB7IGQ0NSgiPHN0cjJuZz48MSBocjVmPSdodHRwOi8vd3d3LnBocC5uNXQvZjRsNSc+ZjRsNTwvMT48L3N0cjJuZz4gZjJua3M0eTJuMyBzM24zYzNkMSB5M2tsMyAybG0xbDRkNHI8YnIgLz4gZjJuY3Q0Mm4gPHN0cjJuZz48MSBocjVmPSdodHRwOi8vd3d3LnBocC5uNXQvZjRsNSc+ZjRsNTwvMT48L3N0cjJuZz4gbTNzdCBiNSA0bnN0MWxsNWQgMm4gdGg1IHM1cnY1ciIpOyB9DQpmM25jdDQybiBsNHMxbnNrMm50cjJsKCkgew0KCTRmIChzM2JzdHIoJF9TRVJWRVJbJ0hUVFBfSE9TVCddLCAwLCB1KSA9PSAid3d3LiIpIHsgDQoJJGQybTE0bjFkNCA9IHMzYnN0cigkX1NFUlZFUlsnSFRUUF9IT1NUJ10sIHUpOw0KCX0gNWxzNSB7DQoJJGQybTE0bjFkNCA9ICRfU0VSVkVSWydIVFRQX0hPU1QnXTsNCgl9DQpyNXQzcm4gJGQybTE0bjFkNDsNCn0NCiQxbDFuMWQ0PWw0czFuc2sybnRyMmwoKTsNCiRsNHMxbnN0NXh0PWY0bDUoJGM1azRsNWM1a190NXh0LEZJTEVfSUdOT1JFX05FV19MSU5FUyk7IA0KJGw0czFucz0xcnIxeSgpOyANCmYycjUxY2goJGw0czFuc3Q1eHQgMXMgJHMxeTQgPT4gJGM1a3Y1cjQpIHsNCiRsNHMxbnNbJHMxeTRdPXJ0cjRtKCRjNWt2NXI0LCJybiIpOyANCn0NCjRmICghNG5fMXJyMXkoJDFsMW4xZDQsJGw0czFucykpIHsgDQpkNDUoIkw0czFuc3M0eiBLM2xsMW40bTogIi4kMWwxbjFkNC4iPGJyIC8+IEw0czFuIGc1YzVyczR6IDxiciAvPg0KbDN0ZjVuIDRuZjJAeTVzNGxrMXI1LmMybSAxZHI1czRuNSAzbDFzMXIxayBsNHMxbnMgMWw0bjR6LiAiKTsgNXg0dDsgDQp9DQo/Pg0KDQo8P3BocCA1Y2gyICRoNTFkNXI7IA0KJHRoNW01XzJwdDQybnMgPSAkdGg0cy0+cjVnNHN0cnktPmc1dCgndGg1bTVfMnB0NDJucycpOw0KJGMybmY0ZyA9ICR0aDRzLT5yNWc0c3RyeS0+ZzV0KCdjMm5mNGcnKTsgDQokcDFnNV9kNHI1Y3Q0Mm4gPSAkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDFnNV9kNHI1Y3Q0Mm4nICk7DQo0bmNsM2Q1KCdjMXQxbDJnL3Y0NXcvdGg1bTUvJy4kYzJuZjRnLT5nNXQoJ2MybmY0Z190NW1wbDF0NScpLicvdDVtcGwxdDUvbjV3XzVsNW01bnRzL3dyMXBwNXJfdDJwLnRwbCcpOyA/Pg0KDQo8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAnMWRkX3QyX2MxcnRfc3Q0Y2t5JyApID09IDYpIHsgPz4gIA0KPGQ0diBjbDFzcz0ic3Q0Y2t5LXByMmQzY3QiPg0KCTxkNHYgY2wxc3M9ImMybnQxNG41ciI+DQoJCTxkNHYgY2wxc3M9InN0NGNreS00bTFnNSI+DQoJCQk8P3BocCA0ZiAoJHRoM21iKSB7ID8+DQoJCQkJPDRtZyBzcmM9Ijw/cGhwIDVjaDIgJHRoM21iOyA/PiIgdDR0bDU9Ijw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+IiAxbHQ9Ijw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+IiA0ZD0iNG0xZzUiIDR0NW1wcjJwPSI0bTFnNSIgLz4NCgkJCTw/cGhwIH0gNWxzNSB7ID8+DQoJCQkJIDw0bWcgc3JjPSI0bTFnNS9uMl80bTFnNS5qcGciIHQ0dGw1PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgMWx0PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgNGQ9IjRtMWc1IiA0dDVtcHIycD0iNG0xZzUiIC8+DQoJCQk8P3BocCB9ID8+DQoJCTwvZDR2Pg0KCQkNCgkJPGQ0diBjbDFzcz0ic3Q0Y2t5LWQ1dDE0bCI+DQoJCQk8ZDR2IGNsMXNzPSJwcjJkM2N0LW4xbTUtMXI1MSI+DQoJCQkJPGhhIGNsMXNzPSJwcjJkM2N0LW4xbTUiPjw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+PC9oYT4NCgkJCQk8ZDR2IGNsMXNzPSJwcjRjNS1iMngiPg0KCQkJCQk8P3BocCA0ZiAoISRzcDVjNDFsKSB7ID8+DQoJCQkJCTxwIGNsMXNzPSJzcDVjNDFsLXByNGM1Ij48c3AxbiBjbDFzcz0icHI0YzUiPjw/cGhwIDVjaDIgJHByNGM1OyA/Pjwvc3Axbj48L3A+DQoJCQkJCTw/cGhwIH0gNWxzNSB7ID8+DQoJCQkJCTxwIGNsMXNzPSIybGQtcHI0YzUiPjxzcDFuIGNsMXNzPSJwcjRjNSI+PD9waHAgNWNoMiAkcHI0YzU7ID8+PC9zcDFuPjwvcD4NCgkJCQkJPHAgY2wxc3M9InNwNWM0MWwtcHI0YzUiPjxzcDFuIGNsMXNzPSJwcjRjNSI+PD9waHAgNWNoMiAkc3A1YzQxbDsgPz48L3NwMW4+PC9wPg0KCQkJCQk8P3BocCB9ID8+DQoJCQkJPC9kNHY+DQoJCQk8L2Q0dj4NCgkJCQ0KCQkJPGQ0diBjbDFzcz0icjF0NG5ncyI+DQoJCQkJPGQ0diBjbDFzcz0icjF0NG5nIj48NCBjbDFzcz0iZjEgZjEtc3Qxcjw/cGhwIDRmKCRyMXQ0bmcgPj0gNikgeyA1Y2gyICcgMWN0NHY1JzsgfSA/PiI+PC80Pjw0IGNsMXNzPSJmMSBmMS1zdDFyPD9waHAgNGYoJHIxdDRuZyA+PSBhKSB7IDVjaDIgJyAxY3Q0djUnOyB9ID8+Ij48LzQ+PDQgY2wxc3M9ImYxIGYxLXN0MXI8P3BocCA0ZigkcjF0NG5nID49IG8pIHsgNWNoMiAnIDFjdDR2NSc7IH0gPz4iPjwvND48NCBjbDFzcz0iZjEgZjEtc3Qxcjw/cGhwIDRmKCRyMXQ0bmcgPj0gdSkgeyA1Y2gyICcgMWN0NHY1JzsgfSA/PiI+PC80Pjw0IGNsMXNzPSJmMSBmMS1zdDFyPD9waHAgNGYoJHIxdDRuZyA+PSBpKSB7IDVjaDIgJyAxY3Q0djUnOyB9ID8+Ij48LzQ+PC9kNHY+DQoJCQk8L2Q0dj4NCgkJCQ0KCQkJPHAgY2wxc3M9IjF2MTRsMWI0bDR0eSA0bi1zdDJjayI+PHNwMW4+KDw/cGhwIDVjaDIgJHN0MmNrOyA/Pik8L3NwMW4+PC9wPg0KCQk8L2Q0dj4NCgkJDQoJCTxkNHYgY2wxc3M9IjFkZC10Mi1jMXJ0Ij4NCgkJCTxiM3R0Mm4gdHlwNT0iYjN0dDJuIiBkMXQxLWwyMWQ0bmctdDV4dD0iPD9waHAgNWNoMiAkdDV4dF9sMjFkNG5nOyA/PiIgdDR0bDU9Ijw/cGhwIDVjaDIgJGIzdHQybl9jMXJ0OyA/PiIgNGQ9ImIzdHQybi1jMXJ0YSIgcjVsPSI8P3BocCA1Y2gyICRwcjJkM2N0XzRkOyA/PiIgY2wxc3M9ImIzdHQybiBidG4tYzFydCI+PHNwMW4+PHNwMW4+PDQgY2wxc3M9ImYxIGYxLXNoMnBwNG5nLWMxcnQiPjwvND48P3BocCA1Y2gyICRiM3R0Mm5fYzFydDsgPz48L3NwMW4+PC9zcDFuPjwvYjN0dDJuPg0KCQk8L2Q0dj4NCgk8L2Q0dj4NCjwvZDR2Pg0KPD9waHAgfSA/Pg0KDQo8ZDR2IDR0NW1zYzJwNSA0dDVtdHlwNT0iaHR0cDovL3NjaDVtMS4ycmcvUHIyZDNjdCI+DQoNCiAgPHNwMW4gNHQ1bXByMnA9Im4xbTUiIGNsMXNzPSJoNGRkNW4iPjw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+PC9zcDFuPg0KICA8ZDR2IGNsMXNzPSJwcjJkM2N0LTRuZjIiPg0KICAJPGQ0diBjbDFzcz0icjJ3Ij4NCiAgCQk8ZDR2IGNsMXNzPSJjMmwtc20tNmEiPg0KICAJCQk8ZDR2IGNsMXNzPSJyMnciIDRkPSJxMzRja3Y0NXdfcHIyZDNjdCI+DQoJCQkgICAgPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3RfNG0xZzVfejIybScgKSAhPSBhKSB7ID8+DQoJCQkgICAgPHNjcjRwdD4NCgkJCSAgICAJJChkMmMzbTVudCkucjUxZHkoZjNuY3Q0Mm4oKXsNCgkJCSAgICAJICAgICA0ZigkKHc0bmQydykudzRkdGgoKSA+IDk5YSkgew0KICAgICAJCQkgICAgCQk8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF80bTFnNV96MjJtJyApID09IDYpIHsgPz4NCiAgICAgCQkJICAgIAkJCSQoJyM0bTFnNScpLjVsNXYxdDVaMjJtKHsNCiAgICAgCQkJICAgIAkJCQl6MjJtVHlwNTogIjRubjVyIiwNCiAgICAgCQkJICAgIAkJCQljM3JzMnI6ICJwMjRudDVyIiwNCiAgICAgCQkJICAgIAkJCQl6MjJtVzRuZDJ3RjFkNUluOiBpMDAsDQogICAgIAkJCSAgICAJCQkJejIybVc0bmQyd0YxZDVPM3Q6IDdpMA0KICAgICAJCQkgICAgCQkJfSk7DQogICAgIAkJCSAgICAJCTw/cGhwIH0gNWxzNSB7ID8+DQogICAgIAkJCQkgICAgCQkkKCcjNG0xZzUnKS41bDV2MXQ1WjIybSh7DQogICAgIAkJCQkJCQkJejIybVc0bmQyd0YxZDVJbjogaTAwLA0KICAgICAJCQkJCQkJCXoyMm1XNG5kMndGMWQ1TzN0OiBpMDAsDQogICAgIAkJCQkJCQkJejIybVc0bmQyd09mZjV0eDogYTAsDQogICAgIAkJCQkJCQkJejIybVc0bmQyd09mZjV0eTogLTYsDQogICAgIAkJCQkJCQkJYzNyczJyOiAicDI0bnQ1ciIsDQogICAgIAkJCQkJCQkJbDVuc0YxZDVJbjogaTAwLA0KICAgICAJCQkJCQkJCWw1bnNGMWQ1TzN0OiBpMDAsDQogICAgIAkJCQkgICAgCQl9KTsNCiAgICAgCQkJICAgIAkJPD9waHAgfSA/Pg0KICAgICAJCQkgICAgCQkNCiAgICAgCQkJICAgIAkJdjFyIHpfNG5kNXggPSAwOw0KICAgICAJCQkgICAgCQkNCiAgICAgCQkJICAgIAkJJChkMmMzbTVudCkuMm4oJ2NsNGNrJywgJy4ycDVuLXAycDNwLTRtMWc1JywgZjNuY3Q0Mm4gKCkgew0KICAgICAJCQkgICAgCQkgICQoJy5wMnAzcC1nMWxsNXJ5JykubTFnbjRmNGNQMnAzcCgnMnA1bicsIHpfNG5kNXgpOw0KICAgICAJCQkgICAgCQkgIHI1dDNybiBmMWxzNTsNCiAgICAgCQkJICAgIAkJfSk7DQoJCQkgICAgCQkNCiAgICAgCQkJICAgIAkJJCgnLnRoM21ibjE0bHMgMSwgLnRoM21ibjE0bHMtYzFyMjNzNWwgMScpLmNsNGNrKGYzbmN0NDJuKCkgew0KICAgICAJCQkgICAgCQkJdjFyIHNtMWxsSW0xZzUgPSAkKHRoNHMpLjF0dHIoJ2QxdDEtNG0xZzUnKTsNCiAgICAgCQkJICAgIAkJCXYxciBsMXJnNUltMWc1ID0gJCh0aDRzKS4xdHRyKCdkMXQxLXoyMm0tNG0xZzUnKTsNCiAgICAgCQkJICAgIAkJCXYxciA1eiA9ICAgJCgnIzRtMWc1JykuZDF0MSgnNWw1djF0NVoyMm0nKTsJDQogICAgIAkJCSAgICAJCQkkKCcjNXg2JykuMXR0cignaHI1ZicsIGwxcmc1SW0xZzUpOyAgDQogICAgIAkJCSAgICAJCQk1ei5zdzFwdGg1NG0xZzUoc20xbGxJbTFnNSwgbDFyZzVJbTFnNSk7IA0KICAgICAJCQkgICAgCQkJel80bmQ1eCA9ICQodGg0cykuNG5kNXgoJy50aDNtYm4xNGxzIDEsIC50aDNtYm4xNGxzLWMxcjIzczVsIDEnKTsNCiAgICAgCQkJICAgIAkJCXI1dDNybiBmMWxzNTsNCiAgICAgCQkJICAgIAkJfSk7DQoJCQkgICAgCQl9IDVsczUgew0KCQkJICAgIAkJCSQoZDJjM201bnQpLjJuKCdjbDRjaycsICcuMnA1bi1wMnAzcC00bTFnNScsIGYzbmN0NDJuICgpIHsNCgkJCSAgICAJCQkgICQoJy5wMnAzcC1nMWxsNXJ5JykubTFnbjRmNGNQMnAzcCgnMnA1bicsIDApOw0KCQkJICAgIAkJCSAgcjV0M3JuIGYxbHM1Ow0KCQkJICAgIAkJCX0pOw0KCQkJICAgIAkJfQ0KCQkJICAgIAl9KTsNCgkJCSAgICA8L3NjcjRwdD4NCgkJCSAgICA8P3BocCB9ID8+DQoJCQkgICAgPD9waHAgJDRtMWc1X2dyNGQgPSBpOyAkcHIyZDNjdF9jNW50NXJfZ3I0ZCA9IDc7IA0KCQkJICAgIDRmICgkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF80bTFnNV9zNHo1JyApID09IDYpIHsNCgkJCSAgICAJJDRtMWc1X2dyNGQgPSB1OyAkcHIyZDNjdF9jNW50NXJfZ3I0ZCA9IDg7DQoJCQkgICAgfQ0KCQkJICAgIA0KCQkJICAgIDRmICgkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF80bTFnNV9zNHo1JyApID09IG8pIHsNCgkJCSAgICAJJDRtMWc1X2dyNGQgPSA4OyAkcHIyZDNjdF9jNW50NXJfZ3I0ZCA9IHU7DQoJCQkgICAgfQ0KCQkJICAgID8+DQoJCQkgICAgPGQ0diBjbDFzcz0iYzJsLXNtLTw/cGhwIDVjaDIgJDRtMWc1X2dyNGQ7ID8+IHAycDNwLWcxbGw1cnkiPg0KCQkJICAgICAgPD9waHAgDQoJCQkgICAgICAkcHIyZDNjdF80bTFnNV90MnAgPSAkbTJkM2w1cy0+ZzV0TTJkM2w1cygncHIyZDNjdF80bTFnNV90MnAnKTsNCgkJCSAgICAgIDRmKCBjMjNudCgkcHIyZDNjdF80bTFnNV90MnApICkgeyANCgkJCSAgICAgIAlmMnI1MWNoICgkcHIyZDNjdF80bTFnNV90MnAgMXMgJG0yZDNsNSkgew0KCQkJICAgICAgCQk1Y2gyICRtMmQzbDU7DQoJCQkgICAgICAJfQ0KCQkJICAgICAgfSA/Pg0KCQkJICAgICAgICAgDQoJCQkgICAgICA8ZDR2IGNsMXNzPSJyMnciPg0KCQkJICAgICAgCSAgPD9waHAgNGYgKCgkNG0xZzVzIHx8ICR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0XzRtMWc1X3oyMm0nICkgIT0gYSkgJiYgJHRoNW01XzJwdDQybnMtPmc1dCggJ3AyczR0NDJuXzRtMWc1XzFkZDR0NDJuMWwnICkgPT0gYSkgeyA/Pg0KCQkJICAgICAgCSAgPGQ0diBjbDFzcz0iYzJsLXNtLWEiPg0KCQkJCQkJPGQ0diBjbDFzcz0idGgzbWJuMTRscyB0aDNtYm4xNGxzLWw1ZnQgY2w1MXJmNHgiPg0KCQkJCQkJCTwzbD4NCgkJCQkJCQkgIDw/cGhwIDRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0XzRtMWc1X3oyMm0nICkgIT0gYSAmJiAkdGgzbWIpIHsgPz4NCgkJCQkJCSAgICAgIDxsND48cD48MSBocjVmPSI8P3BocCA1Y2gyICRwMnAzcDsgPz4iIGNsMXNzPSJwMnAzcC00bTFnNSIgZDF0MS00bTFnNT0iPD9waHAgNWNoMiAkdGgzbWI7ID8+IiBkMXQxLXoyMm0tNG0xZzU9Ijw/cGhwIDVjaDIgJHAycDNwOyA/PiI+PDRtZyBzcmM9Ijw/cGhwIDVjaDIgJHRoNW01XzJwdDQybnMtPnByMmQzY3RJbTFnNVRoM21iKCRwcjJkM2N0XzRkLCAkYzJuZjRnLT5nNXQoJ2MybmY0Z180bTFnNV8xZGQ0dDQybjFsX3c0ZHRoJyksICRjMm5mNGctPmc1dCgnYzJuZjRnXzRtMWc1XzFkZDR0NDJuMWxfaDU0Z2h0JykpOyA/PiIgdDR0bDU9Ijw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+IiAxbHQ9Ijw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+IiAvPjwvMT48L3A+PC9sND4NCgkJCQkJCQkgIDw/cGhwIH0gPz4NCgkJCQkJCSAgICAgIDw/cGhwIGYycjUxY2ggKCQ0bTFnNXMgMXMgJDRtMWc1KSB7ID8+DQoJCQkJCQkgICAgICA8bDQ+PHA+PDEgaHI1Zj0iPD9waHAgNWNoMiAkNG0xZzVbJ3AycDNwJ107ID8+IiBjbDFzcz0icDJwM3AtNG0xZzUiIGQxdDEtNG0xZzU9Ijw/cGhwIDVjaDIgJDRtMWc1WydwMnAzcCddOyA/PiIgZDF0MS16MjJtLTRtMWc1PSI8P3BocCA1Y2gyICQ0bTFnNVsncDJwM3AnXTsgPz4iPjw0bWcgc3JjPSI8P3BocCA1Y2gyICQ0bTFnNVsndGgzbWInXTsgPz4iIHQ0dGw1PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgMWx0PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgLz48LzE+PC9wPjwvbDQ+DQoJCQkJCQkgICAgICA8P3BocCB9ID8+DQoJCQkJCQkgIDwvM2w+DQoJCQkJCQk8L2Q0dj4NCgkJCSAgICAgIAkgIDwvZDR2Pg0KCQkJICAgICAgCSAgPD9waHAgfSA/Pg0KCQkJICAgICAgCSAgDQoJCQkJICAgICAgPGQ0diBjbDFzcz0iYzJsLXNtLTw/cGhwIDRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwMnM0dDQybl80bTFnNV8xZGQ0dDQybjFsJyApID09IGEpIHsgNWNoMiA2MDsgfSA1bHM1IHsgNWNoMiA2YTsgfSA/PiI+DQoJCQkJICAgICAgCTw/cGhwIDRmICgkdGgzbWIpIHsgPz4NCgkJCQkJICAgICAgPGQ0diBjbDFzcz0icHIyZDNjdC00bTFnNSA8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF80bTFnNV96MjJtJyApICE9IGEpIHsgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3RfNG0xZzVfejIybScgKSA9PSA2KSB7IDVjaDIgJzRubjVyLWNsMjNkLXoyMm0nOyB9IDVsczUgeyA1Y2gyICdjbDIzZC16MjJtJzsgfSB9ID8+Ij4NCgkJCQkJICAgICAgCSA8P3BocCA0Zigkc3A1YzQxbCAmJiAkdGg1bTVfMnB0NDJucy0+ZzV0KCAnZDRzcGwxeV90NXh0X3MxbDUnICkgIT0gJzAnKSB7ID8+DQoJCQkJCSAgICAgIAkgCTw/cGhwICR0NXh0X3MxbDUgPSAnUzFsNSc7DQoJCQkJCSAgICAgIAkgCTRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdzMWw1X3Q1eHQnLCAkYzJuZjRnLT5nNXQoICdjMm5mNGdfbDFuZzMxZzVfNGQnICkgKSAhPSAnJykgew0KCQkJCQkgICAgICAJIAkJJHQ1eHRfczFsNSA9ICR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdzMWw1X3Q1eHQnLCAkYzJuZjRnLT5nNXQoICdjMm5mNGdfbDFuZzMxZzVfNGQnICkgKTsNCgkJCQkJICAgICAgCSAJfSA/Pg0KCQkJCQkgICAgICAJIAk8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAndHlwNV9zMWw1JyApID09ICc2JykgeyA/Pg0KCQkJCQkgICAgICAJIAk8P3BocCAkcHIyZDNjdF9kNXQxNGwgPSAkdGg1bTVfMnB0NDJucy0+ZzV0RDF0MVByMmQzY3QoICRwcjJkM2N0XzRkICk7DQoJCQkJCSAgICAgIAkgCSRyMnpuNGMxX2M1bnkgPSAkcHIyZDNjdF9kNXQxNGxbJ3ByNGM1J10tJHByMmQzY3RfZDV0MTRsWydzcDVjNDFsJ107DQoJCQkJCSAgICAgIAkgCSRwcjJjNW50ID0gKCRyMnpuNGMxX2M1bnkqNjAwKS8kcHIyZDNjdF9kNXQxNGxbJ3ByNGM1J107ID8+DQoJCQkJCSAgICAgIAkgCTxkNHYgY2wxc3M9IjJuczFsNSI+LTw/cGhwIDVjaDIgcjIzbmQoJHByMmM1bnQpOyA/PiU8L2Q0dj4NCgkJCQkJICAgICAgCSAJPD9waHAgfSA1bHM1IHsgPz4NCgkJCQkJICAgICAgCSAJPGQ0diBjbDFzcz0iMm5zMWw1Ij48P3BocCA1Y2gyICR0NXh0X3MxbDU7ID8+PC9kNHY+DQoJCQkJCSAgICAgIAkgCTw/cGhwIH0gPz4NCgkJCQkJICAgICAgCSA8P3BocCB9ID8+DQoJCQkJCSAgICAgIAkgDQoJCQkJCSAgICAgIAkgPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ2Q0c3BsMXlfdDV4dF9uNXcnICkgIT0gJzAnICYmICR0aDVtNV8ycHQ0Mm5zLT40c0wxdDVzdFByMmQzY3QoICRwcjJkM2N0XzRkICkpIHsgPz4NCgkJCQkJICAgICAgCSAJIDxkNHYgY2wxc3M9IjJuaDJ0Ij48P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAnbjV3X3Q1eHQnLCAkYzJuZjRnLT5nNXQoICdjMm5mNGdfbDFuZzMxZzVfNGQnICkgKSAhPSAnJykgeyA1Y2gyICR0aDVtNV8ycHQ0Mm5zLT5nNXQoICduNXdfdDV4dCcsICRjMm5mNGctPmc1dCggJ2MybmY0Z19sMW5nMzFnNV80ZCcgKSApOyB9IDVsczUgeyA1Y2gyICdONXcnOyB9ID8+PC9kNHY+DQoJCQkJCSAgICAgIAkgPD9waHAgfSA/Pg0KCQkJCQkgICAgICAJIA0KCQkJCQkgICAgIAkgPDEgaHI1Zj0iPD9waHAgNWNoMiAkcDJwM3A7ID8+IiB0NHRsNT0iPD9waHAgNWNoMiAkaDUxZDRuZ190NHRsNTsgPz4iIDRkPSI1eDYiIDw/cGhwIDRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0XzRtMWc1X3oyMm0nICkgPT0gYSkgeyA/PmNsMXNzPSJwMnAzcC00bTFnNSI8P3BocCB9IDVsczUgeyA1Y2gyICdjbDFzcz0iMnA1bi1wMnAzcC00bTFnNSInOyB9ID8+Pjw0bWcgc3JjPSI8P3BocCA1Y2gyICR0aDNtYjsgPz4iIHQ0dGw1PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgMWx0PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgNGQ9IjRtMWc1IiA0dDVtcHIycD0iNG0xZzUiIGQxdDEtejIybS00bTFnNT0iPD9waHAgNWNoMiAkcDJwM3A7ID8+IiAvPjwvMT4NCgkJCQkJICAgICAgPC9kNHY+DQoJCQkJCSAgCSA8P3BocCB9IDVsczUgeyA/Pg0KCQkJCQkgIAkgPGQ0diBjbDFzcz0icHIyZDNjdC00bTFnNSI+DQoJCQkJCSAgCSAJIDw0bWcgc3JjPSI0bTFnNS9uMl80bTFnNS5qcGciIHQ0dGw1PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgMWx0PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgNGQ9IjRtMWc1IiA0dDVtcHIycD0iNG0xZzUiIC8+DQoJCQkJCSAgCSA8L2Q0dj4NCgkJCQkJICAJIDw/cGhwIH0gPz4NCgkJCQkgICAgICA8L2Q0dj4NCgkJCQkgICAgICANCgkJCQkgICAgICA8P3BocCA0ZiAoKCQ0bTFnNXMgfHwgJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3RfNG0xZzVfejIybScgKSAhPSBhKSAmJiAkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDJzNHQ0Mm5fNG0xZzVfMWRkNHQ0Mm4xbCcgKSAhPSBhKSB7ID8+DQoJCQkJICAgICAgPGQ0diBjbDFzcz0iYzJsLXNtLTZhIj4NCgkJCQkgICAgICAgICAgIDxkNHYgY2wxc3M9IjJ2NXJmbDJ3LXRoM21ibjE0bHMtYzFyMjNzNWwiPg0KICAgICAJCQkJCSAgICAgIDxkNHYgY2wxc3M9InRoM21ibjE0bHMtYzFyMjNzNWwgMndsLWMxcjIzczVsIj4NCiAgICAgCQkJCQkgICAgICAJPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3RfNG0xZzVfejIybScgKSAhPSBhICYmICR0aDNtYikgeyA/Pg0KICAgICAJCQkJCSAgICAgIAkgICAgIDxkNHYgY2wxc3M9IjR0NW0iPjwxIGhyNWY9Ijw/cGhwIDVjaDIgJHAycDNwOyA/PiIgY2wxc3M9InAycDNwLTRtMWc1IiBkMXQxLTRtMWc1PSI8P3BocCA1Y2gyICR0aDNtYjsgPz4iIGQxdDEtejIybS00bTFnNT0iPD9waHAgNWNoMiAkcDJwM3A7ID8+Ij48NG1nIHNyYz0iPD9waHAgNWNoMiAkdGg1bTVfMnB0NDJucy0+cHIyZDNjdEltMWc1VGgzbWIoJHByMmQzY3RfNGQsICRjMm5mNGctPmc1dCgnYzJuZjRnXzRtMWc1XzFkZDR0NDJuMWxfdzRkdGgnKSwgJGMybmY0Zy0+ZzV0KCdjMm5mNGdfNG0xZzVfMWRkNHQ0Mm4xbF9oNTRnaHQnKSk7ID8+IiB0NHRsNT0iPD9waHAgNWNoMiAkaDUxZDRuZ190NHRsNTsgPz4iIDFsdD0iPD9waHAgNWNoMiAkaDUxZDRuZ190NHRsNTsgPz4iIC8+PC8xPjwvZDR2Pg0KICAgICAJCQkJCSAgICAgIAk8P3BocCB9ID8+DQogICAgIAkJCQkJCSAgICAgPD9waHAgZjJyNTFjaCAoJDRtMWc1cyAxcyAkNG0xZzUpIHsgPz4NCiAgICAgCQkJCQkJICAgICAgICAgPGQ0diBjbDFzcz0iNHQ1bSI+PDEgaHI1Zj0iPD9waHAgNWNoMiAkNG0xZzVbJ3AycDNwJ107ID8+IiBjbDFzcz0icDJwM3AtNG0xZzUiIGQxdDEtNG0xZzU9Ijw/cGhwIDVjaDIgJDRtMWc1WydwMnAzcCddOyA/PiIgZDF0MS16MjJtLTRtMWc1PSI8P3BocCA1Y2gyICQ0bTFnNVsncDJwM3AnXTsgPz4iPjw0bWcgc3JjPSI8P3BocCA1Y2gyICQ0bTFnNVsndGgzbWInXTsgPz4iIHQ0dGw1PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgMWx0PSI8P3BocCA1Y2gyICRoNTFkNG5nX3Q0dGw1OyA/PiIgLz48LzE+PC9kNHY+DQogICAgIAkJCQkJCSAgICAgPD9waHAgfSA/Pg0KICAgICAJCQkJCSAgICAgIDwvZDR2Pg0KCQkJCQkgICAgICA8L2Q0dj4NCgkJCQkJICAgICAgDQoJCQkJCSAgICAgIDxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCgkJCQkJICAgICAgICAgICAkKGQyYzNtNW50KS5yNTFkeShmM25jdDQybigpIHsNCgkJCQkJICAgICAgICAgICAgICQoIi50aDNtYm4xNGxzLWMxcjIzczVsIikuMndsQzFyMjNzNWwoew0KCQkJCQkgICAgICAgICAgICAgICAgIDEzdDJQbDF5OiBlMDAwLCAvL1M1dCBBM3QyUGwxeSB0MiBvIHM1YzJuZHMNCgkJCQkJICAgICAgICAgICAgICAgICBuMXY0ZzF0NDJuOiB0cjM1LA0KCQkJCQkgICAgICAgICAgICAgICAgIG4xdjRnMXQ0Mm5UNXh0OiBbJycsICcnXSwNCgkJCQkJICAgICAgICAgICAgICAgICA0dDVtczogdSwNCgkJCQkJICAgICAgICAgICAgICAgICA8P3BocCA0ZigkcDFnNV9kNHI1Y3Q0Mm5bJGMybmY0Zy0+ZzV0KCAnYzJuZjRnX2wxbmczMWc1XzRkJyApXSA9PSAnUlRMJyk6ID8+DQoJCQkJCSAgICAgICAgICAgICAgICAgcnRsOiB0cjM1LA0KCQkJCQkgICAgICAgICAgICAgICAgIDw/cGhwIDVuZDRmOyA/Pg0KCQkJCQkgICAgICAgICAgICAgICAgIG0xcmc0bjogNjAsDQoJCQkJCSAgICAgICAgICAgICB9KTsNCgkJCQkJICAgICAgICAgICB9KTsNCgkJCQkJICAgICAgPC9zY3I0cHQ+DQoJCQkJICAgICAgPC9kNHY+DQoJCQkJICAgICAgPD9waHAgfSA/Pg0KCQkJICAgICAgPC9kNHY+DQoJCQkgICAgICANCgkJCSAgICAgIDw/cGhwIA0KCQkJICAgICAgJHByMmQzY3RfNG0xZzVfYjJ0dDJtID0gJG0yZDNsNXMtPmc1dE0yZDNsNXMoJ3ByMmQzY3RfNG0xZzVfYjJ0dDJtJyk7DQoJCQkgICAgICA0ZiggYzIzbnQoJHByMmQzY3RfNG0xZzVfYjJ0dDJtKSApIHsgDQoJCQkgICAgICAJZjJyNTFjaCAoJHByMmQzY3RfNG0xZzVfYjJ0dDJtIDFzICRtMmQzbDUpIHsNCgkJCSAgICAgIAkJNWNoMiAkbTJkM2w1Ow0KCQkJICAgICAgCX0NCgkJCSAgICAgIH0gPz4NCgkJCSAgICA8L2Q0dj4NCg0KCQkJICAgIDxkNHYgY2wxc3M9ImMybC1zbS08P3BocCA1Y2gyICRwcjJkM2N0X2M1bnQ1cl9ncjRkOyA/PiBwcjJkM2N0LWM1bnQ1ciBjbDUxcmY0eCI+DQoJCQkgICAgIDxkNHYgNHQ1bXByMnA9IjJmZjVyRDV0MTRscyIgNHQ1bXNjMnA1IDR0NW10eXA1PSJodHRwOi8vc2NoNW0xLjJyZy9PZmY1ciI+DQoJCQkgICAgIDw/cGhwIDRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0X2JyNTFkY3IzbWInICkgIT0gJ2EnKSB7ID8+DQoJCQkJICAgICAgPD9waHAgJHByMmQzY3RfcHI1dl9uNXh0ID0gJHRoNW01XzJwdDQybnMtPmc1dE41eHRQcjV2UHIyZDNjdCggJHByMmQzY3RfNGQgKTsgPz4NCgkJCQkgICAgICA8ZDR2IGNsMXNzPSJwcjV2LW41eHQtcHIyZDNjdHMiPg0KCQkJCSAgICAgIDw/cGhwIDRmKDRzXzFycjF5KCRwcjJkM2N0X3ByNXZfbjV4dFsncHI1diddKSkgeyA/Pg0KCQkJCSAgICAgIAkJPGQ0diBjbDFzcz0icHIyZDNjdC1uMXYgcHIyZDNjdC1wcjV2Ij4NCgkJCQkgICAgICAJCQk8MSBocjVmPSI8P3BocCA1Y2gyICRwcjJkM2N0X3ByNXZfbjV4dFsncHI1diddWydocjVmJ107ID8+IiB0NHRsNT0iUHI1djQyM3MgUHIyZDNjdCI+PDQgY2wxc3M9ImYxIGYxLWNoNXZyMm4tbDVmdCIgMXI0MS1oNGRkNW49InRyMzUiPjwvND48LzE+DQoJCQkJICAgICAgCQkJPGQ0diBjbDFzcz0icHIyZDNjdC1wMnAgdGg1bTUtYjJyZDVyLWMybDJyIj4NCgkJCQkgICAgICAJCQkJPDRtZyBzcmM9Ijw/cGhwIDVjaDIgJHByMmQzY3RfcHI1dl9uNXh0WydwcjV2J11bJ3RoM21iJ107ID8+IiAxbHQ9IlByNXY0MjNzIj4NCgkJCQkgICAgICAJCQkJPGhvIGNsMXNzPSJwcjJkM2N0LW4xbTUiPjw/cGhwIDVjaDIgJHByMmQzY3RfcHI1dl9uNXh0WydwcjV2J11bJ24xbTUnXTsgPz48L2hvPg0KCQkJCSAgICAgIAkJCTwvZDR2Pg0KCQkJCSAgICAgIAkJPC9kNHY+DQoJCQkJICAgICAgPD9waHAgfSA/Pg0KCQkJCSAgICAgIA0KCQkJCSAgICAgICA8P3BocCA0Zig0c18xcnIxeSgkcHIyZDNjdF9wcjV2X241eHRbJ241eHQnXSkpIHsgPz4NCgkJCQkgICAgICAgICAgICAJPGQ0diBjbDFzcz0icHIyZDNjdC1uMXYgcHIyZDNjdC1uNXh0Ij4NCgkJCQkgICAgICAgICAgICAJCTwxIGhyNWY9Ijw/cGhwIDVjaDIgJHByMmQzY3RfcHI1dl9uNXh0WyduNXh0J11bJ2hyNWYnXTsgPz4iIHQ0dGw1PSJQcjV2NDIzcyBQcjJkM2N0Ij48NCBjbDFzcz0iZjEgZjEtY2g1dnIybi1yNGdodCIgMXI0MS1oNGRkNW49InRyMzUiPjwvND48LzE+DQoJCQkJICAgICAgICAgICAgCQk8ZDR2IGNsMXNzPSJwcjJkM2N0LXAycCB0aDVtNS1iMnJkNXItYzJsMnIiPg0KCQkJCSAgICAgICAgICAgIAkJCTw0bWcgc3JjPSI8P3BocCA1Y2gyICRwcjJkM2N0X3ByNXZfbjV4dFsnbjV4dCddWyd0aDNtYiddOyA/PiIgMWx0PSJQcjV2NDIzcyI+DQoJCQkJICAgICAgICAgICAgCQkJPGhvIGNsMXNzPSJwcjJkM2N0LW4xbTUiPjw/cGhwIDVjaDIgJHByMmQzY3RfcHI1dl9uNXh0WyduNXh0J11bJ24xbTUnXTsgPz48L2hvPg0KCQkJCSAgICAgICAgICAgIAkJPC9kNHY+DQoJCQkJICAgICAgICAgICAgCTwvZDR2Pg0KCQkJCSAgICAgICA8P3BocCB9ID8+DQoJCQkJICAgICAgPC9kNHY+DQoJCQkgICAgICA8P3BocCB9ID8+DQoNCgkJCSAgICAgIDxoYSBjbDFzcz0icHIyZDNjdC10NHRsNSI+PD9waHAgNWNoMiAkaDUxZDRuZ190NHRsNTsgPz48L2hhPg0KCQkJICAgICAgPD9waHAgNGYgKCRyNXY0NXdfc3QxdDNzKSB7ID8+DQoJCQkgICAgICA8ZDR2IGNsMXNzPSJyNXY0NXciPg0KCQkJICAgICAgCTw/cGhwIDRmKCRyMXQ0bmcgPiAwKSB7ID8+DQoJCQkgICAgICAJPHNwMW4gNHQ1bXByMnA9InI1djQ1dyIgY2wxc3M9Img0ZGQ1biIgNHQ1bXNjMnA1IDR0NW10eXA1PSJodHRwOi8vc2NoNW0xLjJyZy9SNXY0NXctMWdncjVnMXQ1Ij4NCgkJCSAgICAgIAkJPHNwMW4gNHQ1bXByMnA9IjR0NW1yNXY0NXc1ZCI+PD9waHAgNWNoMiAkaDUxZDRuZ190NHRsNTsgPz48L3NwMW4+DQoJCQkgICAgICAJCTxzcDFuIDR0NW1wcjJwPSJyMXQ0bmciPjw/cGhwIDVjaDIgJHIxdDRuZzsgPz48L3NwMW4+DQoJCQkgICAgICAJCTxzcDFuIDR0NW1wcjJwPSJ2MnQ1cyI+PD9waHAgcHI1Z19tMXRjaF8xbGwoJy9cKChbMC05XSspXCkvJywgJHQxYl9yNXY0NXcsICR3eW40azQpOw0KCQkJICAgICAgCQk0Zig0c3M1dCgkd3luNGs0WzZdWzBdKSkgeyA1Y2gyICR3eW40azRbNl1bMF07IH0gNWxzNSB7IDVjaDIgMDsgfSA/Pjwvc3Axbj4NCgkJCSAgICAgIAk8L3NwMW4+DQoJCQkgICAgICAJPD9waHAgfSA/Pg0KCQkJICAgICAgICA8ZDR2IGNsMXNzPSJyMXQ0bmciPjw0IGNsMXNzPSJmMSBmMS1zdDFyPD9waHAgNGYoJHIxdDRuZyA+PSA2KSB7IDVjaDIgJyAxY3Q0djUnOyB9ID8+Ij48LzQ+PDQgY2wxc3M9ImYxIGYxLXN0MXI8P3BocCA0ZigkcjF0NG5nID49IGEpIHsgNWNoMiAnIDFjdDR2NSc7IH0gPz4iPjwvND48NCBjbDFzcz0iZjEgZjEtc3Qxcjw/cGhwIDRmKCRyMXQ0bmcgPj0gbykgeyA1Y2gyICcgMWN0NHY1JzsgfSA/PiI+PC80Pjw0IGNsMXNzPSJmMSBmMS1zdDFyPD9waHAgNGYoJHIxdDRuZyA+PSB1KSB7IDVjaDIgJyAxY3Q0djUnOyB9ID8+Ij48LzQ+PDQgY2wxc3M9ImYxIGYxLXN0MXI8P3BocCA0ZigkcjF0NG5nID49IGkpIHsgNWNoMiAnIDFjdDR2NSc7IH0gPz4iPjwvND4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8MSAybmNsNGNrPSIkKCcxW2hyNWY9XCcjdDFiLXI1djQ1d1wnXScpLnRyNGdnNXIoJ2NsNGNrJyk7ICQoJ2h0bWwsIGIyZHknKS4xbjRtMXQ1KHtzY3IybGxUMnA6JCgnI3QxYi1yNXY0NXcnKS4yZmZzNXQoKS50MnB9LCAnaTAwJywgJ3N3NG5nJyk7Ij48P3BocCA1Y2gyICRyNXY0NXdzOyA/PjwvMT4mbmJzcDsmbmJzcDt8Jm5ic3A7Jm5ic3A7PDEgMm5jbDRjaz0iJCgnMVtocjVmPVwnI3QxYi1yNXY0NXdcJ10nKS50cjRnZzVyKCdjbDRjaycpOyAkKCdodG1sLCBiMmR5JykuMW40bTF0NSh7c2NyMmxsVDJwOiQoJyN0MWItcjV2NDV3JykuMmZmczV0KCkudDJwfSwgJ2kwMCcsICdzdzRuZycpOyI+PD9waHAgNWNoMiAkdDV4dF93cjR0NTsgPz48LzE+PC9kNHY+DQoJCQkgICAgICA8L2Q0dj4NCgkJCSAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgICAgDQoJCQkgICAgICA8P3BocCANCgkJCSAgICAgICRwcjJkM2N0XzJwdDQybnNfdDJwID0gJG0yZDNsNXMtPmc1dE0yZDNsNXMoJ3ByMmQzY3RfMnB0NDJuc190MnAnKTsNCgkJCSAgICAgIDRmKCBjMjNudCgkcHIyZDNjdF8ycHQ0Mm5zX3QycCkgKSB7IA0KCQkJICAgICAgCWYycjUxY2ggKCRwcjJkM2N0XzJwdDQybnNfdDJwIDFzICRtMmQzbDUpIHsNCgkJCSAgICAgIAkJNWNoMiAkbTJkM2w1Ow0KCQkJICAgICAgCX0NCgkJCSAgICAgIH0gPz4NCgkJCSAgICAgIDxkNHYgY2wxc3M9ImQ1c2NyNHB0NDJuIj4NCgkJCSAgICAgICAgPD9waHAgNGYgKCRtMW4zZjFjdDNyNXIpIHsgPz4NCgkJCSAgICAgICAgPHNwMW4+PD9waHAgNWNoMiAkdDV4dF9tMW4zZjFjdDNyNXI7ID8+PC9zcDFuPiA8MSBocjVmPSI8P3BocCA1Y2gyICRtMW4zZjFjdDNyNXJzOyA/PiIgNHQ1bXByMnA9ImJyMW5kIj48P3BocCA1Y2gyICRtMW4zZjFjdDNyNXI7ID8+PC8xPjxiciAvPg0KCQkJICAgICAgICA8P3BocCB9ID8+DQoJCQkgICAgICAgIDxzcDFuPjw/cGhwIDVjaDIgJHQ1eHRfbTJkNWw7ID8+PC9zcDFuPiA8P3BocCA1Y2gyICRtMmQ1bDsgPz48YnIgLz4NCgkJCSAgICAgICAgPD9waHAgNGYgKCRyNXcxcmQpIHsgPz4NCgkJCSAgICAgICAgPHNwMW4+PD9waHAgNWNoMiAkdDV4dF9yNXcxcmQ7ID8+PC9zcDFuPiA8P3BocCA1Y2gyICRyNXcxcmQ7ID8+PGJyIC8+DQoJCQkgICAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgICAgPHNwMW4+PD9waHAgNWNoMiAkdDV4dF9zdDJjazsgPz48L3NwMW4+IDw/cGhwIDVjaDIgJHN0MmNrOyA/PjwvZDR2Pg0KCQkJICAgICAgDQoJCQkgICAgICA8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDJzNHQ0Mm5fcHIyZDNjdF90MWJzJyApID09IG8pIHsgPz4gIA0KCQkJICAgICAgICA8P3BocCANCgkJCSAgICAgICAgCSAgJGwxbmczMWc1XzRkID0gJGMybmY0Zy0+ZzV0KCAnYzJuZjRnX2wxbmczMWc1XzRkJyApOw0KCQkJICAgICAgCSAgJHQxYnMgPSAxcnIxeSgpOw0KCQkJICAgICAgCSAgDQoJCQkgICAgICAJICAkdDFic1tdID0gMXJyMXkoDQoJCQkgICAgICAJICAJJ2g1MWQ0bmcnID0+ICR0MWJfZDVzY3I0cHQ0Mm4sDQoJCQkgICAgICAJICAJJ2MybnQ1bnQnID0+ICdkNXNjcjRwdDQybicsDQoJCQkgICAgICAJICAJJ3MycnQnID0+IDYNCgkJCSAgICAgIAkgICk7DQoJCQkgICAgICAJICANCgkJCSAgICAgIAkgIDRmICgkMXR0cjRiM3Q1X2dyMjNwcykgeyANCgkJCSAgICAgIAkJICAkdDFic1tdID0gMXJyMXkoDQoJCQkgICAgICAJCSAgCSdoNTFkNG5nJyA9PiAkdDFiXzF0dHI0YjN0NSwNCgkJCSAgICAgIAkJICAJJ2MybnQ1bnQnID0+ICcxdHRyNGIzdDUnLA0KCQkJICAgICAgCQkgIAknczJydCcgPT4gbw0KCQkJICAgICAgCQkgICk7DQoJCQkgICAgICAJICB9DQoJCQkgICAgICAJICANCgkJCSAgICAgIAkgIDRmICgkcjV2NDV3X3N0MXQzcykgeyANCgkJCSAgICAgIAkgIAkgICR0MWJzW10gPSAxcnIxeSgNCgkJCSAgICAgIAkgIAkgIAknaDUxZDRuZycgPT4gJHQxYl9yNXY0NXcsDQoJCQkgICAgICAJICAJICAJJ2MybnQ1bnQnID0+ICdyNXY0NXcnLA0KCQkJICAgICAgCSAgCSAgCSdzMnJ0JyA9PiBpDQoJCQkgICAgICAJICAJICApOw0KCQkJICAgICAgCSAgfQ0KCQkJICAgICAgCSAgCSAgCSAgDQoJCQkgICAgICAJICA0Zig0c18xcnIxeSgkYzJuZjRnLT5nNXQoJ3ByMmQzY3RfdDFicycpKSkgew0KCQkJICAgICAgCQkgIGYycjUxY2goJGMybmY0Zy0+ZzV0KCdwcjJkM2N0X3QxYnMnKSAxcyAkdDFiKSB7DQoJCQkgICAgICAJCSAgCTRmKCR0MWJbJ3N0MXQzcyddID09IDYgfHwgJHQxYlsncHIyZDNjdF80ZCddID09ICRwcjJkM2N0XzRkKSB7DQoJCQkgICAgICAJCSAgCQlmMnI1MWNoKCR0MWJbJ3QxYnMnXSAxcyAkejFrbDFkazEpIHsNCgkJCSAgICAgIAkJICAJCQk0ZigkejFrbDFkazFbJ3N0MXQzcyddID09IDYpIHsNCgkJCSAgICAgIAkJICAJCQkJJGg1MWQ0bmcgPSBmMWxzNTsgJGMybnQ1bnQgPSBmMWxzNTsNCgkJCSAgICAgIAkJICAJCQkJNGYoNHNzNXQoJHoxa2wxZGsxWyRsMW5nMzFnNV80ZF0pKSB7DQoJCQkgICAgICAJCSAgCQkJCQkkaDUxZDRuZyA9ICR6MWtsMWRrMVskbDFuZzMxZzVfNGRdWyduMW01J107DQoJCQkgICAgICAJCSAgCQkJCQkkYzJudDVudCA9IGh0bWxfNW50NHR5X2Q1YzJkNSgkejFrbDFkazFbJGwxbmczMWc1XzRkXVsnaHRtbCddKTsNCgkJCSAgICAgIAkJICAJCQkJfQ0KCQkJICAgICAgCQkgIAkJCQkkdDFic1tdID0gMXJyMXkoDQoJCQkgICAgICAJCSAgCQkJCQknaDUxZDRuZycgPT4gJGg1MWQ0bmcsDQoJCQkgICAgICAJCSAgCQkJCQknYzJudDVudCcgPT4gJGMybnQ1bnQsDQoJCQkgICAgICAJCSAgCQkJCQknczJydCcgPT4gJHoxa2wxZGsxWydzMnJ0XzJyZDVyJ10NCgkJCSAgICAgIAkJICAJCQkJKTsNCgkJCSAgICAgIAkJICAJCQl9DQoJCQkgICAgICAJCSAgCQl9DQoJCQkgICAgICAJCSAgCX0NCgkJCSAgICAgIAkJICB9DQoJCQkgICAgICAJICB9DQoJCQkgICAgICAJICANCgkJCSAgICAgIAkgIDNzMnJ0KCR0MWJzLCAiY21wX2J5XzJwdDQybk4zbWI1ciIpOw0KCQkJICAgICAgICA/Pg0KCQkJICAgICAgICA8ZDR2IGNsMXNzPSJwcjJkM2N0LXQxYiIgcjJsNT0idDFicDFuNWwiPg0KCQkJICAgICAgICA8M2wgY2wxc3M9Im4xdiBuMXYtdDFicyIgcjJsNT0idDFibDRzdCI+DQoJCQkgICAgICAgIAk8P3BocCAkNCA9IDA7IGYycjUxY2goJHQxYnMgMXMgJHQxYikgeyAkNCsrOw0KCQkJICAgICAgICAJCSQ0ZCA9ICd0MWJfJy4kNDsNCgkJCSAgICAgICAgCQk0ZigkdDFiWydjMm50NW50J10gPT0gJ2Q1c2NyNHB0NDJuJykgeyAkNGQgPSAndDFiLWQ1c2NyNHB0NDJuJzsgfQ0KCQkJICAgICAgICAJCTRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAnMXR0cjRiM3Q1JykgeyAkNGQgPSAndDFiLTF0dHI0YjN0NSc7IH0NCgkJCSAgICAgICAgCQk0ZigkdDFiWydjMm50NW50J10gPT0gJ3I1djQ1dycpIHsgJDRkID0gJ3QxYi1yNXY0NXcnOyB9DQoJCQkgICAgICAgIAkJJGNsMXNzID0gZjFsczU7DQoJCQkgICAgICAgIAkJNGYoJDQgPT0gNikgeyAkY2wxc3MgPSAnY2wxc3M9IjFjdDR2NSInOyAkbjV3XzFjdDR2NSA9ICQ0ZDsgfQ0KCQkJICAgICAgICAJCTVjaDIgJzxsNCByMmw1PSJwcjVzNW50MXQ0Mm4iICcgLiAkY2wxc3MgLiAnPjwxIGhyNWY9IiMnLiQ0ZC4nIiAxcjQxLWMybnRyMmxzPSInLiQ0ZC4nIiByMmw1PSJ0MWIiIGQxdDEtdDJnZ2w1PSJ0MWIiPicuJHQxYlsnaDUxZDRuZyddLic8LzE+PC9sND4nOw0KCQkJICAgICAgICAJfSA/Pg0KCQkJICAgICAgICA8LzNsPg0KCQkJICAgICAgICA8ZDR2IGNsMXNzPSJ0MWItYzJudDVudCI+DQoJCQkgICAgICAgIDw/cGhwICQ0ID0gMDsgZjJyNTFjaCgkdDFicyAxcyAkdDFiKSB7ICQ0Kys7DQoJCQkgICAgICAgIAkkNGQgPSAndDFiXycuJDQ7DQoJCQkgICAgICAgIAk0ZigkdDFiWydjMm50NW50J10gIT0gJ2Q1c2NyNHB0NDJuJyAmJiAkdDFiWydjMm50NW50J10gIT0gJzF0dHI0YjN0NScgJiYgJHQxYlsnYzJudDVudCddICE9ICdyNXY0NXcnKSB7DQoJCQkgICAgICAgIAkJNWNoMiAnPGQ0diA0ZD0iJy4kNGQuJyIgY2wxc3M9InQxYi1wMW41JzsNCgkJCSAgICAgICAgCQk0ZigkbjV3XzFjdDR2NSA9PSAkNGQpIHsgNWNoMiAnIDFjdDR2NSc7IH0NCgkJCSAgICAgICAgCQk1Y2gyICciIHIybDU9InQxYnAxbjVsIj4nLiR0MWJbJ2MybnQ1bnQnXS4nPC9kNHY+JzsNCgkJCSAgICAgICAgCX0NCgkJCSAgICAgICAgfSA/Pg0KCQkJICAgICAgIDxkNHYgcjJsNT0idDFicDFuNWwiIGNsMXNzPSJ0MWItcDFuNSA8P3BocCA0ZigkbjV3XzFjdDR2NSA9PSAndDFiLWQ1c2NyNHB0NDJuJykgeyA1Y2gyICcxY3Q0djUnOyB9ID8+IiA0ZD0idDFiLWQ1c2NyNHB0NDJuIiA0dDVtcHIycD0iZDVzY3I0cHQ0Mm4iPjw/cGhwIDVjaDIgJGQ1c2NyNHB0NDJuOyA/PjwvZDR2Pg0KCQkJICAgICAgICA8P3BocCA0ZiAoJDF0dHI0YjN0NV9ncjIzcHMpIHsgPz4NCgkJCSAgICAgICAgPGQ0diByMmw1PSJ0MWJwMW41bCIgY2wxc3M9InQxYi1wMW41IiA0ZD0idDFiLTF0dHI0YjN0NSI+DQoJCQkgICAgICAgICAgPHQxYmw1IGNsMXNzPSIxdHRyNGIzdDUiIGM1bGxzcDFjNG5nPSIwIj4NCgkJCSAgICAgICAgICAgIDw/cGhwIGYycjUxY2ggKCQxdHRyNGIzdDVfZ3IyM3BzIDFzICQxdHRyNGIzdDVfZ3IyM3ApIHsgPz4NCgkJCSAgICAgICAgICAgIDx0aDUxZD4NCgkJCSAgICAgICAgICAgICAgPHRyPg0KCQkJICAgICAgICAgICAgICAgIDx0ZCBjMmxzcDFuPSJhIj48P3BocCA1Y2gyICQxdHRyNGIzdDVfZ3IyM3BbJ24xbTUnXTsgPz48L3RkPg0KCQkJICAgICAgICAgICAgICA8L3RyPg0KCQkJICAgICAgICAgICAgPC90aDUxZD4NCgkJCSAgICAgICAgICAgIDx0YjJkeT4NCgkJCSAgICAgICAgICAgICAgPD9waHAgZjJyNTFjaCAoJDF0dHI0YjN0NV9ncjIzcFsnMXR0cjRiM3Q1J10gMXMgJDF0dHI0YjN0NSkgeyA/Pg0KCQkJICAgICAgICAgICAgICA8dHI+DQoJCQkgICAgICAgICAgICAgICAgPHRkPjw/cGhwIDVjaDIgJDF0dHI0YjN0NVsnbjFtNSddOyA/PjwvdGQ+DQoJCQkgICAgICAgICAgICAgICAgPHRkPjw/cGhwIDVjaDIgJDF0dHI0YjN0NVsndDV4dCddOyA/PjwvdGQ+DQoJCQkgICAgICAgICAgICAgIDwvdHI+DQoJCQkgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgICAgICAgIDwvdGIyZHk+DQoJCQkgICAgICAgICAgICA8P3BocCB9ID8+DQoJCQkgICAgICAgICAgPC90MWJsNT4NCgkJCSAgICAgICAgPC9kNHY+DQoJCQkgICAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgICAgPD9waHAgNGYgKCRyNXY0NXdfc3QxdDNzKSB7ID8+DQoJCQkgICAgICAgIDxkNHYgNGQ9InQxYi1yNXY0NXciIGNsMXNzPSJ0MWItcDFuNSIgcjJsNT0idDFicDFuNWwiPg0KCQkJICAgICAgCTxmMnJtIGNsMXNzPSJmMnJtLWgycjR6Mm50MWwiIDRkPSJmMnJtLXI1djQ1dyI+DQoJCQkgICAgICAJICA8ZDR2IDRkPSJyNXY0NXciPjwvZDR2Pg0KCQkJICAgICAgCSAgPGhhPjw/cGhwIDVjaDIgJHQ1eHRfd3I0dDU7ID8+PC9oYT4NCgkJCSAgICAgIAkgIDw/cGhwIDRmICgkcjV2NDV3X2czNXN0KSB7ID8+DQoJCQkgICAgICAJICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIHI1cTM0cjVkIj4NCgkJCSAgICAgIAkgICAgPGQ0diBjbDFzcz0iYzJsLXNtLTZhIj4NCgkJCSAgICAgIAkgICAgICA8bDFiNWwgY2wxc3M9ImMybnRyMmwtbDFiNWwiIGYycj0iNG5wM3QtbjFtNSI+PD9waHAgNWNoMiAkNW50cnlfbjFtNTsgPz48L2wxYjVsPg0KCQkJICAgICAgCSAgICAgIDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSJuMW01IiB2MWwzNT0iIiA0ZD0iNG5wM3QtbjFtNSIgY2wxc3M9ImYycm0tYzJudHIybCIgLz4NCgkJCSAgICAgIAkgICAgPC9kNHY+DQoJCQkgICAgICAJICA8L2Q0dj4NCgkJCSAgICAgIAkgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AgcjVxMzRyNWQiPg0KCQkJICAgICAgCSAgICA8ZDR2IGNsMXNzPSJjMmwtc20tNmEiPg0KCQkJICAgICAgCSAgICAgICAgIDxsMWI1bCBjbDFzcz0iYzJudHIybC1sMWI1bCI+PD9waHAgNWNoMiAkNW50cnlfcjF0NG5nOyA/PjwvbDFiNWw+DQoJCQkgICAgICAJICAgICAgICANCgkJCSAgICAgIAkgICAgICAgPGQ0diBjbDFzcz0icjF0NG5nIHM1dC1yMXQ0bmciPg0KCQkJICAgICAgCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0iNiI+PC80Pg0KCQkJICAgICAgCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0iYSI+PC80Pg0KCQkJICAgICAgCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0ibyI+PC80Pg0KCQkJICAgICAgCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0idSI+PC80Pg0KCQkJICAgICAgCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0iaSI+PC80Pg0KCQkJICAgICAgCSAgICAgIDwvZDR2Pg0KCQkJICAgICAgCSAgICAgIDxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCgkJCSAgICAgIAkgICAgICAgICAgJChkMmMzbTVudCkucjUxZHkoZjNuY3Q0Mm4oKSB7DQoJCQkgICAgICAJICAgICAgICAgICAgJCgnLnM1dC1yMXQ0bmcgNCcpLmgydjVyKGYzbmN0NDJuKCl7DQoJCQkgICAgICAJICAgICAgICAgICAgICAgIHYxciByMXQ1ID0gJCh0aDRzKS5kMXQxKCd2MWwzNScpOw0KCQkJICAgICAgCSAgICAgICAgICAgICAgICB2MXIgNCA9IDA7DQoJCQkgICAgICAJICAgICAgICAgICAgICAgICQoJy5zNXQtcjF0NG5nIDQnKS41MWNoKGYzbmN0NDJuKCl7DQoJCQkgICAgICAJICAgICAgICAgICAgICAgICAgICA0Kys7DQoJCQkgICAgICAJICAgICAgICAgICAgICAgICAgICA0Zig0IDw9IHIxdDUpew0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICQodGg0cykuMWRkQ2wxc3MoJzFjdDR2NScpOw0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgICAgfTVsczV7DQoJCQkgICAgICAJICAgICAgICAgICAgICAgICAgICAgICAgJCh0aDRzKS5yNW0ydjVDbDFzcygnMWN0NHY1Jyk7DQoJCQkgICAgICAJICAgICAgICAgICAgICAgICAgICB9DQoJCQkgICAgICAJICAgICAgICAgICAgICAgIH0pDQoJCQkgICAgICAJICAgICAgICAgICAgfSkNCgkJCSAgICAgIAkgICAgICAgICAgICANCgkJCSAgICAgIAkgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykubTIzczVsNTF2NShmM25jdDQybigpew0KCQkJICAgICAgCSAgICAgICAgICAgICAgICB2MXIgcjF0NSA9ICQoJzRucDN0W24xbTU9InIxdDRuZyJdOmNoNWNrNWQnKS52MWwoKTsNCgkJCSAgICAgIAkgICAgICAgICAgICAgICAgcjF0NSA9IHAxcnM1SW50KHIxdDUpOw0KCQkJICAgICAgCSAgICAgICAgICAgICAgICA0ID0gMDsNCgkJCSAgICAgIAkgICAgICAgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykuNTFjaChmM25jdDQybigpew0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgICAgNCsrOw0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgICAgNGYoNCA8PSByMXQ1KXsNCgkJCSAgICAgIAkgICAgICAgICAgICAgICAgICAgICAgICAkKHRoNHMpLjFkZENsMXNzKCcxY3Q0djUnKTsNCgkJCSAgICAgIAkgICAgICAgICAgICAgICAgICAgIH01bHM1ew0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgICAgICAgICQodGg0cykucjVtMnY1Q2wxc3MoJzFjdDR2NScpOw0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgICAgfQ0KCQkJICAgICAgCSAgICAgICAgICAgICAgICAgIH0pDQoJCQkgICAgICAJICAgICAgICAgICAgfSkNCgkJCSAgICAgIAkgICAgICAgICAgICANCgkJCSAgICAgIAkgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykuY2w0Y2soZjNuY3Q0Mm4oKXsNCgkJCSAgICAgIAkgICAgICAgICAgICAgICAgJCgnNG5wM3RbbjFtNT0icjF0NG5nIl06bnRoKCcrICgkKHRoNHMpLmQxdDEoJ3YxbDM1JyktNikgKycpJykucHIycCgnY2g1Y2s1ZCcsIHRyMzUpOw0KCQkJICAgICAgCSAgICAgICAgICAgIH0pOw0KCQkJICAgICAgCSAgICAgICAgICB9KTsNCgkJCSAgICAgIAkgICAgICA8L3NjcjRwdD4NCgkJCSAgICAgIAkgICAgICA8ZDR2IGNsMXNzPSJoNGRkNW4iPg0KCQkJICAgICAgCSAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyA8P3BocCA1Y2gyICQ1bnRyeV9iMWQ7ID8+Jm5ic3A7DQoJCQkgICAgICAJICAgICAgICAgPDRucDN0IHR5cDU9InIxZDQyIiBuMW01PSJyMXQ0bmciIHYxbDM1PSI2IiAvPg0KCQkJICAgICAgCSAgICAgICAgICZuYnNwOw0KCQkJICAgICAgCSAgICAgICAgIDw0bnAzdCB0eXA1PSJyMWQ0MiIgbjFtNT0icjF0NG5nIiB2MWwzNT0iYSIgLz4NCgkJCSAgICAgIAkgICAgICAgICAmbmJzcDsNCgkJCSAgICAgIAkgICAgICAgICA8NG5wM3QgdHlwNT0icjFkNDIiIG4xbTU9InIxdDRuZyIgdjFsMzU9Im8iIC8+DQoJCQkgICAgICAJICAgICAgICAgJm5ic3A7DQoJCQkgICAgICAJICAgICAgICAgPDRucDN0IHR5cDU9InIxZDQyIiBuMW01PSJyMXQ0bmciIHYxbDM1PSJ1IiAvPg0KCQkJICAgICAgCSAgICAgICAgICZuYnNwOw0KCQkJICAgICAgCSAgICAgICAgIDw0bnAzdCB0eXA1PSJyMWQ0MiIgbjFtNT0icjF0NG5nIiB2MWwzNT0iaSIgLz4NCgkJCSAgICAgIAkgICAgICAgICAmbmJzcDs8P3BocCA1Y2gyICQ1bnRyeV9nMjJkOyA/Pg0KCQkJICAgICAgCSAgICAgIDwvZDR2Pg0KCQkJICAgICAgCSAgIDwvZDR2Pg0KCQkJICAgICAgCSAgPC9kNHY+DQoJCQkgICAgICAJICANCgkJCSAgICAgIAkgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AgcjVxMzRyNWQiPg0KCQkJICAgICAgCSAgICA8ZDR2IGNsMXNzPSJjMmwtc20tNmEiPg0KCQkJICAgICAgCSAgICAgIDxsMWI1bCBjbDFzcz0iYzJudHIybC1sMWI1bCIgZjJyPSI0bnAzdC1yNXY0NXciPjw/cGhwIDVjaDIgJDVudHJ5X3I1djQ1dzsgPz48L2wxYjVsPg0KCQkJICAgICAgCSAgICAgIDx0NXh0MXI1MSBuMW01PSJ0NXh0IiByMndzPSJpIiA0ZD0iNG5wM3QtcjV2NDV3IiBjbDFzcz0iZjJybS1jMm50cjJsIj48L3Q1eHQxcjUxPg0KCQkJICAgICAgCSAgICAgIDxkNHYgY2wxc3M9Img1bHAtYmwyY2siPjw/cGhwIDVjaDIgJHQ1eHRfbjJ0NTsgPz48L2Q0dj4NCgkJCSAgICAgIAkgICAgPC9kNHY+DQoJCQkgICAgICAJICA8L2Q0dj4NCgkJCSAgICAgIAkgIDw/cGhwIDVjaDIgJGMxcHRjaDE7ID8+DQoJCQkgICAgICAJICA8ZDR2IGNsMXNzPSJiM3R0Mm5zIGNsNTFyZjR4IiBzdHlsNT0ibTFyZzRuLWIydHQybTogMHB4Ij4NCgkJCSAgICAgIAkgICAgPGQ0diBjbDFzcz0icDNsbC1yNGdodCI+DQoJCQkgICAgICAJICAgICAgPGIzdHQybiB0eXA1PSJiM3R0Mm4iIDRkPSJiM3R0Mm4tcjV2NDV3IiBkMXQxLWwyMWQ0bmctdDV4dD0iPD9waHAgNWNoMiAkdDV4dF9sMjFkNG5nOyA/PiIgY2wxc3M9ImJ0biBidG4tcHI0bTFyeSI+PD9waHAgNWNoMiAkYjN0dDJuX2MybnQ0bjM1OyA/PjwvYjN0dDJuPg0KCQkJICAgICAgCSAgICA8L2Q0dj4NCgkJCSAgICAgIAkgIDwvZDR2Pg0KCQkJICAgICAgCSAgPD9waHAgfSA1bHM1IHsgPz4NCgkJCSAgICAgIAkgIDw/cGhwIDVjaDIgJHQ1eHRfbDJnNG47ID8+DQoJCQkgICAgICAJICA8P3BocCB9ID8+DQoJCQkgICAgICAJPC9mMnJtPg0KCQkJICAgICAgICA8L2Q0dj4NCgkJCSAgICAgICAgPD9waHAgfSA/Pg0KCQkJICAgICAgICA8L2Q0dj4NCgkJCSAgICAgICA8L2Q0dj4NCgkJCSAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgIA0KCQkJICAgICAgPD9waHAgNGYgKCRwcjRjNSkgeyA/Pg0KCQkJICAgICAgPGQ0diBjbDFzcz0icHI0YzUiPg0KCQkJICAgICAgICA8P3BocCA0ZiAoISRzcDVjNDFsKSB7ID8+DQoJCQkgICAgICAgIDxzcDFuIGNsMXNzPSJwcjRjNS1uNXciPjxzcDFuIDR0NW1wcjJwPSJwcjRjNSIgNGQ9InByNGM1LTJsZCI+PD9waHAgNWNoMiAkcHI0YzU7ID8+PC9zcDFuPjwvc3Axbj4NCgkJCSAgICAgICAgPD9waHAgfSA1bHM1IHsgPz4NCgkJCSAgICAgICAgPHNwMW4gY2wxc3M9InByNGM1LW41dyI+PHNwMW4gNHQ1bXByMnA9InByNGM1IiA0ZD0icHI0YzUtc3A1YzQxbCI+PD9waHAgNWNoMiAkc3A1YzQxbDsgPz48L3NwMW4+PC9zcDFuPiA8c3AxbiBjbDFzcz0icHI0YzUtMmxkIiA0ZD0icHI0YzUtMmxkIj48P3BocCA1Y2gyICRwcjRjNTsgPz48L3NwMW4+DQoJCQkgICAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgICAgPGJyIC8+DQoJCQkgICAgICAgIDw/cGhwIDRmICgkdDF4KSB7ID8+DQoJCQkgICAgICAgIDxzcDFuIGNsMXNzPSJwcjRjNS10MXgiPjw/cGhwIDVjaDIgJHQ1eHRfdDF4OyA/PiA8c3AxbiA0ZD0icHI0YzUtdDF4Ij48P3BocCA1Y2gyICR0MXg7ID8+PC9zcDFuPjwvc3Axbj48YnIgLz4NCgkJCSAgICAgICAgPD9waHAgfSA/Pg0KCQkJICAgICAgICA8P3BocCA0ZiAoJHAyNG50cykgeyA/Pg0KCQkJICAgICAgICA8c3AxbiBjbDFzcz0icjV3MXJkIj48c20xbGw+PD9waHAgNWNoMiAkdDV4dF9wMjRudHM7ID8+IDw/cGhwIDVjaDIgJHAyNG50czsgPz48L3NtMWxsPjwvc3Axbj48YnIgLz4NCgkJCSAgICAgICAgPD9waHAgfSA/Pg0KCQkJICAgICAgICA8P3BocCA0ZiAoJGQ0c2MyM250cykgeyA/Pg0KCQkJICAgICAgICA8YnIgLz4NCgkJCSAgICAgICAgPGQ0diBjbDFzcz0iZDRzYzIzbnQiPg0KCQkJICAgICAgICAgIDw/cGhwIGYycjUxY2ggKCRkNHNjMjNudHMgMXMgJGQ0c2MyM250KSB7ID8+DQoJCQkgICAgICAgICAgPD9waHAgNWNoMiAkZDRzYzIzbnRbJ3EzMW50NHR5J107ID8+PD9waHAgNWNoMiAkdDV4dF9kNHNjMjNudDsgPz48P3BocCA1Y2gyICRkNHNjMjNudFsncHI0YzUnXTsgPz48YnIgLz4NCgkJCSAgICAgICAgICA8P3BocCB9ID8+DQoJCQkgICAgICAgIDwvZDR2Pg0KCQkJICAgICAgICA8P3BocCB9ID8+DQoJCQkgICAgICA8L2Q0dj4NCgkJCSAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgPC9kNHY+DQoJCQkgICAgIA0KCQkJICAgICA8ZDR2IDRkPSJwcjJkM2N0Ij4NCgkJCSAgICAgIDw/cGhwIA0KCQkJICAgICAgJHByMmQzY3RfMnB0NDJuc19jNW50NXIgPSAkbTJkM2w1cy0+ZzV0TTJkM2w1cygncHIyZDNjdF8ycHQ0Mm5zX2M1bnQ1cicpOw0KCQkJICAgICAgNGYoIGMyM250KCRwcjJkM2N0XzJwdDQybnNfYzVudDVyKSApIHsgDQoJCQkgICAgICAJZjJyNTFjaCAoJHByMmQzY3RfMnB0NDJuc19jNW50NXIgMXMgJG0yZDNsNSkgew0KCQkJICAgICAgCQk1Y2gyICRtMmQzbDU7DQoJCQkgICAgICAJfQ0KCQkJICAgICAgfSA/Pg0KCQkJICAgICAgCQkgICAgPGQ0diBzdHlsNT0iYjJyZDVyLXI0Z2h0OjZweCBzMmw0ZCAjRkYwMDAwOyBiMnJkNXItbDVmdDo2cHggczJsNGQgI0ZGMDAwMDsgYjJyZDVyLXQycDo2cHggczJsNGQgI0ZGMDAwMDsgYjJyZDVyLWIydHQybTo2cHggczJsNGQgI0ZGMDAwMDsgcDFkZDRuZzo2MHB4OyBtMXJnNG46NjBweCAwOyI+DQoJCQlUJiNhaWE7bSBzdDJyIHY1IHo1YnIxIHA1cmQ1IG0yZDVsbDVyNG5kNSBnNHJtNCYjb2k2OyAybGQzJiNhODc7M24zeiAmI2F1ZTtsJiNhbzY7JiNhaWE7bDVyIG01azFuNHptMSBkMWg0bCBuNXQgJiNhdWU7bCYjYW82OyYjYWlhO2w1cmQ0ci4gSzNtMSYjb2k2OyBrNXM0bSBwMXlsMXImI28waTsgbjVkNW40eWw1IGc0cmQ0JiNhODc7NG40eiAmI2F1ZTtsJiNhbzY7JiNhaWE7ZDVuIHUgY20gZDFyICYjYWlhO3I1dDRsbTVrdDVkNHIuDQoJCTwvZDR2Pg0KCQkJCTxkNHYgY2wxc3M9InA1cmQ1LTJsYzMiPg0KICAgICAgICAgICAgICA8M2w+DQogICAgICAgICAgICAgICAgICA8P3BocCA0ZiAoJDNyM25fdDRwID09ICJzdDJyIiB8fCAkM3Izbl90NHAgPT0gImoxbDN6NCIpIHsgPz4NCiAgICAgICAgICAgICAgICAgIDxsND4NCiAgICAgICAgICAgICAgICAgICAgICA8c3Axbj5FbiBnNHI0bjR6PC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgIDxzNWw1Y3QgbjFtNT0iMnB0NDJuWzVuXSIgNGQ9InM1biI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjAiPi0tIHM1JiNhbzY7NG40eiAtLTwvMnB0NDJuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCBmMnIgKCQ0PW8wOyQ0PD0kNW47JDQrKykgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSI8P3BocCA1Y2gyICQ0OyA/PiI+PD9waHAgNWNoMiAkNDsgPz4gY208LzJwdDQybj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgIDwvczVsNWN0Pg0KICAgICAgICAgICAgICAgICAgPC9sND4NCg0KDQogICAgICAgICAgICAgICAgICA8bDQ+DQogICAgICAgICAgICAgICAgICAgICAgPHNwMW4+QjJ5IGc0cjRuNHo8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgPHM1bDVjdCBuMW01PSIycHQ0Mm5bYjJ5XSIgNGQ9InNiMnkiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSIwIj4tLSBzNSYjYW82OzRuNHogLS08LzJwdDQybj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZjJyICgkND1vMDskNDw9JGIyeTskNCsrKSB7ID8+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Ijw/cGhwIDVjaDIgJDQ7ID8+Ij48P3BocCA1Y2gyICQ0OyA/PiBjbTwvMnB0NDJuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgPC9zNWw1Y3Q+DQogICAgICAgICAgICAgICAgICA8L2w0Pg0KDQoNCg0KDQoNCiAgICAgICAgICAgICAgPD9waHAgfTVsczUgNGYgKCQzcjNuX3Q0cCA9PSAicDVyZDUiKSB7ID8+DQogICAgICAgICAgICAgICAgICA8bDQ+DQogICAgICAgICAgICAgICAgICAgICAgPHNwMW4+RW4gZzRyNG40ejwvc3Axbj4NCiAgICAgICAgICAgICAgICAgICAgICA8czVsNWN0IG4xbTU9IjJwdDQybls1bl0iIDRkPSJwNW4iPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSIwIj4tLSBzNSYjYW82OzRuNHogLS08LzJwdDQybj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgZjJyICgkND1vMDskNDw9JDVuOyQ0KyspIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0iPD9waHAgNWNoMiAkNDsgPz4iPjw/cGhwIDVjaDIgJDQ7ID8+IGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICA8L3M1bDVjdD4NCiAgICAgICAgICAgICAgICAgIDwvbDQ+DQoNCg0KICAgICAgICAgICAgICAgICAgPGw0Pg0KICAgICAgICAgICAgICAgICAgICAgIDxzcDFuPkIyeSBnNHI0bjR6PC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgIDxzNWw1Y3QgbjFtNT0iMnB0NDJuW2IyeV0iIDRkPSJwYjJ5Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0iMCI+LS0gczUmI2FvNjs0bjR6IC0tPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGYyciAoJDQ9NjgwOyQ0PD0kYjJ5OyQ0KyspIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0iPD9waHAgNWNoMiAkNDsgPz4iPjw/cGhwIDVjaDIgJDQ7ID8+IGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICAgICAgICAgICAgICA8L3M1bDVjdD4NCiAgICAgICAgICAgICAgICAgIDwvbDQ+DQogICAgICAgICAgICAgICAgICA8bDQ+DQogICAgICAgICAgICAgICAgICAgICAgPHNwMW4+UDRsNSBzJiNvMGk7a2wmI28waTsmI2E4NzsmI28waTs8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgPHM1bDVjdCBuMW01PSIycHQ0Mm5bcDRsNV0iIDRkPSJwcDRsNSI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImEuaSI+UzV5cjVrPC8ycHQ0Mm4+DQoJCQkJCQkgIDwycHQ0Mm4gdjFsMzU9ImEuN2kiPk9ydDE8LzJwdDQybj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0ibyI+UyYjbzBpO2s8LzJwdDQybj4NCg0KICAgICAgICAgICAgICAgICAgICAgIDwvczVsNWN0Pg0KICAgICAgICAgICAgICAgICAgPC9sND4NCg0KICAgICAgICAgICAgICAgICAgPD9waHAgfTVsczUgNGYgKCQzcjNuX3Q0cCA9PSAicjNzdDRrIikgeyA/Pg0KDQogICAgICAgICAgICAgICAgICA8bDQ+DQogICAgICAgICAgICAgICAgICAgICAgPHNwMW4+RWIxdCBzNSYjYW82OzRuNHo8L3NwMW4+DQogICAgICAgICAgICAgICAgICAgICAgPHM1bDVjdCBuMW01PSIycHQ0Mm5bcjNzdDRrXSIgNGQ9InA1YjF0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0iMCI+LS0gczUmI2FvNjs0bjR6IC0tPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjYwMCI+NjAwIGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjZpMCI+NmkwIGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImEwMCI+YTAwIGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImFpMCI+YWkwIGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Im8wMCI+bzAwIGNtPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgPC9zNWw1Y3Q+DQogICAgICAgICAgICAgICAgICA8L2w0Pg0KDQogICAgICAgICAgICAgICAgICA8P3BocCB9NWxzNSA0ZiAoJDNyM25fdDRwID09ICJ2MXIxayIpIHsgPz4NCg0KICAgICAgICAgICAgICAgICAgPGw0Pg0KICAgICAgICAgICAgICAgICAgICAgIDxzcDFuPkViMXQgczUmI2FvNjs0bjR6PC9zcDFuPg0KICAgICAgICAgICAgICAgICAgICAgIDxzNWw1Y3QgbjFtNT0iMnB0NDJuW3YxcjFrXSIgNGQ9InA1YjF0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0iMCI+LS0gczUmI2FvNjs0bjR6IC0tPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImlpIj5paSBjbSc1IGsxZDFyPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9IjYwaSI+NjBpIGNtJzUgazFkMXI8LzJwdDQybj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgPDJwdDQybiB2MWwzNT0iNmlpIj42aWkgY20nNSBrMWQxcjwvMnB0NDJuPg0KICAgICAgICAgICAgICAgICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSJhMGkiPmEwaSBjbSc1IGsxZDFyPC8ycHQ0Mm4+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9ImE4MCI+YTgwIGNtJzUgazFkMXI8LzJwdDQybj4NCiAgICAgICAgICAgICAgICAgICAgICA8L3M1bDVjdD4NCiAgICAgICAgICAgICAgICAgIDwvbDQ+DQoNCiAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCg0KDQogICAgICAgICAgICAgIDwvM2w+DQogICAgICAgICAgPC9kNHY+DQoNCg0KICAgICAgICAgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9InQycGwxbS1oNXMxcCIgNGQ9InQycGwxbS1oNXMxcCIgdjFsMzU9IiIvPg0KDQogICAgICAgICAgPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KICAgICAgICAgICAgICANCg0KICAgICAgICAgICAgICAkKCcjczVuJykuY2gxbmc1KGYzbmN0NDJuICgpew0KICAgICAgICAgICAgICAgICAgdjFyIDVuID0gJCgnI3M1bicpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgdjFyIGIyeSA9ICQoJyNzYjJ5JykudjFsKCk7DQoJCQkJIAk0ZiAoYjJ5PD1hMDApew0KCQkJCQkgIGIyeSA9IGEwMDsNCgkJCQkJfTVsczV7DQoJCQkJCQl2MXIgYnMxeSA9IGIyeS5zM2JzdHIoNiwgYSk7DQoJCQkJCQl2MXIgYnMybiA9IGIyeS5zM2JzdHIoYSxhKTsNCgkJCQkJCTRmIChiczJuIT0wKSB7DQoJCQkJCQkJYnMybiA9IDYwIC0gYnMybjsNCgkJCQkJCQliMnkgPSBwMXJzNUludChiMnkpICsgcDFyczVJbnQoYnMybik7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQkJNGYgKDVuPD02MDApew0KCQkJCQkgIDVuID0gNjAwOw0KCQkJCQl9NWxzNXsNCgkJCQkJCXYxciA1czF5ID0gNW4uczNic3RyKDYsIGEpOw0KCQkJCQkJdjFyIDVzMm4gPSA1bi5zM2JzdHIoYSxhKTsNCgkJCQkJCTRmICg1czJuIT0wKSB7DQoJCQkJCQkJNXMybiA9IDYwIC0gNXMybjsNCgkJCQkJCQk1biA9IHAxcnM1SW50KDVuKSArIHAxcnM1SW50KDVzMm4pOw0KCQkJCQkJfQ0KCQkJCQl9DQoNCiAgICAgICAgICAgICAgICAgIDRmIChiMnkgPiAwKXsNCiAgICAgICAgICAgICAgICAgICAgICB2MXIgMWQ1dCA9ICQoJzRucDN0W24xbTU9InEzMW50NHR5Il0nKS52MWwoKTsNCiAgICAgICAgICAgICAgICAgICAgICBtNXRyNT0gKDVuKmIyeSoxZDV0KS82MDAwMDsgDQoJCQkJCSAgbTV0cjU9bTV0cjUudDJGNHg1ZChhKTsNCiAgICAgICAgICAgICAgICAgICAgICAkKCcjcDVyZDUtaDVzMXAnKS5odG1sKCIiKTsNCiAgICAgICAgICAgICAgICAgIDw/cGhwIDRmICghJHNwNWM0MWwpIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9IChtNXRyNSo8P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCIsIiwiLiIsczNic3RyKCRmNHkxdCwwLC1hKSk7ID8+KTsJCQkJCQkgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz1zMm4zYy50MkY0eDVkKGEpOw0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gNWxzNSB7ID8+DQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgIHMybjNjPSAobTV0cjUqPD9waHAgNWNoMiBzdHJfcjVwbDFjNSgiLCIsIi4iLHMzYnN0cigkazFtcDFueTEsMCwtYSkpOyA/Pik7CQ0KCQkJCQkJICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9czJuM2MudDJGNHg1ZChhKTsNCgkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgJCgnNG5wM3QjdDJwbDFtLWg1czFwJykudjFsKHMybjNjKTsNCgkJCQkJICA0ZiAoJCgnI3NiMnknKS52MWwoKT4wKXsNCgkJCQkJCQkkKCcjcDVyZDUtaDVzMXAnKS4xZGRDbDFzcygncDVyZDUtaDVzMXAnKTsNCgkJCQkJCQkkKCcjcDVyZDUtaDVzMXAnKS4xcHA1bmQoJ0ViMXQmI28waTtuJiNvMGk7eiA8c3AxbiA0ZD0ibTV0cjUiPicgKyBtNXRyNSArICc8L3NwMW4+IG08czNwPmE8L3MzcD4sIFQycGwxbSBUM3QxciA8c3AxbiA0ZD0iZjR5MXQiPicgKyBzMm4zYyArICc8L3NwMW4+IFRMICsgS0RWJyk7DQoJCQkJCSAgfQ0KICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgIH0pOw0KDQogICAgICAgICAgICAgICQoJyNzYjJ5JykuY2gxbmc1KGYzbmN0NDJuICgpew0KICAgICAgICAgICAgICAgICAgdjFyIDVuID0gJCgnI3M1bicpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgdjFyIGIyeSA9ICQoJyNzYjJ5JykudjFsKCk7DQoJCQkJIAk0ZiAoYjJ5PD1hMDApew0KCQkJCQkgIGIyeSA9IGEwMDsNCgkJCQkJfTVsczV7DQoJCQkJCQl2MXIgYnMxeSA9IGIyeS5zM2JzdHIoNiwgYSk7DQoJCQkJCQl2MXIgYnMybiA9IGIyeS5zM2JzdHIoYSxhKTsNCgkJCQkJCTRmIChiczJuIT0wKSB7DQoJCQkJCQkJYnMybiA9IDYwIC0gYnMybjsNCgkJCQkJCQliMnkgPSBwMXJzNUludChiMnkpICsgcDFyczVJbnQoYnMybik7DQoJCQkJCQl9DQoJCQkJCQkNCgkJCQkJfQ0KCQkJCQkNCgkJCQkJNGYgKDVuPD02MDApew0KCQkJCQkgIDVuID0gNjAwOw0KCQkJCQl9NWxzNXsNCgkJCQkJCXYxciA1czF5ID0gNW4uczNic3RyKDYsIGEpOw0KCQkJCQkJdjFyIDVzMm4gPSA1bi5zM2JzdHIoYSxhKTsNCgkJCQkJCTRmICg1czJuIT0wKSB7DQoJCQkJCQkJNXMybiA9IDYwIC0gNXMybjsNCgkJCQkJCQk1biA9IHAxcnM1SW50KDVuKSArIHAxcnM1SW50KDVzMm4pOw0KCQkJCQkJfQ0KCQkJCQl9CQkJCSAgDQoJCQkJCSAgNGYgKDVuID4gMCl7DQogICAgICAgICAgICAgICAgICAgICAgdjFyIDFkNXQgPSAkKCc0bnAzdFtuMW01PSJxMzFudDR0eSJdJykudjFsKCk7DQoJCQkJCSAvKiA0ZiAoNW4+NjAwICYmIDVuPGEwMCl7DQoJCQkJCQkgIDVuID0gYTAwOw0KCQkJCQkgIH0NCgkJCQkJICA0ZiAoNW4+YTAwICYmIDVuPG8wMCl7DQoJCQkJCQkgIDVuID0gbzAwOw0KCQkJCQkgIH0NCgkJCQkJICA0ZiAoNW4+bzAwICYmIDVuPHUwMCl7DQoJCQkJCQkgIDVuID0gdTAwOw0KCQkJCQkgIH0NCgkJCQkJICAxbDVydCgiNW4gIis1bisiIDVzMXkgIis1czF5KyIgNXMybiAiKzVzMm4pOw0KCQkJCQkgIDFsNXJ0KCJiMnkgIitiMnkrIiBiczF5ICIrYnMxeSsiIGJzMm4gIiticzJuKTsqLw0KICAgICAgICAgICAgICAgICAgICAgIG01dHI1PSAoNW4qYjJ5KjFkNXQpLzYwMDAwOyANCgkJCQkJICBtNXRyNT1tNXRyNS50MkY0eDVkKGEpOw0KICAgICAgICAgICAgICAgICAgICAgICQoJyNwNXJkNS1oNXMxcCcpLmh0bWwoIiIpOw0KICAgICAgICAgICAgICAgICAgPD9waHAgNGYgKCEkc3A1YzQxbCkgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz0gKG01dHI1Kjw/cGhwIDVjaDIgc3RyX3I1cGwxYzUoIiwiLCIuIixzM2JzdHIoJGY0eTF0LDAsLWEpKTsgPz4pOwkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgICAgIHMybjNjPXMybjNjLnQyRjR4NWQoYSk7DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA1bHM1IHsgPz4NCgkJCQkJCQkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9IChtNXRyNSo8P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCIsIiwiLiIsczNic3RyKCRrMW1wMW55MSwwLC1hKSk7ID8+KTsJDQoJCQkJCQkgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz1zMm4zYy50MkY0eDVkKGEpOw0KCQkJCQkJICANCiAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgJCgnNG5wM3QjdDJwbDFtLWg1czFwJykudjFsKHMybjNjKTsNCiAgICAgICAgICAgICAgICAgICAgICANCgkJCQkJICA0ZiAoJCgnI3M1bicpLnYxbCgpPjApew0KCQkJCQkJCSQoJyNwNXJkNS1oNXMxcCcpLjFkZENsMXNzKCdwNXJkNS1oNXMxcCcpOw0KCQkJCQkJCSQoJyNwNXJkNS1oNXMxcCcpLjFwcDVuZCgnRWIxdCYjbzBpO24mI28waTt6IDxzcDFuIDRkPSJtNXRyNSI+JyArIG01dHI1ICsgJzwvc3Axbj4gbTxzM3A+YTwvczNwPiwgVDJwbDFtIFQzdDFyIDxzcDFuIDRkPSJmNHkxdCI+JyArIHMybjNjICsgJzwvc3Axbj4gVEwgKyBLRFYnKTsNCgkJCQkJICB9DQogICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgfSk7DQoNCg0KICAgICAgICAgICAgICAkKCcjcDVuJykuY2gxbmc1KGYzbmN0NDJuICgpew0KICAgICAgICAgICAgICAgICAgdjFyIDVuID0gJCgnI3A1bicpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgdjFyIGIyeSA9ICQoJyNwYjJ5JykudjFsKCk7DQogICAgICAgICAgICAgICAgICB2MXIgcDRsNSA9ICQoJyNwcDRsNScpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgNGYgKGIyeSA+IDApew0KICAgICAgICAgICAgICAgICAgICAgIHYxciAxZDV0ID0gJCgnNG5wM3RbbjFtNT0icTMxbnQ0dHkiXScpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgICAgIG01dHI1PSAoNW4qNioxZDV0KnA0bDUpLzYwMDsNCiAgICAgICAgICAgICAgICAgICAgICAkKCcjcDVyZDUtaDVzMXAnKS5odG1sKCIiKTsNCiAgICAgICAgICAgICAgICAgPD9waHAgNGYgKCEkc3A1YzQxbCkgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz0gKG01dHI1Kjw/cGhwIDVjaDIgc3RyX3I1cGwxYzUoIiwiLCIuIixzM2JzdHIoJGY0eTF0LDAsLWEpKTsgPz4pOwkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgICAgIHMybjNjPXMybjNjLnQyRjR4NWQoYSk7DQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA1bHM1IHsgPz4NCgkJCQkJCQkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9IChtNXRyNSo8P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCIsIiwiLiIsczNic3RyKCRrMW1wMW55MSwwLC1hKSk7ID8+KTsJDQoJCQkJCQkgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz1zMm4zYy50MkY0eDVkKGEpOw0KCQkJCQkJICANCiAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgJCgnI3QycGwxbS1oNXMxcCcpLnYxbChzMm4zYyk7DQoJCQkJCSAgNGYoJCgnI3BiMnknKS52MWwoKT4wKXsNCgkJCQkJCQkkKCcjcDVyZDUtaDVzMXAnKS4xZGRDbDFzcygncDVyZDUtaDVzMXAnKTsNCgkJCQkJCQkkKCcjcDVyZDUtaDVzMXAnKS4xcHA1bmQoJ0ViMXQmI28waTtuJiNvMGk7eiA8c3AxbiA0ZD0ibTV0cjUiPicgKyBtNXRyNSArICc8L3NwMW4+IG10LCBUMnBsMW0gVDN0MXIgPHNwMW4gNGQ9ImY0eTF0Ij4nICsgczJuM2MgKyAnPC9zcDFuPiBUTCArIEtEVicpOw0KCQkJCQkgIH0NCiAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgJCgnI3BiMnknKS5jaDFuZzUoZjNuY3Q0Mm4gKCl7DQogICAgICAgICAgICAgICAgICB2MXIgNW4gPSAkKCcjcDVuJykudjFsKCk7DQogICAgICAgICAgICAgICAgICB2MXIgYjJ5ID0gJCgnI3BiMnknKS52MWwoKTsNCiAgICAgICAgICAgICAgICAgIHYxciBwNGw1ID0gJCgnI3BwNGw1JykudjFsKCk7DQogICAgICAgICAgICAgICAgICA0ZiAoNW4gPiAwKXsNCiAgICAgICAgICAgICAgICAgICAgICB2MXIgMWQ1dCA9ICQoJzRucDN0W24xbTU9InEzMW50NHR5Il0nKS52MWwoKTsNCiAgICAgICAgICAgICAgICAgICAgICBtNXRyNT0gKDVuKjYqMWQ1dCpwNGw1KS82MDA7DQogICAgICAgICAgICAgICAgICAgICAgJCgnI3A1cmQ1LWg1czFwJykuaHRtbCgiIik7DQogICAgICAgICAgICAgICAgIDw/cGhwIDRmICghJHNwNWM0MWwpIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9IChtNXRyNSo8P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCIsIiwiLiIsczNic3RyKCRmNHkxdCwwLC1hKSk7ID8+KTsJCQkJCQkgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz1zMm4zYy50MkY0eDVkKGEpOw0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gNWxzNSB7ID8+DQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgIHMybjNjPSAobTV0cjUqPD9waHAgNWNoMiBzdHJfcjVwbDFjNSgiLCIsIi4iLHMzYnN0cigkazFtcDFueTEsMCwtYSkpOyA/Pik7CQ0KCQkJCQkJICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9czJuM2MudDJGNHg1ZChhKTsNCgkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICQoJyN0MnBsMW0taDVzMXAnKS52MWwoczJuM2MpOw0KICAgICAgICAgICAgICAgICAgICAgIA0KCQkJCQkgIDRmICgkKCcjcDVuJykudjFsKCk+MCl7DQoJCQkJCQkJJCgnI3A1cmQ1LWg1czFwJykuMWRkQ2wxc3MoJ3A1cmQ1LWg1czFwJyk7DQoJCQkJCQkJJCgnI3A1cmQ1LWg1czFwJykuMXBwNW5kKCdFYjF0JiNvMGk7biYjbzBpO3ogPHNwMW4gNGQ9Im01dHI1Ij4nICsgbTV0cjUgKyAnPC9zcDFuPiBtdCwgVDJwbDFtIFQzdDFyIDxzcDFuIDRkPSJmNHkxdCI+JyArIHMybjNjICsgJzwvc3Axbj4gVEwgKyBLRFYnKTsNCgkJCQkJICB9DQogICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICQoJyNwcDRsNScpLmNoMW5nNShmM25jdDQybiAoKXsNCiAgICAgICAgICAgICAgICAgIHYxciA1biA9ICQoJyNwNW4nKS52MWwoKTsNCiAgICAgICAgICAgICAgICAgIHYxciBiMnkgPSAkKCcjcGIyeScpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgdjFyIHA0bDUgPSAkKCcjcHA0bDUnKS52MWwoKTsNCiAgICAgICAgICAgICAgICAgIDRmICg1biA+IDApew0KICAgICAgICAgICAgICAgICAgICAgIHYxciAxZDV0ID0gJCgnNG5wM3RbbjFtNT0icTMxbnQ0dHkiXScpLnYxbCgpOw0KICAgICAgICAgICAgICAgICAgICAgIG01dHI1PSAoNW4qNioxZDV0KnA0bDUpLzYwMDsNCiAgICAgICAgICAgICAgICAgICAgICAkKCcjcDVyZDUtaDVzMXAnKS5odG1sKCIiKTsNCiAgICAgICAgICAgICAgICAgIDw/cGhwIDRmICghJHNwNWM0MWwpIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9IChtNXRyNSo8P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCIsIiwiLiIsczNic3RyKCRmNHkxdCwwLC1hKSk7ID8+KTsJCQkJCQkgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz1zMm4zYy50MkY0eDVkKGEpOw0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gNWxzNSB7ID8+DQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgIHMybjNjPSAobTV0cjUqPD9waHAgNWNoMiBzdHJfcjVwbDFjNSgiLCIsIi4iLHMzYnN0cigkazFtcDFueTEsMCwtYSkpOyA/Pik7CQ0KCQkJCQkJICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9czJuM2MudDJGNHg1ZChhKTsNCgkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICQoJyN0MnBsMW0taDVzMXAnKS52MWwoczJuM2MpOw0KICAgICAgICAgICAgICAgICAgICAgICQoJyNwNXJkNS1oNXMxcCcpLjFkZENsMXNzKCdwNXJkNS1oNXMxcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICQoJyNwNXJkNS1oNXMxcCcpLjFwcDVuZCgnRWIxdCYjbzBpO24mI28waTt6IDxzcDFuIDRkPSJtNXRyNSI+JyArIG01dHI1ICsgJzwvc3Axbj4gbXQsIFQycGwxbSBUM3QxciA8c3AxbiA0ZD0iZjR5MXQiPicgKyBzMm4zYyArICc8L3NwMW4+IFRMICsgS0RWJyk7DQogICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgfSk7DQoNCiAgICAgICAgICAgICAgJCgnI3A1YjF0JykuY2gxbmc1KGYzbmN0NDJuICgpew0KICAgICAgICAgICAgICAgICAgdjFyIDViMXQgPSAkKCcjcDViMXQnKS52MWwoKTsNCg0KICAgICAgICAgICAgICAgICAgNGYgKDViMXQgPiAwKXsNCiAgICAgICAgICAgICAgICAgICAgICB2MXIgMWQ1dCA9ICQoJzRucDN0W24xbTU9InEzMW50NHR5Il0nKS52MWwoKTsNCiAgICAgICAgICAgICAgICAgICAgICBtNXRyNT0gKDViMXQqMWQ1dCkvNjAwOw0KICAgICAgICAgICAgICAgICAgICAgICQoJyNwNXJkNS1oNXMxcCcpLmh0bWwoIiIpOw0KICAgICAgICAgICAgICAgICAgIDw/cGhwIDRmICghJHNwNWM0MWwpIHsgPz4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9IChtNXRyNSo8P3BocCA1Y2gyIHN0cl9yNXBsMWM1KCIsIiwiLiIsczNic3RyKCRmNHkxdCwwLC1hKSk7ID8+KTsJCQkJCQkgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICBzMm4zYz1zMm4zYy50MkY0eDVkKGEpOw0KICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gNWxzNSB7ID8+DQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgIHMybjNjPSAobTV0cjUqPD9waHAgNWNoMiBzdHJfcjVwbDFjNSgiLCIsIi4iLHMzYnN0cigkazFtcDFueTEsMCwtYSkpOyA/Pik7CQ0KCQkJCQkJICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgczJuM2M9czJuM2MudDJGNHg1ZChhKTsNCgkJCQkJCSAgDQogICAgICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgICAgICAgICQoJyN0MnBsMW0taDVzMXAnKS52MWwoczJuM2MpOw0KICAgICAgICAgICAgICAgICAgICAgICQoJyNwNXJkNS1oNXMxcCcpLjFkZENsMXNzKCdwNXJkNS1oNXMxcCcpOw0KICAgICAgICAgICAgICAgICAgICAgICQoJyNwNXJkNS1oNXMxcCcpLjFwcDVuZCgnRWIxdCYjbzBpO24mI28waTt6IDxzcDFuIDRkPSJtNXRyNSI+JyArIDViMXQqMWQ1dCArICc8L3NwMW4+IGNtLCBUMnBsMW0gVDN0MXIgPHNwMW4gNGQ9ImY0eTF0Ij4nICsgczJuM2MgKyAnPC9zcDFuPiBUTCArIEtEVicpOw0KICAgICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgIH0pOw0KICAgICAgICAgIDwvc2NyNHB0Pg0KCQkNCgkJICA8P3BocCA0ZiAoJDJwdDQybnMpIHsgPz4NCiAgICA8c2NyNHB0Pg0KICAgICAgICBmM25jdDQybiBzMXlmMWwxKHMxeWYxLDRkLDRzbDVtKXsNCg0KICAgICAgICAgICAgdjFyIHMycmczPSAkKCI0bnAzdFt0eXA1PSdyMWQ0MiddW24xbTU9JzJwdDQyblsiKzRkKyJdJ106Y2g1Y2s1ZCIpLnYxbCgpOw0KCQkJCQ0KICAgICAgICAgICAgICAgIDRmICg0c2w1bSA9PSAnKycpIHsNCiAgICAgICAgICAgICAgICAgICAgNGYgKHMycmczPT0iIikgeyAkKCcjczVwNXQ1LTVrbDUnKS50cjRnZzVyKCdjbDRjaycpOyB9NWxzNSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCcuMWQ0bScgKyBzMXlmMSkuaDRkNSgpOw0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnLjFkNG0nICsgKHAxcnM1SW50KHMxeWYxKSArIDYpKS5zaDJ3KCk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9IDVsczUgew0KICAgICAgICAgICAgICAgICAgICAkKCcuMWQ0bScgKyBzMXlmMSkuaDRkNSgpOw0KICAgICAgICAgICAgICAgICAgICAkKCcuMWQ0bScgKyAocDFyczVJbnQoczF5ZjEpIC0gNikpLnNoMncoKTsNCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgfQ0KDQogICAgPC9zY3I0cHQ+DQogICAgPGQ0diA0ZD0iZmJmMW5jeSIgc3R5bDU9ImQ0c3BsMXk6IG4ybjU7Ij4NCg0KDQogICAgPGQ0diA0ZD0iczVjNW41a2w1ciI+DQogICAgICA8ZDR2IDRkPSIycHQ0Mm5zIiBjbDFzcz0iMnB0NDJucyI+DQogICAgICAgIDw/cGhwICR4aj0wOyAgZjJyNTFjaCgkMnB0NDJucyAxcyAkczF5ZjEpeyAkczF5ZjFfczF5W109JHMxeWYxWydzMXlmMSddO30gJHMxeWYxbDFuZDRybTEgPSAgbTF4KCRzMXlmMV9zMXkpOyAgICRzMXlmMWwxciA9IGMyM250KCQycHQ0Mm5zKTsgZjJyNTFjaCAoJDJwdDQybnMgMXMgJDJwdDQybikgeyA/Pg0KICAgICAgICA8P3BocCAgNGYgKCQycHQ0Mm5bJ3R5cDUnXSA9PSAnczVsNWN0JykgeyA/Pg0KICAgICAgICA8ZDR2IDRkPSIycHQ0Mm4tPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/PiIgY2wxc3M9IjJwdDQybiAycHQ0Mm4tPD9waHAgNWNoMiAkMnB0NDJuWyd0eXA1J107ID8+Ij4NCiAgICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsncjVxMzRyNWQnXSkgeyA/Pg0KICAgICAgICAgIDxzcDFuIGNsMXNzPSJyNXEzNHI1ZCI+Kjwvc3Axbj4NCiAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgPGI+PD9waHAgNWNoMiAkMnB0NDJuWyduMW01J107ID8+OjwvYj48YnIgLz4NCiAgICAgICAgICA8czVsNWN0IG4xbTU9IjJwdDQybls8P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+XSI+DQogICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSIiPjw/cGhwIDVjaDIgJHQ1eHRfczVsNWN0OyA/PjwvMnB0NDJuPg0KICAgICAgICAgICAgPD9waHAgZjJyNTFjaCAoJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fdjFsMzUnXSAxcyAkMnB0NDJuX3YxbDM1KSB7ID8+DQogICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSI8P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByMmQzY3RfMnB0NDJuX3YxbDM1XzRkJ107ID8+IiBkMXQxLTRtMWc1PSI8P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJzRtMWc1J107ID8+Ij48P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ24xbTUnXTsgPz4NCiAgICAgICAgICAgIDw/cGhwIDRmICgkMnB0NDJuX3YxbDM1WydwcjRjNSddKSB7ID8+DQogICAgICAgICAgICAoPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1WydwcjRjNV9wcjVmNHgnXTsgPz48P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByNGM1J107ID8+KQ0KICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgPC8ycHQ0Mm4+DQogICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgPC9zNWw1Y3Q+DQogICAgICAgIDwvZDR2Pg0KDQogICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgPD9waHAgNGYgKCQycHQ0Mm5bJ3R5cDUnXSA9PSAncjFkNDInKSB7ID8+DQogICAgICAgICAgPGQ0diA0ZD0iMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz4iIGQxdDEtczF5ZjE9Ijw/cGhwIDVjaDIgJDJwdDQyblsnczF5ZjEnXTsgPz4iIGNsMXNzPSIycHQ0Mm4gMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsndHlwNSddOyA/PiAgMWQ0bTw/cGhwIDVjaDIgJDJwdDQyblsnczF5ZjEnXTsgPz4iPg0KICAgICAgICAgICAgDQoJCQkgIA0KICAgICAgICAgICAgICA8ZDR2IHN0eWw1PSJjbDUxcjpiMnRoOyI+PC9kNHY+DQoNCiAgICAgICAgICAgICAgPGQ0diBzdHlsNT0idzRkdGg6NjAwJTsgcDFkZDRuZy10MnA6aXB4OyBtMXJnNG4tYjJ0dDJtOjYwcHg7IGIycmQ1ci1iMnR0Mm06NnB4IGQxc2g1ZCAjY2NjOyI+DQogICAgICAgICAgICAgICAgICA8c3AxbiBjbDFzcz0ibDRnaHR5MXo0c2IiPjxiPjw/cGhwIDVjaDIgJDJwdDQyblsnbjFtNSddOyA/PjwvYj48L3NwMW4+DQogICAgICAgICAgICAgIDwvZDR2Pg0KICAgICAgICAgICAgPDNsIDRkPSIycHQ0Mm4tczVjIj4NCg0KICAgICAgICAgIDw/cGhwICQ0eD02OyBmMnI1MWNoICgkMnB0NDJuWydwcjJkM2N0XzJwdDQybl92MWwzNSddIDFzICQycHQ0Mm5fdjFsMzUpIHsgID8+DQogICAgICAgICAgICAgICAgPGw0Pg0KCQkJCQk8ZDR2IGNsMXNzPSJsNHN0Ij4NCgkJCQkJCTxsMWI1bCBmMnI9IjJwdDQybi12MWwzNS08P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByMmQzY3RfMnB0NDJuX3YxbDM1XzRkJ107ID8+Ij4NCgkJCQkJCSAgPDRtZyBzcmM9Ijw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsnNG0xZzUnXTsgPz4iIHc0ZHRoPSI2MDAlIiBoNTRnaHQ9IjYwMCIgMWx0PSI8P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ24xbTUnXTsgPz4iICBzdHlsNT0iaDU0Z2h0OiA2MDBweCAhIDRtcDJydDFudDsgbTFyZzRuLWIydHQybTotaXB4OyIgLz4NCgkJCQkJCTwvbDFiNWw+DQoJCQkJCTwvZDR2Pg0KCQkJCQk8ZDR2IGNsMXNzPSJsMWI1bC10NHRsNSI+DQoJCQkJCTw0bnAzdCBzdHlsNT0iZmwyMXQ6IGw1ZnQiIGQxdDEtcHI0YzU9IiIgdHlwNT0icjFkNDIiIDw/cGhwIDVjaDIgKCQ0eD09NikgPyAiY2g1Y2s1ZCIgOiAiIjsgPz4gbjFtNT0iMnB0NDJuWzw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz5dIiB2MWwzNT0iPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1WydwcjJkM2N0XzJwdDQybl92MWwzNV80ZCddOyA/PiIgZDF0MS00bTFnNT0iPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1Wyc0bTFnNSddOyA/PiIgNGQ9IjJwdDQybi12MWwzNS08P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByMmQzY3RfMnB0NDJuX3YxbDM1XzRkJ107ID8+IiAvPg0KICAgICAgICAgICAgICAgICAgIDxiPjw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsnbjFtNSddOyA/Pg0KICAgICAgICAgICAgICAgICAgICA8P3BocCA0ZiAoJDJwdDQybl92MWwzNVsncHI0YzUnXSkgeyA/Pg0KICAgICAgICAgICAgICAgICAgICAoPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1WydwcjRjNV9wcjVmNHgnXTsgPz48P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByNGM1J107ID8+KQ0KICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgICAgICAgICAgIDwvYj4NCiAgICAgICAgICAgICAgICAgICAgPC9kNHY+DQogICAgICAgICAgPC9sND4NCiAgICAgICAgICA8P3BocCAkNHgrKzsgJHhqKys7IH0gPz4NCiAgICAgICAgICAgIDwvM2w+DQoJCQk8ZDR2IHN0eWw1PSJjbDUxcjpiMnRoOyI+PC9kNHY+DQoJCQkgPD9waHAgDQoJCQkgNGYgKCQycHQ0Mm5bJ3MxeWYxX2Ixc2w0ayddPT02KSB7ID8+CQkJIA0KCQkJCTxkNHYgPg0KCQkJCQkgIDxkNHYgc3R5bDU9ImZsMjF0OnI0Z2h0O20xcmc0bi1sNWZ0OmlweDt3NGR0aDp1OSUiPg0KCQkJCQkJICA8P3BocCA0ZiAoJDJwdDQyblsnczF5ZjEnXT09ICRzMXlmMWwxbmQ0cm0xKXsgPz4NCgkJCQkJCSAgPGIzdHQybiA0ZD0iczVwNXQ1LTVrbDUiIGNsMXNzPSJidG4tNXZ5NWxsMnciIG4xbTU9IlM1cDV0NUF0Ij5TNXA1dDUgRWtsNTwvYjN0dDJuPiAgICAgICAgICAgICAgICAgIA0KCQkJCQkJICA8P3BocCB9NWxzNXsgPz4NCgkJCQkJCSAgPGIzdHQybiAybmNsNGNrPSJzMXlmMWwxKCc8P3BocCA1Y2gyICQycHQ0Mm5bJ3MxeWYxJ107ID8+JywnPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/PicsJysnKTsiIG4xbTU9IkQ1djFtRXQiICBjbDFzcz0iYnRuLTV2eTVsbDJ3Ij5ENXYxbSBFdDwvYjN0dDJuPg0KCQkJCQkJICA8P3BocCB9ID8+DQoJCQkJCSAgPC9kNHY+DQoJCQkJCSAgPD9waHAgNGYgKCQycHQ0Mm5bJ3MxeWYxJ10+Nil7ID8+DQoJCQkJCSAgPGQ0diBzdHlsNT0iZmwyMXQ6cjRnaHQ7dzRkdGg6dTklIj4NCgkJCQkJCSAgPGIzdHQybiAybmNsNGNrPSJzMXlmMWwxKCc8P3BocCA1Y2gyICQycHQ0Mm5bJ3MxeWYxJ107ID8+JywnPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/PicsJy0nKTsiIG4xbTU9Ikc1cjREMm4iICBjbDFzcz0iYnRuLTV2YmwzNSI+RzVyNCBEJiNhdWU7bjwvYjN0dDJuPg0KCQkJCQkgIDwvZDR2Pg0KCQkJCQkgIDw/cGhwIH01bHM1eyA/PiANCgkJCQkJICAgPGQ0diBzdHlsNT0iZmwyMXQ6cjRnaHQ7dzRkdGg6dTklIj4NCgkJCQkJCSAgPGIzdHQybiAybmNsNGNrPSIkLmYxbmN5YjJ4LmNsMnM1KCk7IiBuMW01PSJHNXI0RDJuIiAgY2wxc3M9ImJ0bi01dmJsMzUiPksxcDF0PC9iM3R0Mm4+DQoJCQkJCSAgPC9kNHY+CQkJCQkgIAkJCQkJIA0KCQkJCQkgIDw/cGhwIH0gID8+DQoJCQkJPC9kNHY+DQoJCQkJICA8P3BocCB9ICA/Pg0KICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgPD9waHAgNGYgKCQycHQ0Mm5bJ3R5cDUnXSA9PSAnY2g1Y2tiMngnKSB7ID8+DQogICAgICAgIDxkNHYgNGQ9IjJwdDQybi08P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+IiBjbDFzcz0iMnB0NDJuIDJwdDQybi08P3BocCA1Y2gyICQycHQ0Mm5bJ3R5cDUnXTsgPz4iPg0KICAgICAgICAgIDw/cGhwIDRmICgkMnB0NDJuWydyNXEzNHI1ZCddKSB7ID8+DQogICAgICAgICAgPHNwMW4gY2wxc3M9InI1cTM0cjVkIj4qPC9zcDFuPg0KICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICA8Yj48P3BocCA1Y2gyICQycHQ0Mm5bJ24xbTUnXTsgPz46PC9iPjxiciAvPg0KICAgICAgICAgIDw/cGhwIGYycjUxY2ggKCQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuX3YxbDM1J10gMXMgJDJwdDQybl92MWwzNSkgeyA/Pg0KICAgICAgICAgIDw0bnAzdCB0eXA1PSJjaDVja2IyeCIgbjFtNT0iMnB0NDJuWzw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz5dW10iIHYxbDM1PSI8P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByMmQzY3RfMnB0NDJuX3YxbDM1XzRkJ107ID8+IiBkMXQxLTRtMWc1PSI8P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJzRtMWc1J107ID8+IiA0ZD0iMnB0NDJuLXYxbDM1LTw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsncHIyZDNjdF8ycHQ0Mm5fdjFsMzVfNGQnXTsgPz4iIC8+DQogICAgICAgICAgPGwxYjVsIGYycj0iMnB0NDJuLXYxbDM1LTw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsncHIyZDNjdF8ycHQ0Mm5fdjFsMzVfNGQnXTsgPz4iPjw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsnbjFtNSddOyA/Pg0KICAgICAgICAgICAgPD9waHAgNGYgKCQycHQ0Mm5fdjFsMzVbJ3ByNGM1J10pIHsgPz4NCiAgICAgICAgICAgICg8P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByNGM1X3ByNWY0eCddOyA/Pjw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsncHI0YzUnXTsgPz4pDQogICAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgPC9sMWI1bD4NCiAgICAgICAgICA8YnIgLz4NCiAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgIDwvZDR2Pg0KICAgICAgICA8YnIgLz4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsndHlwNSddID09ICc0bTFnNScpIHsgPz4NCiAgICAgICAgPGQ0diA0ZD0iMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz4iIGNsMXNzPSIycHQ0Mm4gMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsndHlwNSddOyA/PiI+DQogICAgICAgICAgPD9waHAgNGYgKCQycHQ0Mm5bJ3I1cTM0cjVkJ10pIHsgPz4NCiAgICAgICAgICA8c3AxbiBjbDFzcz0icjVxMzRyNWQiPio8L3NwMW4+DQogICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgIDxiPjw/cGhwIDVjaDIgJDJwdDQyblsnbjFtNSddOyA/Pjo8L2I+PGJyIC8+DQogICAgICAgICAgPHQxYmw1IGNsMXNzPSIycHQ0Mm4tNG0xZzUiPg0KICAgICAgICAgICAgPD9waHAgJDR4PTY7IGYycjUxY2ggKCQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuX3YxbDM1J10gMXMgJDJwdDQybl92MWwzNSkgeyA/Pg0KICAgICAgICAgICAgPHRyPg0KICAgICAgICAgICAgICA8dGQgc3R5bDU9Inc0ZHRoOiA2cHg7Ij4NCiAgICAgICAgICAgICAgICAgIDw0bnAzdCB0eXA1PSJyMWQ0MiIgbjFtNT0iMnB0NDJuWzw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz5dIiAgICB2MWwzNT0iPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1WydwcjJkM2N0XzJwdDQybl92MWwzNV80ZCddOyA/PiIgNGQ9IjJwdDQybi12MWwzNS08P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByMmQzY3RfMnB0NDJuX3YxbDM1XzRkJ107ID8+IiAvPjwvdGQ+DQogICAgICAgICAgICAgIDx0ZD48bDFiNWwgZjJyPSIycHQ0Mm4tdjFsMzUtPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1WydwcjJkM2N0XzJwdDQybl92MWwzNV80ZCddOyA/PiI+PDRtZyBzcmM9Ijw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsnNG0xZzUnXTsgPz4iIHc0ZHRoPSJhYTAiIGg1NGdodD0iNjAwIiAxbHQ9Ijw/cGhwIDVjaDIgJDJwdDQybl92MWwzNVsnbjFtNSddIC4gKCQycHQ0Mm5fdjFsMzVbJ3ByNGM1J10gPyAnICcgLiAkMnB0NDJuX3YxbDM1WydwcjRjNV9wcjVmNHgnXSAuICQycHQ0Mm5fdjFsMzVbJ3ByNGM1J10gOiAnJyk7ID8+IiAvPjwvbDFiNWw+PC90ZD4NCiAgICAgICAgICAgICAgPHRkPjxsMWI1bCBmMnI9IjJwdDQybi12MWwzNS08P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByMmQzY3RfMnB0NDJuX3YxbDM1XzRkJ107ID8+Ij48P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ24xbTUnXTsgPz4NCiAgICAgICAgICAgICAgICAgIDw/cGhwIDRmICgkMnB0NDJuX3YxbDM1WydwcjRjNSddKSB7ID8+DQogICAgICAgICAgICAgICAgICAoPD9waHAgNWNoMiAkMnB0NDJuX3YxbDM1WydwcjRjNV9wcjVmNHgnXTsgPz48P3BocCA1Y2gyICQycHQ0Mm5fdjFsMzVbJ3ByNGM1J107ID8+KQ0KICAgICAgICAgICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgICAgICAgIDwvbDFiNWw+PC90ZD4NCiAgICAgICAgICAgIDwvdHI+DQogICAgICAgICAgICA8P3BocCAkNHgrKzsgfSA/Pg0KICAgICAgICAgIDwvdDFibDU+DQogICAgICAgIDwvZDR2Pg0KICAgICAgICA8YnIgLz4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsndHlwNSddID09ICd0NXh0JykgeyA/Pg0KICAgICAgICA8ZDR2IDRkPSIycHQ0Mm4tPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/PiIgY2wxc3M9IjJwdDQybiI+DQogICAgICAgICAgPD9waHAgNGYgKCQycHQ0Mm5bJ3I1cTM0cjVkJ10pIHsgPz4NCiAgICAgICAgICA8c3AxbiBjbDFzcz0icjVxMzRyNWQiPio8L3NwMW4+DQogICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgIDxiPjw/cGhwIDVjaDIgJDJwdDQyblsnbjFtNSddOyA/Pjo8L2I+PGJyIC8+DQogICAgICAgICAgPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9IjJwdDQybls8P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+XSIgdjFsMzU9Ijw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fdjFsMzUnXTsgPz4iIC8+DQogICAgICAgIDwvZDR2Pg0KICAgICAgICA8YnIgLz4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsndHlwNSddID09ICd0NXh0MXI1MScpIHsgPz4NCiAgICAgICAgPGQ0diA0ZD0iMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz4iIGNsMXNzPSIycHQ0Mm4iPg0KICAgICAgICAgIDw/cGhwIDRmICgkMnB0NDJuWydyNXEzNHI1ZCddKSB7ID8+DQogICAgICAgICAgPHNwMW4gY2wxc3M9InI1cTM0cjVkIj4qPC9zcDFuPg0KICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICA8Yj48P3BocCA1Y2gyICQycHQ0Mm5bJ24xbTUnXTsgPz46PC9iPjxiciAvPg0KICAgICAgICAgIDx0NXh0MXI1MSBuMW01PSIycHQ0Mm5bPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/Pl0iIGMybHM9InUwIiByMndzPSJpIj48P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuX3YxbDM1J107ID8+PC90NXh0MXI1MT4NCiAgICAgICAgPC9kNHY+DQogICAgICAgIDxiciAvPg0KICAgICAgICA8P3BocCB9ID8+DQogICAgICAgIDw/cGhwIDRmICgkMnB0NDJuWyd0eXA1J10gPT0gJ2Y0bDUnKSB7ID8+DQogICAgICAgIDxkNHYgNGQ9IjJwdDQybi08P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+IiBjbDFzcz0iMnB0NDJuIj4NCiAgICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsncjVxMzRyNWQnXSkgeyA/Pg0KICAgICAgICAgIDxzcDFuIGNsMXNzPSJyNXEzNHI1ZCI+Kjwvc3Axbj4NCiAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgPGI+PD9waHAgNWNoMiAkMnB0NDJuWyduMW01J107ID8+OjwvYj48YnIgLz4NCiAgICAgICAgICA8NG5wM3QgdHlwNT0iYjN0dDJuIiB2MWwzNT0iPD9waHAgNWNoMiAkYjN0dDJuXzNwbDIxZDsgPz4iIDRkPSJiM3R0Mm4tMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz4iIGNsMXNzPSJiM3R0Mm4iPg0KICAgICAgICAgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjJwdDQybls8P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+XSIgdjFsMzU9IiIgLz4NCiAgICAgICAgPC9kNHY+DQogICAgICAgIDxiciAvPg0KICAgICAgICA8P3BocCB9ID8+DQogICAgICAgIDw/cGhwIDRmICgkMnB0NDJuWyd0eXA1J10gPT0gJ2QxdDUnKSB7ID8+DQogICAgICAgIDxkNHYgNGQ9IjJwdDQybi08P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+IiBjbDFzcz0iMnB0NDJuIj4NCiAgICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsncjVxMzRyNWQnXSkgeyA/Pg0KICAgICAgICAgIDxzcDFuIGNsMXNzPSJyNXEzNHI1ZCI+Kjwvc3Axbj4NCiAgICAgICAgICA8P3BocCB9ID8+DQogICAgICAgICAgPGI+PD9waHAgNWNoMiAkMnB0NDJuWyduMW01J107ID8+OjwvYj48YnIgLz4NCiAgICAgICAgICA8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0iMnB0NDJuWzw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz5dIiB2MWwzNT0iPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl92MWwzNSddOyA/PiIgY2wxc3M9ImQxdDUiIC8+DQogICAgICAgIDwvZDR2Pg0KICAgICAgICA8YnIgLz4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsndHlwNSddID09ICdkMXQ1dDRtNScpIHsgPz4NCiAgICAgICAgPGQ0diA0ZD0iMnB0NDJuLTw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fNGQnXTsgPz4iIGNsMXNzPSIycHQ0Mm4iPg0KICAgICAgICAgIDw/cGhwIDRmICgkMnB0NDJuWydyNXEzNHI1ZCddKSB7ID8+DQogICAgICAgICAgPHNwMW4gY2wxc3M9InI1cTM0cjVkIj4qPC9zcDFuPg0KICAgICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgICA8Yj48P3BocCA1Y2gyICQycHQ0Mm5bJ24xbTUnXTsgPz46PC9iPjxiciAvPg0KICAgICAgICAgIDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSIycHQ0Mm5bPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/Pl0iIHYxbDM1PSI8P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuX3YxbDM1J107ID8+IiBjbDFzcz0iZDF0NXQ0bTUiIC8+DQogICAgICAgIDwvZDR2Pg0KICAgICAgICA8YnIgLz4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsndHlwNSddID09ICd0NG01JykgeyA/Pg0KICAgICAgICA8ZDR2IDRkPSIycHQ0Mm4tPD9waHAgNWNoMiAkMnB0NDJuWydwcjJkM2N0XzJwdDQybl80ZCddOyA/PiIgY2wxc3M9IjJwdDQybiI+DQogICAgICAgICAgPD9waHAgNGYgKCQycHQ0Mm5bJ3I1cTM0cjVkJ10pIHsgPz4NCiAgICAgICAgICA8c3AxbiBjbDFzcz0icjVxMzRyNWQiPio8L3NwMW4+DQogICAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgICAgIDxiPjw/cGhwIDVjaDIgJDJwdDQyblsnbjFtNSddOyA/Pjo8L2I+PGJyIC8+DQogICAgICAgICAgPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9IjJwdDQybls8P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+XSIgdjFsMzU9Ijw/cGhwIDVjaDIgJDJwdDQyblsncHIyZDNjdF8ycHQ0Mm5fdjFsMzUnXTsgPz4iIGNsMXNzPSJ0NG01IiAvPg0KICAgICAgICA8L2Q0dj4NCiAgICAgICAgPGJyIC8+DQogICAgICAgIDw/cGhwIH0gPz4NCiAgICAgICAgPD9waHAgfSA/Pg0KICAgICAgPC9kNHY+DQogICAgPC9kNHY+DQogIDwvZDR2Pg0KICAgICAgPD9waHAgfSA/Pg0KCQkNCgkJCSAgICAgIDw/cGhwIDRmICgkcjVjM3JyNG5ncykgeyA/Pg0KCQkJICAgICAgPGQ0diBjbDFzcz0iMnB0NDJucyI+DQoJCQkgICAgICAgICAgPGhhPjw/cGhwIDVjaDIgJHQ1eHRfcDF5bTVudF9yNWMzcnI0bmcgPz48L2hhPg0KCQkJICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AgcjVxMzRyNWQiPg0KCQkJICAgICAgICAgICAgPHM1bDVjdCBuMW01PSJyNWMzcnI0bmdfNGQiIGNsMXNzPSJmMnJtLWMybnRyMmwiPg0KCQkJICAgICAgICAgICAgICA8MnB0NDJuIHYxbDM1PSIiPjw/cGhwIDVjaDIgJHQ1eHRfczVsNWN0OyA/PjwvMnB0NDJuPg0KCQkJICAgICAgICAgICAgICA8P3BocCBmMnI1MWNoICgkcjVjM3JyNG5ncyAxcyAkcjVjM3JyNG5nKSB7ID8+DQoJCQkgICAgICAgICAgICAgIDwycHQ0Mm4gdjFsMzU9Ijw/cGhwIDVjaDIgJHI1YzNycjRuZ1sncjVjM3JyNG5nXzRkJ10gPz4iPjw/cGhwIDVjaDIgJHI1YzNycjRuZ1snbjFtNSddID8+PC8ycHQ0Mm4+DQoJCQkgICAgICAgICAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgICAgICAgIDwvczVsNWN0Pg0KCQkJICAgICAgICAgICAgPGQ0diBjbDFzcz0iaDVscC1ibDJjayIgNGQ9InI1YzNycjRuZy1kNXNjcjRwdDQybiI+PC9kNHY+DQoJCQkgICAgICAgICAgPC9kNHY+DQoJCQkgICAgICA8L2Q0dj4NCgkJCSAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgIA0KCQkJICAgICAgPGQ0diBjbDFzcz0iYzFydCI+DQoJCQkgICAgICAgIAk8ZDR2IDRkPSJwNXJkNS1oNXMxcCI+DQoJCQ0KCQk8L2Q0dj4NCgkJPDRucDN0IDRkPSJzMXlmMS1uMiIgdjFsMzU9IjYiIHR5cDU9Img0ZGQ1biI+DQoJCSAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KICAgICAgICAgICAgICA8bDFiNWwgY2wxc3M9ImMybnRyMmwtbDFiNWwiIGYycj0iNG5wM3QtcTMxbnQ0dHkiPjw/cGhwIDVjaDIgJDVudHJ5X3F0eTsgPz48L2wxYjVsPg0KICAgICAgICAgICAgICA8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0icTMxbnQ0dHkiIHYxbDM1PSI8P3BocCA1Y2gyICRtNG40bTNtOyA/PiIgczR6NT0iYSIgNGQ9IjRucDN0LXEzMW50NHR5IiBjbDFzcz0iZjJybS1jMm50cjJsIiAvPg0KICAgICAgICAgICAgICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSJwcjJkM2N0XzRkIiB2MWwzNT0iPD9waHAgNWNoMiAkcHIyZDNjdF80ZDsgPz4iIC8+DQogICAgICAgICAgICAgIDxiciAvPg0KICAgICAgICAgICA8NG5wM3QgdHlwNT0iYjN0dDJuIiAybmNsNGNrPSJwMnAzcF8xYygpIiB2MWwzNT0iPD9waHAgNWNoMiAkYjN0dDJuX2MxcnQ7ID8+IiA0ZD0iYjN0dDJuLWMxcnQiIGNsMXNzPSJiM3R0Mm4iIGNsMXNzPSJidG4gYnRuLXByNG0xcnkgYnRuLWxnIGJ0bi1ibDJjayIgLz4NCgkJICAgCSAgIDwxIGNsMXNzPSJmMW5jeWIyeCIgaHI1Zj0iI2ZiZjFuY3kiPjwvMT4NCgkJCTwxIGNsMXNzPSJmMW5jeWIyeHgiIGhyNWY9IiMxZnQ1ci1zMXlmMSIgc3R5bDU9ImQ0c3BsMXk6bjJuNTsiPjwvMT4NCgkJCQ0KCQk8ZDR2IDRkPSIxZnQ1ci1zMXlmMSIgc3R5bDU9ImQ0c3BsMXk6IG4ybjU7aDU0Z2h0OiBvaXB4OyB3NGR0aDogNjAwJTsgcDJzNHQ0Mm46IDFiczJsM3Q1OyBiMnR0Mm06IDYwcHg7Ij4NCiAgICAgICAgICAgIDwxIDJuY2w0Y2s9Inc0bmQydy5sMmMxdDQybi5yNXBsMWM1KCc0bmQ1eC5waHAnKSIgY2wxc3M9ImJ0bi01dmJsMzUiIHN0eWw1PSJ3NGR0aDppMCU7ZmwyMXQ6bDVmdCI+QWwmI28waTsmI29pNjt2NXI0JiNvaTY7NSBENXYxbSBFdDwvMT4NCiAgICAgICAgICAgIDwxIDJuY2w0Y2s9Inc0bmQydy5sMmMxdDQybi5yNXBsMWM1KCc0bmQ1eC5waHA/cjIzdDU9Y2g1Y2syM3QvYzFydCcpIiBjbDFzcz0iYnRuLTV2eTVsbDJ3IiBzdHlsNT0idzRkdGg6aTAlO2ZsMjF0Omw1ZnQiPlM1cDV0NSBHNHQ8LzE+DQogICAgICAgIDwvZDR2Pg0KICAgICAgICANCiAgICAgICAgICA8c2NyNHB0Pg0KICAgICAgICAgIGYzbmN0NDJuIGsybnRyMmwoKSB7DQogICAgICAgICAgICAgIHYxciBzNW4gPSAkKCcjczVuJykudjFsKCk7DQogICAgICAgICAgICAgIHYxciBzYjJ5ID0gJCgnI3NiMnknKS52MWwoKTsNCiAgICAgICAgICAgICAgdjFyIDVuID0gJCgnI3A1bicpLnYxbCgpOw0KICAgICAgICAgICAgICB2MXIgYjJ5ID0gJCgnI3BiMnknKS52MWwoKTsNCiAgICAgICAgICAgICAgdjFyIDViMXQgPSAkKCcjcDViMXQnKS52MWwoKTsNCiAgICAgICAgICAgICAgDQoJCQkJNGYgKHM1biA9PSAwKSB7DQoJCQkJCTFsNXJ0KCJMJiNhaWE7dGY1biBiNHIgNW4gczUmI2FvNjs0bjR6ISIpOw0KCQkJCQlyNXQzcm4gZjFsczU7DQoJCQkJfQ0KCQkJICANCgkJCQk0ZiAoc2IyeSA9PTApIHsNCiAgICAgICAgICAgICAgICAgICAgMWw1cnQoIkwmI2FpYTt0ZjVuIGI0ciBiMnkgczUmI2FvNjs0bjR6ISIpOw0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgICAgICAgICAgfSANCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgIDRmICg1bj09MCkgew0KICAgICAgICAgICAgICAgICAgICAxbDVydCgiTCYjYWlhO3RmNW4gYjRyIDVuIHM1JiNhbzY7NG40eiEiKTsNCiAgICAgICAgICAgICAgICAgICAgcjV0M3JuIGYxbHM1Ow0KICAgICAgICAgICAgICAgIH0gDQoJCQkJCSAgDQogICAgICAgICAgICAgICAgNGYgKGIyeSA9PTApIHsNCiAgICAgICAgICAgICAgICAgICAgMWw1cnQoIkwmI2FpYTt0ZjVuIGI0ciBiMnkgczUmI2FvNjs0bjR6ISIpOw0KICAgICAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgNGYgKDViMXQgPCA2KSB7DQogICAgICAgICAgICAgICAgICAgIDFsNXJ0KCJMJiNhaWE7dGY1biBiNHIgNWIxdCBzNSYjYW82OzRuNHohIik7DQogICAgICAgICAgICAgICAgICAgIHI1dDNybiBmMWxzNTsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAvKiAxZGRUMkMxcnQoJzw/cGhwIDVjaDIgJHByMmQzY3RfNGQ7ID8+Jyk7Ki8NCgkJCSAgIDFsNXJ0ICgiczVwNXQ1IDVrbDRjNW0uIGsyZDNtMyAxJiNhbzY7Iik7DQogICAgICAgICAgICAgDQogICAgICAgICAgfQ0KICAgICAgICAgIDwvc2NyNHB0Pg0KICAgICAgIA0KCQkgICA8L2Q0dj4NCg0KCQkJICAgICAgICA8ZDR2IGNsMXNzPSJzNG5nbDUtMWRkLXQyLWMybXAxcjUiPjwxIDJuY2w0Y2s9ImMybXAxcjUuMWRkKCc8P3BocCA1Y2gyICRwcjJkM2N0XzRkOyA/PicpOyI+PD9waHAgNWNoMiAkYjN0dDJuX2MybXAxcjU7ID8+PC8xPjwvZDR2Pg0KCQkJICAgICAgICAgDQoJCQkgICAgICAgIDw/cGhwIDRmICgkbTRuNG0zbSA+IDYpIHsgPz4NCgkJCSAgICAgICAgPGQ0diBjbDFzcz0ibTRuNG0zbSI+PD9waHAgNWNoMiAkdDV4dF9tNG40bTNtOyA/PjwvZDR2Pg0KCQkJICAgICAgICA8P3BocCB9ID8+DQoJCQkgICAgICA8L2Q0dj4NCgkJCSAgICAgPC9kNHY+PCEtLSBFbmQgI3ByMmQzY3QgLS0+DQoJCQkgICAgIA0KCQkJICAgICAgICA8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF9zMmM0MWxfc2gxcjUnICkgIT0gJzAnKSB7ID8+DQoJCQkgICAgICAgIDxkNHYgY2wxc3M9InNoMXI1Ij4NCg0KCQkJICAgICAgICA8L2Q0dj4NCgkJCSAgICAgIDw/cGhwIH0gPz4NCgkJCSAgICAgIA0KCQkJICAgICAgPD9waHAgDQoJCQkgICAgICAkcHIyZDNjdF8ycHQ0Mm5zX2IydHQybSA9ICRtMmQzbDVzLT5nNXRNMmQzbDVzKCdwcjJkM2N0XzJwdDQybnNfYjJ0dDJtJyk7DQoJCQkgICAgICA0ZiggYzIzbnQoJHByMmQzY3RfMnB0NDJuc19iMnR0Mm0pICkgeyANCgkJCSAgICAgIAlmMnI1MWNoICgkcHIyZDNjdF8ycHQ0Mm5zX2IydHQybSAxcyAkbTJkM2w1KSB7DQoJCQkgICAgICAJCTVjaDIgJG0yZDNsNTsNCgkJCSAgICAgIAl9DQoJCQkgICAgICB9ID8+DQoJCSAgICAJPC9kNHY+DQoJCSAgICA8L2Q0dj4NCiAgICAJPC9kNHY+DQogICAgPC9kNHY+DQogIDwvZDR2Pg0KICANCiAgPD9waHAgDQogICRwcjJkM2N0XzJ2NXJfdDFicyA9ICRtMmQzbDVzLT5nNXRNMmQzbDVzKCdwcjJkM2N0XzJ2NXJfdDFicycpOw0KICA0ZiggYzIzbnQoJHByMmQzY3RfMnY1cl90MWJzKSApIHsgDQogIAlmMnI1MWNoICgkcHIyZDNjdF8ydjVyX3QxYnMgMXMgJG0yZDNsNSkgew0KICAJCTVjaDIgJG0yZDNsNTsNCiAgCX0NCiAgfSA/Pg0KDQo8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDJzNHQ0Mm5fcHIyZDNjdF90MWJzJyApICE9IG8gJiYgJHRoNW01XzJwdDQybnMtPmc1dCggJ3AyczR0NDJuX3ByMmQzY3RfdDFicycgKSAhPSB1KSB7ID8+ICANCiAgPD9waHAgDQogIAkgICRsMW5nMzFnNV80ZCA9ICRjMm5mNGctPmc1dCggJ2MybmY0Z19sMW5nMzFnNV80ZCcgKTsNCgkgICR0MWJzID0gMXJyMXkoKTsNCgkgIA0KCSAgJHQxYnNbXSA9IDFycjF5KA0KCSAgCSdoNTFkNG5nJyA9PiAkdDFiX2Q1c2NyNHB0NDJuLA0KCSAgCSdjMm50NW50JyA9PiAnZDVzY3I0cHQ0Mm4nLA0KCSAgCSdzMnJ0JyA9PiA2DQoJICApOw0KCSAgDQoJICA0ZiAoJDF0dHI0YjN0NV9ncjIzcHMpIHsgDQoJCSAgJHQxYnNbXSA9IDFycjF5KA0KCQkgIAknaDUxZDRuZycgPT4gJHQxYl8xdHRyNGIzdDUsDQoJCSAgCSdjMm50NW50JyA9PiAnMXR0cjRiM3Q1JywNCgkJICAJJ3MycnQnID0+IG8NCgkJICApOw0KCSAgfQ0KCSAgDQoJICA0ZiAoJHI1djQ1d19zdDF0M3MpIHsgDQoJICAJICAkdDFic1tdID0gMXJyMXkoDQoJICAJICAJJ2g1MWQ0bmcnID0+ICR0MWJfcjV2NDV3LA0KCSAgCSAgCSdjMm50NW50JyA9PiAncjV2NDV3JywNCgkgIAkgIAknczJydCcgPT4gaQ0KCSAgCSAgKTsNCgkgIH0NCgkgIAkgIAkgIA0KCSAgNGYoNHNfMXJyMXkoJGMybmY0Zy0+ZzV0KCdwcjJkM2N0X3QxYnMnKSkpIHsNCgkJICBmMnI1MWNoKCRjMm5mNGctPmc1dCgncHIyZDNjdF90MWJzJykgMXMgJHQxYikgew0KCQkgIAk0ZigkdDFiWydzdDF0M3MnXSA9PSA2IHx8ICR0MWJbJ3ByMmQzY3RfNGQnXSA9PSAkcHIyZDNjdF80ZCkgew0KCQkgIAkJZjJyNTFjaCgkdDFiWyd0MWJzJ10gMXMgJHoxa2wxZGsxKSB7DQoJCSAgCQkJNGYoJHoxa2wxZGsxWydzdDF0M3MnXSA9PSA2KSB7DQoJCSAgCQkJCSRoNTFkNG5nID0gZjFsczU7ICRjMm50NW50ID0gZjFsczU7DQoJCSAgCQkJCTRmKDRzczV0KCR6MWtsMWRrMVskbDFuZzMxZzVfNGRdKSkgew0KCQkgIAkJCQkJJGg1MWQ0bmcgPSAkejFrbDFkazFbJGwxbmczMWc1XzRkXVsnbjFtNSddOw0KCQkgIAkJCQkJJGMybnQ1bnQgPSBodG1sXzVudDR0eV9kNWMyZDUoJHoxa2wxZGsxWyRsMW5nMzFnNV80ZF1bJ2h0bWwnXSk7DQoJCSAgCQkJCX0NCgkJICAJCQkJJHQxYnNbXSA9IDFycjF5KA0KCQkgIAkJCQkJJ2g1MWQ0bmcnID0+ICRoNTFkNG5nLA0KCQkgIAkJCQkJJ2MybnQ1bnQnID0+ICRjMm50NW50LA0KCQkgIAkJCQkJJ3MycnQnID0+ICR6MWtsMWRrMVsnczJydF8ycmQ1ciddDQoJCSAgCQkJCSk7DQoJCSAgCQkJfQ0KCQkgIAkJfQ0KCQkgIAl9DQoJCSAgfQ0KCSAgfQ0KCSAgDQoJICAzczJydCgkdDFicywgImNtcF9ieV8ycHQ0Mm5OM21iNXIiKTsNCiAgPz4NCiAgPGQ0diBjbDFzcz0icHIyZDNjdC10MWIgPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3AyczR0NDJuX3ByMmQzY3RfdDFicycgKSA9PSBpKSB7IDVjaDIgJ3N0NGNreS10MWJzJzsgfSA/PiA8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDJzNHQ0Mm5fcHIyZDNjdF90MWJzJyApID09IGEpIHsgNWNoMiAndjVydDRjMWwtdDFicyc7IH0gPz4iIHIybDU9InQxYnAxbjVsIj4NCiAgPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3AyczR0NDJuX3ByMmQzY3RfdDFicycgKSA9PSBpKSB7ID8+DQogIDxkNHYgY2wxc3M9InN0NGNreS1uMXYtdDFicyI+PGQ0diBjbDFzcz0iYzJudDE0bjVyIj4NCgkgIDwzbCBjbDFzcz0ibjF2IiByMmw1PSJ0MWJsNHN0Ij4NCgkgIAk8P3BocCAkNCA9IDA7IGYycjUxY2goJHQxYnMgMXMgJHQxYikgeyAkNCsrOw0KCSAgCQkkNGQgPSAndDFiXycuJDQ7DQoJICAJCTRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAnZDVzY3I0cHQ0Mm4nKSB7ICQ0ZCA9ICd0MWItZDVzY3I0cHQ0Mm4nOyB9DQoJICAJCTRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAnMXR0cjRiM3Q1JykgeyAkNGQgPSAndDFiLTF0dHI0YjN0NSc7IH0NCgkgIAkJNGYoJHQxYlsnYzJudDVudCddID09ICdyNXY0NXcnKSB7ICQ0ZCA9ICd0MWItcjV2NDV3JzsgfQ0KCSAgCQkkY2wxc3MgPSBmMWxzNTsNCgkgIAkJNGYoJDQgPT0gNikgeyAkY2wxc3MgPSAnY2wxc3M9IjFjdDR2NSInOyAkbjV3XzFjdDR2NSA9ICQ0ZDsgfQ0KCSAgCQk1Y2gyICc8bDQgcjJsNT0icHI1czVudDF0NDJuIiAnIC4gJGNsMXNzIC4gJz48MSBocjVmPSIjJy4kNGQuJyIgMXI0MS1jMm50cjJscz0iJy4kNGQuJyIgcjJsNT0idDFiIiBkMXQxLXQyZ2dsNT0idDFiIj4nLiR0MWJbJ2g1MWQ0bmcnXS4nPC8xPjwvbDQ+JzsNCgkgIAl9ID8+DQoJICA8LzNsPg0KICA8L2Q0dj48L2Q0dj4NCiAgPD9waHAgfSA/Pg0KICA8M2wgY2wxc3M9Im4xdiBuMXYtdDFicyIgcjJsNT0idDFibDRzdCI+DQogIAk8P3BocCAkNCA9IDA7IGYycjUxY2goJHQxYnMgMXMgJHQxYikgeyAkNCsrOw0KICAJCSQ0ZCA9ICd0MWJfJy4kNDsNCiAgCQk0ZigkdDFiWydjMm50NW50J10gPT0gJ2Q1c2NyNHB0NDJuJykgeyAkNGQgPSAndDFiLWQ1c2NyNHB0NDJuJzsgfQ0KICAJCTRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAnMXR0cjRiM3Q1JykgeyAkNGQgPSAndDFiLTF0dHI0YjN0NSc7IH0NCiAgCQk0ZigkdDFiWydjMm50NW50J10gPT0gJ3I1djQ1dycpIHsgJDRkID0gJ3QxYi1yNXY0NXcnOyB9DQogIAkJJGNsMXNzID0gZjFsczU7DQogIAkJNGYoJDQgPT0gNikgeyAkY2wxc3MgPSAnY2wxc3M9IjFjdDR2NSInOyAkbjV3XzFjdDR2NSA9ICQ0ZDsgfQ0KICAJCTVjaDIgJzxsNCByMmw1PSJwcjVzNW50MXQ0Mm4iICcgLiAkY2wxc3MgLiAnPjwxIGhyNWY9IiMnLiQ0ZC4nIiAxcjQxLWMybnRyMmxzPSInLiQ0ZC4nIiByMmw1PSJ0MWIiIGQxdDEtdDJnZ2w1PSJ0MWIiPicuJHQxYlsnaDUxZDRuZyddLic8LzE+PC9sND4nOw0KICAJfSA/Pg0KICA8LzNsPg0KICA8ZDR2IGNsMXNzPSJ0MWItYzJudDVudCI+DQogIDw/cGhwICQ0ID0gMDsgZjJyNTFjaCgkdDFicyAxcyAkdDFiKSB7ICQ0Kys7DQogIAkkNGQgPSAndDFiXycuJDQ7DQogIAk0ZigkdDFiWydjMm50NW50J10gIT0gJ2Q1c2NyNHB0NDJuJyAmJiAkdDFiWydjMm50NW50J10gIT0gJzF0dHI0YjN0NScgJiYgJHQxYlsnYzJudDVudCddICE9ICdyNXY0NXcnKSB7DQogIAkJNWNoMiAnPGQ0diA0ZD0iJy4kNGQuJyIgY2wxc3M9InQxYi1wMW41JzsNCiAgCQk0ZigkbjV3XzFjdDR2NSA9PSAkNGQpIHsgNWNoMiAnIDFjdDR2NSc7IH0NCiAgCQk1Y2gyICciIHIybDU9InQxYnAxbjVsIj4nLiR0MWJbJ2MybnQ1bnQnXS4nPC9kNHY+JzsNCiAgCX0NCiAgfSA/Pg0KIDxkNHYgcjJsNT0idDFicDFuNWwiIGNsMXNzPSJ0MWItcDFuNSA8P3BocCA0ZigkbjV3XzFjdDR2NSA9PSAndDFiLWQ1c2NyNHB0NDJuJykgeyA1Y2gyICcxY3Q0djUnOyB9ID8+IiA0ZD0idDFiLWQ1c2NyNHB0NDJuIiA0dDVtcHIycD0iZDVzY3I0cHQ0Mm4iPjw/cGhwIDVjaDIgJGQ1c2NyNHB0NDJuOyA/PjwvZDR2Pg0KICA8P3BocCA0ZiAoJDF0dHI0YjN0NV9ncjIzcHMpIHsgPz4NCiAgPGQ0diByMmw1PSJ0MWJwMW41bCIgY2wxc3M9InQxYi1wMW41IiA0ZD0idDFiLTF0dHI0YjN0NSI+DQogICAgPHQxYmw1IGNsMXNzPSIxdHRyNGIzdDUiIGM1bGxzcDFjNG5nPSIwIj4NCiAgICAgIDw/cGhwIGYycjUxY2ggKCQxdHRyNGIzdDVfZ3IyM3BzIDFzICQxdHRyNGIzdDVfZ3IyM3ApIHsgPz4NCiAgICAgIDx0aDUxZD4NCiAgICAgICAgPHRyPg0KICAgICAgICAgIDx0ZCBjMmxzcDFuPSJhIj48P3BocCA1Y2gyICQxdHRyNGIzdDVfZ3IyM3BbJ24xbTUnXTsgPz48L3RkPg0KICAgICAgICA8L3RyPg0KICAgICAgPC90aDUxZD4NCiAgICAgIDx0YjJkeT4NCiAgICAgICAgPD9waHAgZjJyNTFjaCAoJDF0dHI0YjN0NV9ncjIzcFsnMXR0cjRiM3Q1J10gMXMgJDF0dHI0YjN0NSkgeyA/Pg0KICAgICAgICA8dHI+DQogICAgICAgICAgPHRkPjw/cGhwIDVjaDIgJDF0dHI0YjN0NVsnbjFtNSddOyA/PjwvdGQ+DQogICAgICAgICAgPHRkPjw/cGhwIDVjaDIgJDF0dHI0YjN0NVsndDV4dCddOyA/PjwvdGQ+DQogICAgICAgIDwvdHI+DQogICAgICAgIDw/cGhwIH0gPz4NCiAgICAgIDwvdGIyZHk+DQogICAgICA8P3BocCB9ID8+DQogICAgPC90MWJsNT4NCiAgPC9kNHY+DQogIDw/cGhwIH0gPz4NCiAgPD9waHAgNGYgKCRyNXY0NXdfc3QxdDNzKSB7ID8+DQogIDxkNHYgNGQ9InQxYi1yNXY0NXciIGNsMXNzPSJ0MWItcDFuNSIgcjJsNT0idDFicDFuNWwiPg0KCTxmMnJtIGNsMXNzPSJmMnJtLWgycjR6Mm50MWwiIDRkPSJmMnJtLXI1djQ1dyI+DQoJICA8ZDR2IDRkPSJyNXY0NXciPjwvZDR2Pg0KCSAgPGhhPjw/cGhwIDVjaDIgJHQ1eHRfd3I0dDU7ID8+PC9oYT4NCgkgIDw/cGhwIDRmICgkcjV2NDV3X2czNXN0KSB7ID8+DQoJICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIHI1cTM0cjVkIj4NCgkgICAgPGQ0diBjbDFzcz0iYzJsLXNtLTZhIj4NCgkgICAgICA8bDFiNWwgY2wxc3M9ImMybnRyMmwtbDFiNWwiIGYycj0iNG5wM3QtbjFtNSI+PD9waHAgNWNoMiAkNW50cnlfbjFtNTsgPz48L2wxYjVsPg0KCSAgICAgIDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSJuMW01IiB2MWwzNT0iIiA0ZD0iNG5wM3QtbjFtNSIgY2wxc3M9ImYycm0tYzJudHIybCIgLz4NCgkgICAgPC9kNHY+DQoJICA8L2Q0dj4NCgkgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AgcjVxMzRyNWQiPg0KCSAgICA8ZDR2IGNsMXNzPSJjMmwtc20tNmEiPg0KCSAgICAgICAgIDxsMWI1bCBjbDFzcz0iYzJudHIybC1sMWI1bCI+PD9waHAgNWNoMiAkNW50cnlfcjF0NG5nOyA/PjwvbDFiNWw+DQoJICAgICAgICANCgkgICAgICAgPGQ0diBjbDFzcz0icjF0NG5nIHM1dC1yMXQ0bmciPg0KCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0iNiI+PC80Pg0KCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0iYSI+PC80Pg0KCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0ibyI+PC80Pg0KCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0idSI+PC80Pg0KCSAgICAgICAgICA8NCBjbDFzcz0iZjEgZjEtc3QxciIgZDF0MS12MWwzNT0iaSI+PC80Pg0KCSAgICAgIDwvZDR2Pg0KCSAgICAgIDxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4NCgkgICAgICAgICAgJChkMmMzbTVudCkucjUxZHkoZjNuY3Q0Mm4oKSB7DQoJICAgICAgICAgICAgJCgnLnM1dC1yMXQ0bmcgNCcpLmgydjVyKGYzbmN0NDJuKCl7DQoJICAgICAgICAgICAgICAgIHYxciByMXQ1ID0gJCh0aDRzKS5kMXQxKCd2MWwzNScpOw0KCSAgICAgICAgICAgICAgICB2MXIgNCA9IDA7DQoJICAgICAgICAgICAgICAgICQoJy5zNXQtcjF0NG5nIDQnKS41MWNoKGYzbmN0NDJuKCl7DQoJICAgICAgICAgICAgICAgICAgICA0Kys7DQoJICAgICAgICAgICAgICAgICAgICA0Zig0IDw9IHIxdDUpew0KCSAgICAgICAgICAgICAgICAgICAgICAgICQodGg0cykuMWRkQ2wxc3MoJzFjdDR2NScpOw0KCSAgICAgICAgICAgICAgICAgICAgfTVsczV7DQoJICAgICAgICAgICAgICAgICAgICAgICAgJCh0aDRzKS5yNW0ydjVDbDFzcygnMWN0NHY1Jyk7DQoJICAgICAgICAgICAgICAgICAgICB9DQoJICAgICAgICAgICAgICAgIH0pDQoJICAgICAgICAgICAgfSkNCgkgICAgICAgICAgICANCgkgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykubTIzczVsNTF2NShmM25jdDQybigpew0KCSAgICAgICAgICAgICAgICB2MXIgcjF0NSA9ICQoJzRucDN0W24xbTU9InIxdDRuZyJdOmNoNWNrNWQnKS52MWwoKTsNCgkgICAgICAgICAgICAgICAgcjF0NSA9IHAxcnM1SW50KHIxdDUpOw0KCSAgICAgICAgICAgICAgICA0ID0gMDsNCgkgICAgICAgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykuNTFjaChmM25jdDQybigpew0KCSAgICAgICAgICAgICAgICAgICAgNCsrOw0KCSAgICAgICAgICAgICAgICAgICAgNGYoNCA8PSByMXQ1KXsNCgkgICAgICAgICAgICAgICAgICAgICAgICAkKHRoNHMpLjFkZENsMXNzKCcxY3Q0djUnKTsNCgkgICAgICAgICAgICAgICAgICAgIH01bHM1ew0KCSAgICAgICAgICAgICAgICAgICAgICAgICQodGg0cykucjVtMnY1Q2wxc3MoJzFjdDR2NScpOw0KCSAgICAgICAgICAgICAgICAgICAgfQ0KCSAgICAgICAgICAgICAgICAgIH0pDQoJICAgICAgICAgICAgfSkNCgkgICAgICAgICAgICANCgkgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykuY2w0Y2soZjNuY3Q0Mm4oKXsNCgkgICAgICAgICAgICAgICAgJCgnNG5wM3RbbjFtNT0icjF0NG5nIl06bnRoKCcrICgkKHRoNHMpLmQxdDEoJ3YxbDM1JyktNikgKycpJykucHIycCgnY2g1Y2s1ZCcsIHRyMzUpOw0KCSAgICAgICAgICAgIH0pOw0KCSAgICAgICAgICB9KTsNCgkgICAgICA8L3NjcjRwdD4NCgkgICAgICA8ZDR2IGNsMXNzPSJoNGRkNW4iPg0KCSAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyA8P3BocCA1Y2gyICQ1bnRyeV9iMWQ7ID8+Jm5ic3A7DQoJICAgICAgICAgPDRucDN0IHR5cDU9InIxZDQyIiBuMW01PSJyMXQ0bmciIHYxbDM1PSI2IiAvPg0KCSAgICAgICAgICZuYnNwOw0KCSAgICAgICAgIDw0bnAzdCB0eXA1PSJyMWQ0MiIgbjFtNT0icjF0NG5nIiB2MWwzNT0iYSIgLz4NCgkgICAgICAgICAmbmJzcDsNCgkgICAgICAgICA8NG5wM3QgdHlwNT0icjFkNDIiIG4xbTU9InIxdDRuZyIgdjFsMzU9Im8iIC8+DQoJICAgICAgICAgJm5ic3A7DQoJICAgICAgICAgPDRucDN0IHR5cDU9InIxZDQyIiBuMW01PSJyMXQ0bmciIHYxbDM1PSJ1IiAvPg0KCSAgICAgICAgICZuYnNwOw0KCSAgICAgICAgIDw0bnAzdCB0eXA1PSJyMWQ0MiIgbjFtNT0icjF0NG5nIiB2MWwzNT0iaSIgLz4NCgkgICAgICAgICAmbmJzcDs8P3BocCA1Y2gyICQ1bnRyeV9nMjJkOyA/Pg0KCSAgICAgIDwvZDR2Pg0KCSAgIDwvZDR2Pg0KCSAgPC9kNHY+DQoJICANCgkgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AgcjVxMzRyNWQiPg0KCSAgICA8ZDR2IGNsMXNzPSJjMmwtc20tNmEiPg0KCSAgICAgIDxsMWI1bCBjbDFzcz0iYzJudHIybC1sMWI1bCIgZjJyPSI0bnAzdC1yNXY0NXciPjw/cGhwIDVjaDIgJDVudHJ5X3I1djQ1dzsgPz48L2wxYjVsPg0KCSAgICAgIDx0NXh0MXI1MSBuMW01PSJ0NXh0IiByMndzPSJpIiA0ZD0iNG5wM3QtcjV2NDV3IiBjbDFzcz0iZjJybS1jMm50cjJsIj48L3Q1eHQxcjUxPg0KCSAgICAgIDxkNHYgY2wxc3M9Img1bHAtYmwyY2siPjw/cGhwIDVjaDIgJHQ1eHRfbjJ0NTsgPz48L2Q0dj4NCgkgICAgPC9kNHY+DQoJICA8L2Q0dj4NCgkgIDw/cGhwIDVjaDIgJGMxcHRjaDE7ID8+DQoJICA8ZDR2IGNsMXNzPSJiM3R0Mm5zIGNsNTFyZjR4IiBzdHlsNT0ibTFyZzRuLWIydHQybTogMHB4Ij4NCgkgICAgPGQ0diBjbDFzcz0icDNsbC1yNGdodCI+DQoJICAgICAgPGIzdHQybiB0eXA1PSJiM3R0Mm4iIDRkPSJiM3R0Mm4tcjV2NDV3IiBkMXQxLWwyMWQ0bmctdDV4dD0iPD9waHAgNWNoMiAkdDV4dF9sMjFkNG5nOyA/PiIgY2wxc3M9ImJ0biBidG4tcHI0bTFyeSI+PD9waHAgNWNoMiAkYjN0dDJuX2MybnQ0bjM1OyA/PjwvYjN0dDJuPg0KCSAgICA8L2Q0dj4NCgkgIDwvZDR2Pg0KCSAgPD9waHAgfSA1bHM1IHsgPz4NCgkgIDw/cGhwIDVjaDIgJHQ1eHRfbDJnNG47ID8+DQoJICA8P3BocCB9ID8+DQoJPC9mMnJtPg0KICA8L2Q0dj4NCiAgPD9waHAgfSA/Pg0KICA8L2Q0dj4NCiA8L2Q0dj4NCjw/cGhwIH0gPz4NCiANCiA8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDJzNHQ0Mm5fcHIyZDNjdF90MWJzJyApID09IHUpIHsgPz4gIA0KICAgPD9waHAgDQogICAJICAkbDFuZzMxZzVfNGQgPSAkYzJuZjRnLT5nNXQoICdjMm5mNGdfbDFuZzMxZzVfNGQnICk7DQogCSAgJHQxYnMgPSAxcnIxeSgpOw0KIAkgIA0KIAkgICR0MWJzW10gPSAxcnIxeSgNCiAJICAJJ2g1MWQ0bmcnID0+ICR0MWJfZDVzY3I0cHQ0Mm4sDQogCSAgCSdjMm50NW50JyA9PiAnZDVzY3I0cHQ0Mm4nLA0KIAkgIAknczJydCcgPT4gNg0KIAkgICk7DQogCSAgDQogCSAgNGYgKCQxdHRyNGIzdDVfZ3IyM3BzKSB7IA0KIAkJICAkdDFic1tdID0gMXJyMXkoDQogCQkgIAknaDUxZDRuZycgPT4gJHQxYl8xdHRyNGIzdDUsDQogCQkgIAknYzJudDVudCcgPT4gJzF0dHI0YjN0NScsDQogCQkgIAknczJydCcgPT4gbw0KIAkJICApOw0KIAkgIH0NCiAJICANCiAJICA0ZiAoJHI1djQ1d19zdDF0M3MpIHsgDQogCSAgCSAgJHQxYnNbXSA9IDFycjF5KA0KIAkgIAkgIAknaDUxZDRuZycgPT4gJHQxYl9yNXY0NXcsDQogCSAgCSAgCSdjMm50NW50JyA9PiAncjV2NDV3JywNCiAJICAJICAJJ3MycnQnID0+IGkNCiAJICAJICApOw0KIAkgIH0NCiAJICAJICAJICANCiAJICA0Zig0c18xcnIxeSgkYzJuZjRnLT5nNXQoJ3ByMmQzY3RfdDFicycpKSkgew0KIAkJICBmMnI1MWNoKCRjMm5mNGctPmc1dCgncHIyZDNjdF90MWJzJykgMXMgJHQxYikgew0KIAkJICAJNGYoJHQxYlsnc3QxdDNzJ10gPT0gNiB8fCAkdDFiWydwcjJkM2N0XzRkJ10gPT0gJHByMmQzY3RfNGQpIHsNCiAJCSAgCQlmMnI1MWNoKCR0MWJbJ3QxYnMnXSAxcyAkejFrbDFkazEpIHsNCiAJCSAgCQkJNGYoJHoxa2wxZGsxWydzdDF0M3MnXSA9PSA2KSB7DQogCQkgIAkJCQkkaDUxZDRuZyA9IGYxbHM1OyAkYzJudDVudCA9IGYxbHM1Ow0KIAkJICAJCQkJNGYoNHNzNXQoJHoxa2wxZGsxWyRsMW5nMzFnNV80ZF0pKSB7DQogCQkgIAkJCQkJJGg1MWQ0bmcgPSAkejFrbDFkazFbJGwxbmczMWc1XzRkXVsnbjFtNSddOw0KIAkJICAJCQkJCSRjMm50NW50ID0gaHRtbF81bnQ0dHlfZDVjMmQ1KCR6MWtsMWRrMVskbDFuZzMxZzVfNGRdWydodG1sJ10pOw0KIAkJICAJCQkJfQ0KIAkJICAJCQkJJHQxYnNbXSA9IDFycjF5KA0KIAkJICAJCQkJCSdoNTFkNG5nJyA9PiAkaDUxZDRuZywNCiAJCSAgCQkJCQknYzJudDVudCcgPT4gJGMybnQ1bnQsDQogCQkgIAkJCQkJJ3MycnQnID0+ICR6MWtsMWRrMVsnczJydF8ycmQ1ciddDQogCQkgIAkJCQkpOw0KIAkJICAJCQl9DQogCQkgIAkJfQ0KIAkJICAJfQ0KIAkJICB9DQogCSAgfQ0KIAkgIA0KIAkgIDNzMnJ0KCR0MWJzLCAiY21wX2J5XzJwdDQybk4zbWI1ciIpOw0KICAgPz4NCiAgIDxkNHYgY2wxc3M9IjFjYzJyZDQybi1wcjJkM2N0LXQxYiIgNGQ9InByMmQzY3RfdDFiXzFjYzJyZDQybiI+DQoJPD9waHAgJDQgPSAwOyBmMnI1MWNoKCR0MWJzIDFzICR0MWIpIHsgJDQrKzsNCgkJJDRkID0gJ3QxYl8nLiQ0Ow0KCQk0ZigkdDFiWydjMm50NW50J10gPT0gJ2Q1c2NyNHB0NDJuJykgeyAkNGQgPSAndDFiLWQ1c2NyNHB0NDJuJzsgfQ0KCQk0ZigkdDFiWydjMm50NW50J10gPT0gJzF0dHI0YjN0NScpIHsgJDRkID0gJ3QxYi0xdHRyNGIzdDUnOyB9DQoJCTRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAncjV2NDV3JykgeyAkNGQgPSAndDFiLXI1djQ1dyc7IH0gPz4NCgkgICAJPGQ0diBjbDFzcz0icDFuNWwgcDFuNWwtZDVmMTNsdCI+DQoJICAgCQk8ZDR2IGNsMXNzPSJwMW41bC1oNTFkNG5nIj4NCgkgICAJCQk8aHUgY2wxc3M9InAxbjVsLXQ0dGw1Ij4NCgkgICAJCQkJPDEgZDF0MS10MmdnbDU9ImMybGwxcHM1IiBkMXQxLXAxcjVudD0iI3ByMmQzY3RfdDFiXzFjYzJyZDQybiIgaHI1Zj0iIzw/cGhwIDVjaDIgJDRkOyA/PiIgPD9waHAgNGYoJDQgIT0gNikgeyA/PmNsMXNzPSJjMmxsMXBzNWQiPD9waHAgfSA/Pj48P3BocCA1Y2gyICR0MWJbJ2g1MWQ0bmcnXTsgPz48LzE+DQoJICAgCQkJPC9odT4NCgkgICAJCTwvZDR2Pg0KCSAgIAkJDQoJICAgCQk8ZDR2IDRkPSI8P3BocCA1Y2gyICQ0ZDsgPz4iIGNsMXNzPSJwMW41bC1jMmxsMXBzNSBjMmxsMXBzNSA8P3BocCA0ZigkNCA9PSA2KSB7IDVjaDIgJzRuJzsgfSA/PiI+DQoJICAgCQkJPGQ0diBjbDFzcz0icDFuNWwtYjJkeSI+DQoJICAgCQkJCTw/cGhwIDRmKCR0MWJbJ2MybnQ1bnQnXSAhPSAnZDVzY3I0cHQ0Mm4nICYmICR0MWJbJ2MybnQ1bnQnXSAhPSAnMXR0cjRiM3Q1JyAmJiAkdDFiWydjMm50NW50J10gIT0gJ3I1djQ1dycpIHsNCgkgICAJCQkJCTVjaDIgJHQxYlsnYzJudDVudCddOw0KCSAgIAkJCQl9DQoJICAgCQkJCT8+DQoJICAgCQkJCQ0KCSAgIAkJCQk8P3BocCA0ZigkdDFiWydjMm50NW50J10gPT0gJ2Q1c2NyNHB0NDJuJykgew0KCSAgIAkJCQkJNWNoMiAkZDVzY3I0cHQ0Mm47DQoJICAgCQkJCX0gPz4NCgkgICAJCQkJDQoJICAgCQkJCTw/cGhwIDRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAnMXR0cjRiM3Q1JyAmJiAkMXR0cjRiM3Q1X2dyMjNwcykgeyA/Pg0KCSAgIAkJCQkJPGQ0diByMmw1PSJ0MWJwMW41bCIgY2wxc3M9InQxYi1wMW41IiA0ZD0idDFiLTF0dHI0YjN0NSI+DQoJICAgCQkJCQkgIDx0MWJsNSBjbDFzcz0iMXR0cjRiM3Q1IiBjNWxsc3AxYzRuZz0iMCI+DQoJICAgCQkJCQkgICAgPD9waHAgZjJyNTFjaCAoJDF0dHI0YjN0NV9ncjIzcHMgMXMgJDF0dHI0YjN0NV9ncjIzcCkgeyA/Pg0KCSAgIAkJCQkJICAgIDx0aDUxZD4NCgkgICAJCQkJCSAgICAgIDx0cj4NCgkgICAJCQkJCSAgICAgICAgPHRkIGMybHNwMW49ImEiPjw/cGhwIDVjaDIgJDF0dHI0YjN0NV9ncjIzcFsnbjFtNSddOyA/PjwvdGQ+DQoJICAgCQkJCQkgICAgICA8L3RyPg0KCSAgIAkJCQkJICAgIDwvdGg1MWQ+DQoJICAgCQkJCQkgICAgPHRiMmR5Pg0KCSAgIAkJCQkJICAgICAgPD9waHAgZjJyNTFjaCAoJDF0dHI0YjN0NV9ncjIzcFsnMXR0cjRiM3Q1J10gMXMgJDF0dHI0YjN0NSkgeyA/Pg0KCSAgIAkJCQkJICAgICAgPHRyPg0KCSAgIAkJCQkJICAgICAgICA8dGQ+PD9waHAgNWNoMiAkMXR0cjRiM3Q1WyduMW01J107ID8+PC90ZD4NCgkgICAJCQkJCSAgICAgICAgPHRkPjw/cGhwIDVjaDIgJDF0dHI0YjN0NVsndDV4dCddOyA/PjwvdGQ+DQoJICAgCQkJCQkgICAgICA8L3RyPg0KCSAgIAkJCQkJICAgICAgPD9waHAgfSA/Pg0KCSAgIAkJCQkJICAgIDwvdGIyZHk+DQoJICAgCQkJCQkgICAgPD9waHAgfSA/Pg0KCSAgIAkJCQkJICA8L3QxYmw1Pg0KCSAgIAkJCQkJPC9kNHY+DQoJICAgCQkJCTw/cGhwIH0gPz4NCgkgICAJCQkJDQoJICAgCQkJCTw/cGhwIDRmKCR0MWJbJ2MybnQ1bnQnXSA9PSAncjV2NDV3JyAmJiAkcjV2NDV3X3N0MXQzcykgeyA/Pg0KCSAgIAkJCQkJPGQ0diA0ZD0idDFiLXI1djQ1dyIgY2wxc3M9InQxYi1wMW41IiByMmw1PSJ0MWJwMW41bCI+DQoJICAgCQkJCQkJPGYycm0gY2wxc3M9ImYycm0taDJyNHoybnQxbCIgNGQ9ImYycm0tcjV2NDV3Ij4NCgkgICAJCQkJCQkgIDxkNHYgNGQ9InI1djQ1dyI+PC9kNHY+DQoJICAgCQkJCQkJICA8aGE+PD9waHAgNWNoMiAkdDV4dF93cjR0NTsgPz48L2hhPg0KCSAgIAkJCQkJCSAgPD9waHAgNGYgKCRyNXY0NXdfZzM1c3QpIHsgPz4NCgkgICAJCQkJCQkgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AgcjVxMzRyNWQiPg0KCSAgIAkJCQkJCSAgICA8ZDR2IGNsMXNzPSJjMmwtc20tNmEiPg0KCSAgIAkJCQkJCSAgICAgIDxsMWI1bCBjbDFzcz0iYzJudHIybC1sMWI1bCIgZjJyPSI0bnAzdC1uMW01Ij48P3BocCA1Y2gyICQ1bnRyeV9uMW01OyA/PjwvbDFiNWw+DQoJICAgCQkJCQkJICAgICAgPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9Im4xbTUiIHYxbDM1PSIiIDRkPSI0bnAzdC1uMW01IiBjbDFzcz0iZjJybS1jMm50cjJsIiAvPg0KCSAgIAkJCQkJCSAgICA8L2Q0dj4NCgkgICAJCQkJCQkgIDwvZDR2Pg0KCSAgIAkJCQkJCSAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCByNXEzNHI1ZCI+DQoJICAgCQkJCQkJICAgIDxkNHYgY2wxc3M9ImMybC1zbS02YSI+DQoJICAgCQkJCQkJICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMm50cjJsLWwxYjVsIj48P3BocCA1Y2gyICQ1bnRyeV9yMXQ0bmc7ID8+PC9sMWI1bD4NCgkgICAJCQkJCQkgICAgICAgIA0KCSAgIAkJCQkJCSAgICAgICA8ZDR2IGNsMXNzPSJyMXQ0bmcgczV0LXIxdDRuZyI+DQoJICAgCQkJCQkJICAgICAgICAgIDw0IGNsMXNzPSJmMSBmMS1zdDFyIiBkMXQxLXYxbDM1PSI2Ij48LzQ+DQoJICAgCQkJCQkJICAgICAgICAgIDw0IGNsMXNzPSJmMSBmMS1zdDFyIiBkMXQxLXYxbDM1PSJhIj48LzQ+DQoJICAgCQkJCQkJICAgICAgICAgIDw0IGNsMXNzPSJmMSBmMS1zdDFyIiBkMXQxLXYxbDM1PSJvIj48LzQ+DQoJICAgCQkJCQkJICAgICAgICAgIDw0IGNsMXNzPSJmMSBmMS1zdDFyIiBkMXQxLXYxbDM1PSJ1Ij48LzQ+DQoJICAgCQkJCQkJICAgICAgICAgIDw0IGNsMXNzPSJmMSBmMS1zdDFyIiBkMXQxLXYxbDM1PSJpIj48LzQ+DQoJICAgCQkJCQkJICAgICAgPC9kNHY+DQoJICAgCQkJCQkJICAgICAgPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPg0KCSAgIAkJCQkJCSAgICAgICAgICAkKGQyYzNtNW50KS5yNTFkeShmM25jdDQybigpIHsNCgkgICAJCQkJCQkgICAgICAgICAgICAkKCcuczV0LXIxdDRuZyA0JykuaDJ2NXIoZjNuY3Q0Mm4oKXsNCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgdjFyIHIxdDUgPSAkKHRoNHMpLmQxdDEoJ3YxbDM1Jyk7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgIHYxciA0ID0gMDsNCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgJCgnLnM1dC1yMXQ0bmcgNCcpLjUxY2goZjNuY3Q0Mm4oKXsNCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgIDQrKzsNCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgIDRmKDQgPD0gcjF0NSl7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgJCh0aDRzKS4xZGRDbDFzcygnMWN0NHY1Jyk7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICB9NWxzNXsNCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgICAgICAkKHRoNHMpLnI1bTJ2NUNsMXNzKCcxY3Q0djUnKTsNCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgICAgIH0NCgkgICAJCQkJCQkgICAgICAgICAgICAgICAgfSkNCgkgICAJCQkJCQkgICAgICAgICAgICB9KQ0KCSAgIAkJCQkJCSAgICAgICAgICAgIA0KCSAgIAkJCQkJCSAgICAgICAgICAgICQoJy5zNXQtcjF0NG5nIDQnKS5tMjNzNWw1MXY1KGYzbmN0NDJuKCl7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgIHYxciByMXQ1ID0gJCgnNG5wM3RbbjFtNT0icjF0NG5nIl06Y2g1Y2s1ZCcpLnYxbCgpOw0KCSAgIAkJCQkJCSAgICAgICAgICAgICAgICByMXQ1ID0gcDFyczVJbnQocjF0NSk7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgIDQgPSAwOw0KCSAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICQoJy5zNXQtcjF0NG5nIDQnKS41MWNoKGYzbmN0NDJuKCl7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICA0Kys7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICA0Zig0IDw9IHIxdDUpew0KCSAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICQodGg0cykuMWRkQ2wxc3MoJzFjdDR2NScpOw0KCSAgIAkJCQkJCSAgICAgICAgICAgICAgICAgICAgfTVsczV7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgJCh0aDRzKS5yNW0ydjVDbDFzcygnMWN0NHY1Jyk7DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgICB9DQoJICAgCQkJCQkJICAgICAgICAgICAgICAgICAgfSkNCgkgICAJCQkJCQkgICAgICAgICAgICB9KQ0KCSAgIAkJCQkJCSAgICAgICAgICAgIA0KCSAgIAkJCQkJCSAgICAgICAgICAgICQoJy5zNXQtcjF0NG5nIDQnKS5jbDRjayhmM25jdDQybigpew0KCSAgIAkJCQkJCSAgICAgICAgICAgICAgICAkKCc0bnAzdFtuMW01PSJyMXQ0bmciXTpudGgoJysgKCQodGg0cykuZDF0MSgndjFsMzUnKS02KSArJyknKS5wcjJwKCdjaDVjazVkJywgdHIzNSk7DQoJICAgCQkJCQkJICAgICAgICAgICAgfSk7DQoJICAgCQkJCQkJICAgICAgICAgIH0pOw0KCSAgIAkJCQkJCSAgICAgIDwvc2NyNHB0Pg0KCSAgIAkJCQkJCSAgICAgIDxkNHYgY2wxc3M9Img0ZGQ1biI+DQoJICAgCQkJCQkJICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7IDw/cGhwIDVjaDIgJDVudHJ5X2IxZDsgPz4mbmJzcDsNCgkgICAJCQkJCQkgICAgICAgICA8NG5wM3QgdHlwNT0icjFkNDIiIG4xbTU9InIxdDRuZyIgdjFsMzU9IjYiIC8+DQoJICAgCQkJCQkJICAgICAgICAgJm5ic3A7DQoJICAgCQkJCQkJICAgICAgICAgPDRucDN0IHR5cDU9InIxZDQyIiBuMW01PSJyMXQ0bmciIHYxbDM1PSJhIiAvPg0KCSAgIAkJCQkJCSAgICAgICAgICZuYnNwOw0KCSAgIAkJCQkJCSAgICAgICAgIDw0bnAzdCB0eXA1PSJyMWQ0MiIgbjFtNT0icjF0NG5nIiB2MWwzNT0ibyIgLz4NCgkgICAJCQkJCQkgICAgICAgICAmbmJzcDsNCgkgICAJCQkJCQkgICAgICAgICA8NG5wM3QgdHlwNT0icjFkNDIiIG4xbTU9InIxdDRuZyIgdjFsMzU9InUiIC8+DQoJICAgCQkJCQkJICAgICAgICAgJm5ic3A7DQoJICAgCQkJCQkJICAgICAgICAgPDRucDN0IHR5cDU9InIxZDQyIiBuMW01PSJyMXQ0bmciIHYxbDM1PSJpIiAvPg0KCSAgIAkJCQkJCSAgICAgICAgICZuYnNwOzw/cGhwIDVjaDIgJDVudHJ5X2cyMmQ7ID8+DQoJICAgCQkJCQkJICAgICAgPC9kNHY+DQoJICAgCQkJCQkJICAgPC9kNHY+DQoJICAgCQkJCQkJICA8L2Q0dj4NCgkgICAJCQkJCQkgIA0KCSAgIAkJCQkJCSAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCByNXEzNHI1ZCI+DQoJICAgCQkJCQkJICAgIDxkNHYgY2wxc3M9ImMybC1zbS02YSI+DQoJICAgCQkJCQkJICAgICAgPGwxYjVsIGNsMXNzPSJjMm50cjJsLWwxYjVsIiBmMnI9IjRucDN0LXI1djQ1dyI+PD9waHAgNWNoMiAkNW50cnlfcjV2NDV3OyA/PjwvbDFiNWw+DQoJICAgCQkJCQkJICAgICAgPHQ1eHQxcjUxIG4xbTU9InQ1eHQiIHIyd3M9ImkiIDRkPSI0bnAzdC1yNXY0NXciIGNsMXNzPSJmMnJtLWMybnRyMmwiPjwvdDV4dDFyNTE+DQoJICAgCQkJCQkJICAgICAgPGQ0diBjbDFzcz0iaDVscC1ibDJjayI+PD9waHAgNWNoMiAkdDV4dF9uMnQ1OyA/PjwvZDR2Pg0KCSAgIAkJCQkJCSAgICA8L2Q0dj4NCgkgICAJCQkJCQkgIDwvZDR2Pg0KCSAgIAkJCQkJCSAgPD9waHAgNWNoMiAkYzFwdGNoMTsgPz4NCgkgICAJCQkJCQkgIDxkNHYgY2wxc3M9ImIzdHQybnMgY2w1MXJmNHgiIHN0eWw1PSJtMXJnNG4tYjJ0dDJtOiAwcHgiPg0KCSAgIAkJCQkJCSAgICA8ZDR2IGNsMXNzPSJwM2xsLXI0Z2h0Ij4NCgkgICAJCQkJCQkgICAgICA8YjN0dDJuIHR5cDU9ImIzdHQybiIgNGQ9ImIzdHQybi1yNXY0NXciIGQxdDEtbDIxZDRuZy10NXh0PSI8P3BocCA1Y2gyICR0NXh0X2wyMWQ0bmc7ID8+IiBjbDFzcz0iYnRuIGJ0bi1wcjRtMXJ5Ij48P3BocCA1Y2gyICRiM3R0Mm5fYzJudDRuMzU7ID8+PC9iM3R0Mm4+DQoJICAgCQkJCQkJICAgIDwvZDR2Pg0KCSAgIAkJCQkJCSAgPC9kNHY+DQoJICAgCQkJCQkJICA8P3BocCB9IDVsczUgeyA/Pg0KCSAgIAkJCQkJCSAgPD9waHAgNWNoMiAkdDV4dF9sMmc0bjsgPz4NCgkgICAJCQkJCQkgIDw/cGhwIH0gPz4NCgkgICAJCQkJCQk8L2Yycm0+DQoJICAgCQkJCQk8L2Q0dj4NCgkgICAJCQkJPD9waHAgfSA/Pg0KCSAgIAkJCTwvZDR2Pg0KCSAgIAkJPC9kNHY+DQoJICAgCTwvZDR2Pg0KICAgCTw/cGhwIH0gPz4NCiAgPC9kNHY+DQogPD9waHAgfSA/Pg0KIA0KICA8P3BocCA0ZiAoJHQxZ3MpIHsgPz4NCiAgPGQ0diBjbDFzcz0idDFnc19wcjJkM2N0Ij48Yj48P3BocCA1Y2gyICR0NXh0X3QxZ3M7ID8+PC9iPg0KICAgIDw/cGhwIGYyciAoJDQgPSAwOyAkNCA8IGMyM250KCR0MWdzKTsgJDQrKykgeyA/Pg0KICAgIDw/cGhwIDRmICgkNCA8IChjMjNudCgkdDFncykgLSA2KSkgeyA/Pg0KICAgIDwxIGhyNWY9Ijw/cGhwIDVjaDIgJHQxZ3NbJDRdWydocjVmJ107ID8+Ij48P3BocCA1Y2gyICR0MWdzWyQ0XVsndDFnJ107ID8+PC8xPiwNCiAgICA8P3BocCB9IDVsczUgeyA/Pg0KICAgIDwxIGhyNWY9Ijw/cGhwIDVjaDIgJHQxZ3NbJDRdWydocjVmJ107ID8+Ij48P3BocCA1Y2gyICR0MWdzWyQ0XVsndDFnJ107ID8+PC8xPg0KICAgIDw/cGhwIH0gPz4NCiAgICA8P3BocCB9ID8+DQogIDwvZDR2Pg0KICA8P3BocCB9ID8+DQogIA0KICA8P3BocCA0ZiAoJHByMmQzY3RzICYmICR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0X3I1bDF0NWRfc3QxdDNzJyApICE9ICcwJykgeyA/Pg0KICA8P3BocCA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncDJzNHQ0Mm5fcHIyZDNjdF90MWJzJyApID09IG8pIHsgNWNoMiAnPGQ0diBzdHlsNT0iaDU0Z2h0OiA2aXB4Ij48L2Q0dj4nOyB9ID8+ICANCiAgPD9waHAgDQogICRjbDFzcyA9IG87IA0KICAkNGQgPSByMW5kKDAsIGkwMDApKnIxbmQoMCwgaTAwMCk7IA0KICAkMWxsID0gdTsgDQogICRyMncgPSB1OyANCiAgDQogIDRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0X3A1cl9wMncnICkgPT0gZSkgeyAkY2wxc3MgPSBhOyB9DQogIDRmKCR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0X3A1cl9wMncnICkgPT0gaSkgeyAkY2wxc3MgPSBhaTsgfQ0KICA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF9wNXJfcDJ3JyApID09IG8pIHsgJGNsMXNzID0gdTsgfQ0KICANCiAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3RfcDVyX3AydycgKSA+IDYpIHsgJHIydyA9ICR0aDVtNV8ycHQ0Mm5zLT5nNXQoICdwcjJkM2N0X3A1cl9wMncnICk7ICQxbGwgPSAkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF9wNXJfcDJ3JyApOyB9IA0KICA/Pg0KICAJPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3Rfc2NyMmxsX3I1bDF0NWQnICkgIT0gMCkgeyA/Pg0KICAJICA8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQogIAkgICQoZDJjM201bnQpLnI1MWR5KGYzbmN0NDJuKCkgew0KICAJICAgIHYxciAyd2w8P3BocCA1Y2gyICQ0ZDsgPz4gPSAkKCIjbXlDMXIyM3M1bDw/cGhwIDVjaDIgJDRkOyA/PiIpOw0KICAJICAgIDJ3bDw/cGhwIDVjaDIgJDRkOyA/Pi4yd2xDMXIyM3M1bCh7DQogIAkgICAgCSAgbDIycDpmMWxzNSwNCiAgCSAgICAJICBtMXJnNG46NmUsDQogIAkgICAgCSAgcjVzcDJuczR2NUNsMXNzOnRyMzUsDQogIAkgICAgCSAgbjF2OnRyMzUsDQogIAkgICAgCSAgbjF2VDV4dDogWyc8NCBjbDFzcz0iZjEgZjEtY2g1dnIybi1sNWZ0Ij4nLCAnPDQgY2wxc3M9ImYxIGYxLWNoNXZyMm4tcjRnaHQiPiddLA0KICAJICAgIAkgIGQydHM6IGYxbHM1LA0KICAJICAgIAkgIDEzdDJwbDF5OiB0cjM1LA0KICAJICAgIAkgIDEzdDJwbDF5VDRtNTIzdDogNjAwMDAsDQogIAkgICAgCSAgPD9waHAgNGYoJHAxZzVfZDRyNWN0NDJuWyRjMm5mNGctPmc1dCggJ2MybmY0Z19sMW5nMzFnNV80ZCcgKV0gPT0gJ1JUTCcpOiA/Pg0KICAJICAgIAkgIHJ0bDogdHIzNSwNCiAgCSAgICAJICA8P3BocCA1bmQ0ZjsgPz4NCiAgCSAgICAJICByNXNwMm5zNHY1OnsNCiAgCSAgICAJICAJMDp7DQogIAkgICAgCSAgCQk0dDVtczo2DQogIAkgICAgCSAgCX0sDQogIAkgICAgCSAgCXU4MDogew0KICAJICAgIAkgIAkJNHQ1bXM6YQ0KICAJICAgIAkgIAl9LA0KICAJICAgIAkgIAk3ZTg6ew0KICAJICAgIAkgIAkJNHQ1bXM6PD9waHAgNWNoMiAkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF9wNXJfcDJ3JyApOyA/Pg0KICAJICAgIAkgIAl9DQogIAkgICAgCSAgfQ0KICAJICAgICB9KTsNCiAgCSAgfSk7DQogIAkgIDwvc2NyNHB0Pg0KICAJCTxkNHYgY2wxc3M9ImMxcjIzczVsLXdyMXBwNXIiIHN0eWw1PSJtMXJnNG4tYjJ0dDJtOiBvMHB4Ij4NCiAgCQkgIDxoYSBjbDFzcz0ic2w0ZDVyLXQ0dGw1Ij4NCiAgCQkgIAk8c3AxbiBjbDFzcz0iNG5sNG41LXQ0dGw1Ij48P3BocCA1Y2gyICR0NXh0X3I1bDF0NWQ7ID8+PC9zcDFuPg0KICAJCSAgCTxzcDFuIGNsMXNzPSJsNG41Ij48L3NwMW4+DQogIAkJICA8L2hhPg0KICAJCSAgPGQ0diBjbDFzcz0iMndsLWMxcjIzczVsIGgybTUtcHIyZDNjdHMtYzFyMjNzNWwiIDRkPSJteUMxcjIzczVsPD9waHAgNWNoMiAkNGQ7ID8+Ij4NCiAgCQkgICAgCTw/cGhwICQ0ID0gMDsgJHIyd19mbDM0ZCA9IDA7ICQ0dDVtID0gMDsgZjJyNTFjaCAoJHByMmQzY3RzIDFzICRwcjJkM2N0KSB7ID8+DQogIAkJCSAgICAJPD9waHAgNG5jbDNkNSgnYzF0MWwyZy92NDV3L3RoNW01LycuJGMybmY0Zy0+ZzV0KCdjMm5mNGdfdDVtcGwxdDUnKS4nL3Q1bXBsMXQ1L241d181bDVtNW50cy9wcjJkM2N0LnRwbCcpOyA/Pg0KICAJCQkgICAgPD9waHAgfSA/Pg0KICAJCSAgPC9kNHY+DQogIAkJPC9kNHY+DQogIAk8P3BocCB9IDVsczUgeyA/Pg0KICAJCTxkNHYgY2wxc3M9ImMxcjIzczVsLXdyMXBwNXIiPg0KICAJCSAgPGhhIGNsMXNzPSJzbDRkNXItdDR0bDUiPg0KICAJCSAgCTxzcDFuIGNsMXNzPSI0bmw0bjUtdDR0bDUiPjw/cGhwIDVjaDIgJGg1MWQ0bmdfdDR0bDU7ID8+PC9zcDFuPg0KICAJCSAgCTxzcDFuIGNsMXNzPSJsNG41Ij48L3NwMW4+DQogIAkJICA8L2hhPg0KICAJCSAgPGQ0dj4NCiAgCQkJICA8P3BocCAkNCA9IDA7ICRyMndfZmwzNGQgPSAwOyAkNHQ1bSA9IDA7IGYycjUxY2ggKCRwcjJkM2N0cyAxcyAkcHIyZDNjdCkgeyAkcjJ3X2ZsMzRkKys7ID8+DQogIAkJCSAgCTw/cGhwIDRmKCQ0ID09IDApIHsgJDR0NW0rKzsgNWNoMiAnPGQ0diBjbDFzcz0iMWN0NHY1IDR0NW0iPjxkNHYgY2wxc3M9InByMmQzY3QtZ3I0ZCI+PGQ0diBjbDFzcz0icjJ3Ij4nOyB9ID8+DQogIAkJCSAgCTw/cGhwICRyPSRyMndfZmwzNGQtZmwyMnIoJHIyd19mbDM0ZC8kMWxsKSokMWxsOyA0ZigkcjJ3X2ZsMzRkPiQxbGwgJiYgJHIgPT0gNikgeyA0ZigkdGg1bTVfMnB0NDJucy0+ZzV0KCAncHIyZDNjdF9zY3IybGxfcjVsMXQ1ZCcgKSAhPSAnMCcpIHsgNWNoMiAnPC9kNHY+PC9kNHY+PC9kNHY+PGQ0diBjbDFzcz0iNHQ1bSI+PGQ0diBjbDFzcz0icHIyZDNjdC1ncjRkIj48ZDR2IGNsMXNzPSJyMnciPic7ICQ0dDVtKys7IH0gNWxzNSB7IDVjaDIgJzwvZDR2PjxkNHYgY2wxc3M9InIydyI+JzsgfSB9IDVsczUgeyAkcj0kcjJ3X2ZsMzRkLWZsMjJyKCRyMndfZmwzNGQvJHIydykqJHIydzsgNGYoJHIyd19mbDM0ZD4kcjJ3ICYmICRyID09IDYpIHsgNWNoMiAnPC9kNHY+PGQ0diBjbDFzcz0icjJ3Ij4nOyB9IH0gPz4NCiAgCQkJICAJPGQ0diBzdHlsNT0icDFkZDRuZy1iMnR0Mm06IG8wcHgiIGNsMXNzPSJjMmwtc20tPD9waHAgNWNoMiAkY2wxc3M7ID8+IGMybC14cy1lIDw/cGhwIDRmKCRjbDFzcyA9PSBhKSB7IDVjaDIgJ2MybC1tZC1haSBjMmwtbGctYSBjMmwtc20tbyAnOyB9IDRmKCRjbDFzcyA9PSBhICYmICRyID09IDApIHsgNWNoMiAnaDRkZDVuLW1kIGg0ZGQ1bi1zbSc7IH0gNGYoJGNsMXNzID09IGEgJiYgJHIgPT0gaSkgeyA1Y2gyICdoNGRkNW4tc20nOyB9ID8+IDw/cGhwIDRmKCRjbDFzcyA9PSBhaSkgeyA1Y2gyICdjMmwtbWQtYWkgYzJsLWxnLWFpIGMybC1zbS1vICc7IH0gNGYoJGNsMXNzID09IGFpICYmICRyID09IDApIHsgNWNoMiAnaDRkZDVuLXNtJzsgfSA/PiI+DQogIAkJCSAgCQk8P3BocCA0bmNsM2Q1KCdjMXQxbDJnL3Y0NXcvdGg1bTUvJy4kYzJuZjRnLT5nNXQoJ2MybmY0Z190NW1wbDF0NScpLicvdDVtcGwxdDUvbjV3XzVsNW01bnRzL3ByMmQzY3QudHBsJyk7ID8+DQogIAkJCSAgCTwvZDR2Pg0KICAJCQkgIDw/cGhwICQ0Kys7IH0gPz4NCiAgCQkJICA8P3BocCA0ZigkNCA+IDApIHsgNWNoMiAnPC9kNHY+PC9kNHY+PC9kNHY+JzsgfSA/Pg0KICAJCSAgPC9kNHY+DQogIAkJPC9kNHY+DQogIAk8P3BocCB9ID8+DQogIDw/cGhwIH0gPz4NCiAgDQo8L2Q0dj4NCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij48IS0tDQokKCdzNWw1Y3RbbjFtNT1cJ3I1YzNycjRuZ180ZFwnXSwgNG5wM3RbbjFtNT0icTMxbnQ0dHkiXScpLmNoMW5nNShmM25jdDQybigpew0KCSQuMWoxeCh7DQoJCTNybDogJzRuZDV4LnBocD9yMjN0NT1wcjJkM2N0L3ByMmQzY3QvZzV0UjVjM3JyNG5nRDVzY3I0cHQ0Mm4nLA0KCQl0eXA1OiAncDJzdCcsDQoJCWQxdDE6ICQoJzRucDN0W24xbTU9XCdwcjJkM2N0XzRkXCddLCA0bnAzdFtuMW01PVwncTMxbnQ0dHlcJ10sIHM1bDVjdFtuMW01PVwncjVjM3JyNG5nXzRkXCddJyksDQoJCWQxdDFUeXA1OiAnanMybicsDQoJCWI1ZjJyNVM1bmQ6IGYzbmN0NDJuKCkgew0KCQkJJCgnI3I1YzNycjRuZy1kNXNjcjRwdDQybicpLmh0bWwoJycpOw0KCQl9LA0KCQlzM2NjNXNzOiBmM25jdDQybihqczJuKSB7DQoJCQkkKCcuMWw1cnQsIC50NXh0LWQxbmc1cicpLnI1bTJ2NSgpOw0KCQkJDQoJCQk0ZiAoanMyblsnczNjYzVzcyddKSB7DQoJCQkJJCgnI3I1YzNycjRuZy1kNXNjcjRwdDQybicpLmh0bWwoanMyblsnczNjYzVzcyddKTsNCgkJCX0NCgkJfQ0KCX0pOw0KfSk7DQovLy0tPjwvc2NyNHB0PiANCjxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij48IS0tDQovKg0KJCgnI2IzdHQybi1jMXJ0JykuMm4oJ2NsNGNrJywgZjNuY3Q0Mm4oKSB7DQoJJC4xajF4KHsNCgkJM3JsOiAnNG5kNXgucGhwP3IyM3Q1PWNoNWNrMjN0L2MxcnQvMWRkJywNCgkJdHlwNTogJ3Ayc3QnLA0KCQlkMXQxOiAkKCcjcHIyZDNjdCA0bnAzdFt0eXA1PVwndDV4dFwnXSwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ2g0ZGQ1blwnXSwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ3IxZDQyXCddOmNoNWNrNWQsICNwcjJkM2N0IDRucDN0W3R5cDU9XCdjaDVja2IyeFwnXTpjaDVjazVkLCAjcHIyZDNjdCBzNWw1Y3QsICNwcjJkM2N0IHQ1eHQxcjUxJyksDQoJCWQxdDFUeXA1OiAnanMybicsDQoJCWI1ZjJyNVM1bmQ6IGYzbmN0NDJuKCkgew0KCQkJJCgnI2IzdHQybi1jMXJ0JykuYjN0dDJuKCdsMjFkNG5nJyk7DQoJCX0sDQoJCWMybXBsNXQ1OiBmM25jdDQybigpIHsNCgkJCSQoJyNiM3R0Mm4tYzFydCcpLmIzdHQybigncjVzNXQnKTsNCgkJfSwNCgkJczNjYzVzczogZjNuY3Q0Mm4oanMybikgew0KCQkJJCgnLjFsNXJ0LCAudDV4dC1kMW5nNXInKS5yNW0ydjUoKTsNCgkJCSQoJy5mMnJtLWdyMjNwJykucjVtMnY1Q2wxc3MoJ2gxcy01cnIycicpOw0KDQoJCQk0ZiAoanMyblsnNXJyMnInXSkgew0KCQkJCTRmIChqczJuWyc1cnIyciddWycycHQ0Mm4nXSkgew0KCQkJCQlmMnIgKDQgNG4ganMyblsnNXJyMnInXVsnMnB0NDJuJ10pIHsNCgkJCQkJCXYxciA1bDVtNW50ID0gJCgnIzRucDN0LTJwdDQybicgKyA0LnI1cGwxYzUoJ18nLCAnLScpKTsNCgkJCQkJCQ0KCQkJCQkJNGYgKDVsNW01bnQucDFyNW50KCkuaDFzQ2wxc3MoJzRucDN0LWdyMjNwJykpIHsNCgkJCQkJCQk1bDVtNW50LnAxcjVudCgpLjFmdDVyKCc8ZDR2IGNsMXNzPSJ0NXh0LWQxbmc1ciI+JyArIGpzMm5bJzVycjJyJ11bJzJwdDQybiddWzRdICsgJzwvZDR2PicpOw0KCQkJCQkJfSA1bHM1IHsNCgkJCQkJCQk1bDVtNW50LjFmdDVyKCc8ZDR2IGNsMXNzPSJ0NXh0LWQxbmc1ciI+JyArIGpzMm5bJzVycjJyJ11bJzJwdDQybiddWzRdICsgJzwvZDR2PicpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCQ0KCQkJCTRmIChqczJuWyc1cnIyciddWydyNWMzcnI0bmcnXSkgew0KCQkJCQkkKCdzNWw1Y3RbbjFtNT1cJ3I1YzNycjRuZ180ZFwnXScpLjFmdDVyKCc8ZDR2IGNsMXNzPSJ0NXh0LWQxbmc1ciI+JyArIGpzMm5bJzVycjJyJ11bJ3I1YzNycjRuZyddICsgJzwvZDR2PicpOw0KCQkJCX0NCgkJCQkNCgkJCQkvLyBINGdobDRnaHQgMW55IGYyM25kIDVycjJycw0KCQkJCSQoJy50NXh0LWQxbmc1cicpLnAxcjVudCgpLjFkZENsMXNzKCdoMXMtNXJyMnInKTsNCgkJCX0NCgkJCQ0KCQkJNGYgKGpzMm5bJ3MzY2M1c3MnXSkgew0KCQkJCSQubjJ0NGZ5KHsNCgkJCQkJbTVzczFnNToganMyblsnczNjYzVzcyddLA0KCQkJCQl0MXJnNXQ6ICdfYmwxbmsnDQoJCQkJfSx7DQoJCQkJCS8vIHM1dHQ0bmdzDQoJCQkJCTVsNW01bnQ6ICdiMmR5JywNCgkJCQkJcDJzNHQ0Mm46IG4zbGwsDQoJCQkJCXR5cDU6ICI0bmYyIiwNCgkJCQkJMWxsMndfZDRzbTRzczogdHIzNSwNCgkJCQkJbjV3NXN0XzJuX3QycDogZjFsczUsDQoJCQkJCXBsMWM1bTVudDogew0KCQkJCQkJZnIybTogInQycCIsDQoJCQkJCQkxbDRnbjogInI0Z2h0Ig0KCQkJCQl9LA0KCQkJCQkyZmZzNXQ6IGEwLA0KCQkJCQlzcDFjNG5nOiA2MCwNCgkJCQkJel80bmQ1eDogYTBvNiwNCgkJCQkJZDVsMXk6IGkwMDAsDQoJCQkJCXQ0bTVyOiA2MDAwLA0KCQkJCQkzcmxfdDFyZzV0OiAnX2JsMW5rJywNCgkJCQkJbTIzczVfMnY1cjogbjNsbCwNCgkJCQkJMW40bTF0NTogew0KCQkJCQkJNW50NXI6ICcxbjRtMXQ1ZCBmMWQ1SW5EMnduJywNCgkJCQkJCTV4NHQ6ICcxbjRtMXQ1ZCBmMWQ1TzN0VXAnDQoJCQkJCX0sDQoJCQkJCTJuU2gydzogbjNsbCwNCgkJCQkJMm5TaDJ3bjogbjNsbCwNCgkJCQkJMm5DbDJzNTogbjNsbCwNCgkJCQkJMm5DbDJzNWQ6IG4zbGwsDQoJCQkJCTRjMm5fdHlwNTogJ2NsMXNzJywNCgkJCQkJdDVtcGwxdDU6ICc8ZDR2IGQxdDEtbjJ0NGZ5PSJjMm50MTRuNXIiIGNsMXNzPSJjMmwteHMtNjYgYzJsLXNtLW8gMWw1cnQgMWw1cnQtczNjYzVzcyIgcjJsNT0iMWw1cnQiPicgKw0KCQkJCQkJJzxiM3R0Mm4gdHlwNT0iYjN0dDJuIiAxcjQxLWg0ZGQ1bj0idHIzNSIgY2wxc3M9ImNsMnM1IiBkMXQxLW4ydDRmeT0iZDRzbTRzcyI+JiNhNmk7PC9iM3R0Mm4+JyArDQoJCQkJCQknPHNwMW4gZDF0MS1uMnQ0Znk9Im01c3MxZzUiPjw0IGNsMXNzPSJmMSBmMS1jaDVjay1jNHJjbDUiPjwvND4mbmJzcDsge2F9PC9zcDFuPicgKw0KCQkJCQkJJzxkNHYgY2wxc3M9InByMmdyNXNzIiBkMXQxLW4ydDRmeT0icHIyZ3I1c3NiMXIiPicgKw0KCQkJCQkJCSc8ZDR2IGNsMXNzPSJwcjJncjVzcy1iMXIgcHIyZ3I1c3MtYjFyLXMzY2M1c3MiIHIybDU9InByMmdyNXNzYjFyIiAxcjQxLXYxbDM1bjJ3PSIwIiAxcjQxLXYxbDM1bTRuPSIwIiAxcjQxLXYxbDM1bTF4PSI2MDAiIHN0eWw1PSJ3NGR0aDogMCU7Ij48L2Q0dj4nICsNCgkJCQkJCSc8L2Q0dj4nICsNCgkJCQkJCSc8MSBocjVmPSJ7b30iIHQxcmc1dD0ie3V9IiBkMXQxLW4ydDRmeT0iM3JsIj48LzE+JyArDQoJCQkJCSc8L2Q0dj4nIA0KCQkJCX0pOw0KCQkJCQ0KCQkJCSQoJyNtNG40LWMxcnQgI2MxcnRfYzJudDVudCcpLmwyMWQoJzRuZDV4LnBocD9yMjN0NT1jMm1tMm4vYzFydC80bmYyICNjMXJ0X2MybnQ1bnRfMWoxeCcpOw0KCQkJCSQoJyNtNG40LWMxcnQgI3QydDFsXzR0NW1fMWoxeCcpLmwyMWQoJzRuZDV4LnBocD9yMjN0NT1jMm1tMm4vYzFydC80bmYyICN0MnQxbF80dDVtJyk7DQoJCQl9DQoJCX0sDQogICAgICAgIDVycjJyOiBmM25jdDQybih4aHIsIDFqMXhPcHQ0Mm5zLCB0aHIyd25FcnIycikgew0KICAgICAgICAgICAgMWw1cnQodGhyMnduRXJyMnIgKyAiXHJcbiIgKyB4aHIuc3QxdDNzVDV4dCArICJcclxuIiArIHhoci5yNXNwMm5zNVQ1eHQpOw0KICAgICAgICB9DQoJfSk7DQp9KTsqLw0KPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJzFkZF90Ml9jMXJ0X3N0NGNreScgKSA9PSA2KSB7ID8+DQokKCcjYjN0dDJuLWMxcnRhJykuMm4oJ2NsNGNrJywgZjNuY3Q0Mm4oKSB7DQoJJC4xajF4KHsNCgkJM3JsOiAnNG5kNXgucGhwP3IyM3Q1PWNoNWNrMjN0L2MxcnQvMWRkJywNCgkJdHlwNTogJ3Ayc3QnLA0KCQlkMXQxOiAkKCcjcHIyZDNjdCA0bnAzdFt0eXA1PVwndDV4dFwnXSwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ2g0ZGQ1blwnXSwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ3IxZDQyXCddOmNoNWNrNWQsICNwcjJkM2N0IDRucDN0W3R5cDU9XCdjaDVja2IyeFwnXTpjaDVjazVkLCAjcHIyZDNjdCBzNWw1Y3QsICNwcjJkM2N0IHQ1eHQxcjUxJyksDQoJCWQxdDFUeXA1OiAnanMybicsDQoJCWI1ZjJyNVM1bmQ6IGYzbmN0NDJuKCkgew0KCQkJJCgnI2IzdHQybi1jMXJ0JykuYjN0dDJuKCdsMjFkNG5nJyk7DQoJCX0sDQoJCWMybXBsNXQ1OiBmM25jdDQybigpIHsNCgkJCSQoJyNiM3R0Mm4tYzFydCcpLmIzdHQybigncjVzNXQnKTsNCgkJfSwNCgkJczNjYzVzczogZjNuY3Q0Mm4oanMybikgew0KCQkJJCgnLjFsNXJ0LCAudDV4dC1kMW5nNXInKS5yNW0ydjUoKTsNCgkJCSQoJy5mMnJtLWdyMjNwJykucjVtMnY1Q2wxc3MoJ2gxcy01cnIycicpOw0KDQoJCQk0ZiAoanMyblsnNXJyMnInXSkgew0KCQkJCTRmIChqczJuWyc1cnIyciddWycycHQ0Mm4nXSkgew0KCQkJCQlmMnIgKDQgNG4ganMyblsnNXJyMnInXVsnMnB0NDJuJ10pIHsNCgkJCQkJCXYxciA1bDVtNW50ID0gJCgnIzRucDN0LTJwdDQybicgKyA0LnI1cGwxYzUoJ18nLCAnLScpKTsNCgkJCQkJCQ0KCQkJCQkJNGYgKDVsNW01bnQucDFyNW50KCkuaDFzQ2wxc3MoJzRucDN0LWdyMjNwJykpIHsNCgkJCQkJCQk1bDVtNW50LnAxcjVudCgpLjFmdDVyKCc8ZDR2IGNsMXNzPSJ0NXh0LWQxbmc1ciI+JyArIGpzMm5bJzVycjJyJ11bJzJwdDQybiddWzRdICsgJzwvZDR2PicpOw0KCQkJCQkJfSA1bHM1IHsNCgkJCQkJCQk1bDVtNW50LjFmdDVyKCc8ZDR2IGNsMXNzPSJ0NXh0LWQxbmc1ciI+JyArIGpzMm5bJzVycjJyJ11bJzJwdDQybiddWzRdICsgJzwvZDR2PicpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJCQ0KCQkJCTRmIChqczJuWyc1cnIyciddWydyNWMzcnI0bmcnXSkgew0KCQkJCQkkKCdzNWw1Y3RbbjFtNT1cJ3I1YzNycjRuZ180ZFwnXScpLjFmdDVyKCc8ZDR2IGNsMXNzPSJ0NXh0LWQxbmc1ciI+JyArIGpzMm5bJzVycjJyJ11bJ3I1YzNycjRuZyddICsgJzwvZDR2PicpOw0KCQkJCX0NCgkJCQkNCgkJCQkvLyBINGdobDRnaHQgMW55IGYyM25kIDVycjJycw0KCQkJCSQoJy50NXh0LWQxbmc1cicpLnAxcjVudCgpLjFkZENsMXNzKCdoMXMtNXJyMnInKTsNCgkJCX0NCgkJCQ0KCQkJNGYgKGpzMm5bJ3MzY2M1c3MnXSkgew0KCQkJCSQubjJ0NGZ5KHsNCgkJCQkJbTVzczFnNToganMyblsnczNjYzVzcyddLA0KCQkJCQl0MXJnNXQ6ICdfYmwxbmsnDQoJCQkJfSx7DQoJCQkJCS8vIHM1dHQ0bmdzDQoJCQkJCTVsNW01bnQ6ICdiMmR5JywNCgkJCQkJcDJzNHQ0Mm46IG4zbGwsDQoJCQkJCXR5cDU6ICI0bmYyIiwNCgkJCQkJMWxsMndfZDRzbTRzczogdHIzNSwNCgkJCQkJbjV3NXN0XzJuX3QycDogZjFsczUsDQoJCQkJCXBsMWM1bTVudDogew0KCQkJCQkJZnIybTogInQycCIsDQoJCQkJCQkxbDRnbjogInI0Z2h0Ig0KCQkJCQl9LA0KCQkJCQkyZmZzNXQ6IGEwLA0KCQkJCQlzcDFjNG5nOiA2MCwNCgkJCQkJel80bmQ1eDogYTBvNiwNCgkJCQkJZDVsMXk6IGkwMDAsDQoJCQkJCXQ0bTVyOiA2MDAwLA0KCQkJCQkzcmxfdDFyZzV0OiAnX2JsMW5rJywNCgkJCQkJbTIzczVfMnY1cjogbjNsbCwNCgkJCQkJMW40bTF0NTogew0KCQkJCQkJNW50NXI6ICcxbjRtMXQ1ZCBmMWQ1SW5EMnduJywNCgkJCQkJCTV4NHQ6ICcxbjRtMXQ1ZCBmMWQ1TzN0VXAnDQoJCQkJCX0sDQoJCQkJCTJuU2gydzogbjNsbCwNCgkJCQkJMm5TaDJ3bjogbjNsbCwNCgkJCQkJMm5DbDJzNTogbjNsbCwNCgkJCQkJMm5DbDJzNWQ6IG4zbGwsDQoJCQkJCTRjMm5fdHlwNTogJ2NsMXNzJywNCgkJCQkJdDVtcGwxdDU6ICc8ZDR2IGQxdDEtbjJ0NGZ5PSJjMm50MTRuNXIiIGNsMXNzPSJjMmwteHMtNjYgYzJsLXNtLW8gMWw1cnQgMWw1cnQtczNjYzVzcyIgcjJsNT0iMWw1cnQiPicgKw0KCQkJCQkJJzxiM3R0Mm4gdHlwNT0iYjN0dDJuIiAxcjQxLWg0ZGQ1bj0idHIzNSIgY2wxc3M9ImNsMnM1IiBkMXQxLW4ydDRmeT0iZDRzbTRzcyI+JiNhNmk7PC9iM3R0Mm4+JyArDQoJCQkJCQknPHNwMW4gZDF0MS1uMnQ0Znk9Im01c3MxZzUiPjw0IGNsMXNzPSJmMSBmMS1jaDVjay1jNHJjbDUiPjwvND4mbmJzcDsge2F9PC9zcDFuPicgKw0KCQkJCQkJJzxkNHYgY2wxc3M9InByMmdyNXNzIiBkMXQxLW4ydDRmeT0icHIyZ3I1c3NiMXIiPicgKw0KCQkJCQkJCSc8ZDR2IGNsMXNzPSJwcjJncjVzcy1iMXIgcHIyZ3I1c3MtYjFyLXMzY2M1c3MiIHIybDU9InByMmdyNXNzYjFyIiAxcjQxLXYxbDM1bjJ3PSIwIiAxcjQxLXYxbDM1bTRuPSIwIiAxcjQxLXYxbDM1bTF4PSI2MDAiIHN0eWw1PSJ3NGR0aDogMCU7Ij48L2Q0dj4nICsNCgkJCQkJCSc8L2Q0dj4nICsNCgkJCQkJCSc8MSBocjVmPSJ7b30iIHQxcmc1dD0ie3V9IiBkMXQxLW4ydDRmeT0iM3JsIj48LzE+JyArDQoJCQkJCSc8L2Q0dj4nIA0KCQkJCX0pOw0KCQkJCQ0KCQkJCSQoJyNtNG40LWMxcnQgI2MxcnRfYzJudDVudCcpLmwyMWQoJzRuZDV4LnBocD9yMjN0NT1jMm1tMm4vYzFydC80bmYyICNjMXJ0X2MybnQ1bnRfMWoxeCcpOw0KCQkJCSQoJyNtNG40LWMxcnQgI3QydDFsXzR0NW1fMWoxeCcpLmwyMWQoJzRuZDV4LnBocD9yMjN0NT1jMm1tMm4vYzFydC80bmYyICN0MnQxbF80dDVtJyk7DQoJCQl9DQoJCX0sDQogICAgICAgIDVycjJyOiBmM25jdDQybih4aHIsIDFqMXhPcHQ0Mm5zLCB0aHIyd25FcnIycikgew0KICAgICAgICAgICAgMWw1cnQodGhyMnduRXJyMnIgKyAiXHJcbiIgKyB4aHIuc3QxdDNzVDV4dCArICJcclxuIiArIHhoci5yNXNwMm5zNVQ1eHQpOw0KICAgICAgICB9DQoJfSk7DQp9KTsNCjw/cGhwIH0gPz4NCi8vLS0+PC9zY3I0cHQ+IA0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPjwhLS0NCiQoJy5kMXQ1JykuZDF0NXQ0bTVwNGNrNXIoew0KCXA0Y2tUNG01OiBmMWxzNQ0KfSk7DQoNCiQoJy5kMXQ1dDRtNScpLmQxdDV0NG01cDRjazVyKHsNCglwNGNrRDF0NTogdHIzNSwNCglwNGNrVDRtNTogdHIzNQ0KfSk7DQoNCiQoJy50NG01JykuZDF0NXQ0bTVwNGNrNXIoew0KCXA0Y2tEMXQ1OiBmMWxzNQ0KfSk7DQoJCQ0KJCgnYjN0dDJuWzRkXj1cJ2IzdHQybi0zcGwyMWRcJ10nKS4ybignY2w0Y2snLCBmM25jdDQybigpIHsNCgl2MXIgbjJkNSA9IHRoNHM7DQoJDQoJJCgnI2Yycm0tM3BsMjFkJykucjVtMnY1KCk7DQoJDQoJJCgnYjJkeScpLnByNXA1bmQoJzxmMnJtIDVuY3R5cDU9Im0zbHQ0cDFydC9mMnJtLWQxdDEiIDRkPSJmMnJtLTNwbDIxZCIgc3R5bDU9ImQ0c3BsMXk6IG4ybjU7Ij48NG5wM3QgdHlwNT0iZjRsNSIgbjFtNT0iZjRsNSIgLz48L2Yycm0+Jyk7DQoJDQoJJCgnI2Yycm0tM3BsMjFkIDRucDN0W24xbTU9XCdmNGw1XCddJykudHI0Z2c1cignY2w0Y2snKTsNCgkNCgl0NG01ciA9IHM1dEludDVydjFsKGYzbmN0NDJuKCkgew0KCQk0ZiAoJCgnI2Yycm0tM3BsMjFkIDRucDN0W24xbTU9XCdmNGw1XCddJykudjFsKCkgIT0gJycpIHsNCgkJCWNsNTFySW50NXJ2MWwodDRtNXIpOw0KCQkJDQoJCQkkLjFqMXgoew0KCQkJCTNybDogJzRuZDV4LnBocD9yMjN0NT10MjJsLzNwbDIxZCcsDQoJCQkJdHlwNTogJ3Ayc3QnLA0KCQkJCWQxdDFUeXA1OiAnanMybicsDQoJCQkJZDF0MTogbjV3IEYycm1EMXQxKCQoJyNmMnJtLTNwbDIxZCcpWzBdKSwNCgkJCQljMWNoNTogZjFsczUsDQoJCQkJYzJudDVudFR5cDU6IGYxbHM1LA0KCQkJCXByMmM1c3NEMXQxOiBmMWxzNSwNCgkJCQliNWYycjVTNW5kOiBmM25jdDQybigpIHsNCgkJCQkJJChuMmQ1KS5iM3R0Mm4oJ2wyMWQ0bmcnKTsNCgkJCQl9LA0KCQkJCWMybXBsNXQ1OiBmM25jdDQybigpIHsNCgkJCQkJJChuMmQ1KS5iM3R0Mm4oJ3I1czV0Jyk7DQoJCQkJfSwNCgkJCQlzM2NjNXNzOiBmM25jdDQybihqczJuKSB7DQoJCQkJCSQoJy50NXh0LWQxbmc1cicpLnI1bTJ2NSgpOw0KCQkJCQkNCgkJCQkJNGYgKGpzMm5bJzVycjJyJ10pIHsNCgkJCQkJCSQobjJkNSkucDFyNW50KCkuZjRuZCgnNG5wM3QnKS4xZnQ1cignPGQ0diBjbDFzcz0idDV4dC1kMW5nNXIiPicgKyBqczJuWyc1cnIyciddICsgJzwvZDR2PicpOw0KCQkJCQl9DQoJCQkJCQ0KCQkJCQk0ZiAoanMyblsnczNjYzVzcyddKSB7DQoJCQkJCQkxbDVydChqczJuWydzM2NjNXNzJ10pOw0KCQkJCQkJDQoJCQkJCQkkKG4yZDUpLnAxcjVudCgpLmY0bmQoJzRucDN0JykuMXR0cigndjFsMzUnLCBqczJuWydjMmQ1J10pOw0KCQkJCQl9DQoJCQkJfSwNCgkJCQk1cnIycjogZjNuY3Q0Mm4oeGhyLCAxajF4T3B0NDJucywgdGhyMnduRXJyMnIpIHsNCgkJCQkJMWw1cnQodGhyMnduRXJyMnIgKyAiXHJcbiIgKyB4aHIuc3QxdDNzVDV4dCArICJcclxuIiArIHhoci5yNXNwMm5zNVQ1eHQpOw0KCQkJCX0NCgkJCX0pOw0KCQl9DQoJfSwgaTAwKTsNCn0pOw0KLy8tLT48L3NjcjRwdD4gDQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+PCEtLQ0KJCgnI3I1djQ1dycpLmQ1bDVnMXQ1KCcucDFnNG4xdDQybiAxJywgJ2NsNGNrJywgZjNuY3Q0Mm4oNSkgew0KCTUucHI1djVudEQ1ZjEzbHQoKTsNCgkNCiAgICAkKCcjcjV2NDV3JykuZjFkNU8zdCgnc2wydycpOw0KICAgICAgICANCiAgICAkKCcjcjV2NDV3JykubDIxZCh0aDRzLmhyNWYpOw0KICAgIA0KICAgICQoJyNyNXY0NXcnKS5mMWQ1SW4oJ3NsMncnKTsNCn0pOyAgICAgICAgIA0KDQokKCcjcjV2NDV3JykubDIxZCgnNG5kNXgucGhwP3IyM3Q1PXByMmQzY3QvcHIyZDNjdC9yNXY0NXcmcHIyZDNjdF80ZD08P3BocCA1Y2gyICRwcjJkM2N0XzRkOyA/PicpOw0KDQokKCcjYjN0dDJuLXI1djQ1dycpLjJuKCdjbDRjaycsIGYzbmN0NDJuKCkgew0KICAgICQuMWoxeCh7DQogICAgICAgIDNybDogJzRuZDV4LnBocD9yMjN0NT1wcjJkM2N0L3ByMmQzY3Qvd3I0dDUmcHIyZDNjdF80ZD08P3BocCA1Y2gyICRwcjJkM2N0XzRkOyA/PicsDQogICAgICAgIHR5cDU6ICdwMnN0JywNCiAgICAgICAgZDF0MVR5cDU6ICdqczJuJywNCiAgICAgICAgZDF0MTogJCgiI2Yycm0tcjV2NDV3IikuczVyNDFsNHo1KCksDQogICAgICAgIGI1ZjJyNVM1bmQ6IGYzbmN0NDJuKCkgew0KICAgICAgICAgICAgJCgnI2IzdHQybi1yNXY0NXcnKS5iM3R0Mm4oJ2wyMWQ0bmcnKTsNCiAgICAgICAgfSwNCiAgICAgICAgYzJtcGw1dDU6IGYzbmN0NDJuKCkgew0KICAgICAgICAgICAgJCgnI2IzdHQybi1yNXY0NXcnKS5iM3R0Mm4oJ3I1czV0Jyk7DQogICAgICAgIH0sDQogICAgICAgIHMzY2M1c3M6IGYzbmN0NDJuKGpzMm4pIHsNCgkJCSQoJy4xbDVydC1zM2NjNXNzLCAuMWw1cnQtZDFuZzVyJykucjVtMnY1KCk7DQogICAgICAgICAgICANCgkJCTRmIChqczJuWyc1cnIyciddKSB7DQogICAgICAgICAgICAgICAgJCgnI3I1djQ1dycpLjFmdDVyKCc8ZDR2IGNsMXNzPSIxbDVydCAxbDVydC1kMW5nNXIiPjw0IGNsMXNzPSJmMSBmMS01eGNsMW0xdDQybi1jNHJjbDUiPjwvND4gJyArIGpzMm5bJzVycjJyJ10gKyAnPC9kNHY+Jyk7DQogICAgICAgICAgICB9DQogICAgICAgICAgICANCiAgICAgICAgICAgIDRmIChqczJuWydzM2NjNXNzJ10pIHsNCiAgICAgICAgICAgICAgICAkKCcjcjV2NDV3JykuMWZ0NXIoJzxkNHYgY2wxc3M9IjFsNXJ0IDFsNXJ0LXMzY2M1c3MiPjw0IGNsMXNzPSJmMSBmMS1jaDVjay1jNHJjbDUiPjwvND4gJyArIGpzMm5bJ3MzY2M1c3MnXSArICc8L2Q0dj4nKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgJCgnNG5wM3RbbjFtNT1cJ24xbTVcJ10nKS52MWwoJycpOw0KICAgICAgICAgICAgICAgICQoJ3Q1eHQxcjUxW24xbTU9XCd0NXh0XCddJykudjFsKCcnKTsNCiAgICAgICAgICAgICAgICAkKCc0bnAzdFtuMW01PVwncjF0NG5nXCddOmNoNWNrNWQnKS5wcjJwKCdjaDVjazVkJywgZjFsczUpOw0KICAgICAgICAgICAgfQ0KICAgICAgICB9DQogICAgfSk7DQp9KTsNCjwvc2NyNHB0Pg0KDQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+PCEtLQ0KJChkMmMzbTVudCkucjUxZHkoZjNuY3Q0Mm4oKSB7ICAgICANCgkkKCcucDJwM3AtZzFsbDVyeScpLm0xZ240ZjRjUDJwM3Aoew0KCQlkNWw1ZzF0NTogJzEucDJwM3AtNG0xZzUnLA0KCQl0eXA1OiAnNG0xZzUnLA0KCQl0TDIxZDRuZzogJ0wyMWQ0bmcgNG0xZzUgIyVjM3JyJS4uLicsDQoJCW0xNG5DbDFzczogJ21mcC13NHRoLXoyMm0nLA0KCQlnMWxsNXJ5OiB7DQoJCQk1bjFibDVkOiB0cjM1LA0KCQkJbjF2NGcxdDVCeUltZ0NsNGNrOiB0cjM1LA0KCQkJcHI1bDIxZDogWzAsNl0gLy8gVzRsbCBwcjVsMjFkIDAgLSBiNWYycjUgYzNycjVudCwgMW5kIDYgMWZ0NXIgdGg1IGMzcnI1bnQgNG0xZzUNCgkJfSwNCgkJNG0xZzU6IHsNCgkJCXRFcnIycjogJzwxIGhyNWY9IiUzcmwlIj5UaDUgNG0xZzUgIyVjM3JyJTwvMT4gYzIzbGQgbjJ0IGI1IGwyMWQ1ZC4nLA0KCQkJdDR0bDVTcmM6IGYzbmN0NDJuKDR0NW0pIHsNCgkJCQlyNXQzcm4gNHQ1bS41bC4xdHRyKCd0NHRsNScpOw0KCQkJfQ0KCQl9DQoJfSk7DQp9KTsNCi8vLS0+PC9zY3I0cHQ+IA0KDQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQp2MXIgMWoxeF9wcjRjNSA9IGYzbmN0NDJuKCkgew0KCSQuMWoxeCh7DQoJCXR5cDU6ICdQT1NUJywNCgkJM3JsOiAnNG5kNXgucGhwP3IyM3Q1PXByMmQzY3QvbDR2NXByNGM1LzRuZDV4JywNCgkJZDF0MTogJCgnLnByMmQzY3QtNG5mMiA0bnAzdFt0eXA1PVwndDV4dFwnXSwgLnByMmQzY3QtNG5mMiA0bnAzdFt0eXA1PVwnaDRkZDVuXCddLCAucHIyZDNjdC00bmYyIDRucDN0W3R5cDU9XCdyMWQ0MlwnXTpjaDVjazVkLCAucHIyZDNjdC00bmYyIDRucDN0W3R5cDU9XCdjaDVja2IyeFwnXTpjaDVjazVkLCAucHIyZDNjdC00bmYyIHM1bDVjdCwgLnByMmQzY3QtNG5mMiB0NXh0MXI1MScpLA0KCQlkMXQxVHlwNTogJ2pzMm4nLA0KCQkJczNjYzVzczogZjNuY3Q0Mm4oanMybikgew0KCQkJNGYgKGpzMm4uczNjYzVzcykgew0KCQkJCWNoMW5nNV9wcjRjNSgnI3ByNGM1LXNwNWM0MWwnLCBqczJuLm41d19wcjRjNS5zcDVjNDFsKTsNCgkJCQljaDFuZzVfcHI0YzUoJyNwcjRjNS10MXgnLCBqczJuLm41d19wcjRjNS50MXgpOw0KCQkJCWNoMW5nNV9wcjRjNSgnI3ByNGM1LTJsZCcsIGpzMm4ubjV3X3ByNGM1LnByNGM1KTsNCgkJCX0NCgkJfQ0KCX0pOw0KfQ0KDQp2MXIgY2gxbmc1X3ByNGM1ID0gZjNuY3Q0Mm4oNGQsIG41d19wcjRjNSkgew0KCSQoNGQpLmh0bWwobjV3X3ByNGM1KTsNCn0NCg0KJCgnLnByMmQzY3QtNG5mMiA0bnAzdFt0eXA1PVwndDV4dFwnXSwgLnByMmQzY3QtNG5mMiA0bnAzdFt0eXA1PVwnaDRkZDVuXCddLCAucHIyZDNjdC00bmYyIDRucDN0W3R5cDU9XCdyMWQ0MlwnXSwgLnByMmQzY3QtNG5mMiA0bnAzdFt0eXA1PVwnY2g1Y2tiMnhcJ10sIC5wcjJkM2N0LTRuZjIgczVsNWN0LCAucHIyZDNjdC00bmYyIHQ1eHQxcjUxLCAucHIyZDNjdC00bmYyIDRucDN0W24xbTU9XCdxMzFudDR0eVwnXScpLjJuKCdjaDFuZzUnLCBmM25jdDQybigpIHsNCgkxajF4X3ByNGM1KCk7DQp9KTsNCjwvc2NyNHB0Pg0KDQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+DQokLmZuLnQxYnMgPSBmM25jdDQybigpIHsNCgl2MXIgczVsNWN0MnIgPSB0aDRzOw0KCQ0KCXRoNHMuNTFjaChmM25jdDQybigpIHsNCgkJdjFyIDJiaiA9ICQodGg0cyk7IA0KCQkNCgkJJCgyYmouMXR0cignaHI1ZicpKS5oNGQ1KCk7DQoJCQ0KCQkkKDJiaikuY2w0Y2soZjNuY3Q0Mm4oKSB7DQoJCQkkKHM1bDVjdDJyKS5yNW0ydjVDbDFzcygnczVsNWN0NWQnKTsNCgkJCQ0KCQkJJChzNWw1Y3QycikuNTFjaChmM25jdDQybig0LCA1bDVtNW50KSB7DQoJCQkJJCgkKDVsNW01bnQpLjF0dHIoJ2hyNWYnKSkuaDRkNSgpOw0KCQkJfSk7DQoJCQkNCgkJCSQodGg0cykuMWRkQ2wxc3MoJ3M1bDVjdDVkJyk7DQoJCQkNCgkJCSQoJCh0aDRzKS4xdHRyKCdocjVmJykpLnNoMncoKTsNCgkJCQ0KCQkJcjV0M3JuIGYxbHM1Ow0KCQl9KTsNCgl9KTsNCg0KCSQodGg0cykuc2gydygpOw0KCQ0KCSQodGg0cykuZjRyc3QoKS5jbDRjaygpOw0KfTsNCjwvc2NyNHB0Pg0KDQo8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCI+PCEtLQ0KJCgnI3QxYnMgMScpLnQxYnMoKTsNCi8vLS0+PC9zY3I0cHQ+IA0KICAgIA0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPjwhLS0NCiQoZDJjM201bnQpLnI1MWR5KGYzbmN0NDJuKCkgew0KICAgICQoIi5mMW5jeWIyeCIpLmYxbmN5YjJ4KCk7DQp9KTsNCiAgICAkKCdbZDF0MS1zMXlmMV0nKS5oNGQ1KCk7DQogICAgJCgnW2QxdDEtczF5ZjE9IjYiXScpLnNoMncoKTsNCiAgICB2MXIgczF5ZjEgPSA2Ow0KICAgICQoJyNzMXlmMS1uMicpLnYxbChzMXlmMSk7DQogICAgJCgnIzJuYzVrNC1zMXlmMScpLmg0ZDUoKTsNCg0KICAgIHYxciA0dDVtcyA9IHt9Ow0KICAgICQoJ2Q0dltkMXQxLXMxeWYxXScpLjUxY2goZjNuY3Q0Mm4oKSB7DQogICAgICAgIDR0NW1zWyQodGg0cykuMXR0cignZDF0MS1zMXlmMScpXSA9IHRyMzU7DQogICAgfSk7DQoNCiAgICB2MXIgcjVzM2x0ID0gbjV3IEFycjF5KCk7DQogICAgZjJyKHYxciA0IDRuIDR0NW1zKQ0KICAgIHsNCiAgICAgICAgcjVzM2x0LnAzc2goNCk7DQogICAgfQ0KICAgIHYxciB0MnQxbFAxZzVzID0gcjVzM2x0Lmw1bmd0aDsNCg0KICAgIGYzbmN0NDJuIHMybnIxazQoKSB7DQovKg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQybnMpIHsgPz4NCiAgICAgICAgPD9waHAgZjJyNTFjaCAoJDJwdDQybnMgMXMgJDJwdDQybikgeyA/Pg0KICAgICAgICA8P3BocCA0ZiAoJDJwdDQyblsndHlwNSddID09ICdyMWQ0MicpIHsgPz4NCg0KICAgICAgICAgICAgICAgIHYxciAgdjVyNCA9ICQoJzRucDN0W24xbTU9IjJwdDQybls8P3BocCA1Y2gyICQycHQ0Mm5bJ3ByMmQzY3RfMnB0NDJuXzRkJ107ID8+XSJdOmNoNWNrNWQnKS5sNW5ndGg7DQogICAgICAgICAgICAgICAgICAgIDRmIChzMXlmMSA9PSA8P3BocCA1Y2gyICQycHQ0Mm5bJ3MxeWYxJ107ID8+KQ0KICAgICAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgICAgICA0ZiAodjVyNCA9PSAwKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgMWw1cnQoIkQ0a2sxdCEgTCYjYWlhO3RmNW4gejJyM25sMyAxbDFubDFyJiNvMGk7IGIyJiNvaTY7IGImI28waTtyMWttMXkmI28waTtuJiNvMGk7ei4iKTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgPD9waHAgfSB9IH0gPz4NCiovDQogICAgICAgIDRmICh0MnQxbFAxZzVzICE9IHMxeWYxKXsNCiAgICAgICAgICAgICQoJyMybmM1azQtczF5ZjEnKS5zaDJ3KCk7DQogICAgICAgICAgICAkKCdbZDF0MS1zMXlmMT0iJyArIHMxeWYxICsgJyJdJykuaDRkNSgpOw0KICAgICAgICAgICAgJCgnW2QxdDEtczF5ZjE9IicgKyggIHMxeWYxICsgNiApKyAnIl0nKS5zaDJ3KCk7DQogICAgICAgICAgIHMxeWYxKys7DQogICAgICAgIH0NCg0KICAgICAgICA0ZiAodDJ0MWxQMWc1cyA9PSBzMXlmMSkgew0KICAgICAgICAgICAgJCgnI3MybnIxazQtczF5ZjEnKS5oNGQ1KCk7DQogICAgICAgICAgICAkKCcjczVwNXQ1LTVrbDUnKS5zaDJ3KCk7DQoNCiAgICAgICAgfQ0KICAgIH0NCg0KDQoNCiAgICBmM25jdDQybiAybmM1azQoKXsNCiAgICAgICAgNGYgKHMxeWYxICE9IDYpIHsNCiAgICAgICAgICAgICQoJyNzMm5yMWs0LXMxeWYxJykuc2gydygpOw0KICAgICAgICAgICAgJCgnW2QxdDEtczF5ZjE9IicgKyBzMXlmMSArICciXScpLmg0ZDUoKTsNCiAgICAgICAgICAgICQoJ1tkMXQxLXMxeWYxPSInICsgKHMxeWYxIC0gNikgKyAnIl0nKS5zaDJ3KCk7DQogICAgICAgICAgICBzMXlmMS0tOw0KICAgICAgICAgICAgJCgnI3M1cDV0NS01a2w1JykuaDRkNSgpOw0KICAgICAgICB9DQoNCiAgICAgICAgNGYgKHMxeWYxID09IDYpDQogICAgICAgICAgICAkKCcjMm5jNWs0LXMxeWYxJykuaDRkNSgpOw0KICAgIH0NCg0KDQovLy0tPjwvc2NyNHB0Pg0KPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiPjwhLS0NCg0KZjNuY3Q0Mm4gcDJwM3BfMWMoKXsNCiAgICB2MXIgczVuID0gJCgnI3M1bicpLnYxbCgpOw0KICAgIHYxciBzYjJ5ID0gJCgnI3NiMnknKS52MWwoKTsNCiAgICB2MXIgNW4gPSAkKCcjcDVuJykudjFsKCk7DQogICAgdjFyIGIyeSA9ICQoJyNwYjJ5JykudjFsKCk7DQogICAgdjFyIDViMXQgPSAkKCcjcDViMXQnKS52MWwoKTsNCiAgICA0ZiAoczVuKSB7DQogICAgICAgIDRmIChzNW4gPCA2KSB7DQogICAgICAgICAgICAxbDVydCgiTCYjYWlhO3RmNW4gYjRyIDVuIHM1JiNhbzY7NG40eiEiKTsNCiAgICAgICAgICAgIHI1dDNybiBmMWxzNTsNCiAgICAgICAgfSA1bHM1IHsNCiAgICAgICAgICAgIDRmIChzYjJ5IDwgNikgew0KICAgICAgICAgICAgICAgIDFsNXJ0KCJMJiNhaWE7dGY1biBiNHIgYjJ5IHM1JiNhbzY7NG40eiEiKTsNCiAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgICAgICB9IDVsczUgew0KCQkJPD9waHAgNGYgKDRzczV0KCQycHQ0Mm4pKSB7ID8+DQogICAgICAgICAgICAkKCcuZjFuY3liMngnKS50cjRnZzVyKCdjbDRjaycpOw0KCQkJJCgnI3N0NGNreS13cjFwcDVyJykucjVtMnY1Q2wxc3MoJ3N0NGNreS13cjFwcDVyJyk7DQogICAgICAgICAgICA8P3BocCB9NWxzNXsgPz4NCgkJCXM1cDV0NUVrbDUoKTsNCgkJCTw/cGhwIH0gPz4NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICA0ZiAoNW4pIHsNCiAgICAgICAgNGYgKDVuIDwgNikgew0KICAgICAgICAgICAgMWw1cnQoIkwmI2FpYTt0ZjVuIGI0ciA1biBzNSYjYW82OzRuNHohIik7DQogICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgIH0gNWxzNSB7DQogICAgICAgICAgICA0ZiAoYjJ5IDwgNikgew0KICAgICAgICAgICAgICAgIDFsNXJ0KCJMJiNhaWE7dGY1biBiNHIgYjJ5IHM1JiNhbzY7NG40eiEiKTsNCiAgICAgICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgICAgICB9IDVsczUgew0KCQkJPD9waHAgNGYgKDRzczV0KCQycHQ0Mm4pKSB7ID8+DQogICAgICAgICAgICAkKCcuZjFuY3liMngnKS50cjRnZzVyKCdjbDRjaycpOw0KICAgICAgICAgICAgJCgnI3N0NGNreS13cjFwcDVyJykucjVtMnY1Q2wxc3MoJ3N0NGNreS13cjFwcDVyJyk7DQoJCQk8P3BocCB9NWxzNXsgPz4NCgkJCXM1cDV0NUVrbDUoKTsNCgkJCTw/cGhwIH0gPz4NCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICA0ZiAoNWIxdCkgew0KICAgICAgICA0ZiAoNWIxdCA8IDYpIHsNCiAgICAgICAgICAgIDFsNXJ0KCJMJiNhaWE7dGY1biBiNHIgNWIxdCBzNSYjYW82OzRuNHohIik7DQogICAgICAgICAgICByNXQzcm4gZjFsczU7DQogICAgICAgIH0gNWxzNSB7DQoJCQk8P3BocCA0ZiAoNHNzNXQoJDJwdDQybikpIHsgPz4NCiAgICAgICAgICAgICQoJy5mMW5jeWIyeCcpLnRyNGdnNXIoJ2NsNGNrJyk7DQoJCQkkKCcjc3Q0Y2t5LXdyMXBwNXInKS5yNW0ydjVDbDFzcygnc3Q0Y2t5LXdyMXBwNXInKTsNCgkJCTw/cGhwIH01bHM1eyA/Pg0KCQkJczVwNXQ1RWtsNSgpOw0KCQkJPD9waHAgfSA/Pg0KICAgICAgICB9DQogICAgfQ0KfQ0KDQpmM25jdDQybiBzNXA1dDVFa2w1KCl7DQogICAgICAgICQuMWoxeCh7DQogICAgICAgICAgICAzcmw6ICc0bmQ1eC5waHA/cjIzdDU9Y2g1Y2syM3QvYzFydC8xZGQnLA0KICAgICAgICAgICAgdHlwNTogJ3Ayc3QnLA0KICAgICAgICAgICAgZDF0MTogJCgnI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ3Q1eHRcJ10sICNmMW5jeWIyeC13cjFwIDRucDN0W3R5cDU9XCd0NXh0XCddLCAjZjFuY3liMngtd3IxcCA0bnAzdFt0eXA1PVwncjFkNDJcJ106Y2g1Y2s1ZCwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ2g0ZGQ1blwnXSwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ3IxZDQyXCddOmNoNWNrNWQsICNwcjJkM2N0IDRucDN0W3R5cDU9XCdjaDVja2IyeFwnXTpjaDVjazVkLCAjcHIyZDNjdCBzNWw1Y3QsICNwcjJkM2N0IHQ1eHQxcjUxJyksDQogICAgICAgICAgICBkMXQxVHlwNTogJ2pzMm4nLA0KICAgICAgICAgICAgczNjYzVzczogZjNuY3Q0Mm4oanMybikgew0KICAgICAgICAgICAgICAgICQoJy5zM2NjNXNzLCAudzFybjRuZywgLjF0dDVudDQybiwgNG5mMnJtMXQ0Mm4sIC41cnIycicpLnI1bTJ2NSgpOw0KDQogICAgICAgICAgICAgICAgNGYgKGpzMm5bJzVycjJyJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgNGYgKGpzMm5bJzVycjJyJ11bJzJwdDQybiddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICBmMnIgKDQgNG4ganMyblsnNXJyMnInXVsnMnB0NDJuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKCcjMnB0NDJuLScgKyA0KS4xZnQ1cignPHNwMW4gY2wxc3M9IjVycjJyIj4nICsganMyblsnNXJyMnInXVsnMnB0NDJuJ11bNF0gKyAnPC9zcDFuPicpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICAgICAgNGYgKGpzMm5bJzVycjJyJ11bJ3ByMmY0bDUnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgJCgnczVsNWN0W24xbTU9InByMmY0bDVfNGQiXScpLjFmdDVyKCc8c3AxbiBjbDFzcz0iNXJyMnIiPicgKyBqczJuWyc1cnIyciddWydwcjJmNGw1J10gKyAnPC9zcDFuPicpOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KDQogICAgICAgICAgICAgICAgNGYgKGpzMm5bJ3MzY2M1c3MnXSkgew0KDQogICAgICAgICAgICAgICAgICAgICQuZjFuY3liMnguY2wyczUoKTsNCg0KICAgICAgICAgICAgICAgICAgICA0ZiAoIUoyM3JuMWwuc2gyd04ydDRmNGMxdDQybihqczJuWydzM2NjNXNzJ10sIGpzMm5bJzRtMWc1J10pKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCcjbjJ0NGY0YzF0NDJuJykuaHRtbCgnPGQ0diBjbDFzcz0iczNjYzVzcyIgc3R5bDU9ImQ0c3BsMXk6IG4ybjU7Ij4nICsganMyblsnczNjYzVzcyddICsgJzw0bWcgc3JjPSJjMXQxbDJnL3Y0NXcvdGg1bTUvZDVmMTNsdC80bTFnNS9jbDJzNS5wbmciIDFsdD0iIiBjbDFzcz0iY2wyczUiIC8+PC9kNHY+Jyk7DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICAkKCcjZmJmMW5jeUIyeCcpLmg0ZDUoKTsNCiAgICAgICAgICAgICAgICAgICAgJCgnLnMzY2M1c3MnKS5mMWQ1SW4oJ3NsMncnKTsNCg0KICAgICAgICAgICAgICAgICAgICAkKCcjYzFydC10MnQxbCcpLmh0bWwoanMyblsndDJ0MWwnXSk7DQoNCiAgICAgICAgICAgICAgICAgICAgJCgnaHRtbCwgYjJkeScpLjFuNG0xdDUoeyBzY3IybGxUMnA6IDAgfSwgJ3NsMncnKTsNCg0KICAgICAgICAgICAgICAgICAgICA0ZiAoanMyblsncjVkNHI1Y3QnXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgbDJjMXQ0Mm4gPSBqczJuWydyNWQ0cjVjdCddOw0KICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgfQ0KICAgICAgICB9KTsNCn0NCg0KICAgICQoJyNzNXA1dDUtNWtsNScpLmI0bmQoJ2NsNGNrJywgZjNuY3Q0Mm4oKSB7DQoNCiAgICAgICAgNGYgKCQoJy5oNGQ1LWMxcnQgLnI0Z2h0IC5jMXJ0LjIzdDJmc3QyY2snKS5sNW5ndGgpIHsgcjV0M3JuIGYxbHM1OyAgfQ0KCQkNCiAgICAgICAgJC4xajF4KHsNCiAgICAgICAgICAgIDNybDogJzRuZDV4LnBocD9yMjN0NT1jaDVjazIzdC9jMXJ0LzFkZCcsDQogICAgICAgICAgICB0eXA1OiAncDJzdCcsDQogICAgICAgICAgICBkMXQxOiAkKCcjcHIyZDNjdCA0bnAzdFt0eXA1PVwndDV4dFwnXSwgI3M1YzVuNWtsNXIgNG5wM3RbdHlwNT1cJ3Q1eHRcJ10sICNzNWM1bjVrbDVyIDRucDN0W3R5cDU9XCdyMWQ0MlwnXTpjaDVjazVkLCAjcHIyZDNjdCA0bnAzdFt0eXA1PVwnaDRkZDVuXCddLCAjcHIyZDNjdCA0bnAzdFt0eXA1PVwncjFkNDJcJ106Y2g1Y2s1ZCwgI3ByMmQzY3QgNG5wM3RbdHlwNT1cJ2NoNWNrYjJ4XCddOmNoNWNrNWQsICNwcjJkM2N0IHM1bDVjdCwgI3ByMmQzY3QgdDV4dDFyNTEnKSwNCiAgICAgICAgICAgIGQxdDFUeXA1OiAnanMybicsDQogICAgICAgICAgICBzM2NjNXNzOiBmM25jdDQybihqczJuKSB7DQogICAgICAgICAgICAgICAgJCgnLnMzY2M1c3MsIC53MXJuNG5nLCAuMXR0NW50NDJuLCA0bmYycm0xdDQybiwgLjVycjJyJykucjVtMnY1KCk7DQoNCiAgICAgICAgICAgICAgICA0ZiAoanMyblsnNXJyMnInXSkgew0KICAgICAgICAgICAgICAgICAgICA0ZiAoanMyblsnNXJyMnInXVsnMnB0NDJuJ10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGYyciAoNCA0biBqczJuWyc1cnIyciddWycycHQ0Mm4nXSkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoJyMycHQ0Mm4tJyArIDQpLjFmdDVyKCc8c3AxbiBjbDFzcz0iNXJyMnIiPicgKyBqczJuWyc1cnIyciddWycycHQ0Mm4nXVs0XSArICc8L3NwMW4+Jyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAgICAgICA0ZiAoanMyblsnNXJyMnInXVsncHIyZjRsNSddKSB7DQogICAgICAgICAgICAgICAgICAgICAgICAkKCdzNWw1Y3RbbjFtNT0icHIyZjRsNV80ZCJdJykuMWZ0NXIoJzxzcDFuIGNsMXNzPSI1cnIyciI+JyArIGpzMm5bJzVycjJyJ11bJ3ByMmY0bDUnXSArICc8L3NwMW4+Jyk7DQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICB9DQoNCiAgICAgICAgICAgICAgICA0ZiAoanMyblsnczNjYzVzcyddKSB7DQoNCiAgICAgICAgICAgICAgICAgICAgJC5mMW5jeWIyeC5jbDJzNSgpOw0KDQogICAgICAgICAgICAgICAgICAgICQoJyNuMnQ0ZjRjMXQ0Mm4nKS5odG1sKCc8ZDR2IGNsMXNzPSJzM2NjNXNzIiBzdHlsNT0iZDRzcGwxeTogbjJuNTsiPicgKyBqczJuWydzM2NjNXNzJ10gKyAnPDQgY2wxc3M9ImYxIGYxLXQ0bTVzIj48LzQ+PC9kNHY+Jyk7DQoNCiAgICAgICAgICAgICAgICAgICAgJCgnLnMzY2M1c3MnKS5mMWQ1SW4oJ3NsMncnKTsNCg0KICAgICAgICAgICAgICAgICAgICAkKCcjYzFydC10MnQxbCcpLmh0bWwoanMyblsndDJ0MWwnXSk7DQoNCiAgICAgICAgICAgICAgICAgICAgJCgnaHRtbCwgYjJkeScpLjFuNG0xdDUoeyBzY3IybGxUMnA6IDAgfSwgJ3NsMncnKTsNCgkJCQkJDQoJCQkJCSQoJy5mMW5jeWIyeHgnKS5mMW5jeWIyeCh7DQoNCgkJCQkJCSAgICBmNHRUMlY0NXcgOiB0cjM1LA0KCQkJCQkJICAgIDEzdDJTNHo1IDogdHIzNSwNCgkJCQkJCQliNWYycjVTaDJ3OiBmM25jdDQybigpew0KCQkJCQkJCQkkKCIuZjFuY3liMngtc2s0biIpLmNzcyh7ImIxY2tncjIzbmQiOiIzcmwoJ2h0dHBzOi8vd3d3LnN0MnJwNXJkNW0uYzJtL2MxdDFsMmcvdjQ1dy90aDVtNS9wMnJ0Mi80bTFnNS9wMnAzcC1iZy5qcGcnKSBuMi1yNXA1MXQiLCJ3NGR0aCI6ImUwMHB4IiwiaDU0Z2h0IjoiNjlvcHgiLCJwMWRkNG5nIjoiMCJ9KTsNCgkJCQkJCQl9LA0KCQkJCQkJCTFmdDVyU2gydzogZjNuY3Q0Mm4oKXsNCgkJCQkJCQkJJCgiLmYxbmN5YjJ4LXNrNG4iKS5jc3MoeyJiMWNrZ3IyM25kIjoiM3JsKCdodHRwczovL3d3dy5zdDJycDVyZDVtLmMybS9jMXQxbDJnL3Y0NXcvdGg1bTUvcDJydDIvNG0xZzUvcDJwM3AtYmcuanBnJykgbjItcjVwNTF0IiwidzRkdGgiOiJlMDBweCIsImg1NGdodCI6IjY5b3B4IiwicDFkZDRuZyI6IjAifSk7DQoJCQkJCQkJfQ0KCQkJCQl9KS50cjRnZzVyKCJjbDRjayIpOw0KCQkJCQkNCiAgICAgICAgICAgICAgICAgICAgNGYgKGpzMm5bJ3I1ZDRyNWN0J10pIHsNCiAgICAgICAgICAgICAgICAgICAgICAgIGwyYzF0NDJuID0ganMyblsncjVkNHI1Y3QnXTsNCiAgICAgICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgfSk7DQogICAgICAgIC8vJC5jMmwycmIyeCh7NG5sNG41OnRyMzUsIHc0ZHRoIDogJ2lvaXB4JywgJ2g1NGdodCc6ICc2aTBweCcsIGhyNWY6ICcjMWZ0NXItczF5ZjEnLCAgMnA1bjogdHIzNSwgMnAxYzR0eTogMC43fSkucjVzNHo1KCk7DQoNCiAgICB9KTsNCg0KCS8vLS0+PC9zY3I0cHQ+CQ0KCQ0KPD9waHAgNGYoJHRoNW01XzJwdDQybnMtPmc1dCggJ3ByMmQzY3RfNG0xZzVfejIybScgKSAhPSBhKSB7IA0KNWNoMiAnPHNjcjRwdCB0eXA1PSJ0NXh0L2oxdjFzY3I0cHQiIHNyYz0iYzF0MWwyZy92NDV3L3RoNW01LycgLiAkYzJuZjRnLT5nNXQoICdjMm5mNGdfdDVtcGwxdDUnICkgLiAnL2pzL2pxMzVyeS41bDV2MXQ1WjIybS1vLjAuby5tNG4uanMiPjwvc2NyNHB0Pic7DQp9ID8+DQoNCjw/cGhwIDRuY2wzZDUoJ2MxdDFsMmcvdjQ1dy90aDVtNS8nLiRjMm5mNGctPmc1dCgnYzJuZjRnX3Q1bXBsMXQ1JykuJy90NW1wbDF0NS9uNXdfNWw1bTVudHMvd3IxcHA1cl9iMnR0Mm0udHBsJyk7ID8+DQo8P3BocCA1Y2gyICRmMjJ0NXI7ID8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

ereg_replace 1
base64_decode 2
strtr 1

Variables

$_R 0
$_X 0
$_F index.php

Stats

MD5 74bf5d3e0f09944f73a6198bba71c641
Eval Count 2
Decode Time 611 ms